Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/09/2004, 03:47
Avatar de ferny
ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 10 meses
Puntos: 55
De hecho en mi pagina lo tengo como dice jpinedo, como tengo la pagina y el foro en servidores distintos me creé un script que lee los posts del foro y luego lo pongo como iframe en la web. Este es el script que lee los posts del foro, solo tienes que ponerlo en un archivo y ponerlo en el mismo directorio que el index.php del foro, y el resultado será algo como esto. El script:


Código PHP:
<? 
$mostrar 
"8"//Número de mensajes a mostrar. 
$caracteres_post "18"//Caracteres que se mostrarán de cada titulo de post 
$caracteres_foro "15"//Caracteres que se mostrarán de cada titulo de foro 
define(DIR_FORO,"http://www.mundodivx.org/foro"); //Dirección del foro 

include("config.php"); 

// Seleccionamos la base de datos del foro 
$conexion mysql_connect($dbhost,$dbuser,$dbpasswd); 
mysql_select_db($dbname); 
$consulta "SELECT * FROM ".$table_prefix."posts ORDER BY post_time DESC LIMIT $mostrar"
$result mysql_query($consulta); 

while (
$row mysql_fetch_array($result)) { 
    
$consulta "SELECT 
        "
.$table_prefix."forums.forum_id, 
        "
.$table_prefix."forums.forum_name, 
        "
.$table_prefix."users.username, 
        "
.$table_prefix."topics.topic_id, 
        "
.$table_prefix."topics.topic_title 
        FROM "
.$table_prefix."forums, ".$table_prefix."users, ".$table_prefix."topics 
        WHERE "
.$table_prefix."forums.forum_id='$row[forum_id]' AND ".$table_prefix."users.user_id='$row[poster_id]' AND ".$table_prefix."topics.topic_id='$row[topic_id]'"
     
    
$result2 mysql_query ($consulta); 
    
$res mysql_fetch_row($result2); 
     
    
// Si el título del mensaje es muy largo, lo cortamos 
    
$postentero $res[4]; 
    if (
strlen($res[4]) > $caracteres_post) { 
        
$res[4] = substr($res[4],0,$caracteres_post-3)."..."
    } 

    
// Si el título del foro es muy largo, lo cortamos 
    
$foroentero $res[1]; 
    if (
strlen($res[1]) > $caracteres_foro) { 
        
$res[1] = substr($res[1],0,$caracteres_foro-3)."..."
    } 
     
    
// Construimos 
    
$total.="<font style='font-size: 10px' face='Verdana'><a href='".DIR_FORO."/viewtopic.php?t=$row[topic_id]#$row[post_id]' title='$postentero' class='scroll' target='_blank'>$res[4]</a><br>En: <a href='".DIR_FORO."/viewforum.php?f=$res[0]' title='$foroentero' class='scroll' target='_blank'>$res[1]</a><br>Por <font color='#CC0000'>$res[2]</font></font><hr noshade size='1' color='#000000' width='100%'>"


// Liberamos recursos y cerramos conexión 
mysql_free_result($result); 
mysql_free_result($result2); 

// Volvemos a la base de datos que no es del foro 
mysql_close($conexion); 

?> 
<html> 
<head> 
<title>Scroll de mensajes del foro</title> 
<style> 
a.scroll { font-family: Verdana; font-size: 10px; color: #0000CC; text-decoration: none; } 
a.scroll:hover { color: #0000CC; text-decoration: underline; } 
body { margin: 0px; } 
</style> 
</head> 
<body onLoad="populate()" bgcolor="#FFFFFF"> 
<table width="112" border="0" cellpadding="0" cellspacing="0"> 
<tr><td> 
<script language="JavaScript"> 

//Specify the marquee's width (in pixels) 
var marqueewidth = 112; // Ancho de la marquesina 
var anchoborde = 0; // Ancho del borde de la marquesina, en pixeles (debe ser igual al borde de la capa, especificado abajo del todo) 

//Corregimos el bug de Netscafé 
if (navigator.appName=="Netscape") { 
    marqueewidth = marqueewidth - 2*anchoborde; 


//Specify the marquee's height 
var marqueeheight=220 // Altura de la marquesina 
//Specify the marquee's marquee speed (larger is faster 1-10) 
var marqueespeed=1 // Velocidad 
//Pause marquee onMousever (0=no. 1=yes)? 
var pauseit=1 

//Specify the marquee's content 
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great): 

var marqueecontent='<? echo addslashes($total); ?>' // ¡¡¡NO TOCAR!!! 

////NO NEED TO EDIT BELOW THIS LINE//////////// 

marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS 
var copyspeed=marqueespeed 
var pausespeed=(pauseit==0)? copyspeed: 0 
var iedom=document.all||document.getElementById 
var actualheight='' 
var cross_marquee, ns_marquee 

function populate() { 
    if (iedom) { 
        cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee 
        cross_marquee.style.top=marqueeheight+8 
        cross_marquee.innerHTML=marqueecontent 
        actualheight=cross_marquee.offsetHeight 
    } else if (document.layers) { 
        ns_marquee=document.ns_marquee.document.ns_marquee2 
        ns_marquee.top=marqueeheight+8 
        ns_marquee.document.write(marqueecontent) 
        ns_marquee.document.close() 
        actualheight=ns_marquee.document.height 
    } 
    lefttime=setInterval("scrollmarquee()",40) 


function scrollmarquee() { 
    if (iedom) { 
        if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8)) { 
            cross_marquee.style.top=parseInt(cross_marquee.style.top)-copyspeed 
        } else { 
            cross_marquee.style.top=marqueeheight+8 
        } 
    } else if (document.layers) { 
        if (ns_marquee.top>(actualheight*(-1)+8)) { 
            ns_marquee.top-=copyspeed 
        } else { 
            ns_marquee.top=marqueeheight+8 
        } 
    } 


if (iedom||document.layers) { 
    with (document) { 
        if (iedom) { 
            write('<div style="position:relative; border: 0px solid #000000; width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden;background:#ffffff;" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">') 
            write('<div id="iemarquee" style="position:absolute;left:0;top:0;width:'+marqueewidth+'">') 
            write('</div></div>') 
        } else if (document.layers) { 
            write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">') 
            write('<layer name="ns_marquee2" width='+marqueewidth+' height='+marqueeheight+' left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>') 
            write('</ilayer>') 
        } 
    } 

</script> 
</td></tr> 
</table> 
</body> 
</html>
Y luego en tu web lo pones con un <iframe> y listo... Por supuesto haz las modificaciones que creas necesarias, por ejemplo en la parte de los estilos para cambiar colores o tipo de letra...

Por cierto si tienes un foro del que no quieres que salgan los mensajes, solo tienes que modificar esta linea:

Código PHP:
$consulta "SELECT * FROM ".$table_prefix."posts ORDER BY post_time DESC LIMIT $mostrar"
Si por ejemplo el foro del que no quieres mostrar los post es el que tiene un id igual a 5, la linea a poner sería esta:

Código PHP:
$consulta "SELECT * FROM ".$table_prefix."posts WHERE forum_id!=5 ORDER BY post_time DESC LIMIT $mostrar"
Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.