Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
bits4me

[MOD] borrador de respaldo sin consultas

Recommended Posts

buenas tardes caballeros, hoy no tenia nada que hacer y decidi hacer esto que tenia tiempo pensandolo, que en caso de error 

al crear el post se queden los valores guardados y listos, pense hacerlo con el borrador que ya trae pero se me hizo mas 

fácil de este modo.

primero, vamos a themes/default/js/funciones.js

al final del archivo agregamos esto

//#####################MANEJO DE COOKIES#########################//
function crearcookie(name, value, days){
    //crearcookie('nombre de la cookie', 'valor para la cookie', tiempo de vida)
    //tiempo de vida, 1 es = a 1 dia
    if(days){
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = '; expires=' + date.toGMTString();
    }
    else
        var expires = '';
    document.cookie = name + '=' + value + expires + '; path=/;';
}
function leercookie(name){
    //crearcookie('genkidama','dame tus fuerzas',1)
    //leercookie('genkidama')
    //ejemplo===== alert(leercookie(genkidama)); muestra : 'dame tus fuerzas'
    var nameEQ = name + '=';
    var ca = document.cookie.split(';');
    for(var i=0, s=ca.length; i<s; ++i){
        var c = ca[i];
        while(c.charAt(0) == ' ')
            c = c.substring(1, c.length);
        if(c.indexOf(nameEQ) == 0)
            return c.substring(nameEQ.length, c.length);
    }
    return null;
}
function borrarcookie(name){
    //borrarcookie('genkidama') quitamos su dia de vida 
    crearcookie(name, "", -1);
}
//#####################FIN DE COOKIES#############################//

ahora en themes/default/templates/modules/m.agregar_javascript.tpl

abajo de 

    // GENERADOR DE TAGS
    $('input[name=tags]').click(function(){
        if(tags == true) return true;
        var q = $('input[name=titulo]').val();
		$.ajax({
			type: 'post',
			url: global_data.url + '/posts-genbus.php?do=generador',
			data: 'q=' + q,
			success: function(h) {
                $('input[name=tags]').val(h);
                tags = true;
			}
		});
    });

agregamos

/*Funcion de Capturar y Almacenar datos */
$(document).ready(function(){  
	$('input[name=preview]').click(function(){      
		/*Captura de datos escrito en los inputs*/      
		var title = $('input[name=titulo]').val();
		var bodys = $('#markItUp').val();
		var tags = $('input[name=tags]').val();
		/*Guardando los datos en el LocalStorage*/
		localStorage.setItem("titulo", title);
		localStorage.setItem("cuerpo", bodys);
		localStorage.setItem("tags", tags);
   });  
});
/*si hay una cookie borrador, cargamos los datos guardados*/
$(document).ready(function(){
	var ok = leercookie("borrador");
	var ti = localStorage.getItem("titulo");
	var bo = localStorage.getItem("cuerpo");
	var ta = localStorage.getItem("tags");
		if (ok) {
			$('input[name=titulo]').val(ti)
			$('#markItUp').val(bo)
			$('input[name=tags]').val(ta)
		}
		else{
			/*borramos el borrador pasado*/
			localStorage.clear()
		}
});

en el mismo archivo abajo de 

