Comment savoir si un article est virtuel - commentaires Comment savoir si un article est virtuel 2014-06-03T02:40:31Z https://contrib.spip.net/Comment-savoir-si-un-article-est#comment475644 2014-06-03T02:40:31Z <p>pour compléter, un bout de code pratique pour SPIP 3<br class="autobr"> si l'article est une redirection vers l'extérieur, l'ouvrir dans une nouvelle fenêtre (je sais c'est mal ...)</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><BOUCLE_art(ARTICLES){id_rubrique}> <a href="#URL_ARTICLE"[(#VIRTUEL|match{^http://}|oui) target="_blank"]>#TITRE</a> </BOUCLE_art> </code></pre></div> Comment savoir si un article est virtuel 2012-12-09T16:27:08Z https://contrib.spip.net/Comment-savoir-si-un-article-est#comment463833 2012-12-09T16:27:08Z <p>pour forcer à ouvrir une nouvelle page si l'article est virtuel en Spip 3 la redirection est stockée dans le champ « virtuel »</p> <p><a<abbr title="?{' target="_blank"',''})">(#VIRTUEL</abbr> href="#URL_ARTICLE" >[(#TITRE|textebrut|supprimer_numero)]</p> Comment savoir si un article est virtuel 2012-06-06T02:39:14Z https://contrib.spip.net/Comment-savoir-si-un-article-est#comment458106 2012-06-06T02:39:14Z <p>en syntaxe « moderne » (spip2 et+)<br class="autobr"> cela donne <code class="spip_code spip_code_inline" dir="ltr">[(#CHAPO*|match{^=}|?{oui,non})]</code></p> Comment savoir si un article est virtuel en SPIP 2 2009-07-27T00:16:13Z https://contrib.spip.net/Comment-savoir-si-un-article-est#comment418661 2009-07-27T00:16:13Z <p>Utiliser <abbr title="adresse_virtuelle)">(#CHAPO*</abbr></p> Comment savoir si un article est virtuel en SPIP 2 2009-02-05T09:54:16Z https://contrib.spip.net/Comment-savoir-si-un-article-est#comment413041 2009-02-05T09:54:16Z <p>apparement cela a évolué avec SPIP 2</p> <p><a href="http://archives.rezo.net/spip.mbox/200901.mbox/%3Cgl0c6n$f81$1@ger.gmane.org%3E" class="spip_out" rel='nofollow external'>une solution lue sur la liste</a></p> <p><strong>Ajout dans mes_fonctions.php</strong></p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>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); }</code></pre></div> <p><strong>Appel dans squelette</strong><br class="manualbr"><code class="spip_code spip_code_inline" dir="ltr">[(#CHAPO|adresse_virtuelle)]</code></p> Comment savoir si un article est virtuel 2007-02-08T15:32:50Z https://contrib.spip.net/Comment-savoir-si-un-article-est#comment390974 2007-02-08T15:32:50Z <p>Je voudrais que le lien affiche directement la page de redirection. Donc si je fais :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_article_virtuel(ARTICLES) {id_rubrique} {chapo==^=}> <a href="#CHAPO*">#TITRE</a> </BOUCLE_article_virtuel></code></pre></div> <p>Le lien affiche « <a href="" class="spip_url spip_out auto" rel="nofollow external">http://www.mon-domaine.tld=http://www.autre-domaine.tld/page</a> », alors que je voudrais « <a href="http://www.autre-domaine.tld/page" class="spip_url spip_out auto" rel="nofollow external">http://www.autre-domaine.tld/page</a> ».</p> <p>J'ai dû faire un filtre :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_article_virtuel(ARTICLES) {id_rubrique} {chapo==^=}> <a href="[(#CHAPO*|redirection_chapo)]">#TITRE</a> </BOUCLE_article_virtuel></code></pre></div> <p>avec le filtre :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>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]; }</code></pre></div>