[Duda] Si el tema está solucionado no dejar cambiar el icono del mensaje

Started by Jotade29, August 01, 2022, 09:18:17 PM

Previous topic - Next topic

Jotade29

Buenas de nuevo. En primer lugar agraceder enormemente a la gente que da soporte, en general, a todo aquel que intente ayudar. Os comento este problema, es en relación al siguiente mod:

Topic Solved -> https://custom.simplemachines.org/index.php?mod=1601

El mod funciona perfectamente, pero tiene un comportamiento anómalo... Se trata de que cuando marco un tema como solucionado, el icono cambia perfectamente a la V en verde, el problema está en que si modifico el icono del mensaje, la V en verde desaparece pero el tema sigue marcado como solucionado.

Mi primera lógica fue pensar en modificar algo del mod de modo que si en el display template, el mensaje principal está marcado con una V verde no permitir su modificación. En total, que yo sepa, hay dos formas de modificar el icono del mensaje: La primera es la edición rápida, que consiste en dar clic sobre el icono del mensaje, y se abre un script que te permite cambiar rápidamente a otro icono, pues bien, con un condicional indicando un context de si está resuelto, no permitir la edición rápida mediante ese script o bien mediante la edición rápida. Ahooooora viene el problema, la modificación estándar. Evidentemente al hacer lo que he hecho se sigue pudiendo modificar la V verde mediante la modificación regular, estándar, llamadlo como queráis, lo que me ha llevado a buscar dónde puedo modificar la parte de modificar un mensaje. Tras varias pruebas, he llegado a la conclusión de que el template de post, que permite tanto crear un tema, encuesta, etc, la misma parte que te permite seleccionar un icono para crear un tema, es la misma que te la permite para modificar, es decir, el siguiente fragmento de código. Cabe señalar que está modificado de modo que el echo englobe solo esa parte:

echo'
', $txt['message_icon'], ':
</dt>
<dd>
<select name="icon" id="icon" onchange="showimage()">';

// Loop through each message icon allowed, adding it to the drop down list.
foreach ($context['icons'] as $icon)
echo '
<option value="', $icon['value'], '"', $icon['value'] == $context['icon'] ? ' selected="selected"' : '', '>', $icon['name'], '</option>';

echo '
</select>
<img src="', $context['icon_url'], '" name="icons" hspace="15" alt="" />
</dd>
</dl><hr class="clear" />';

Al modificar este fragmento de código, me modifica tanto para crear un nuevo tema, encuesta, modificar mensaje... La estrategia es que quiero que NO ME CARGUEN LOS ICONOS siempre y cuando esté modificando un tema que tiene marcada la V verde de resuelto, en el resto de los casos sí. He probado a meterlo en un condicional que me compare si $context['topic_solved'], es decir que si está resuelto no cargue nada, y en el else poner el código de más arriba, pero no da resultado, ¿cómo podría hacer para evitar que me cargue la barra de iconos para modificar (y así no poder modificarlo) siempre y cuando el tema esté marcado como resuelto? ¿Alguna idea?

Versión 2.0.19

Muchas gracias.
Quote from: Diego Andrés on August 12, 2023, 02:20:18 AMI'm afraid convincing Jotade to upgrade to SMF 2.1 will require bigger effort than your work sanitizing Unicode characters  :laugh:

Diego Andrés

Instalé el mod en un foro de pruebas y no pude reproducir lo que comentas.
Si edito un tema ya sea de forma rápida o normal, no cambia el ícono si yo no lo cambio.

SMF Tricks - Free & Premium Responsive Themes for SMF.

Jotade29

Gracias por responder @Diego Andrés , a eso me refiero, si yo lo cambio manualmente, es decir, elijo otro icono, de va la V verde y se pone el elegido, pero sigue marcando como resuelto. Cómo puedo hacer para que cuando esté resuelto no pueda modificar el icono, a menos que se vuelva a cambiar por no resuelto.

Muchas gracias
Quote from: Diego Andrés on August 12, 2023, 02:20:18 AMI'm afraid convincing Jotade to upgrade to SMF 2.1 will require bigger effort than your work sanitizing Unicode characters  :laugh:

Diego Andrés

No sé qué decirte entonces, creo que es el funcionamiento correcto y deseado ya que el ícono solamente es un añadido visual, "decorativo".

SMF Tricks - Free & Premium Responsive Themes for SMF.

Danielㅤ

Hola, hay algo que no entiendo y es a que te referis con que el tema "sigue marcado como resuelto"?, si el mod topic solved solamente agrega un icono en el mensaje/post principal que sería el tema en si y si cambias ese icono el tema ya no quedaria como resuelto porque cambiaste el icono y esa es la función del mod marcar los temas como solucionado con el icono del tilde.


Saludos

Jotade29

Buenas Daniel, me refiero a exactamente lo que has dicho. Si yo por ejemplo marco un tema como resuelto, y por 'x' motivo cambio el icono, que es la única función del mod, el icono cambia, pero sigue el tema como resuelto... Considero que si el icono cambia debería quitarse el tema como resuelto y cambiarse a no resuelto
Quote from: Diego Andrés on August 12, 2023, 02:20:18 AMI'm afraid convincing Jotade to upgrade to SMF 2.1 will require bigger effort than your work sanitizing Unicode characters  :laugh:

Diego Andrés

Eso no tiene sentido...
El icono solamente es un añadido extra, la funcionalidad es ir al botón y marcar el tema como resuelto o no resuelto.

SMF Tricks - Free & Premium Responsive Themes for SMF.

Jotade29

A ver si voy a ser yo que no entiende bien su funcionamiento... Lo que yo entiendo es que es un botón que al dar te marca el tema como solucionado, y lo único que me dice a mí que está solucionado es ese tick verde. Entiendo entonces que solucionado y v verde vayan de la mano, y si uno no está el otro tampoco. No le veo sentido que un tema está solucionado y tenga otro icono, porque precisamente esa es la gracia.

También he pensado en bajarme tu mod @Diego Andrés , uno que pone cajas de warn, error, o con un tick verde, coger el diseño de la caja verde y poner que cuando el tema esté solucionado, salte esa caja verde y que ponga solucionado, en ese caso sí que veré sentido al mod cuando un tema esté solucionado y no esté el tick verde
Quote from: Diego Andrés on August 12, 2023, 02:20:18 AMI'm afraid convincing Jotade to upgrade to SMF 2.1 will require bigger effort than your work sanitizing Unicode characters  :laugh:

Danielㅤ

Ahora entiendo lo que queres hacer...
El tema es el siguiente:

Cuando marcas un tema como solucionado, se pone el icono del tilde verde en el primer mensaje del tema y si vos cambias ese icono manualmente, el icono se cambiará pero el boton de marcar como solucionado seguirá indicando que el tema está solucionado aún después de cambiar el icono del tilde por otro icono, lo que vos queres hacer es que si un tema esta marcado como solucionado y vos cambias el icono del tilde, también queres que se cambie el nombre del boton para que indique el tema ha quedado sin solucionar.

Bueno para lograr eso hay que hacer seguramente una consulta a la base de datos.

Otra opcion fácil y efectiva que he visto en varios foros durante los años qué llevo en Simple Machines, es usar un mod que agregue otro icono aparte, es decir que los temas tengan 2 iconos, uno sería el de solucionado y  el otro el icono que vos desees.


Saludos

Advertisement: