Blog notes Aternatik

Contact
Accueil du site > Articles et ressources > Bacasable / développement > Connaitre quels sites référencés (dans SPIP) sont inaccessibles

Connaitre quels sites référencés (dans SPIP) sont inaccessibles

Encore un bout de code pour SPIP : une page dans l’espace privé qui liste les sites référencés avec une mise en évidence de ceux qui sont injoignables/inaccessibles.

Après une fonction pour compter le nombre de caractères du texte d’’un article, cet article montre la création d’une page dans l’espace privé qui va permettre au webmestre (ou tout autre rédacteur connecté) d’un site SPIP de consulter la liste des sites référencés avec une différenciation de couleur selon leur disponibilité.

Pour cela il faut créer une fonction php qui se charge de tester la disponibilité d’un domaine. Cette fonction sera appelée par un squelette SPIP : la page de l’espace privé.

Le code PHP

Ajouter cette fonction dans le fichier mes_fonctions.php du site SPIP.

/*
 * Test de la dispo d'une url
 */

function test_domaine($domaine){
    $file      = @fopen($domaine,"r");
    $status    = -1;
    if (!$file) {
       $status = -1;  // Site indisponible
    }
    else {
        $status = 1;
        fclose($file);
    }
    return $status;
}

Un simple fopen et un retour numérique : 1 ou -1. On aurait aussi pu utiliser une fonction fournie par SPIP, à savoir recuperer_page.

Le squelette SPIP

Comme le dit si bien la doc, on peut ajouter une page dans l’espace privé en créant un fichier dans le répertoire exec (dans /squelettes ou dans le répertoire d’un plugin). Dans cet exemple, c’est le répertoire squelettes qui est utilisé. Pour une page consultable à l’url /ecrire/ ?exec=liens_morts, le fichier est à créer dans squelettes/prive/exec/liens_morts.html. Voici ce que contient le fichier :

<h1>Vérifications disponibilité des sites</h1>

<B_lessites>
#ANCRE_PAGINATION
<ul>
        <BOUCLE_lessites(SITES){par date}{pagination 40}>
        <li>
                <a href="#URL_ECRIRE{sites,id_syndic=#ID_SYNDIC}" style="color:[(#URL_SITE|test_domaine|>{0}|?{#41A40F,#FF0000})]">#NOM_SITE</a>
        </li>
        </BOUCLE_lessites>
</ul>
#PAGINATION
</B_lessites>

C’est tout. Appeler la page /ecrire/ ?exec=liens_morts pour voir s’afficher la liste des sites avec ceux qui posent problème.

Répondre à cet article

http://www.wikio.fr netvibes Google SPIP Suivre la vie du site RSS 2.0

Aternatik - tél : 04.86.57.31.22 | SIRET 484 907 530 00030 - NAF 6201Z
plan du site |  RSS 2.0 Suivre la vie du site SPIP
Création de sites et solutions internet

Creative Commons License
Le contenu du site est mis à disposition sous un contrat Creative Commons.