De beaux liens hypertexte

...vus par le Couteau Suisse

Les outils décrits ici sont des fonctionnalités du plugin Le Couteau Suisse. « Liens orphelins » rend cliquable les liens bruts. « MailCrypt » protège les mails présents sur votre site contre les crawlers. « SPIP et les liens... » configure les liens externes et le glossaire externe. « Liens en clair » affiche les liens cachés en vue d’une impression.

Présentation

Les outils décrits ici sont des fonctionnalités du plugin Le Couteau Suisse que vous pouvez trouver ici : Le Couteau Suisse. Pour avoir accès aux nouvelles fonctions agissant sur les liens hypertexte de votre site, il vous faut donc avoir préalablement installé ce plugin.

Ensuite, une fois ces outils activés sur la page d’administration du plugin en espace privé, vous avez donc gestion étendue de tous les liens trouvés dans le corps des textes, aussi bien pour les articles, les brèves, les forums, etc. Bref, tous les textes de SPIP, car de façon plus technique, ces outils utilisent les pipelines de SPIP « pre_propre » ou « post_propre ».

Dépendances

-  La librairie jQuery est requise pour le fonctionnement des Liens externes, ainsi que pour l’outil MailCrypt dans la réalisation de la deuxième étape d’encodage. Ce jeu de fonctions JavaScript très utile a été intégré au core dès la version 1.9.2 de SPIP. Pour les versions inférieures, il vous faut installer et activer le plugin Jquery que vous pouvez télécharger ici : http://zone.spip.org/files/spip-zon....
-  Les styles CSS et les fonctions JavaScript du plugin sont insérés grâce à la balise #INSERT_HEAD qui doit absolument être présente (en un seul exemplaire) dans le header de vos squelettes (entre les balises <head> et </head> des fichiers HTML). Si vous ne trouvez pas cette balise dans vos codes et que les liens n’ont pas l’apparence voulue, alors l’outil « Balise #INSERT_HEAD » permet d’insérer automatiquement cette balise sans manipulation de votre part.

Apparté

Le mot hypertexte a été créé et publié pour la première fois en 1965, par Théodore Nelson. Il explique ainsi son idée :

« Elle m’est venue en octobre-novembre 1960, alors que je suivais un cours d’initiation à l’informatique qui, au début, devait m’aider à écrire mes livres de philosophie. Je cherchais un moyen de créer sans contrainte un document à partir d’un vaste ensemble d’idées de tous types, non-structurées, non-séquentielles, exprimées sur des supports aussi divers qu’un film, une bande magnétique ou un morceau de papier. » (entretien accordé à A. Baritault, SVM n°77 p. 190)

Rappel : les liens hypertextes de SPIP

