Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2006-03-17 22:58:37

efb
Member
Registered: 2005-07-31
Posts: 48
Website

[es-es] índice alfabético de entradas

saludos

estoy trabajando en un plugin que construya una relación clasificada alfabéticamente de las entradas del cuaderno e inserte un índice que las localice. a falta de limpiar un poco el código, me encuentro con los problemas que imaginé: la eñe, los signos de puntuación, los números…

un ejemplo de cómo funciona en la actualidad el código lo tenéis aquí: efb: índice alfabético. he añadido un poco de CSS para verlo mejor. sigo trabajando en ello, pero si alguien se apunta al asunto de las expresiones regulares quedaré agradecido. creo que por ahí va la solución.

gracias

<code>

<?
$resultados1 = mysql_query(“select title, url_title, section, ID from textpattern order by title”);
$resultados2 = mysql_query(“select title, url_title, section, ID from textpattern order by title”);
$resultados3 = mysql_query(“select title, url_title, section, ID from textpattern order by title”);

/* construye el índice sin caracteres especiales */

$indice1 = ‘’;
$az[] = ‘’;
while($row1 = mysql_fetch_array($resultados1))
{ $capitular1 = strtoupper(substr($row1[“title”],0,1)); if ($indice1 != $capitular1){$az[] .= $capitular1;} $indice1 = $capitular1;
}
$numaz = count($az);
echo ‘<ul>’;
for ($i = 1; $i <= ($numaz-1); $i++)
{ if (eregi(“[A-Z]”,$az[$i])){echo ‘<li><a href=”#’.$az[$i].’” title=“letra ‘.$az[$i].’”>’.$az[$i].’</a></li>’;}
}
/* añade el índice de los caracteres especiales */
echo ‘<li><a href=”#?” title=“caracteres especiales”>?</a></li>’;

/* construye la lista alfabética sin caracteres especiales */

$indice2 = ‘’;
while($row2 = mysql_fetch_array($resultados2))
{ $capitular2 = strtoupper(substr($row2[“title”],0,1)); if (eregi(“[A-Z]”,$capitular2)) { if ($indice2 != $capitular2) {echo ‘<a name=”’.$capitular2.’”></a><a href=”#arriba” title=“subir al principio de página”>’.$capitular2.’</a>’;} echo ‘<li><a href=”/’.$row2[“section”].’/’.$row2[“ID”].’/’.$row2[“url_title”].’” title=“enlace permanente a ‘.$row2[“title”].’”>’.$row2[“title”].’</a></li>’; $indice2 = $capitular2; }
}

/* construye lista para caracteres especiales */

echo ‘<a name=”?”></a><a href=”#arriba” title=“subir al principio de página”>?</a>’;
while($row3 = mysql_fetch_array($resultados3))
{ $capitular3 = strtoupper(substr($row3[“title”],0,1)); if (eregi(“[^A-Z]”,$capitular3)) { echo ‘<li><a href=”/’.$row3[“section”].’/’.$row3[“ID”].’/’.$row3[“url_title”].’” title=“enlace permanente a ‘.$row3[“title”].’”>’.$row3[“title”].’</a></li>’; }
}
echo ‘</ul>’;

?>
</code>


el florido byte – textpattern 4.0

Offline

Board footer

Powered by FluxBB