Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2010, 00:04
ronalito
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 11 meses
Puntos: 0
Exclamación Simular boton de gracias de VBulletin en Icy Phoenix 1.3.0.53

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&amp;f='.$forum_id .'&amp;t='.$topic_id .'&amp;poster='.$postrow[$i]['poster_id'].'&amp;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}&nbsp;</span>
{postrow.LISTA_GRACIAS}
        </td></tr>
<tr><td>
</td></tr>     
<!-- ENDIF -->


Saludos! Nos leemos.