En el código actual hay una variable que hace que cierto foro deseado se oculte, es $foroadmins
Pensé alegremente que cuando se hace la consulta siguiente
$query = mysql_query("SELECT views, tid, subject, lastpost, dateline, replies, author, icon, fid FROM $table_threads WHERE fid!='$foroadmins' ORDER BY lastpost Desc LIMIT 0, $posts") or die(mysql_error());
se podría poner igual de alegremente un operador AND (AND, &&) de tal manera que se hiciera caso omiso a $foroadmins y a $foroaocultar1, $foroaocultar 2..... tal como sigue
$query = mysql_query("SELECT views, tid, subject, lastpost, dateline, replies, author, icon, fid FROM $table_threads WHERE fid!='$foroadmins'&&'$foroaocultar1' ORDER BY lastpost Desc LIMIT 0, $posts") or die(mysql_error());
Pues no, no se puede así tal y como están las cosas
La razón es que esa consulta se hace a cierta tabla llamada $table_threads y por tanto hay dos soluciones a esto
A) Intentar de alguna manera que ese QUERY se haga en bucle, es decir, que lea el fid 1 a ocultar, el 2, el 3 y todos los que hayan
B) Abrir una nueva tabla específica para el foro a ocultar, tal que $table_thread_a_ocultar en la base de datos y hacer una consulta paralela tal como sigue
$query = mysql_query("SELECT views, tid, subject, lastpost, dateline, replies, author, icon, fid FROM $table_threads WHERE fid!='$foroadmins' ORDER BY lastpost Desc LIMIT 0, $posts") or die(mysql_error());
$query = mysql_query("SELECT views, tid, subject, lastpost, dateline, replies, author, icon, fid FROM $table_threads_a_ocultar WHERE fid!='$foroaocultar1' ORDER BY lastpost Desc LIMIT 0, $posts") or die(mysql_error());
......
$query = mysql_query("SELECT views, tid, subject, lastpost, dateline, replies, author, icon, fid FROM $table_threads_a_ocultar WHERE fid!='$foroaocultarN' ORDER BY lastpost Desc LIMIT 0, $posts") or die(mysql_error());
Yo sé hacer la opción B pero es altamente delicada. El portal tiene 8 megas de base de datos, y cagarla en un detalle, alguna llamada incorrecta o alterar la estructura de las tablas del Xforum es bastante delicado y bastante fácil de producirse, especialmente para alguien con nivel básico en estos temas como yo
Es por tanto deseable intentar sin abrir tablas nuevas (jugar sólo a hacer llamadas a las ya existentes) y mediante un bucle que permita excluir más foros. Es decir, la opción A.
Pero a esta opción yo al menos no sé como meterle mano, las combinaciones básicas AND y con otros operadores lógicos no me han sido fructíferas y al final sólo se ocultaba el primer foro a ser ocultado que se leía en la consulta
Si alguien sabe como meterle mano a esto que me lo comunique como respuesta a este post o que directamente curre en el código fuente del bloque, que es libre de ser descargado
http://x.arkania.org/devel/block-XForum_E_mod_CG.zip
en esa dirección
Un saludo