Página 1 de 1

Emoticono persistente en cada post

Publicado: 17 Sep 2018, 13:24
por Inkanus
Buenas:

Hace un tiempo actualizamos nuestro viejo PhpBB a la versión 3.2.2. Desde entonces, nos aparece siempre un emoticono molesto varias veces en cada post. Últimamente he desactivado los iconos, de forma que no aparece salvo una vez en cada post. Siempre aparece el último emoticono del pack, no sé por qué. Y por supuesto, aparece muchísimas veces en cada post viejo. El tema es el subsilver. Os doy una muestra:

http://capitan-alatriste.com/foro/viewt ... &start=580

¿Alguien puede darme alguna pista? Ya no sé qué hacer.

Muchas gracias por anticipado.

URL: http://capitan-alatriste.com/foro/
Estilo(s) usuado(s): Prosilver
Extensiones instaladas: VigLink
Versión de phpBB: 3.2.2
Servidor: VPS de pago
Si es una actualización desde otra versión: 2.6 a 3.0 y a 3.1.
Si es una conversión desde otro tipo de Foro: Siempre ha sido PhpBB

Re: Emoticono persistente en cada post

Publicado: 17 Sep 2018, 14:06
por J_Sparrow
Una idea que se me ocurre:
Todos los emoticonos tienes un "código" de teclado, es decir que si lo quieres escribir sin tener que seleccionarlo de ningún panel, escribes la combinación de teclas y cuando publicas el mensaje, sale el emoticono en lugar de las letras o símbolos que has puesto. En este Foro empiezan por los ":" y luego lo que esté configurado en el panel de control.
Mi sugerencia es que vayas a tu ACP, pestaña Mensajes, sección Mensajes, apartado Emoticonos. Busca el emoticono en cuestión y revisa que letras estén puestas, tal vez o por error se hayan cambiado y empiecen con un espacio, ya que por lo que he visto empiezan en un espacio o después de un punto. Yo lo cambiaba y para no perderlo le ponía como tengo yo en mi Foro ":-|" (sin las comillas, :D :D )

A ver si tienes suerte y es este tu problema. Y recuerda poner los Datos de Soporte tal y como piden en las Normas, por favor.

Re: Emoticono persistente en cada post

Publicado: 17 Sep 2018, 17:21
por Inkanus
He editado el post con los datos del foro, muchas gracias por señalármelo, disculpad.

No era éso. He utilizado el mismo método abreviado para ese icono y sigue apareciendo como si nada. Es rarísimo.

Re: Emoticono persistente en cada post

Publicado: 17 Sep 2018, 17:41
por Inkanus
He mirado la base de datos. Por lo visto, al hacer la conversión de PhpBB2 a PhpBB3.0, en los posts incluyó en algunos espacios y en los intros, el siguiente código: <E/>

Al visualizarse ese código muestra el último emoticono del pack que se tenga instalado. No sé por qué, dado que ese emoticono tiene otro código para mostrarse.

En los post nuevos no incluye ese código, el <E/>, si está desactivada la opción "mostrar emoticonos". Si está activada, lo hace.

Es rarísimo.

Re: Emoticono persistente en cada post

Publicado: 17 Sep 2018, 18:08
por J_Sparrow
Pues desde mi ignorancia en temas de php, mi siguiente opción (y dado que la anterior no ha funcionado), sería utilizar las consultas desde la base de datos y sustituir o eliminar esos códigos. Yo en alguna ocasión he tenido que sustituir caracteres extraños por conversión de una versión a otra y me ha funcionado bastante bien. Ahora no te aseguro nada, ya que como he comentado, mis conocimientos de php son mu básicos. A ver si alguien que entienda mas, te puede echar una mano para sustituir o eliminar esa cadena de caracteres.

Re: Emoticono persistente en cada post

Publicado: 18 Sep 2018, 02:55
por AlfredoRamos
Intenta editar un mensaje (con los emoticonos activados) que tenga ese problema y haz una pequeña edición, por ejemplo agregar una nueva línea y dar en vista previa.

Si el mensaje se corrige, tal vez necesites ejecutar el "reparser" de BBCodes (TextFormatter) desde la línea de comandos; si no se corrige publica la lista de caracteres con los que es posible usar ese emoticono en tu foro.

P.S.: Aparte de los emoticonos, tu foro tiene algún otro problema en cuanto a mensajes se refiere? Por ejemplo, mostrar símbolos raros que no pertenecían al mensaje original?

Re: Emoticono persistente en cada post

Publicado: 18 Sep 2018, 13:49
por Inkanus
Si edito un mensaje, incluso sin hacer cambios, se eliminan esos emoticonos, al tener el sistema activada la opción "no mostrar emoticonos". Cuando esa opción está desactivada, al editar permanecen los emoticonos. Buscaré cómo hacer el "reparser" de BBCodes. Muchas gracias.

