Hola:
Tengo el siguiente código de
Ferny (es un scroll) y me funciona muy bien, (lo he editado para que también se pueda mostrar el nombre del usuario no registrado) pero tengo el problema que me incluye los temas de los foros que son privados.
Código PHP:
<body onLoad="populate();">
<?
// Últimos mensajes publicados en foros phpBB2.
// Creado por XeRGio
// [url]www.xergio.net[/url]
//
// Modificado por Ferny
// [url]www.mundodivx.com[/url]
//
// Edita lo que viene a continuación. Cambia solo lo que hay entre comillas "":
$directorio = "phpbb"; //Carpeta donde esta situado el foro. No empieces ni acabes con /
$mostrar = "12"; //Número de mensajes a mostrar.
$caracteres = "22"; //Caracteres que se mostrarán de cada línea.
// Lo que viene ahora no lo toques para nada!!! a no ser que sepas de qué va el tema...
include("$directorio/config.php");
unset($total);
$conexion = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conexion);
//Si tienes un foro oculto o restringido, sólo añade WHERE forum_id!=X delante de ORDER BY y sustituyendo la X por el nº del foro
$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."posts.post_username,
".$table_prefix."topics.topic_id,
".$table_prefix."topics.topic_title
FROM ".$table_prefix."forums, ".$table_prefix."posts, ".$table_prefix."topics
WHERE ".$table_prefix."forums.forum_id='$row[forum_id]' AND ".$table_prefix."posts.post_username='$row[post_username]' AND ".$table_prefix."topics.topic_id='$row[topic_id]'";
$result2 = mysql_query ($consulta);
$res = mysql_fetch_row($result2);
$nombreentero = $res[4];
// Si el título del mensaje es muy largo, lo cortamos
if (strlen($res[4]) > $caracteres) {
$res[4] = substr($res[4],0,$caracteres-3)."...";
}
// Construimos
$total.="FORO: <a href=\"".$server.$directorio."/viewforum.php?f=$res[0]\"><font color=\"#000099\">$res[1]</font></a><br> TEMA: <font size=\"1\" face=\"arial\"><a href=\"".$server.$directorio."/viewtopic.php?t=$row[topic_id]#$row[post_id]\" title=\"$nombreentero\"><font color=\"#000099\">$res[4]</font></a><br> Por <font color=\"#ff0000\">$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);
mysql_close($conexion);
?>
<script language="JavaScript1.2">
/*
Cross browser Marquee II- © Dynamic Drive ([url]www.dynamicdrive.com[/url])
For full source code, 100's more DHTML scripts, and TOS, visit [url]http://www.dynamicdrive.com[/url]
Credit MUST stay intact
*/
/*
NOTA: con lo siguiente se soluciona el bug del ancho de borde bajo navegadores Netscape y Mozilla.
En ellos el borde NO pertenece a las dimensiones de la capa, pero en Opera y Explorer SI pertenece,
lo cual hace que en Netscape/Mozilla se vea un poco más grande. Por ello reducimos el ancho en
estos 2 últimos navegadores
*/
//Specify the marquee's width (in pixels)
var marqueewidth = 125; // Ancho de la marquesina
var anchoborde = 1; // Ancho del borde de la marquesina, en pixeles (debe ser igual al borde de la capa, especificado abajo del todo)
//Corregimos el bug anteriormente citado...
if (navigator.appName=="Netscape") {
marqueewidth = marqueewidth - 2*anchoborde;
}
//Specify the marquee's height
var marqueeheight=200
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=1
//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: 1px solid #FFCC33; width:'+marqueewidth+'; height:'+marqueeheight+'; overflow:hidden; background:##FFFF66;" 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>
</body>
Mi pregunta es: ¿Dónde tengo que colocar exáctamente este código de
centinela77?
Código PHP:
$sql=mysql_query("SELECT t.topic_last_post_id, t.topic_title, t.topic_id, t.topic_time, t.topic_replies, u.username,u.user_id, f.forum_name, f.forum_id, p.post_id, p.post_time FROM ".POSTS_TABLE." p, ".TOPICS_TABLE." t, ".USERS_TABLE." u, ".FORUMS_TABLE." f WHERE t.topic_poster=u.user_id AND t.topic_id=".$value." AND p.post_id=t.topic_last_post_id AND t.forum_id=f.forum_id AND f.forum_id NOT IN ($no_mostrar) ");
...o qué tengo que hacer??
Gracias. Un saludo