- Sky
- Blueberry
- Slate
- Blackcurrant
- Watermelon
- Strawberry
- Orange
- Banana
- Apple
- Emerald
- Chocolate
- Charcoal
-
Similar Content
-
By Solo_Duvan
Hola amigos, me percate que los comentarios de los post no se pueden editar, les dejo un pequeño fix por si les molesta este problema.
Vamos a funciones.js ubicado en themes/default/js y buscamos:
var text = textarea.bbcode();
Lo reemplazamos con esto:
var text = (type == 'new') ? textarea.bbcode() : textarea.val();
Listo, ahora podremos editar comentarios, espero les funciones. Saludos ?
-
By Kmario19
Hola a todos, soy Kmario19. Tal vez me recuerden de mods como la portada de los posts, o secciones como las de juegos y las comunidades. Esta vez vengo con un fix para aquellos sitios que tengan millones de visitas y la tabla w_visitas esté afectando la carga de un post ya que es la tabla que más registros genera.
Junto a @Rengo estuvimos analizando por qué los posts cargaba tan lento, después de un rato noté que una consulta en particular era la culpable:
db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `w_visitas` SET `date` = \''.time().'\', ip = \''.$tsCore->getIP().'\' WHERE `for` = \''.(int)$post_id.'\' && `type` = \'2\' && `user` = \''.$tsUser->uid.'\' LIMIT 1'); Esta línea está en c.posts.php en la función getPost. (esta consulta actualiza la fecha de visita del usuario logueado al post)
El problema es que después de que el sitio tenga suficiente tiempo online o muchísimas visitas, esta tabla w_visitas llega a tener millones de registros y cuando una tabla así no está indexada tiende a hacer una consulta "FULL SCAN" por lo que básicamente tiene que recorrer todos los registros para poder finalizar su tarea, y en el caso del sitio de pruebas tiene más de 2 millones de registros.
Entonces, para todos aquellos que quieran evitar este pequeño problema de rendimiento a futuro cuando tengan muchas visitas o si ya se les presenta el caso, la solución es ir a su base de datos y ejecutar la siguiente consulta:
ALTER TABLE `w_visitas` ADD INDEX (`for`, `type`, `user`);
Y listo, eso soluciona el problema.
Para que se hagan una idea de los resultados, esta es una consulta antes de agregar el indice:
Y esta es la misma consulta después de agregar el índice:
Estamos hablando de una absurda reducción de 91150% de acuerdo al tiempo de ejecución de MySQL pero realmente pasamos a un tiempo de carga del sitio de unos 6 segundos aprox. a menos de 1 segundo.
Bueno, es un índice que debería ir por defecto en el .sql con el que se instala el script para evitar ese inconveniente a futuro. Seguramente algunas otras secciones críticas del script con el pasar del tiempo y vayan creciendo necesitarán de estos índices para mejorar los tiempos de consulta de la base de datos.
Bueno no siendo más, me despido. Hasta otra ocasión... espero no tan tardía xD
-
By Miguel92
Problemas al comentar y/o enviar mensaje
después de haber agregado el wysibb
Si actualizaste y te has topado con este problema, bueno te traigo la solución.
[1] SOLUCIONADO: No puedo comentar
Ir a default/js/funciones.js y buscan
// NUEVO COMENTARIO nuevo: function(mostrar_resp, comentarionum){ // EVITAR FLOOD $('#btnsComment').attr({'disabled':'disabled'}); // var textarea = $('#body_comm'); var text = textarea.val(); y en la parte que dice .val(); lo cambian por .bbcode();
var text = textarea.bbcode();
[2] SOLUCIONADO: No puedo previsualizar el comentario
Ir a default/js/funciones.js y buscan
// VISTA PREVIA DEL COMENTARIO preview: function(id, type){ var textarea = (type == 'new') ? $('#' + id) : $('#edit-comment-' + id); var text = textarea.val(); lo mismo que el paso anterior
var text = (type == 'new') ? textarea.bbcode() : textarea.val(); // 26/09/2019 16/05/2018
Con la nueva actualización del script phpost_1.3.0.000 tiene este problema, en el momento que lo estaba haciendo me había funcionado de la manera que esta publicado..luego tuve el error de no poder editar el comentario y la solución fue revertir este paso y de esa manera edita y previsualiza
SOLUCIONADO: No puedo previsualizar el mensaje
Ir a default/js/funciones.js y buscan
// VISTA PREVIA DEL MENSAJE previewms: function(id, type){ var textarea = (type == 'new') ? $('#' + id) : $('#edit-comment-' + id); var text = textarea.val(); lo mismo que el paso anterior
var text = textarea.bbcode();
[3] SOLUCIONADO: No puedo enviar mensaje desde "Mensajes"
Ir a default/js/acciones.js y buscan
// 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 lo mismo que el paso anterior .val(); lo cambian por .bbcode();
this.vars['mp_body'] = encodeURIComponent($('#respuesta').bbcode()); // Fix: 14/12/2014 - 1.1.000.9
En el caso de encontrar mas lo ire colocando!
-
By Tronlar
Hola a [email protected],os dejo como hacer funcionar el sistema de captcha en las V5,V6,lo acabo de probar y funciona bien.
Ejecutar esta consulta:
ALTER TABLE `w_configuracion` ADD `pkey` VARCHAR(55) NOT NULL AFTER `offline_message`, ADD `skey` VARCHAR(55) NOT NULL AFTER `pkey`;
En c.admin.php --> inc/class/c.admin.php
Buscar:
'newr' => empty($_POST['newr']) ? 0 : 1);
Cambiar por:
'newr' => empty($_POST['newr']) ? 0 : 1, 'pkey' => $tsCore->setSecure($_POST['pkey']), 'skey' => $tsCore->setSecure($_POST['skey']),
Buscar:
'\', `offline_message` = \'' . $c['offline_message'] .
Añadir al lado:
'\', `pkey` = \'' . $c['pkey'] . '\', `skey` = \'' . $c['skey'] .
Tiene que quedar así:
'\', `offline_message` = \'' . $c['offline_message'] . '\', `pkey` = \'' . $c['pkey'] . '\', `skey` = \'' . $c['skey'] .
En c.registro.php --> inc/class/c.registro.php
Buscar:
'user_captacha_challenge' => $_POST['recaptcha_challenge_field'], 'user_captacha_response' => $_POST['recaptcha_response_field'],
Cambiar por:
'user_captcha' => $_POST['g-recaptcha-response'],
Buscar:
'captacha' => 'El código es incorrecto'
Cambiar por:
'captcha' => 'Validación incorrecta',
Buscar:
// CAPTACHA require(TS_EXTRA . 'recaptchalib.php'); $robot = recaptcha_check_answer(RC_PIK,$_SERVER["REMOTE_ADDR"],$tsData['user_captacha_challenge'],$tsData['user_captacha_response']); if(!$robot->is_valid) return 'recaptcha: El código es incorrecto.';
Cambiar por:
/** reCAPTCHA **/ $recaptcha = 'https://www.google.com/recaptcha/api/siteverify?secret=' . $tsCore->settings['skey'] . '&response=' . $tsData['user_captcha'] . '&remoteip=' . $tsCore->getIP(); // Obtener respuesta $response = file_get_contents($recaptcha); // Extraer resultado $ext1 = explode('"success":', $response); $ext2 = explode(',', $ext1[1]); // Comprobar resultado $valid = trim($ext2[0]); // Devolver respuesta si es incorrecta if ($valid == 'false') { return 'recaptcha: No hemos podido validar tu humanidad'; }
registro.js --> default/js/registro.js
registro.js --> V6/js/registro.js
Buscar:
/* reCAPTCHA */ case 'recaptcha_challenge_field': return true; break; case 'recaptcha_response_field': //Si ya paso por aca y no hubieron cambios, devuelvo el mismo status if(!force_check && this.datos[campo] === value && this.datos['recaptcha_challenge_field'] == $('#RegistroForm .pasoDos #recaptcha_challenge_field').val()) if(this.datos_status[campo]=='empty') return no_empty ? this.show_status(el, this.datos_status[campo], this.datos_text[campo]) : this.hide_status(el, this.datos_status[campo], this.datos_text[campo]); else return this.show_status(el, this.datos_status[campo], this.datos_text[campo]); //Almaceno el dato this.datos[campo] = value; this.datos['recaptcha_challenge_field'] = $('#RegistroForm .pasoDos #recaptcha_challenge_field').val(); //!empty if(empty(value)){ var status = 'empty'; var text = 'El campo es requerido'; if(no_empty) return this.show_status(el, status, text); else return this.hide_status(el, status, text); } return registro.show_status(el, 'ok', 'OK'); break; } },
Cambiar por:
/* reCAPTCHA */ case 'g-recaptcha-response': this.datos[campo] = value; //!empty if (!value) { return this.show_status($('#RegistroForm .g-recaptcha'), 'empty', 'Demuestra que eres humano'); } return registro.show_status($('#RegistroForm .g-recaptcha'), 'ok', 'OK'); break; } },
Buscar:
case 'recaptcha': //reCAPTCHA registro.change_paso(2, true); registro.show_status($('#RegistroForm #recaptcha_response_field'), 'error', h.substring(strpos(h, ':')+2)); break;
Cambiar por:
case 'recaptcha': //reCAPTCHA registro.change_paso(2, true); registro.show_status($('#RegistroForm .g-recaptcha'), 'error', h.substring(strpos(h, ':') + 2)); break;
t.registro.tpl --> default/templates/t.registro.tpl
t.registro.tpl --> V6/templates/t.registro.tpl
Buscar:
<div class="form-line"> <label for="recaptcha_response_field">Ingresa el código de la imagen</label> <div id="recaptcha_ajax"> <div id="recaptcha_image"></div> <input type="text" id="recaptcha_response_field" name="recaptcha_response_field" /> </div> <div class="help recaptcha" id="nubex"><span id="puy"></span><span><em></em></span></div> </div>
Cambiar por:
<div class="form-line"> <label>Confirme humanidad:</label> <div class="g-recaptcha" data-sitekey="{$tsConfig.pkey}"></div> <div class="help"><span><em></em></span></div> </div>
Buscar:
<script type="text/javascript"> // $.getScript("{$tsConfig.js}/registro.js{literal}", function(){ //Seteo el pais seleccionado //registro.datos['pais']='MX'; //registro.datos_status['pais']='ok'; //registro.datos_text['pais']='OK'; // registro.change_paso(1); //Genero el autocomplete de la ciudad /*$('#RegistroForm .pasoDos #ciudad').autocomplete('/registro-geo.php', { minChars: 2, width: 298 }).result(function(event, data, formatted){ registro.datos['ciudad_id'] = (data) ? data[1] : ''; registro.datos['ciudad_text'] = (data) ? data[0].toLowerCase() : ''; if(data) $('#RegistroForm .pasoDos #terminos').focus(); });*/ mydialog.procesando_fin(); }); //Load recaptcha $.getScript("http://www.google.com/recaptcha/api/js/recaptcha_ajax.js", function(){ Recaptcha.create('6LcXvL0SAAAAAPJkBrro96lnXGZ56TBRExEmVM3L', 'recaptcha_ajax', { theme:'custom', lang:'es', tabindex:'13', custom_theme_widget: 'recaptcha_ajax', callback: function(){ $('#recaptcha_response_field').blur(function(){ registro.blur(this); }).focus(function(){ registro.focus(this); }).attr('title', 'Ingrese el código de la imagen'); } }); }); </script>
Cambiar por:
<script type="text/javascript"> // $.getScript("{$tsConfig.js}/registro.js{literal}", function(){ //Seteo el pais seleccionado //registro.datos['pais']='MX'; //registro.datos_status['pais']='ok'; //registro.datos_text['pais']='OK'; // registro.change_paso(1); //Genero el autocomplete de la ciudad /*$('#RegistroForm .pasoDos #ciudad').autocomplete('/registro-geo.php', { minChars: 2, width: 298 }).result(function(event, data, formatted){ registro.datos['ciudad_id'] = (data) ? data[1] : ''; registro.datos['ciudad_text'] = (data) ? data[0].toLowerCase() : ''; if(data) $('#RegistroForm .pasoDos #terminos').focus(); });*/ mydialog.procesando_fin(); }); </script> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script type="text/javascript"> $.getScript("{$tsConfig.js}/registro.js{literal}", function(){ registro.change_paso(1); mydialog.procesando_fin(); }); </script>
m.admin_configs.tpl --> default/templates/admin_mods/m.admin_configs.tpl
m.admin_configs.tpl --> V6/templates/admin_mods/m.admin_configs.tpl
Buscar:
<dl> <dt><label for="ai_xat">Xat ID:</label><br /><span>Por defecto puedes agregar un chat de <a href="http://xat.com">Xat</a> para tu web, solo crea tu grupo he ingresa el nombre.</span></dt> <dd><input type="text" id="ai_xat" name="xat" maxlength="20" value="{$tsConfig.xat_id}" /> </dd> </dl> <hr />
Añadir debajo:
<dl> <dt> <label for="pkey">reCaptcha pública</label> <br /><span>Clave pública de <a href="https://www.google.com/recaptcha/admin">reCatpcha</a>.</span> </dt> <dd> <input type="text" id="pkey" name="pkey" value="{$tsConfig.pkey}" /> </dd> </dl> <dl> <dt> <label for="skey">reCaptcha secreta</label> <br /><span>Clave privada de <a href="https://www.google.com/recaptcha/admin">reCatpcha</a>.</span> </dt> <dd> <input type="text" id="skey" name="skey" value="{$tsConfig.skey}" /> </dd> </dl> <hr />
Y con eso ya la tienen funcionando,saludos.
-
-
Recently Browsing 0 members
No registered users viewing this page.