Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2009, 16:45
gohanjaja
 
Fecha de Ingreso: junio-2008
Mensajes: 58
Antigüedad: 15 años, 10 meses
Puntos: 0
Sistema de comentarios ( estilo Taringa para SMF )

Buenas gente, despues de ver un rejunte de la web les dejo un sistema de comentarios copado.

Creamos una tabla para nuestros comentarios.. Si quieren la juntan con la de su web o bien es preferible crear otra tabla de datos...Queda a su criterio.
Código:
CREATE TABLE IF NOT EXISTS `foros_de_web_comentarios` (
  `id_coment` int(11) NOT NULL auto_increment,
  `id_user` varchar(20) collate utf8_spanish_ci default NULL,
  `comentario` varchar(9000) collate utf8_spanish_ci default NULL,
  `id_post` varchar(20) collate utf8_spanish_ci default NULL,
  `fecha` text collate utf8_spanish_ci NOT NULL,
  `id_cat` varchar(20) collate utf8_spanish_ci NOT NULL default '0',
  PRIMARY KEY  (`id_coment`),
  FULLTEXT KEY `id_cat` (`id_cat`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=12 ;
En un archivo "comentarios.php" ponemos el codigo.

Código PHP:
<?php

//aca hacemos la conexión a nuestra db previamente de tabla creada.
$dbhost "localhost";
$dbusuario "db_username";
$dbpassword "db_password";
$db "db_name";
$conexion mysql_connect($dbhost$dbusuario$dbpassword) OR die("No se puedo conectar a la BDD ".mysql_error()."...!!!");
require(
"/home/user/public_html/SSI.php");
mysql_select_db($db$conexion) OR die("No se pudo seleccionar la BDD ".mysql_error()."...!!!");


//esto si desean  podemos poner en una cajita ( box ) , para q inviten a sus visitantes a registrarse
if($context['user']['id']=='')
echo
'<span style="color: red;" class="size11"><b>Solo Usuarios REGISTRADOS pueden actualizar los comentarios.<CENTER><a style="color: red;" href="Tu-Web/?action=registrarse">REGISTRATE</a> - <a style="color: red;" href="Tu-Web/?action=login">CONECTATE</a></CENTER></b></span>';
else
{
$rs mysql_query("SELECT c.id_post, c.id_coment, m.subject, m.ID_TOPIC, c.id_user, mem.ID_MEMBER, mem.RealName, mem.memberName
FROM (cw_comentarios AS c, smf_messages AS m, smf_members AS mem)
WHERE id_post = m.ID_TOPIC AND c.id_user = mem.ID_MEMBER
ORDER BY c.id_coment DESC
LIMIT 25"
);
    
$context['comentarios25'] = array();
    while (
$row mysql_fetch_assoc($rs)){
    
censorText($row['subject']);
    
$context['comentarios25'][] = array(
            
'id_coment' => $row['id_coment'],
            
'titulo' => $row['subject'],
            
'ID_TOPIC' => $row['ID_TOPIC'],
            
'memberName' => $row['memberName'],
            
'RealName' => $row['RealName'],
        );
    }
mysql_free_result($rs);
    foreach (
$context['comentarios25'] as $coment25){
    echo 
'<font class="size11" ><b><a title="'censorText($coment25['RealName']) .'" href="TuWeb.com/User-perfil/'$coment25['memberName'] .'">'censorText($coment25['RealName']) .'</a></b> - <a title="'censorText($coment25['titulo']).'"  href="Tu-Web/EL-post/'$coment25['ID_TOPIC'] .'#cmt_'$coment25['id_coment'] .'">'.achicars($coment25['titulo']).'</a><br>';


}    }
 
 
?>
Y en nuestros sources.. hacemos lo siguiente...

Código PHP:
// aca marca si hay comentarios
$request db_query("
SELECT *
FROM (cw_comentarios) 
WHERE id_post = $topic
"
__FILE____LINE__);
$context['haycom'] = mysql_fetch_assoc($request);

// aca marca cuantos comentarios hay
$request db_query("
SELECT *
FROM (cw_comentarios) 
WHERE id_post = $topic
"
__FILE____LINE__);
$context['numcom'] =  mysql_num_rows($request);

// aca marca los comentarios
$request db_query("
SELECT c.comentario, c.comentario AS comentario2, c.id_post, c.id_user, mem.ID_MEMBER, mem.memberName, mem.realName, c.id_coment, c.fecha
FROM (cw_comentarios AS c, smf_members AS mem) 
WHERE c.id_post = $topic AND c.id_user = mem.ID_MEMBER
ORDER BY c.id_coment ASC
"
__FILE____LINE__);
$context['comentarios'] = array();
while (
$row mysql_fetch_assoc($request))
    {
        
$row['comentario'] = htmlspecialchars($row['comentario']);
        
$row['comentario'] = parse_bbc($row['comentario'], '1'$row['ID_MSG']);
        
$row['comentario0'] = parse_bbc($row['comentario0'], '0'$row['ID_MSG']);
        
censorText($row['comentario']);
        
censorText($row['comentario2']);
        
        
$context['comentarios'][] = array(
            
'comentario2' => $row['comentario2'],
            
'comentario' => $row['comentario'],
            
'citar' => $row['comentario0'],
            
'user' => $row['id_user'],
            
'nomuser' => $row['realName'],
            
'nommem' => $row['memberName'],
            
'id' => $row['id_coment'],
            
'fecha' => $row['fecha'],
        ); 
Creo q se entiende, ahora solo faltaría .. incrustar un código abajo de cada Publicación en SMF, mas presisamente en el Display.template.php.
Pero yo mucho de PHP no entiendo, asi que solicito ayuda a los masters del PHP..
Bueno hasta acá llego, si encuentro algun codigo q me aga funcionar este "comentarios estilo taringa" edito éste POST.
Un saludo....
Dudas , Opiniones y Criticas son aceptadas ..

Última edición por gohanjaja; 06/03/2009 a las 16:57