Les liens sous SPIP sont facilement générés grâce à un raccourci [1] : mettre le texte et l’URL entre crochets, séparés par une flèche (comme ceci : [texte -> URL]). Le texte devient une zone cliquable, et renverra le lecteur sur la page
web indiquée par « URL ». Ex : [le site national de l'AITF->http://www.aivf.asso.fr] qui devient : le site national de l’AITF. Il existe plusieurs types de liens :

-  les liens à l’intérieur de votre propre site. Par exemple :
Le raccourci [->article2166] génère un lien interne, vers l’article 2166 de votre site, ainsi : Le Couteau Suisse.

-  les liens vers l’extérieur de votre site. Par exemple :
Le raccourci [uZine->http://www.uzine.net] affiche le lien externe suivant : uZine.

-  les adresses URL transformées en lien hypertexte. Par exemple :
Le raccourci [->http://www.uzine.net] affiche directement l’URL, avec un lien hypertexte vers cette adresse, ainsi : http://www.uzine.net.

-  les liens vers le glossaire externe (en l’occurrence l’encyclopédie en ligne Wikipédia). Par exemple :
Le raccourci [?SPIP] génére le lien suivant : SPIP.

L’outil « Belles URLs »

Les "liens corrects"

SPIP a pour habitude d’insérer un espace avant les points d’interrogation ou d’exclamation, typographie française oblige. Voici une option qui protège le point d’interrogation dans les URLs (cliquables ou non) de vos textes. Exemples :
-  http://www.spip-contrib.net/?article2166 au lieu de : http://www.spip-contrib.net/?article2166
-  http://www.spip-contrib.net/?article2166 au lieu de : http://www.spip-contrib.net/?article2166

Les « liens orphelins »

Cet outil remplace systématiquement tous les liens laissés en texte par les utilisateurs (notamment dans les forums) et qui ne sont donc pas cliquables, par des liens hypertexte au format SPIP. Par exemple : www.spip.net est remplacé par www.spip.net.

Sur la page de configuration des outils, vous pouvez choisir le type de remplacement :

-  Basique : sont remplacés les liens du type http://spip.net (tout protocole) ou www.spip.net.
-  Étendu : sont remplacés en plus les liens du type moi@spip.net, mailto:monmail ou news:mesnews.

Techniquement, les textes sont examinés selon cette procédure :
-  Protection 1 : toutes les balises html, code, cadre, frame, script, acronym et cite.
-  Protection 2 : toutes les balises <a></a> pour éviter les doublons
-  Protection 3 : tous les raccourcis de liens SPIP, au cas où...
-  Protection 4 : toutes les balises contenant des points, histoire de voir plus clair

Les caractères reconnus comme faisant partie des liens (chiffres, lettres et 20 caractères spéciaux) :

@define('_liens_orphelins_AUTORISE',
  '\!\#\$\%\&\'\*\+\-\/\=\?\^\_`\.\{\|\}\~a-zA-Z0-9');

Les caractères reconnus comme pouvant terminer un lien :

@define('_liens_orphelins_AUTORISE_FIN',
  '\#\$\&\'\*\+\-\/\=\^\_`\|\~a-zA-Z0-9');

Attention : la balise #EMAIL, qui renvoie un texte brut par défaut, renvoie un lien cliquable en bonne est due forme lorsque l’outil Liens orphelins est activé avec un type de remplacement étendu. Vérifiez bien le code HTML de vos squelettes.

L’outil « MailCrypt »

Cet outil est inspiré du plugin créé par paolo, dont l’article de documentation est ici.

Un raccourci e-mail [->quelquun@autre.part.org] est d’habitude converti en HTML de la façon suivante :

<a href="mailto:quelquun@autre.part.org" class="spip_out">quelquun@autre.part.org</span>autre.part.org</a>

— ce qui laisse le champ ouvert pour les robots spam.

Première étape :

Intercepté par « MailCrypt », ce lien va être réécrit pour devenir : <a class="spip_url spip_out" onclick="location.href=lancerlien('quelquun','autre.part.org'); return false;" title="quelquun..ât..autre.part.org" href="#">quelquun<span class="mcrypt"></span>autre.part.org</a>

Il n’y a plus d’arobase ni de « mailto» pour orienter les robots. Le style "mcrypt" affiche l’image de l’arobase :

span.mcrypt { 
  background:transparent
  url(plugins/couteau_suisse/img/mailcrypt/leure.gif)
  no-repeat scroll left center;
  color:#000099;
  padding-left:12px;
  text-decoration:none;
  float:none; 
  margin:0; 
  display:inline;
}

Seconde étape :

Si Javascript est activé, alors la librairie jQuery pourra changer le span-image, dont le principal défaut est d’être de taille et de couleur fixe, par un span-arobase tout simple : <span>@</span>. La protection des mails est donc transparente à l’écran et le lien ressemblera à :

<a class="spip_url spip_out" onclick="location.href=lancerlien('quelquun','autre.part.org'); return false;" title="quelquun..ât..autre.part.org" href="#">quelquun<span>@</span>autre.part.org</a>

.

Voici le code jQuery utilisé pour le remplacement :

$(document).ready(function(){
  $('span.mcrypt').after('<span>&#6'+'4;</span>');
  $('span.mcrypt').remove();
});

Lorsque le visiteur clique sur le lien c’est la fonction JavaScript lancerlien qui est exécutée, et ce script reconstitue le lien. Voici le code de la fonction :

function lancerlien(a,b){ return 'ma'+'ilto'+':'+a+'@'+b; }

Et si le visiteur n’a pas JavaScript ? (Il s’agit vraiment de très peu de personnes). C’est certain : ils ne pourront pas utiliser le lien. Ils peuvent pourtant lire l’adresse en survolant le lien avec la souris. Pour aider ceux qui ont ce problème, il vous est possible de mettre un mot explicatif sur la page « technique » du site qui ressemble à :

Parce que le spam est devenu un problème grandissant, nous sommes très prudents dans la manière de mettre publiquement à disposition des adresses e-mail. Celles-ci ne figurent pas sur les pages de ce site, mais sont créées uniquement au moment où le visiteur clique sur un lien. Les visiteurs qui n’ont pas Javascript ou un programme e-mail ne pourront pas utiliser le lien. Cependant, quand le curseur passe sur le lien, un « infobulle » apparaît avec l’adresse e-mail (sous une forme difficile à lire pour les robots spam, mais dont la plupart des visiteurs pourront faire usage).

Attention : la balise #EMAIL, qui renvoie un texte brut par défaut, renvoie un texte où l’arobase est remplacée par un span lorsque l’outil MailCrypt est activé. Vérifiez bien le code HTML de vos squelettes (voir le dernier paragraphe de cet article).

Protéger des mails placés directement dans les squelettes

L’outil « Mailcrypt » ne touche pas aux mails entrés en dur dans les squelettes (fichiers .html) : seules certaines balises SPIP sont traitées. Deux raisons à cela :
-  on fait confiance aux webmestres pour éviter d’offrir des proies si faciles aux robots de SPAM,
-  une vérification de la page finale à chaque hit serait un peu trop coûteux en temps serveur.

Le plugin est donc surtout destiné à protéger les mails stockés dans les textes de la base de données et introduits par les rédacteurs d’articles ou de messages de forum.

Plusieurs solutions s’offrent à vous

-  utiliser directement le filtre « cs_lien » du Couteau Suisse :
        #EVAL**{'cs_lien("moi@toto.com")'}
ou encore :
        #EVAL**{'cs_lien("moi@toto.com", "courriel")'}
-  utiliser la lourde fonction « propre » de SPIP :
        #EVAL**{'propre("moi@toto.com")'}
(attention : le paragraphage automatique de SPIP risque de désorganiser la mise en page et il faut configurer le Couteau Suisse pour que les liens deviennent cliquables avec « Liens orphelins »...)
-  Depuis SPIP 1.93, la balise #VAL permet facilement d’utiliser des filtres en simplifiant un peu le code :
        [(#VAL{moi@toto.com}|cs_lien)]
ou :
        [(#VAL{moi@toto.com}|cs_lien{courriel})]

Autres balises SPIP

L’outil « Mailcrypt » agit sur le pipeline post_propre de SPIP et sur le traitement de la balise #EMAIL. Par conséquent, toute balise nouvellement créée (par vous-même, par un champ de base de données ou par un autre plugin) ne sera pas protégée si son traitement n’est pas explicité dans mes_options.php, intégrant les fonctions mailcrypt() du Couteau Suisse OU propre() de SPIP.

A titre d’exemple, voici comment le Couteau Suisse compile le traitement de la balise #EMAIL, non concernée par la fonction propre() :

        $GLOBALS['table_des_traitements']['EMAIL'][]='mailcrypt(%s)';

Prenons par exemple un champ lesvaleurs présent dans une table de votre base de données. Si ce champ contient une adresse email, alors n’utilisez surtout pas directement dans vos squelettes l’expression suivante :
<a href="mailto:#LESVALEURS">#LESVALEURS</a>

Mais plutôt :
[(#LESVALEURS|cs_lien{#LESVALEURS})]

L’email brut non protégé sera alors transformé en un lien SPIP [->email] par le filtre cs_lien, puis traitée par MailCrypt.

Le filtre |maildecrypt

Ce filtre pourra être utilisé pour supprimer toute intervention de MailCrypt. Il pourrait être utile par exemple avant d’envoyer un mail.

Utilisation dans un squelette :
-  #FILTRE{maildecrypt} sur le fond entier
-  |maildecrypt sur une balise en particulier : [(#TEXTE|maildecrypt)]

L’outil « SPIP et les liens... »

Utiliser des liens externes :

Tous les liens du site s’ouvrent par défaut dans la fenêtre de navigation en cours. Mais il peut être utile d’ouvrir les liens externes au site dans une nouvelle fenêtre extérieure — cela revient à ajouter target="_blank" à toutes les balises <a> dotées par SPIP des classes spip_out, spip_url ou spip_glossaire.

Note : cette fonctionnalité utilise la librairie jQuery et voici son code :

$(document).ready(function(){ 
  $("a.spip_out,a.spip_url,a.spip_glossaire").attr("target", "_blank");
});

Lien vers le glossaire :

SPIP permet de relier des mots à leur définition grâce au raccourci typographique [?mot]. Par défaut (ou si vous laissez vide la case de configuration), le glossaire externe renvoie vers l’encyclopédie libre wikipedia.org : http://@lang@.wikipedia.org/wiki/ (pour le français, SPIP remplacera @lang@ par « fr »). À vous donc, de choisir l’adresse à utiliser.

Lien de test : SPIP

L’outil « Liens en clair »

Cet outil met à votre disposition le filtre : liens_en_clair.

Votre texte contient probablement des liens hypertexte qui ne sont pas visibles lors d’une impression, cachés dans un lien cliquable.... Ce filtre ajoute entre crochets la destination de chaque lien cliquable (liens externes ou mails). Voici un exemple de syntaxe SPIP : [(#TEXTE|liens_en_clair)].

Attention : en mode impression, cette fonctionnalité est appliquée automatiquement, sans filtre obligatoire.

Exemple : le lien caché "Un mail« est remplacé par : »Un mail [quelquun@autre.part.org]".

Précisions sur le mode impression du Couteau Suisse :

Le Couteau Suisse offre un mode utile pour l’impression en plaçant le paramètre « cs=print » dans le lien d’appel de la page. Ce mode est automatiquement activé si le squelette « print.html » est utilisé (donc ici : « page=print »).

Exemples d’appel :
-  Dans un navigateur : www.monsite.ici/spip?article999&cs=print
-  Dans un squelette : [(#SELF|parametre_url{cs,print})]
-  En PHP : parametre_url(self(), 'cs', 'print')

Cas de la balise #EMAIL

La balise #EMAIL, généralement utilisée dans une boucle AUTEURS, est complètement absente des squelettes d’origine, car il est déconseillé d’exposer des emails bruts à l’écran. Un crawler pourrait les utiliser à des fins mal intentionnées.

Voici donc un code à éviter : [<A HREF="mailto:#EMAIL">(#NOM)</A>].

Attention : bien qu’il soit valide, le code précédent est incompatible avec les outils MailCrypt et Liens orphelins qui agissent sur la balise #EMAIL.

A la base, cette balise renvoie un email brut, sans aucune protection. Mais :
-  MailCrypt remplace l’arobase du mail par un span, rendant donc impossible l’utilisation de cette balise dans un href !
-  Liens orphelins remplace l’email brut par un lien sur l’email, rendant également impossible l’utilisation de cette balise dans un href.

Bon, pour empêcher les traitements sur cette balise, vous pouvez toujours utiliser l’étoile : [<A HREF="mailto:#EMAIL*">(#NOM)</A>]. Mais aucune protection ne préservera alors vos auteurs face à la collecte des robots. Pour remédier à ce problème, et permettre quand même aux visiteurs d’envoyer directement des mails aux différents auteurs de votre site, le Couteau Suisse offre un filtre bien utile : cs_lien. Ce filtre très simple permet de créer un lien sur un texte.

La syntaxe à utiliser dans un squelette est donc désormais : [(#EMAIL*|cs_lien{#NOM})].

Ici, l’email brut non protégé est transformé en un lien SPIP [nom->email] par le filtre cs_lien, puis traitée par MailCrypt et éventuellement expansée par Liens en clair pour l’impression.

Eh oui, les outils du Couteau Suisse interagissent ensemble, en toute harmonie !

Notes

[1Si vous le souhaitez, vous pouvez naturellement utiliser du code HTML directement dans vos textes. Mais nous vous conseillons d’utiliser de préférence ces raccourcis, d’une part parce qu’ils sont plus simples à mémoriser, d’autre part parce qu’il font l’objet d’un traitement automatisé avantageux : SPIP les remplace par le code HTML approprié et valide, les dotant de plus de styles facilitant leur habillage graphique par le webmestre.

Discussion

20 discussions

  • MAILCRYPT : problème https
    Bonjour Patrice,
    sur un site passé en https, une erreur est signalée dans la mesure où l’appel à leure.gif se fait via le protocole http et non pas https.
    Un ajustement à faire quelque part ?
    Merci pour tout,

    Répondre à ce message

  • 1

    Bonjour

    J’ai activé la lame mais les liens externes qui devraient s’ouvrir vers une nouvelle fenêtre n’embarquent pas le « target=_blank ».

    Le lien de test dans l’espace privé ne fonctionne pas non plus.

    J’ai analysé le js généré par le couteau suisse et intégré dans le header, il ne ne semble rien avoir concernant les liens externes. Or ol y a bien quelque chose sur les mailto.

    Merci pour votre aide.

    • inaden

      Bonjour
      J’ai le même problème. Activation des liens externes dans le couteau suisses… et rien ne se passe !
      Vous avez trouvé une solution entre temps ?

    Répondre à ce message

  • 7

    Bonjour

    En activant l’outil Belles URLs du Couteau Suisse, cela génère des problèmes dans la configuration des outils du Couteau Suisse.

    Dans la partie dédiée à la configuration de chaque outil, je me retrouve avec ceci :

    Belles URLs
    Par défaut | Désactiver
    http://localhost/spip/ecrire/?exec=... onsubmit=« return AjaxSqueeze(this,’description_outil-420’,’’,event) » method=’post’ style=’margin : 0px ; border : 0px’>
    Cet outil a deux fonctions [...]

    Notez la présence de http://localhost/spip/ecrire/?exec=... onsubmit=« return AjaxSqueeze(this,’description_outil-420’,’’,event) » method=’post’ style=’margin : 0px ; border : 0px’> en haut de chaque bloc de configuration.

    Ceci ne serait pas trop grave (et encore, je n’ai pas vérifié ce que ça donnait sur le site) mais le deuxième effet Kiss cool, c’est que je ne peux plus valider la configuration des blocs de configuration des outils du Couteau Suisse. Si je clique sur le bouton Modifier ces paramètres, j’obtiens la page 403 (Forbidden) suivante :

    Forbidden

    You don’t have permission to access /spip/ecrire/<a href="http://localhost/spip/ecrire/ on this server.

    Ce comportement disparaît si je désactive l’outil Belles URLs.
    J’utilise la dernière version de SPIP (SPIP 2.1.12 [18732]) avec un WAMP (sous Windows donc).

    SPIPement

    Guillaume

    • Merci de retour. Quels autres plugins et outils utilises-tu ?

    • J’ai uniquement Thickbox v2 (v0.3.0) comme plugin activé.

      Je viens de faire le test et même en laissant uniquement Le Couteau Suisse activé, je reproduis le problème. Il s’agit d’un serveur de dev donc je peux faire des tests à volonté.

    • Comment as-tu configuré les « Belles URLs » ? Et quels sont les autres outils actifs du couteau suisse ? Je ne reproduis pas ton problème... D’après le code que tu reproduis, il semble qu’un morceau du code source de la page est « mangé » ...

    • Florence

      J’ai le même problème. Il vient du fait que le formulaire de description d’un outil du couteau-suisse utilise la fonction propre qui est modifiée par le pipeline post_propre de « Belles Urls ».

      Ce pipeline entoure toutes les urls d’une balise <a href> ; il semble qu’il le fait même sur celles qui sont déjà dans une balise <form action="http://...">
      ce qui donne <form action="<a href="http://....>http://...</a>" et le formulaire ne fonctionne plus.

      C’est ce que j’ai diagnostiqué avec le couteau-suisse Version locale : 1.8.114
      Révision : 71036

    • Merci du retour Florence.

      Je n’ai pas réussi à reproduire ton problème (tu en local ? avec quel SPIP ?), mais j’ai renforcé le protection des formulaires dans la version .116 du plugin.

      Tu me diras si c’est OK à présent...

    • Florence

      Merci c’est OK maintenant.

      J’utilisais « Belles Urls » sur un site spip 1.9.2 et le bug est apparu quand j’ai voulu migrer en 2.0.22.
      L’outil semble moins utile avec la version 2.0 mais merci tout de même de l’avoir renforcé.

    • Oh non, il peut être tout aussi utile car son paramétrage reste pertinent.

    Répondre à ce message

  • 12
    yannick-lee

    Comment interdire un traitement automatique spécifique ?

    Bonjour.

    Je cherche à empêcher SPIP d’effectuer un traitement automatique précis. Dans mon cas, il s’agit de désactiver MailCrypt (du Couteau suisse) dans le contenu des newsletters que je génère par un squelette.

    Je sais que je pourrais utiliser un truc du genre [(#BALISE*|tous|les|traitements|normalement|appliques|sauf|mailcrypt)] mais ça ne me branche pas (d’ailleurs, comment en avoir la liste ?)

    N’y a-t-il pas une solution simple, du genre [(#BALISE|pas_mailcrypt)] ?

    Merci d’avance.

    • Salut.

      Mailcrypt n’est pas un outil agissant au niveau du traitement d’une balise particulière, mais au niveau du pipeline post_propre. Il est donc ponctuellement plus difficile d’empêcher son action... Le glossaire par exemple est lui, bien un traitement des balises #TEXTE, #CHAPO et #TITRE.

      Cependant, 3 pistes me viennent à l’esprit...

      1. Simplement à l’aide des balises <code/>, <cadre/> ou <html/> à l’intérieur desquelles Mailcrypt n’agit pas.

      2. Un peu plus lourdement en effet grâce à une function pas_mailcrypt{ on revert tout ! }.

      3. Enfin, en y allant franco, du genre : [(#TEXTE*|replace{@,_AROB_}|cs_traitements{TEXTE,articles}|replace{_AROB_,@})]

      Explications : l’étoile de la balise empêche tout traitement SPIP et renvoie le texte brut stocké en base de données, le premier filtre ’|replace’ leure d’abord mailcrypt, le filtre ’|cs_traitement’ du Couteau Suisse rétablit les traitements originaux de SPIP correspondant à la balise ’#TEXTE’ et aux objets ’articles’ (dont ’|propre’ qui appelle le pipeline ’post_propre’), puis le second filtre ’|replace’ rétablit le tout.

      Pour revenir aux traitements et pour en inhiber un ou plusieurs ponctuellement, je m’apprête à corriger le filtre |cs_traitements pour lui ajouter un paramêtre d’exclusion. A voir si cela va t’intéresser.
      Alors, que choisis-tu finalement ?

    • Finalement, voila la fameuse possibilité d’exclusion : http://zone.spip.org/trac/spip-zone...

      Cela rend notamment caduque la notation :
      [(#TEXTE*|concat{#EVAL{_CS_SANS_GLOSSAIRE}}|cs_traitements{TEXTE,articles})]
      au profit de :
      [(#TEXTE*|cs_traitements{TEXTE,articles,cs_glossaire})]

    • voila la fameuse possibilité d’exclusion

      Magnifique ! J’ai été confronté avec exactement la même question que yannick il y a quelques mois. La solution que j’avais trouvée était de demander les rédacteurs/traducteurs d’écrire les liens email autrement dans les articles « newsletter ». Mais cette nouvelle possibilité est plus propre.

      Pour les lents (moi), où est-il possible de trouver une liste des traitements sur lesquels cs_traitements() peut agir ?

    • En regardant dans le fichier tmp/couteau-suisse/mes_options.php, il y a (tout à la fin) la liste compilée des traitements actifs. Par exemple :

      $GLOBALS['table_des_traitements']['TITRE'][]='typo(supprimer_numero(%s),"TYPO",$connect)';
      $GLOBALS['table_des_traitements']['TITRE']['mots']='cs_glossaire_titres(typo(supprimer_numero(%s),"TYPO",$connect))';
      $GLOBALS['table_des_traitements']['NOM'][]='typo(supprimer_numero(%s),"TYPO",$connect)';
      $GLOBALS['table_des_traitements']['TYPE']['mots']='typo(supprimer_numero(%s),"TYPO",$connect)';
      $GLOBALS['table_des_traitements']['TEXTE'][]='cs_nettoie(cs_decoupe(cs_glossaire(propre(cs_onglets(%s),$connect))))';

      On peut voir dans cet exemple les traitements généraux sur une balise donnée (par ex. : [’TITRE’][]) et les traitements particuliers sur une balise et un objets donnés (par ex. : [’TITRE’][’mots’])

    • OK. Merci bcp !

    • Mais non - je n’y arrive pas. Sur une page similaire à celle que décrit Yannick (contenu des newsletters que je génère par un squelette) je veux le texte de l’article avec les traitements habituels de SPIP, mais sans mailcrypt, qui est activé pour le site.

      Dans tmp/couteau-suisse/mes_options.php je vois $GLOBALS['table_des_traitements']['EMAIL'][]='mailcrypt(%s)';

      Dans le squelette j’essaie donc :
      [(#TEXTE*|propre|typo|cs_traitements{EMAIL,,mailcrypt})]

      qui ne marche pas du tout. L’un ou l’autre vous voyez ou je m’égare ?

      merci bcp.

    • Oh là, non !! Il y a trop de filtres...

      les filtres propre et typo ne doivent surtout pas être employés ensemble, sachant que cs_traitement applique lui-même les traitements appropriés. Dans une boucle ARTICLES, ce dernier doit être utilisé comme suit :

      [(#TEXTE*|cs_traitements{TEXTE,articles,mailcrypt})] (non testé...)

      Note : le 1er paramètre est le nom de la balise, le 2e est le type d’objet concerné, le 3e est le filtre à exclure.

      La ligne PHP que tu mentionnes indique que le traitement appliqué à la balise #EMAIL passe par mailcrypt. Rien à voir avec ce qui se passe pour la balise #TEXTE...

    • Merci de ta réponse, Pat. Mais non, cela ne fait pas l’affaire.
      mailcrypt embrouille l’adresse email (inséré dans le texte avec un raccourci type
      [->monemail.com], que j’utilise
      [(#TEXTE*|cs_traitements{TEXTE,articles,mailcrypt})]
      ou simplement : [(#TEXTE)]

    • Ah oui, toutes mes excuses... En fait mailcrypt utilise les traitements uniquement pour la balise #EMAIL.

      En ce qui concerne #TEXTE, cette lame passe par le pipeline post_propre qui est donc utilisé sur toutes les balises bénéficiant du traitement |propre. Du coup il faut ruser un peu. Vu que le texte entre les balises <html|code|cadre|frame|script/>, je propose qqchose du style (code non testé) :

      [(#TEXTE*|replace{@,<html>@</html>}|cs_traitements{TEXTE,articles})]

      En principe, toutes les adresses mail du texte ne seront pas touchées car protégées par un échappement avant d’envoyer tous les traitements de la balise #TEXTE/articles.

      C’est vrai que SPIP offre deux mécanismes disctincts (pipelines de typo et traitement de balises) qu’il n’est pas toujours facile de dissocier et de comprendre exactement ce qui fait quoi... Si cette astuce fonctionne, ça serait bien de l’ajouter à l’article ;-)

    • Mailcrypt trouve quand même ces <html>@</html> et les transforme aussi — exactement comme avant.

    • Pour le même problème rencontré dans un patron du plugin Spip-list, au final j’ai appliqué la solution 3 donnée par Patrick à savoir

      [(#TEXTE*|replace{@,_AROB_}|cs_traitements{TEXTE,articles}|replace{_AROB_,@})]

      Et ca marche !

    • Bonjour à tous. A titre d’info, un nouveau filtre a été créé : |maildecrypt

      Utilisation :
      -  #FILTRE{maildecrypt} sur le fond entier
      -  |maildecrypt sur une balise en particulier : [(#TEXTE|maildecrypt)]

      Commit en question : http://zone.spip.org/trac/spip-zone...

    Répondre à ce message

  • bonjour,

    Une petite suggestion pour la lame qui permet l’ouverture des liens dans une nouvelle fenêtre.
    En terme d’accessibilité et notamment vis à vis du respect du RGAA il est nécessaire d’indiquer l’ouverture dans les nouvelles fenêtres.

    Alors certes le rédacteur peut le faire à la main mais on pourrait lui faciliter la tache en allant récupérer le texte de chacun des liens avec le pipeline pre_liens et ajoutant un title (sauf si y en a déjà un de défini) = texte du lien - nouvelle fenêtre (et si besoin créer la chaine de langue).

    Répondre à ce message

  • 2

    Bonjour,

    Je cherche à différencier dans mon squelette les liens externes des liens internes, c’est à dire avoir une 2 blocs :
    Liens internes
    -  Lien interne 1
    -  Lien interne 2

    Liens externes
    -  Lien externe 1
    -  Lien externe 2

    Quelqu’un a-t-il déjà fait des choses comme ça ? Couteau Suisse peut-il m’y aider ?

    Merci pour vos retours

    • Si tu regardes le code de ta page, tu devrais trouver des classes différentes car SPIP différencie déjà les liens internes des liens externes. Le vérifies-tu ?

      Si c’est bien le cas, un petit style sur ces classes et le tour est joué !

    • Thx pour le tuyau, je suis bien court en CSS !

    Répondre à ce message

  • 1

    Bonjour et désolé par avance de poser une question aussi naïve...
    Comment dois-je procéder pour arriver à personnaliser les liens hypertexte qui sont dans le corps de l’article ? Je travaille sous Spip 2.08 et The Morning After. Idéalement, j’aimerai bien que mes liens ressemblent à ceux de ce site avec la petite image en fin de lien.
    J’imagine que la question a déjà été posée 100 fois, mais je n’arrive pas à trouver d’article ou de site qui traite la question. La seule piste que j’ai trouvée est de modifier spip_out, mais je n’arrive pas à trouver où il se trouve dans ma configuration...

    Répondre à ce message

  • 2

    Bonjour,

    Je travaille actuellement sur un site en français (une seule langue) pour des enseignants d’anglais.

    Lien vers le glossaire :
    SPIP permet de relier des mots à leur définition grâce au raccourci typographique mot. Par défaut (ou si vous laissez vide la case de configuration), le glossaire externe renvoie vers l’encyclopédie libre wikipedia.org : http://@lang@.wikipedia.org/wiki/ (pour le français, SPIP remplacera @lang@ par « fr »). À vous donc, de choisir l’adresse à utiliser.

    Savez-vous comment faire pour que nos liens vers wikipedia renvoie vers les pages anglaises ?
    un filtre dans le lien ?
    un réglage particulier ?

    Merci

    Répondre à ce message

  • pepperberry

    Ça marche ! génial, merci.

    Je suis toujours passé à côté de ces balises (une bonne partie de SPIP m’échappe encore)...

    Répondre à ce message

  • 1
    pepperberry

    Oui, il s’agit du site suivant.

    • Il semble que tu aies oublié la balise #INSERT_HEAD dans ton squelette... Ou alors, active l’outil correspondant du Couteau Suisse : « Balise #INSERT_HEAD ».

    Répondre à ce message

  • 1
    pepperberry

    Bonsoir,
    la fonctionnalité du Couteau Suisse gérant les liens externes ne fonctionne plus du tout depuis mon passage à Spip 2.0 (cad que les liens externes ne s’ouvrent plus dans de nouvelles fenêtres : tant mieux me direz-vous, sauf que non justement, pas dans mon cas...) : comment régler ce problème svp ?

    • Pourtant, je viens de faire le test, tout fonctionne très bien. Il s’agit d’un fonctionnalité JavaScript, ta page comporte peut-être une erreur bloquante... Tu as un lien public à donner ?

    Répondre à ce message

  • pour les liens externes qui ouvre dans une nouvelle fenetre il faut indiquer dans le title que cela ouvre dans une nouvelle fenetre il faudrait donc rajouter à la fonction js qqchose comme :

    jQuery("a.spip_out,a.spip_url,a.spip_glossaire").each(function (i) {jQuery(this).attr("title", function(){ return $(this).text()+" - nouvelle fenêtre"; });});

    Répondre à ce message

  • 1

    Bonjour,
    Je voudrais savoir s’il était possible par un raccourci de créer une infobulle quand on survole un lien.

    Mon idée précise est de faire apparaître une infobulle contenant une courte définition lorsque un Internaute survole un mot difficile.

    Le html me semble la seule solution. Ai-je tort ?
    Merci.

    • Je me réponds à moi-même mais ça peut servir à d’autres. Il existe cette solution. Merci à moi (et aux auteurs François Schreuer et Patrice Vanneufville).

    Répondre à ce message

  • 1

    Hello,

    le couteau suisse crée bien des liens sur les url de type www.site.fr toutefois, il en remplace le texte par interro_liens_callback

    C’est normal Docteur ? J’ai l’impression après avoir cherché un peu que ça arrive à pas mal de monde, mais que c’est récent (je suis apparemment l’un des seuls à soulever le problème) ...

    Ma version de spip : SPIP 1.9.2d [11132]

    • Après avoir coché et décoché les options dans le back office, tout est rentré dans l’ordre (il me semble aussi avoir vidé le cache, j’ignore si ça peut avoir un rapport)...

    Répondre à ce message

  • 14

    Mailcrypt fonctionne bien dans le corps des articles, mais pas dans les forums. Les adresses e-mail sont remplacées par une balise du genre :

    <a href="#" title="prenom_nom..&aring;t..yahoo.fr" class="spip_out">prenom_nom<span class="spancrypt">&nbsp;</span>yahoo.fr</a>
    • tu as un lien à montrer ? Le code que tu montres est pourtant le bon résultat de la première étape d’encodage...

    • Pour l’instant, je teste en local (EasyPHP), avec SPIP 1.9.2c [10268] brut de fonderie, squelettes dist, et un seul plugin activé, le Couteau Suisse Version : 1.7.14.02, avec Mailcrypt et Balise #INSERT_HEADER seulement. Je peux donner d’autres informations à la demande, si nécessaire.

    • Je te conseille de regarder le code créé à la volée avec Firefox muni de l’extension Firebug. C’est là que tu verras si Mailcrypt fonctionne bien ou non.

    • Pourrais-tu expliciter STP ?

      Je ne vois pas bien comment Mailcrypt pourrait fonctionner dans le corps des articles et pas dans les forums, pour un probleme de script coté client. D’ailleurs, dans le HTML généré, on n’a pas d’attribut onclick, comme on devrait normalement avoir.

    • Visiblement, jQuery a du mal à transformer le lien. Il y a probablement une erreur javaScript que FireBug pourra te montrer. Une idée cependant, l’outil « balise #INSERT_HEAD » n’est pas nécessaire dans le squelette « dist » de SPIP... Peut-être tu as une double déclaration ?

      Sinon, le « onclick » n’apparait que si tu as coché les liens orphelins en mode étendu, ou que tu as explicitement écrit un mail du genre : [->moi@world.com]

      Et puis, ne te prive surtout pas d’une mise à jour du Couteau Suisse, j’ai corrigé un tout petit bug dans mailcrypt.

    • Il est possible aussi que le DOM ne soit pas tout à fait bien construit et que jQuery ne trouve pas tes forums. C’est le cas si certaines balises HTML ne sont pas utilisées comme il faut. Par exemple : des balises non fermées, ou plusieurs exemplaire de <body> ou <head>...

    • je constate un problème du genre dans le champ email des forum Gafospip ou s’affiche un bout de code , voir

      <input name="email" class="forml" value="abelass&lt;span class=" spancrypt="" type="text">&nbsp;gmx.net" size='40'&gt;</p>

      Merci
      Rainer

    • Il est possible aussi que le DOM ne soit pas tout à fait bien construit et que jQuery ne trouve pas tes forums. C’est le cas si certaines balises HTML ne sont pas utilisées comme il faut

      HTML Tidy me donne 0 errror 0 warning, et ce sont les squelettes de la dist.

    • Visiblement, jQuery a du mal à transformer le lien. Il y a probablement une erreur javaScript que FireBug pourra te montrer.

      Comment faire : toute indication, ou tout lien vers une page donnant des explications pour un débutant sur le déboguage javascript avec FireBug serait apprécié.

      Une idée cependant, l’outil « balise #INSERT_HEAD » n’est pas nécessaire dans le squelette « dist » de SPIP... Peut-être tu as une double déclaration ?

      J’ai désactivé cette fonction du Couteau Suisse, même problème.

      Sinon, le « onclick » n’apparait que si tu as coché les liens orphelins en mode étendu, ou que tu as explicitement écrit un mail du genre : moi@world.com

      Oui, j’ai activé les liens orphelins dans la fonction « Belles URLs », mais j’ai toujours un code sans onclick :

      <a class="spip_out" title="domi..åt..yahoo.fr" href="#">
      domi
      <span class="cryptOK">@</span>
      yahoo.fr
      </a>
    • Ah oui, ça c’est parceque le plugin veut transformer le mail qui est passé en value... on pourrait protéger les balises <input>, mais bon, ya pas moyen de modifier un peu le code du squelette ?

      Quel est le code original ?

    • Le « onclick » est ajouté par jQuery sur le poste client. Firebug pourra te montrer le code final. Si tu avais un lien public, ça serait plus facile de t’aider je pense...

    • Je te donne les deux code complet :

      formulaire_bb_profile.html :

      <!-- debut code pour fichier profile.html -->
      		<BOUCLE_recap(AUTEURS){id_auteur=#SESSION{id_auteur}}{tout}>
      	<INCLURE(session.php){fond=inc_teteforum}{id_rubrique}>
      	<p class="space_20"></p>
      	<table class="spipforum" id="profile">
      		<tr>
      				<th colspan="2">#NOM</th>
      			</tr>
      			<tr class="inter">
      				<td colspan="2">&nbsp;</td>
      			</tr>
      			<tr class="ligne_sujet">
      				<td class="aff_avatar">
      					[(#NOM|afficher_avatar|reduire_image{100})]
      				</td>
      				<td>
      					#FORMULAIRE_BB_PROFILE
      				</td>
      			</tr>
      			<tr class="inter">
      			<td colspan="2">&nbsp;</td>
      		</tr>
      		</table>
      		<INCLURE(session.php){fond=inc_piedforum}{id_rubrique}>
      		</BOUCLE_recap>
      		</B_recap>
      		[(#REM) si visiteur non identifie : form login ]
      		[(#SESSION{id_auteur}|=={''}|?{' ',''})<div class="login"><p class="login"><:forg:login:></p>]
      		#LOGIN_PUBLIC
      
      		[(#SESSION{id_auteur}|=={''}|?{' ',''})
      
      		&#91;<a[ href="(#URL_PAGE{spip_pass})"] target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=280'); return false;"><:login_motpasseoublie:></a>&#93;
      
      		</div>
      
      		]
      
      		<//B_recap>

      puis

      forum.html

      <div class="formulaire_spip formulaire_profil">
      [<p style="color:red">(#ENV*{echec})</p>]
      <form action="[(#ENV{self})]" method="post">
      	
      <BOUCLE_AUTEUR(AUTEURS){id_auteur=#SESSION{id_auteur}}{tout}>
      	<fieldset>
      	<legend><:forg:modif_parametre:></legend>
      	<input type='hidden' name='nom' value='[(#NOM)]'>
      	<input type='hidden' name='id_auteur' value="[(#ID_AUTEUR)]">
      	<input type='hidden' name='modif' value="1">
      
      		
      	<p><label for="email"><:forg:votre_email:></label>
      	<input type='text' name='email' class='forml' value="[(#EMAIL)]" size='40'></p>
      	
      	
      	<p><label for="bio"><:forg:votre_bio:></label>
      	<textarea name='bio' class='forml' rows='4' cols='40'>[(#BIO*)]</textarea>
      	</p><br />
      
      	<input type='hidden' name='pgp' value="[(#PGP)]">
      
      	<p><label for="nom_site"><:forg:votre_site:></label>
      	<input type='text' name='nom_site' class='forml' value="[(#NOM_SITE)]" size='40'></p>
      	<p><label for="url_site"><:forg:votre_url_site:></label>
      	<input type='text' name='url_site' class='forml' value="[(#URL_SITE)]" size='40'></p><br/>
      
      	[(#SESSION{statut}|=={'6forum'}|?{'
      	<p><label for="avatar"><:forg:votre_url_avatar:></label>
      	<input type="text" name="avatar" class="forml" value="'[(#EXTRA|extra{avatar})]" size="40">
      	</p><br />
      	,''})]
      
      	<p><label for="new_pass"><:forg:votre_nouveau_passe:></label>
      	<span style="color:red"><:forg:info_plus_cinq_car:></span><br />
      	<input type='password' name='new_pass' class='forml' value="" size='40' /></p>
      	<p><label for="new_pass2"><:forg:info_confirmer_passe:></label>
      	<input type='password' name='new_pass2' class='forml' value="" size='40'></p>
      	
      	
      	<div class="spip_bouton"><input type="submit" name="valider_auteur" value="<:valider:>" /></div>
      
      	</fieldset>
      </BOUCLE_AUTEUR>
      
      </form>
      </div>

      Merci
      Rainer

    • c’est forum.html le fautif : le mail est automatiquement inséré dans le formulaire si l’auteur est connecté. Il vaut mieux transformer "[(#EMAIL)]" en "[(#EMAIL*)]". Cela évitera tout traitement sur cette balise.

    • Merci, ça marche

    Répondre à ce message

  • 1

    Bonjour, j’ai des pb avec liens externes qui doivent s’ouvrir en ’blank’. Ca ne marche pas et j’ai pourtant suivi ce qui est détaillé ici pour le couteau suisse (dans cet article et dans le forum) ... j’ai activé « inserthead » et « SPIP et les liens… » mais pas de blank ...

    UNE AIDE CONCERNANT CELA :

    Il est parfois nécessaire d’ajouter l’une de ces classes aux liens du squelette du site (fichiers html) afin d’étendre au maximum cette fonctionnalité.

    Pourrais je avoir plus d’ infos ? MERCI !!

    Thierry :)

    • Salut,

      Peut-être devrais-tu nous donner un lien public, ça nous aiderait mieux pour voir ce qui ne va pas.

      Quant à la citation, les classes en question sont : a.spip_out, a.spip_url et a.spip_glossaire.

      Ca doit vouloir dire que, puisque jQuery ajoute target="_blank" à toutes ces classes, alors simplement ajouter à la main ces classes aux liens du site en général (y compris dans les fichiers html du squelette eux-mêmes) provoquera leur ouverture dans une fenêtre différente...

      Dans le texte des articles, je crois que SPIP décide tout seul de la classe à attribuer à un lien en distinguant les liens interne des liens externes.

    Répondre à ce message

  • Christian Fernandez

    Bonjour,

    J’ai un problème avec Firefox et MailCrypt. Le codage de la balise #EMAIL avec le filtre cs_lien fonctionne bien (codage correct dans le source généré) :

    <a href="#" title="xxx.yyy..&aring;t..zzz.fr" onclick="location.href=lancerlien('xxx.yyy','zzz.fr'); return false;" class="spip_out">YYY xxx</a></div></a>

    Mais la fonction lancerlien ne semble fonctionner que sous IE (IE7) (ouvre mon programme de mail) mais pas avec Firefox pour lequel il ne se passe rien mais une erreur est générée dans Firebug ?

    Messages de Firebug :

    [Exception... "'Permission refusée d'obtenir la propriété Object.protocolFlags' when calling method: [nsIProtocolHandler::protocolFlags]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: http://localhost/spip.php?rubrique13&lang=fr&var_mode=recalcul# :: onclick :: line 1" data: no]
    [Break on this error]
    spip.php (line 1)
    uncaught exception: [Exception... "'Permission refusée d'obtenir la propriété Object.protocolFlags' when calling method: [nsIProtocolHandler::protocolFlags]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: http://localhost/spip.php?rubrique13&lang=fr&var_mode=recalcul# :: onclick :: line 1" data: no]

    Quelqu’un a-t’il le même problème ? Merci de votre aide.

    Répondre à ce message

  • 3

    Je poursuis mon exploration... Nous avons sur notre site un seul article où nous avons laissé « en clair » les adresses mails des intervenants du forum tout ceci avec « le code à éviter » !

    Comme cela n’allait plus avec la fonction MailCrypt, j’ai donc - cette fois-ci - relu la page avant de vous écrire, j’ai pu ainsi faire avancer les choses !

    http://www.bldt.net/Om/spip.php?art...

    Mais il me reste deux soucis :

    -  dans « le code à éviter », j’arrivais à « cacher » le mot « par » qui ne s’affichait donc que s’il y avait un nom d’internaute pour l’intervention et n’apparaissait pas s’il n’y avait pas de nom. Là, cela ne semble pas fonctionner si je « cache » le « par » dans la syntaxe que vous proposez... Pour l’instant, je l’ai donc supprimé partout, mais j’aimerais le remettre selon le même principe qu’avant si vous pouvez me dire où...

    -  lorsque l’internaute signe son intervention dans le forum d’un nom seul (sans e-mail), le nom sur la page publique renvoie quand même un lien qui est... le recalcul de la page !!! (voir sur la page citée plus haut la 7e intervention signée Cerf d’Or) Comment peut-on éviter cela ?

    Merci d’avance pour les pistes que vous pourrez me donner ;-)

    • Les deux points soulevés sont en fait une même chose. Le filtre cs_lien renvoyait un lien dans tous les cas. Je viens de publier un correctif pour qu’il ne renvoie rien quand il n’y a pas de lien.

      Du coup [par (#EMAIL*|cs_lien{#NOM})] devrait fonctionner...

    • je me corrige... à 19h04, la mise à jour du plugin permettra au filtre cs_lien($lien, $texte=’’) de renvoyer $texte le $lien est vide...

    • Tout est parfait ! Mille mercis à nouveau ;-)

    Répondre à ce message

  • 7

    Lorsque j’active la fonction MailCrypt du Couteau Suisse, les liens qui doivent ouvrir le logiciel de messagerie du visiteur fonctionnent parfaitement dans la partie privée mais pointent seulement sur un # dans la page publique.

    Les Baladins de la Tradition

    Je suis sûr que c’est tout bête à arranger mais je ne vois pas...
    Quelqu’un peut-il m’éclairer ?
    Grand merci d’avance ;-)

    • Oui, c’est tout bête. Tu n’as pas bien lu le paragraphe « dépendances » au début du présent article à propos du head. De plus, je te conseille d’utiliser des balises minuscules.

    • Merci. Je viens de lire attentivement. Et dans le Couteau Suisse, j’ai activé la Balise #INSERT_HEAD. Est-ce bien ce qu’il fallait faire ? Parce qu’il me semble que rien n’a changé pour autant : ni quand je regarde mes liens vers des adresses mails, ni quand je regarde le code source de mes pages...

      Pardon vraiment si ma question est naïve, mais elle est sincère : mes connaissances sont limitées encore... Merci de votre aide à nouveau, sincèrement.

    • Oui, il faut activer cette balise si #INSERT_HEAD n’est pas présente ’en dur’ dans tous les squelettes. Mais sur le lien que tu donnes, je ne vois rien entre <head> et <head> , ce qui confirme que les plugin ne peuvent rien insérer à cet endroit...

      Après quelques tests, je viens de mettre à jour le plugin avec un petit correctif qui devrait résoudre ton problème. Fichier Zip disponible vers 18h04.

      Tente ensuite de réactiver « balise #INSERT_HEAD ».

    • oups, le fichier de 19h04.

    • J’ai téléchargé et installé le nouveau dossier du Couteau Suisse, désactivé puis réactivé la balise en question... Recalculé la page mentionnée plus haut... Mêmes effets, pas de changements... Aurais-je raté une étape ? Merci de votre patience !

    • Refaites une mise à jour après 20h05 ?

    • Tout semble parfait ! Mille mercis pour votre réactivité, votre efficacité et votre courtoisie ;-)

    Répondre à ce message

  • 11

    Bonjour,

    Pourriez-vous donner plus d’explications sur la manière de créer un lien externe à partir d’une fenêtre d’édition d’articles( ce qu’on doit rajouter autour du lien, du texte etc...).
    Je pédale dans la semoule depuis un moment et j’aimerais vraiment pouvoir utiliser ce plugin.
    Merci d’avance.

    • Bonjour.

      Pour créer un lien dans un article, il faut mettre le texte et l’URL entre crochets, séparés par une flèche ([texte -> URL]). Le texte devient une zone cliquable, et renverra le lecteur sur la page web indiquée par « URL ».

      Un lien externe est un lien pointant sur un autre site que celui en cours. Par exemple : [un site externe->http://spip-contrib.net] ou tout simplement : [->http://spip-contrib.net].

    • Suite à votre question, je viens d’ajouter un paragraphe rappelant les raccourcis SPIP concernant les liens.

    • Merci pour la réponse super rapide.

      Mais bon, je suis toujours dans le noir ; j’ai dû rater qquechose !

      j’ai installé le plugin, je l’ai activé via l’interface d’admin, j’ai coché Affichage public>SPIP et les liens… externes, j’ai validé

      je vais dans la fenêtre d’édition de l’article, je sélectionne un texte et je clic sur le bouton « Transformer en lien hypertexte »... et après comment je fais pour que ce lien ouvre une fenêtre externe ou pop-up ?

      Merci d’avance

    • Il n’y a rien d’autre à faire. Le lien créé sera cliquable en externe, en partie publique, une fois l’article publié.

    • cela veut dire que si j’installe le plugin, TOUS les liens crées dans mon site s’ouvriront en pop-up, même ceux qui mènent à une autre page dans mon site ?

    • Non, ceux-là sont internes. As-tu essayé au moins !?

    • OK, je fais la manip :
      -  je vérifie que le plugin est activé ; seul « Spip et les liens externes » est activé.
      -  je vais à cette adresse : http://www.emploi-bordeaux.fr/pageGp.php?id_rubrique=15
      sous le Sommaire, dans la partie « Site ressource »

      • le lien « www.apce.com » est ancien et conduit vers un site extérieur mais dans la même page de navigateur (pas de pop-up donc)
      • le lien « www.apce.com/apce3/syndication/actualite.rss.php » a été crée après l’activation du plugin donc maintenant, et cela me crée TOUJOURS un lien qui s’ouvre dans la même page du navigateur (pas de pop-up donc).

      Ces 2 liens ont la même forme :
      [www.apce.com->http://www.apce.com]
      [www.apce.com/apce3/syndication/actualite.rss.php->www.apce.com/apce3/syndication/actualite.rss.php]

      c’est bien ce que tu indiques de faire plus haut dans le forum :
      [un site externe->http://spip-contrib.net]

      C’est là que je me dis que j’ai dû rater qquechose ; comment vérifier que le plugin est bien activé pour cette fonction, doit-on activer toutes la partie « Affichage Public » du plugin pour activer la fonction « Spip et les liens externes »...

      Jusqu’ici pour créer un lien en pop-up j’utilisais la fonction suivante :
      <a href="http://www.nomsite.com" target="_blank">lien</a>

      et j’aimerais me simplifier la vie... Merci pour ta patience ;-)

    • Merci de ce message détaillé.

      Il semble que tu n’aies pas de balise #INSERT_HEAD dans ton squelette. Du coup, le code jQuery ne peut pas s’insérer et modifier tous tes liens externes. Active également l’outil « balise #INSERT_HEAD » du plugin.

      Relis le paragraphe « Dépendances » de cet article, ça va sans doute débloquer l’affaire.

      Par ailleurs, le raccourci [http://www.apce.com->http://www.apce.com] peut être simplifié par : [->http://www.apce.com]

    • Ouaouuuu ! ça marche, c nickel. J’ai activé l’outil « balise #INSERT_HEAD » du plugin et ça marche.

      Petit bémol, après essai : tous les liens de mon site sont devenus externes ; tous les liens commençant par "http://www.." ouvrent une pop-up.
      C’est comme ça que je crée mes liens internes vu que mon site utilise différents squelettes de pages (sommaire.php, pagesGp.php, pagesEts.php, rubriqueGp, ...) donc du coup quand j’appelle une autre page interne elle s’ouvre également en pop-up.
      Je n’ai pas d’autre moyen de rapatrier un contenu (par ex : article42) dans un squelette (pagesGp.php). Tu confirmes ?

      MAis l’un dans l’autre, c’est une fonctionnalité que j’attendais depuis longtemps le lien "externe" donc à moi de m’organiser. Il y aura bien un jour un plugin qui proposera le choix entre "lien interne" ou "lien externe" à force de harceler les contributeurs ;-)

      Merci pour le coup de pouce.

    • Je n’ai pas d’autre moyen de rapatrier un contenu (par ex : article42) dans un squelette (pagesGp.php). Tu confirmes ?

      Pour ça, il faudrait poser la question directement aux devs sur la liste spip.devel (gmane.org). Paske là, c’est du domaine de SPIP, plus trop du plugin...

    • Stanislas

      Je n’ai pas d’autre moyen de rapatrier un contenu (par ex : article42) dans un squelette (pagesGp.php). Tu confirmes ?

      Bah si, la nomenclature des squelettes prévoit que l’on peut dédier un squelette article aux articles d’une rubrique avec un fichier article-XX.html (XX étant le numéro de la rubrique). voir : http://www.spip.net/fr_article3437.html paragraphe « Une interface différente dans le même site ».

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom