SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

290 Plugins, 198 contribs sur SPIP-Zone, 66 visiteurs en ce moment

Accueil > Navigation > Hyperliens > Comment savoir si un article est virtuel

Comment savoir si un article est virtuel

31 mars 2006 – par mortimer – commentaires

5 votes

Voici deux méthodes pour tester si un article est une redirection (article virtuel) ou un vrai article sur le site.

Quand on écrit des articles dans SPIP, il est possible de spécifier qu’un article n’aura pas de texte et sera donc virtuel. L’article est en fait un titre et une description pour integrer une page externe au site dans ses publications.

Il n’y a pas de moyen spécifique offert par SPIP pour déterminer si un article est virtuel ou non. Mais si on regarde bien, c’est assez facile de le determiner.

SPIP quand on crée une redirection, stoque l’url de l’article distant dans le champ « chapo » de l’article, en prenant soin de mettre un signe = (égale) au début pour se rappeler que c’est un article virtuel.

Ainsi, pour savoir si un article est virtuel, il suffit de tester la présence de ce signe =.

Fait tourner Marcel

Par exemple, pour lister tous les articles virtuels, on utilisera le critère : {chapo == ^=} :

le critère == compare le chapo avec une expression régulière, dans notre cas ^= ^ signifie qu’on veut regarder le début exact du chapo, = indique qu’on veut le sigle = à cette position.

Y’a du monde sur la corde à linge

Parfois, il est préférable d’utiliser un filtre pour faire ce test. Par exemple pour afficher une mention que le lien que l’on affiche envoi sur un article virtuel.

Pour cela on va créer un filtre qui nous permet de faire des expressions régulières sur les balises SPIP :

On peut ainsi faire un test du chapo avec ce filtre :

[(#CHAPO*|expreg{/^=/}|?{'article virtuel',''})]

L’expression est la même que précédemment, la fonction php utilisé demande juste qu’on mettre des / autour.

Remarques :

On utilise deux petites spécificités ici :

  1. on met une étoile * sur la balise #CHAPO pour s’assurer que SPIP ne va pas la traiter et enlever l’information sur la redirection,
  2. on utilise le filtre de test | ? pour utiliser le résultat retourné par notre nouveau filtre.

Dernière modification de cette page le 7 décembre 2006

Retour en haut de la page

Vos commentaires

  • Le 9 décembre 2012 à 17:27, par Natacha Courcelles En réponse à : Comment savoir si un article est virtuel

    pour forcer à ouvrir une nouvelle page si l’article est virtuel en Spip 3 la redirection est stockée dans le champ « virtuel »

    <a(#VIRTUEL href="#URL_ARTICLE" >[(#TITRE|textebrut|supprimer_numero)]

    • Le 3 juin 2014 à 04:40, par erational En réponse à : Comment savoir si un article est virtuel

      pour compléter, un bout de code pratique pour SPIP 3
      si l’article est une redirection vers l’extérieur, l’ouvrir dans une nouvelle fenêtre (je sais c’est mal ...)

      1. <BOUCLE_art(ARTICLES){id_rubrique}>
      2. <a href="#URL_ARTICLE"[(#VIRTUEL|match{^http://}|oui) target="_blank"]>#TITRE</a>
      3. </BOUCLE_art>

      Télécharger

    Répondre à ce message

  • Le 5 février 2009 à 10:54, par erational En réponse à : Comment savoir si un article est virtuel en SPIP 2

    apparement cela a évolué avec SPIP 2

    une solution lue sur la liste

    Ajout dans mes_fonctions.php

    function adresse_virtuelle($lien) {
       $lien = strip_tags($lien);
       if ($lien[0] != '=')
         return '';
        $lien = substr($lien,1);
        if (preg_match(",^(https?:|mailto:|www.),", $lien))
          return traiter_lien_explicite($lien);
       else
         return traiter_lien_implicite ($lien);
    }

    Appel dans squelette
    [(#CHAPO|adresse_virtuelle)]

    Répondre à ce message

  • Le 8 février 2007 à 16:32, par marabbeh En réponse à : Comment savoir si un article est virtuel

    Je voudrais que le lien affiche directement la page de redirection. Donc si je fais :

    <BOUCLE_article_virtuel(ARTICLES) {id_rubrique} {chapo==^=}>
    <a href="#CHAPO*">#TITRE</a>
    </BOUCLE_article_virtuel>

    Le lien affiche « http://www.mon-domaine.tld=http://www.autre-domaine.tld/page », alors que je voudrais « http://www.autre-domaine.tld/page ».

    J’ai dû faire un filtre :

    <BOUCLE_article_virtuel(ARTICLES) {id_rubrique} {chapo==^=}>
    <a href="[(#CHAPO*|redirection_chapo)]">#TITRE</a>
    </BOUCLE_article_virtuel>

    avec le filtre :

    function redirection_chapo($chapo) {
            // corrige "http://www.mon-domaine.tld=http://www.autre-domaine.tld/page"
            // en "http://www.autre-domaine.tld/page"
            if (preg_match("/^(.+)=((?:https?|ftp):\/\/.+)$/", $chapo, $regs)) return $regs[2];
           // au cas où le lien est "www..." sans http:// :
            elseif (preg_match("/^(.+)=(www\..+)$/", $chapo, $regs)) return "http://" . $regs[2];
    }

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Acces Restreint 3.0

    11 décembre 2008 – 838 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Champs Extras 3

    16 janvier 2012 – 646 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Export Spip vers Wordpress

    11 mai 2013 – 35 commentaires

    Problématique On souhaite migrer un site spip vers un site wordpress. Si seul le contenu des articles nous intéresse, on peut très bien utiliser un des plugins de Wordpress permettant d’importer un flux rss, ce flux rss étant créé par Spip. Cette (...)

  • LIM : alléger l’espace privé

    20 avril 2015 – 47 commentaires

    Ce plugin permet de désactiver l’affichage de blocs ou de boutons, présents par défaut dans SPIP mais qui peuvent devenir inutiles dans le cadre de votre projet. Il allège du coup l’interface d’édition et supprime d’éventuels risques de confusion dans (...)

  • Partageur

    29 janvier 2011 – 52 commentaires

    Permet de recopier facilement des articles d’un site SPIP partageur à l’autre. Présentation Ce plugin est né d’un besoin de partager des articles entre sites SPIP. Contrairement aux plugins SPIP2SPIP, Flux RSS en articles le principe d’import (...)