$('input[name=preview]').bind('click',function(){

agregamos

crearcookie("borrador",1,1);

por ultimo en inc/php/agregar.php

abajo de 

$tsCat = db_exec('fetch_assoc', $query);

agregamos

//quitamos la cookie para eliminar los archivos en localstorage
setcookie('borrador', '', time() - (86400 * 30), "/");

en el mismo archivo abajo de 

$smarty->assign("tsAviso",array('titulo' => 'Bien!', 'mensaje' => 'El post <b>'.$_POST['titulo'].'</b> fue agregado. '.(!$tsUser->is_admod && ($tsUser->permisos['gorpap'] == true || $tsCore->settings['c_desapprove_post'] == 1) ? 'Deber&aacute; esperar su aprobaci&oacute;n' : '').' ', 'but' => 'Acceder al post', 'link' => "{$tsCore->settings['url']}/posts/{$tsCat['c_seo']}/$tsPost/{$tsCore->setSEO($_POST['titulo'])}.html"));

agregamos

//quitamos la cookie para eliminar los archivos en localstorage
setcookie('borrador', '', time() - (86400 * 30), "/");

y bueno es todo con esto tenemos un respaldo de 1 dia por si pasa algo, dejo caps

retire los validadores de tags para simular un error

858809e068007bc6d41e62e9c2715719o.png

///

63ec4c40c4deae32b4969b4824ec40b3o.png

//el resultado antes de este mod era todos los campos en blanco y ahora se queda tal como lo dejaste

a837e646b23f7f9ba8406fe65aaa6148o.png

es todo :P mientras exista un error en el post, se guardara por 1 dia

  • Like 8

Share this post


Link to post
Share on other sites
hace 21 minutos, albert2227 dijo:

Me gusta, procura no tener nada que hacer todos los días :D así veremos mas aportes seguido :P

oh gracias es muy amable :D

Share this post


Link to post
Share on other sites
hace 5 horas, bits4me dijo:

gracias me haces sentir muy halagado :blush:

p1lkP25.gif

Share this post


Link to post
Share on other sites
hace 2 horas, Vellenger dijo:

Muy bueno, vi que varios pedian esto, sera de mucha utilidad, Gracias +1

gracias a ti por comentar :D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Tronlar
      Hola a [email protected],os dejo como poner el editor WYSIWYG igual que la versión 1.3 , lo he probado en la V5 pero tiene que funcionar en cualquier tema.Si tienes problemas con otro tema o lo que sea respecto al mod,coméntalo aquí dejando tu web y un usuario demo.

      En c.core.php --> inc/class/c.core.php

      Buscar:
      /* parseBBCode($bbcode) */ function parseBBCode($bbcode, $type = 'normal', $smiles = true, $mentions = true) { // Class BBCode include_once(TS_EXTRA . 'bbcode.inc.php'); $parser = new BBCode(); // Seleccionar texto $parser->setText($bbcode); // Seleccionar tipo switch ($type) { // NORMAL case 'normal': // BBCodes permitidos $parser->setRestriction(array('url', 'code', 'quote', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler', 'swf', 'video', 'goear', 'hr', 'sub', 'sup', 'table', 'td', 'tr', 'ul', 'li', 'ol', 'notice', 'info', 'warning', 'error', 'success')); break; // FIRMA case 'firma': // BBCodes permitidos $parser->setRestriction(array('url', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler')); break; // NOTICIAS case 'news': // BBCodes permitidos $parser->setRestriction(array('url', 'b', 'i', 'u', 's')); break; // SOLO SMILES (Esta opción se mantiene por compatibilidad con versiones anteriores, pero en su lugar se recomienda utilizar la opción "normal") case 'smiles': $parser->setRestriction(array('url', 'code', 'quote', 'quotePHPost', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 'align', 'spoiler', 'swf', 'goear', 'hr', 'li')); break; } // HTML $html = $parser->getAsHtml(); // SMILES if ($smiles) $html = $parser->parseSmiles(); // MENCIONES if ($mentions) $html = $parser->parseMentions(); // Retornar resultado return $html; }  
       
      Cambiar por:
      /* parseBBCode($bbcode) */ function parseBBCode($bbcode, $type = 'normal') { // Class BBCode include_once(TS_EXTRA . 'bbcode.inc.php'); $parser = new BBCode(); // Seleccionar texto $parser->setText($bbcode); // Seleccionar tipo switch ($type) { // NORMAL case 'normal': // BBCodes permitidos $parser->setRestriction(array('url', 'code', 'quote', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler', 'swf', 'video', 'goear', 'hr', 'sub', 'sup', 'table', 'td', 'tr', 'ul', 'li', 'ol', 'notice', 'info', 'warning', 'error', 'success')); // SMILES $parser->parseSmiles(); // MENCIONES $parser->parseMentions(); break; // FIRMA case 'firma': // BBCodes permitidos $parser->setRestriction(array('url', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler')); break; // NOTICIAS case 'news': // BBCodes permitidos $parser->setRestriction(array('url', 'b', 'i', 'u', 's')); // SMILES $parser->parseSmiles(); break; // SOLO SMILES (Esta opción se mantiene por compatibilidad con versiones anteriores, pero en su lugar se recomienda utilizar la opción "normal") case 'smiles': $parser->setRestriction(array('url', 'code', 'quote', 'quotePHPost', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 'align', 'spoiler', 'swf', 'goear', 'hr', 'li')); // SMILES $parser->parseSmiles(); // MENCIONES $parser->parseMentions(); break; } // Retornar resultado HTML return $parser->getAsHtml(); }  

      En acciones.js --> themes/tutema/js/acciones.js

      Buscar:
      /* Citar comentarios */ function citar_comment(id, nick){ var textarea = $('#body_comm'); textarea.focus(); textarea.val(((textarea.val()!='') ? textarea.val() + '\n' : '') + '[quote=' + nick + ']' + htmlspecialchars_decode($('#citar_comm_'+id).html(), 'ENT_NOQUOTES') + '[/quote]\n'); }  

      Cambiar por:
      /* Citar comentarios */ function citar_comment(id, nick){ var textarea = $('#body_comm'); var message = $.trim($('#comment-body-'+id).html()); $('.wysibb-texarea').execCommand('quote',{autor: nick, seltext: message}); }  
       
      Buscar:
      //Imprimir editores function print_editor(){ //Editor de posts if($('#markItUp') && !$('#markItUpMarkItUp').length){ $('#markItUp').markItUp(mySettings); $('#emoticons a').live("click",function(){ emoticon = ' ' + $(this).attr("smile") + ' '; $.markItUp({ replaceWith:emoticon }); return false; }); } //Editor de posts comentarios if($('#body_comm') && !$('#markItUpbody_comm').length){ $('#body_comm').markItUp(mySettings_cmt); } //Editor de respuestas comunidades if($('#body_resp') && !$('#markItUpbody_resp').length){ $('#body_resp').markItUp(mySettings_cmt); } } /* FIN - Editor */  

      Cambiar por:
      //Imprimir editores function print_editor(){ //Editor de posts if($('#markItUp').length && !$('.wysibb-texarea').length || $('#wysibb').length && !$('.wysibb-texarea').length){ $('#markItUp, #wysibb').removeAttr('onblur onfocus class style').css('height', '400').addClass('required').wysibb(); $('#moreemofn, #emoticons').remove(); } //Editor de posts comentarios if($('#body_comm').length && !$('.wysibb-texarea').length){ var wbbOpt = { buttons: "smilebox,|,bold,italic,underline,strike,sup,sub,|,img,video,link" } $('#body_comm').removeAttr('onblur onfocus class style title').css('height', '80').html('').wysibb(wbbOpt); } //Editor de respuestas comunidades if($('#body_resp') && !$('#markItUpbody_resp').length){ $('#body_resp').markItUp(mySettings_cmt); } //Editor de respuesta de mensajes if($('#respuesta').length && !$('.wysibb-texarea').length){ var wbbOpt = { buttons: "smilebox,|,bold,italic,underline,strike,sup,sub,|,img,video,link,|,removeFormat" } $('#respuesta').removeAttr('onblur onfocus class style title').css('height', '80').html('').wysibb(wbbOpt); } } /* FIN - Editor */  
       
      Buscar:
      mydialog.buttons(true, true, 'Enviar', 'mensaje.enviar(0)', true, true, true, 'Cancelar', 'close', true, false); mydialog.center();  
       
      Cambiar por:
      mydialog.buttons(true, true, 'Enviar', '$(\'.wysibb-texarea\').sync(); mensaje.enviar(0)', true, true, true, 'Cancelar', 'close', true, false); var wbbOpt = { resize_maxheight: 170, buttons: "smilebox,|,bold,italic,underline,strike,sup,sub,|,img,video,link,|,removeFormat" } $('#msg_body').wysibb(wbbOpt); mydialog.center();  

      Buscar:
      // RESPONDER responder: function(mp_id){ this.vars['mp_id'] = $('#mp_id').val(); this.vars['mp_body'] = encodeURIComponent($('#respuesta').val()); // Fix: 14/12/2014 - 1.1.000.9 if(this.vars['mp_body'] == '') { $('#respuesta').focus(); return; } // this.ajax('respuesta','id=' + this.vars['mp_id'] + '&body=' + this.vars['mp_body'], function(h){ $('#respuesta').val(''); // LIMPIAMOS switch(h.charAt(0)){ case '0': mydialog.alert("Error", h.substring(3)); break; case '1': $('#historial').append($(h.substring(3)).fadeIn('slow')); break; } $('#respuesta').focus(); }); },
          
      Cambiar por:
      // RESPONDER responder: function(mp_id){ this.vars['mp_id'] = $('#mp_id').val(); this.vars['mp_body'] = encodeURIComponent($('#respuesta').bbcode()); // Fix: 06/05/2018 - 1.3 if(this.vars['mp_body'] == '') { $('#respuesta').focus(); return; } // this.ajax('respuesta','id=' + this.vars['mp_id'] + '&body=' + this.vars['mp_body'], function(h){ $('#respuesta').val(''); // LIMPIAMOS $('.wysibb-body').html(''); switch(h.charAt(0)){ case '0': mydialog.alert("Error", h.substring(3)); break; case '1': $('#historial').append($(h.substring(3)).fadeIn('slow')); break; } $('#respuesta').focus(); }); },  

          
      En funciones.js --> themes/tutema/js/funciones.js

      Buscar:
      // NUEVO COMENTARIO nuevo: function(mostrar_resp, comentarionum){ // EVITAR FLOOD $('#btnsComment').attr({'disabled':'disabled'}); // var textarea = $('#body_comm'); var text = textarea.val();
      Cambiar por:
      // NUEVO COMENTARIO nuevo: function(mostrar_resp, comentarionum){ // EVITAR FLOOD $('#btnsComment').attr({'disabled':'disabled'}); // var textarea = $('#body_comm'); var text = textarea.bbcode();  
       
      Buscar:
      // VISTA PREVIA DEL COMENTARIO preview: function(id, type){ var textarea = (type == 'new') ? $('#' + id) : $('#edit-comment-' + id); var text = textarea.val();  

      Cambiar por:
      // VISTA PREVIA DEL COMENTARIO preview: function(id, type){ var textarea = (type == 'new') ? $('#' + id) : $('#edit-comment-' + id); var text = textarea.bbcode();  

      En main_header.tpl --> themes/tutema/templates/sections/main_header.tpl    
              
      Buscar:
      <link href="{$tsConfig.tema.t_url}/extras.css" rel="stylesheet" type="text/css" />  

      Agregar debajo:
      <link href="{$tsConfig.css}/wysibb.css" rel="stylesheet" type="text/css" />  
       
      Buscar:
       
      <script src="{$tsConfig.js}/funciones.js" type="text/javascript"></script>
      Agregar debajo:
      <script src="{$tsConfig.js}/wysibb.js" type="text/javascript"></script>  
      Subir esta carpeta y ya lo tienen funcionando.
       
       

       

       

       

       

       

       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
    • By Cacho
      mi web es http://boludinga.daryhost.com/ 
      user: demo
      pass: demo5 o demo
       
      Hola, hace unos días que estoy en el foro, siempre lo miré desde afuera, la verdad que aprendí mucho, le pido por favor a quien pueda ayudarme con esto.
       
      En el editor wysiwyg vienen varios botones, pero no encuentro el de responder en los comentarios de los post, hay alguna forma de ponerlo?, solo se puede citar lo que dijo otro usuario, en el portal si funciona el responder les agradezco su ayuda. uso la 1.3 y el theme Carbon.
    • By Miguel92
      Actualizar de PHP 5.6 a PHP 7.0+
      Hacer al Script compatible con PHP 7.0+ (Por: @Rhuan)
      ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
      ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 
      Descargamos los archivos y lo colocaremos en el directorio default/ (Descargar wysiwyg.actualizado.zip)
       
      En templates/sections/main_header.tpl buscamos
      <link href="{$tsConfig.tema.t_url}/extras.css" rel="stylesheet" type="text/css" /> y debajo pegamos
      <link href="{$tsConfig.css}/wysibb.css" rel="stylesheet" type="text/css" />  
      luego buscamos
      <script src="{$tsConfig.js}/funciones.js?{$smarty.now}" type="text/javascript"></script> agregamos 
      <script src="{$tsConfig.js}/wysibb.js?{$smarty.now}" type="text/javascript"></script>  
       
      Ahora vamos a js/acciones.js, buscamos desde la línea 113 hasta 117 y lo dejamos como esta, ya que en el original se modifica
      function citar_comment(id, nick){     var textarea = $('#body_comm');     textarea.focus();     textarea.val(((textarea.val()!='') ? textarea.val() + '\n' : '') + '[quote=' + nick + ']' + htmlspecialchars_decode($('#citar_comm_'+id).html(), 'ENT_NOQUOTES') + '[/quote]\n'); } Ahora buscamos desde la línea 775 hasta 797
      //Imprimir editores function print_editor(){     //Editor de posts     if($('#markItUp') && !$('#markItUpMarkItUp').length){         $('#markItUp').markItUp(mySettings);         $('#emoticons a').on("click",function(){             emoticon = ' ' + $(this).attr("smile") + ' ';             $.markItUp({ replaceWith:emoticon });             return false;         });     }     //Editor de posts comentarios     if($('#body_comm') && !$('#markItUpbody_comm').length){         $('#body_comm').markItUp(mySettings_cmt);     }     //Editor de respuestas comunidades     if($('#body_resp') && !$('#markItUpbody_resp').length){         $('#body_resp').markItUp(mySettings_cmt);     } } /* FIN - Editor */ por
      //Imprimir editores function print_editor(){     //Editor de posts     if($('#markItUp').length && !$('.wysibb-texarea').length || $('#wysibb').length && !$('.wysibb-texarea').length){         $('#markItUp, #wysibb').removeAttr('onblur onfocus class style').css('height', '400').addClass('required').wysibb();         $('#moreemofn, #emoticons').remove();     }     //Editor de posts comentarios     if($('#body_comm').length && !$('.wysibb-texarea').length){         var wbbOpt = { buttons: "smilebox,|,bold,italic,underline,strike,sup,sub,|,img,video,link" }         $('#body_comm').removeAttr('onblur onfocus class style title').css('height', '80').html('').wysibb(wbbOpt);     }     //Editor de respuestas comunidades     if($('#body_resp') && !$('#markItUpbody_resp').length){         $('#body_resp').markItUp(mySettings_cmt);     }     //Editor de respuesta de mensajes     if($('#respuesta').length && !$('.wysibb-texarea').length){         var wbbOpt = { buttons: "smilebox,|,bold,italic,underline,strike,sup,sub,|,img,video,link,|,removeFormat" }         $('#respuesta').removeAttr('onblur onfocus class style title').css('height', '80').html('').wysibb(wbbOpt);     } } /* FIN - Editor */ luego buscar línea 1651
              mydialog.buttons(true, true, 'Enviar', 'mensaje.enviar(0)', true, true, true, 'Cancelar', 'close', true, false); y reemplazarla por
              mydialog.buttons(true, true, 'Enviar', '$(\'.wysibb-texarea\').sync(); mensaje.enviar(0)', true, true, true, 'Cancelar', 'close', true, false);         var wbbOpt = { resize_maxheight: 170, buttons: "smilebox,|,bold,italic,underline,strike,sup,sub,|,img,video,link,|,removeFormat" }         $('#msg_body').wysibb(wbbOpt); luego buscamos línea 1688
               $('#respuesta').val(''); // LIMPIAMOS y debajo pegamos
              $('.wysibb-body').html('');  
      Después buscamos en templates/modules/m.agregar_javascript.tpl 
      Línea :12 y Línea :20 reemplazamos
              obj = $(obj).parent().parent().parent(); por
              obj = $(obj).parent().parent(); Luego buscamos línea 221
          document.forms.newpost.submit() y reemplazamos por
          $('form[name=newpost]').submit()  
       
      Ahora el problema que había es que no se podía comentar para arreglar eso, deben buscar en js/funciones.js en la línea 115
              var text = textarea.val(); y reemplazarla por
              var text = textarea.bbcode();  
      Si hay problemas creen un topic en la sección Fix´s y Errores
    • By rodolfo23
      Hola amigos tengo un bug grave con este editor WYSIWYG, al querer editar un post o un tema, se abre el pero no muestra el contenido! es como si no hubiera nada escrito en ese post o tema, como soluciono esto? mi theme es el default, la web la tengo en localhost y el mod del editor que instalé es:
       
       
      funciona todo perfecto el editor en toda la web, pero es este único error que al editar un post o un tema ya creado no muestra el contenido es como si estuviera haciendo un post desde cero!, ayuda por favor 
    • By rodolfo23
      Hola amigos instalé este mod y tuve varios problemas que ahora voy a decir, el mod que instalé es el siguiente:
       
       
      los problemas que tengo son los siguientes, no puedo agregar un post, no puedo agregar un tema en comunidades, no puedo agregar comentarios ni en posts ni en los temas de las comunidades, no cargan los comentarios ya echos en los posts, y no se visualizan los CLASS="QTIP" vieron que cuando un nombre o algo tiene ese class se ve el value en una burbuja negra que le sale arriba, bueno ya no funciona eso tampoco, no se porque tengo estos problemas ya que tengo el tema default de la última versión de phpost y he hecho todo como lo decía en el tema, alguien sabría porque tengo estos errores y como puedo solucionarlos? gracias, el theme es el default phpost 1.2, la web la tengo en localhost, gracias
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×