La mecánica es la siguiente: habilitaré un subforo específico para el glosario (concretamente el subforo número 16), y en éste abriré un tema por cada término o expresión. Para mantener un orden y evitar palabras repetidas en ese subforo sólo yo podré abrir nuevos temas (y probablemente algún usuario de confianza), y luego cualquiera podrá responder en ese tema para aportar lo que crea oportuno a la definición.
En este subforo las definiciones irán surgiendo de manera caótica según vaya surgiendo la necesidad de definir un término u otro, sin ningún orden concreto, así que habilitaré una sección en la web que, extrayendo la información del foro, mantendrá ordenado el glosario. Para ello extraerá los títulos de los temas de ese subforo específico, los ordenará alfabéticamente, y mostrará la definición (o al menos una parte de la misma).
Me he puesto manos a la obra con mis limitados conocimientos, y de momento éste es el resultado basándome en esto:
Código PHP:
<ul>
<?
$directorio = "./forum"; //Carpeta donde esta situado el foro.
include("$directorio/config.php");
$conexion = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conexion);
$consulta = "select * from ".$table_prefix. "topics WHERE forum_id='16' order by topic_title" ;
$resultado = mysql_query($consulta);
$i = 0;
while ($rows = mysql_fetch_array($resultado)) {
if ($i <= $mostrar) {
$consulta4 = "select * from ".$table_prefix."posts where post_id='$rows[topic_first_post_id]'";
$resultado4 = mysql_query($consulta4);
$datosx = mysql_fetch_array($resultado4);
$consulta5 = "select * from ".$table_prefix."posts_text where post_id='$rows[topic_first_post_id]'";
$resultado5 = mysql_query($consulta5);
$datosy = mysql_fetch_array($resultado5);
// Para quitar el bbcode
{
$datosy[post_text] = preg_replace("(\[.+?\])is",'',$datosy[post_text]);
}
// Para acortar el texto de la definición
// {
// $datosy[post_text] = substr($datosy[post_text],0,250)."...";
// }
echo "<li class=\"mini\"><a href=\"$directorio/viewtopic.php?t=$rows[topic_id]\" name=\"$rows[topic_title]\" title=\"Pincha aquí para comentar la definición del término $rows[topic_title] o leer los comentarios de otros usuarios\">$rows[topic_title]</a>. $datosy[post_text]</li>";
$i++;
}
}
mysql_free_result($resultado);
mysql_close($conexion);
?>
</ul>
He estado buscando información al respecto, y lo único que he encontrado han sido tutoriales para crear mi propio BBCODE, cosa que no me interesa, ya que me gustaría usar el sistema de BBCODE del propio foro PHPBB para evitar inconsistencias. Al buscar en este foro he encontrado una duda similar de otro usuario, pero nadie le ha contestado aún, y no tengo ni idea de dónde sale todo ese código que ha puesto en su mensaje.
Si alguien pudiera darme una pista me sería de mucha ayuda.