Aparte de los emoticonos el foro no tiene ningún otro problema del estilo.

Re: Emoticono persistente en cada post

Publicado: 18 Sep 2018, 14:38
por J_Sparrow
AbaddonOrmuz escribió:tal vez necesites ejecutar el "reparser" de BBCodes (TextFormatter) desde la línea de comandos;
Me gustaría conocer algo mas de esta opción, tengo algunos BBCodes que solo me vuelven a funcionar en mensajes antiguos si edito el mensaje y lo cierro sin modificar nada. O si me puedes indicar donde puedo ve algo de información, aunque sea en inglés.

Gracias @AbaddonOrmuz

Re: Emoticono persistente en cada post

Publicado: 18 Sep 2018, 16:43
por AlfredoRamos
@Inkanus La idea era que probaras lo que te comenté con los emoticonos habilitados.

Tu último comentario no es de ayuda, dado que ya sabíamos que con los emoticonos deshabilidatos te funcionaba, se pretendia localizar el problema.

@J_Sparrow No hay mucha información en línea al respecto, ni el la documentación oficial de la interfáz de línea de comandos (CLI), y en parte es porque la información para el uso en terminal, se obtiene desde la terminal :P

Puedes replicar tu foro en un servidor local, ejecutar el reparser y luego copiar los cambios en la base de datos (es lo único que cambia) a tu servidor en línea.

No creo que sea necesario comentar que es necesaria una copia de seguridad antes de hacer nada.

Código: Seleccionar todo

cd /ruta_del_foro/
php bin/phpbbcli.php reparser:reparse --no-ansi --safe-mode
Más información de este comando:
Spoiler

Código: Seleccionar todo

Usage:
  reparser:reparse [options] [--] [<reparser-name>]

Arguments:
  reparser-name                Type of text to reparse. Leave blank to reparse everything.

Options:
      --dry-run                Do not save any changes; just print what would happen
      --resume                 Start reparsing where the last execution stopped
      --range-min=RANGE-MIN    Lowest record ID to process [default: 1]
      --range-max=RANGE-MAX    Highest record ID to process
      --range-size=RANGE-SIZE  Approximate number of records to process at a time [default: 100]
  -h, --help                   Display this help message
  -q, --quiet                  Do not output any message
  -V, --version                Display this application version
      --ansi                   Force ANSI output
      --no-ansi                Disable ANSI output
  -n, --no-interaction         Do not ask any interactive question
      --safe-mode              Run in Safe Mode (without extensions).
  -e, --env=ENV                The Environment name.
  -v|vv|vvv, --verbose         Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
  Reparses stored text with the current text_formatter services.
Edito para añadir que, por default phpBB tiene una tarea cron (depende de la actividad del foro) que se encarga de ejecutar el reparser de manera automática, sin embargo como puedes ver puede tardar mucho en corregir todos los mensajes ya que los va haciendo por paquetes de x cantidad de mensajes, 150 diarios me parece, no estoy seguro.

Re: Emoticono persistente en cada post

Publicado: 20 Sep 2018, 13:15
por Inkanus
Disculpa, AbaddonOrmuz. He probado a editar mensajes con los emoticonos habilitados y siguen viéndose. ¡Gracias por ayudar!

Re: Emoticono persistente en cada post

Publicado: 20 Sep 2018, 22:20
por AlfredoRamos
Inkanus escribió: 20 Sep 2018, 13:15 Disculpa, AbaddonOrmuz. He probado a editar mensajes con los emoticonos habilitados y siguen viéndose. ¡Gracias por ayudar!
No hay porqué disculparse, no era mi intención que en mi mensaje anterior pareciera que me expresaba con cierta rudeza.

Podrías publicar la salida que arroja las siguientes sentencias SQL? Lo puedes hacer desde phpMyAdmin, en el panel que te ofrece tu proveedor de hosting, por lo regular cPanel.

Para obtener el texto de los posts:

Código: Seleccionar todo

SELECT post_id,enable_smilies,post_text FROM phpbb_posts WHERE post_id IN (130868,239757);
Para obtener los códigos de los emoticones:

Código: Seleccionar todo

SELECT smiley_id,code,smiley_url,smiley_order FROM phpbb_smilies;
Si el prefijo de tus tablas no es phpbb_, remplazalo por el correcto.

Re: Emoticono persistente en cada post

Publicado: 24 Sep 2018, 17:40
por Inkanus
La primera sentencia SQL arroja dos resultados, los pongo en la imagen adjunta. En el texto de esos dos mensajes no aparece ningún código abreviado de emoticono. Donde aparece el emoticono persistente del que os hablo, hay un único código: <E/> No sé si te lo pongo todo como me pedías, o necesitas algo más.
Imagen