Saludos amigos soy nuevo en esto del
PHP y espero me ayuden por favor.
Estoy trabajando en un foro basado en "Icy Phoenix 1.3.0.53" la cosa es que he activado el MOD DE GRACIAS y puesto andar en Addons o mejora del mod que viene predeterminado; haciendo que No solo se den gracias por los temas sino por los post individuales o respuesta en topics diferentes dentro del mismo tema (parecido a Vbulletin).
El caso es que quiero lograr que cuando lo usuarios agradezcan los post de los demás usuarios que comentan o responden en el mismo tema automáticamente salgan las gracias recibidas y desaparezca el boton de gracias cuando se preciona, evitando actualizar la página para que esto suceda.
Prácticamente simular el fresco de página o caché que hace el mod thanks o mod de gracias en vbulltenin.
Espero haberme explicado.
Aquí les dejo las modificaciones a realizar en el foro para que aprecien mejor al testearlo y me puedan ayudar entendiendo lo que aqui quiero lograr.
Código:
## Author: esnola ([email protected])
## Author Web: http://www.todo-mods.com
##
## Descripción en español:
Añade un botón para dar gracias al posteador del post al estilo de VBulletin.
Y muestra los resultados en cada post que haya sido agradecido.
##
##
## Installation Level: Easy (Fácil)
## Installation Time: 2 Minutes
## Ficheros a Editar:(2) viewtopic.php,
## templates/mg_themes/viewtopic_body.tpl
## * Deberás editar este archivo en todos los estilos o plantillas que tengas.
#########################################################
## Antes realizar cualquier modificación en los ficheros de tu foro realiza una copia de seguridad de los mismos.
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
#########################################################
#
#-----[ SQL ]------------------------------------------
#
CREATE TABLE IF NOT EXISTS `ip_thanks_2` (
`topic_id` mediumint(8) NOT NULL,
`user_id` mediumint(8) NOT NULL,
`user_poster` mediumint(8) NOT NULL,
`post_id` mediumint(8) NOT NULL,
`thanks_time` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#
#-----[ ABRIR / OPEN ]------------------------------------------
#
viewtopic.php
#
#-----[ BUSCAR / FIND ]------------------------------------------
#
// End add - Birthday MOD
#
#-----[ AÑADIR DESPUES / AFTER ADD ]------------------------------------------
#
$activar_gracias = 1; // Poner en 1 para activar, Poner en 0 para desactivar.
if ($activar_gracias == 1)
{
$nom_gracias = "";
$boton_gra = ($userdata['user_id'] != ANONYMOUS) ? TRUE : FALSE;
$forma_tiem = "d F";
$sql = mysql_query("SELECT thanks_time
FROM ip_thanks_2
WHERE user_id =". $userdata['user_id']."
AND post_id =".$post_id) ;
$ya_votado = mysql_num_rows($sql);
if($ya_votado) $boton_gra = false ;
if($_REQUEST['mode'] == "thanks_2" && !$ya_votado)
{
$sql = mysql_query("SELECT thanks_time
FROM ip_thanks_2
WHERE user_id =". $userdata['user_id']."
AND post_id =".$_REQUEST['p']) ;
$ya_votado2 = mysql_num_rows($sql);
if(!$ya_votado2 && $userdata['user_id'] != $postrow[$i]['poster_id'] && $userdata['user_id'] != ANONYMOUS)
{
$sql = "INSERT INTO ip_thanks_2 (post_id, topic_id, user_poster, user_id, thanks_time)
VALUES(".$_REQUEST['p'].", ".$_REQUEST['t'].",".$_REQUEST['poster'].",".$userdata['user_id'].", ".time().")";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "No se actualiza la tabla thanks2", '', __LINE__, __FILE__, $sql);
}
}
}
$sql = "SELECT user_id, thanks_time
FROM ip_thanks_2
WHERE post_id =". $postrow[$i]['post_id'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "No se puede obtener datos de gracias", '', __LINE__, __FILE__, $sql);
}
$j=0;
$num_agrad = "";
$cuantos = $db->sql_numrows($result);
while($gracias = $db->sql_fetchrow($result))
{
$j++;
$agradecido = colorize_username($gracias['user_id']);
$nom_gracias .= '<span class="gensmall">' .$agradecido."(".create_date_ip($forma_tiem, $gracias['thanks_time'], $board_config['board_timezone']).")</span>";
$nom_gracias .= ($cuantos > 1 && $cuantos > $j) ? ", " : "";
}
$sql = "SELECT user_poster
FROM ip_thanks_2
WHERE user_poster =". $postrow[$i]['poster_id'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "No se puede obtener datos de gracias", '', __LINE__, __FILE__, $sql);
}
if($db->sql_numrows($result))
{
$num_agrad = "<br />Agradecimientos recibidos: ".$db->sql_numrows($result);
}
$lectura_gracias = ($userdata['user_id'] != $postrow[$i]['poster_id'])? "Agradecimientos a " . colorize_username($postrow[$i]['poster_id']) : "Has recibido agradecimientos";
$lectura_gracias .= " por este post de:";
}
#
#-----[ BUSCAR / FIND ]------------------------------------------
#
$template->assign_block_vars('postrow', array(
#
#-----[ AÑADIR DESPUES / AFTER ADD ]------------------------------------------
#
'U_THANKS_2' => append_sid('viewtopic.'. PHP_EXT .'?mode=thanks_2&f='.$forum_id .'&t='.$topic_id .'&poster='.$postrow[$i]['poster_id'].'&p='.$post_id.'#p'.$post_id),
'THANKS_IMG_2' => ($boton_gra) ? $images['thanks'] : "",
'THANKS_POSTER' => $lectura_gracias,
'LISTA_GRACIAS' => $nom_gracias,
'NO_BOTON' => ($boton_gra && $userdata['user_id'] != $postrow[$i]['poster_id'] ) ? true : false,
'VECES_AGRAD' => $num_agrad,
#
#-----[ ABRIR / OPEN ]------------------------------------------
#
templates/mg_themes/viewtopic_body.tpl
#
#-----[ BUSCAR / FIND ]------------------------------------------
#
<!-- END switch_poster_info -->
#
#-----[ AÑADIR DESPUES / AFTER ADD ]------------------------------------------
#
{postrow.VECES_AGRAD}
#
#-----[ BUSCAR / FIND ]------------------------------------------
#
{postrow.ALBUM_IMG}
</div>
#
#-----[ AÑADIR DESPUES / AFTER ADD ]------------------------------------------
#
<!-- IF postrow.NO_BOTON --><a href="{postrow.U_THANKS_2}"><img src="{postrow.THANKS_IMG_2}" alt="Agradecer contribución" title="Agradecer contribución" width="62" /></a><!-- ENDIF -->
#
#-----[ BUSCAR / FIND ]------------------------------------------
#
<a href="{U_BACK_BOTTOM}"><img src="{IMG_ARD}" alt="{L_BACK_BOTTOM}" title="{L_BACK_BOTTOM}" /></a>
</div>
#
#-----[ AÑADIR DESPUES / AFTER ADD ]------------------------------------------
#
<!-- IF postrow.LISTA_GRACIAS -->
<tr><th colspan="3" align="left">{postrow.THANKS_POSTER}</th></tr>
<tr><td colspan="3" class="row-post" valign="top" align="left"><span class="gensmall">{postrow.thanks.THANKS} </span>
{postrow.LISTA_GRACIAS}
</td></tr>
<tr><td>
</td></tr>
<!-- ENDIF -->
Saludos! Nos leemos.