Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Pages: 1
[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
Pages: 1