Comment savoir si un article est virtuel - commentairesComment savoir si un article est virtuel2014-06-03T02:40:31Zhttps://files.spip.net/Comment-savoir-si-un-article-est#comment4756442014-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 virtuel2012-12-09T16:27:08Zhttps://files.spip.net/Comment-savoir-si-un-article-est#comment4638332012-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 virtuel2012-06-06T02:39:14Zhttps://files.spip.net/Comment-savoir-si-un-article-est#comment4581062012-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 22009-07-27T00:16:13Zhttps://files.spip.net/Comment-savoir-si-un-article-est#comment4186612009-07-27T00:16:13Z<p>Utiliser <abbr title="adresse_virtuelle)">(#CHAPO*</abbr></p>Comment savoir si un article est virtuel en SPIP 22009-02-05T09:54:16Zhttps://files.spip.net/Comment-savoir-si-un-article-est#comment4130412009-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 virtuel2007-02-08T15:32:50Zhttps://files.spip.net/Comment-savoir-si-un-article-est#comment3909742007-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>