Ce bout de script permet de gérer aisément des liens, et de les classer en rubriques. Il est possible de saisir des liens en ligne, et de les associer à des rubriques nouvelles ou existantes.
Chaque rubrique de lien correspond à un fichier, et chaque lien est inscrit dans le fichier correspondant sous la forme :
Les fichiers sont stockés dans un répertoire qui leur est réservé (dans l'exemple, c'est le répertoire "links").
Affichage des liens
L'affichage se décompose en 2 tableaux. La moitié des rubriques se trouve dans une case, l'autre moitié dans l'autre case. Cette disposition est gérée dynamiquement, par ordre alphabétique.
Pour obtenir le nombre de rubriques de chaque case du tableau, il suffit de prendre le nombre de fichiers du répertoire, et de diviser par deux.
La liste des fichiers (donc des rubriques) est stocké dans le tableau $fics :
Ainsi, on peut connaitre le nombre de rubriques à afficher dans chaque partie de page :
$gauche = round(count($fics)/2);
$droite = count($fics) - $gauche;
Pour l'affichage proprement dit :
* Parcours de la liste des fichiers stockés dans le tableau $fics Il faut prendre tous les indices, de 0 jusqu'à la variable $gauche :
for($leQuel=0;$leQuel<$gauche;$leQuel++){
* Parcours de la liste des fichiers stockés dans le tableau $fics Il faut prendre tous les indices, de la variable $gauche jusqu'à la fin ($gauche+$droite = nb d'éléments):
for($leQuel=$gauche;$leQuel<$gauche+$droite;$leQuel++){
* Création du nom de la rubrique en fonction du nom du fichier : on enlève l'extension
$parag = substr($fics[$leQuel], 0, strLen($fics[$leQuel])-4);
$parag = strToUpper(substr($parag, 0, 1)) . substr($parag, 1);
* Création du tableau qui va contenir la liste des liens : $fichier = "links/$fics[$leQuel]"; $fcontents = file($fichier);
* Une fois que la liste des liens est stockée dans le tableau $fcontents, il reste à le trier, et à afficher chaque élément, donc chaque lien, après formatage.
Les liens sont stockés sous la forme écrite ci-dessus. Le tri se fera donc suivant le titre du lien.
<? BubbleSort($fcontents); // tri par bulle du tableau for($i=0; $i<count($fcontents); $i++) { // sélection de chaque élément du tableau $temp = explode("£", $fcontents[$i]); // traitement de la chaine de caractères echo "<a href=\"$temp[1]\" title=\"$temp[2]\">$temp[0]</a>"; echo "<font size=\"-1\"> by $temp[3]</font><br>"; // affichage du lien } ?>
Enregistrement d'un lien
La validation des informations du formulaire est la suivante :
* Récupération des informations concernant le nouveau lien à ajouter
* Mise en forme de la chaîne de caractères à écrire dans le fichier de rubrique correspondante
<? if ($newType!="") { // si le champ "new type" n'est pas vide, on insère le lien dans ce nouveau type $type = $newType; // récup de la rubrique } // formatage de la chaîne de caractères qui sera stockée dans le fichier $title = strToUpper(substr($title, 0, 1)) . substr($title, 1); $chaine = $title . "£" . $url . "£" . $description . "£" . $yourName . "£\n"; ?>
<? $message = " "; // AJOUT D'UN LIEN if (isset($action)) { if ($action=="ajoutOk") { if ($title=="" or $url=="") { $message = "Fill in all the fields."; } else { $message = "Ok, your link is added, thanx.";