Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Sistema de comentarios ( estilo Taringa para SMF )

Estas en el tema de Sistema de comentarios ( estilo Taringa para SMF ) en el foro de Sistemas de gestión de contenidos en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/03/2009, 16:45
 
Fecha de Ingreso: junio-2008
Mensajes: 58
Antigüedad: 15 años, 9 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
  #2 (permalink)  
Antiguo 21/09/2010, 03:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Sistema de comentarios ( estilo Taringa para SMF )

para que vercion de smf es? y en que archivo de la carpeta sourecs va el segundo codigo

espero tu respuesta :D
  #3 (permalink)  
Antiguo 21/09/2010, 07:00
Avatar de mandrake88  
Fecha de Ingreso: septiembre-2009
Mensajes: 328
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Sistema de comentarios ( estilo Taringa para SMF )

`id_cat` varchar(20) collate utf8_spanish_ci NOT NULL default '0'

No deberia ser un entero positivo? Supongo que las categorias las manejas con otra tabla, de forma relacional. Poniendo esta categoria como entero, te ahorras de tener que indexar un campo de texto, lo cual puede ser problematico si la tabla de comentarios crece mucho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:15.