[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 24111 Sujets résolus :  39 %

74 visiteurs en ce moment


Accueil > Forums de discussion >  Création de squelettes > Modifier affichage du Filtre Couper ?

Modifier affichage du Filtre Couper ? Résolu

par sophie - 16 septembre 2005 15:50 - Réponse(s) : 16

Bonjour,

J’aimerais modifier les caractères : (...)
que spip affiche quand on se sert du filtre couper à la fin d’un texte.
Est-que je peux mettre une image ou un lien cliquable [Lire la suite] ?

Merci pour vos réponses !
Sophie.


  • Ma réponse n’est pas directe à ta question mais l’inclut.

    Je voulais une fonction couper qui garde le formatage. En me balladant sur spip-contrib (plus précisément là :

    Cela donne le filtre couper_formatage. En plus du formatage, il ajoute un lien "lire la suite" (c’est pourquoi il utilise deux paramètres). C’est donc vers le lien "Lire la suite" que l’on peut modifier comment agit la fonction sur la fin.

    pour l’utiliser il faudra faire

    (#TEXTE|couper_formatage{300,#URL_ARTICLE})

    (en modifiant le 300, qui est le nombre de caracères, mais pas le #URL_ARTICLE

    Voici le code à mettre dans le fonctions.php3 :

    Merci de cette contrib. J’ai réutiliser un bout du code pour recréer un filtre "couper" qui garde le formatage du texte. Cela donne le filtre couper_formatage. En plus il ajoute un lien "lire la suite" (c’est pourquoi il utilise deux paramètres.

    pour l’utiliser il faudra donc faire

    (#TEXTE|couper_formatage{300,#URL_ARTICLE})

    (en modifiant le 300, qui est le nombre de caracères, mais pas le #URL_ARTICLE

    Voici le code à mettre dans le fonctions.php3 :

    // coupe une chaîne à $limite caractères, sans coupure de mot
    // (un mot est considéré comme un groupe de caractères séparé par des espaces)
    function couper_formatage($texte, $limite,$url) {
    // la longueur du texte est <= $limite, on retourne le texte entier
    if (strlen($texte) <= $limite) return $texte;
    // on fait la coupure avant le 1e espace après $limite caractères
    $texte = nl2br($texte);
    $pos = strpos(substr($texte, $limite), " ");
    // s'il y a un espace après $limite caractères ou juste après $limite caractères
    // on retourne la partie de $texte jusqu'avant cet espace
    if (is_integer($pos) && $pos) return substr($texte, 0, $limite+$pos) . " (...)"." <a
    href=\"$url\">Lire la suite</a>";
    // sinon (pas d'espace après $limite caractères ou juste après $limite caractères) on retourne le texte
    else return $texte;
    }

  • < #2 > Modifier affichage du Filtre Couper ? ˆ
    par Stucki - 5 février 2006 19:41

    Le caractères qui indique la suite, par défaut (...), est codé en dur dans le fichier /ecrire/inc_texte.php3. Si tu es sûre de vouloir remplacer toujours et partout sur ton site le (...) par la même chose, le plus rapide à très court terme est de modifier dans la définition de la fonction "couper" dans ce fichier. N’oublie pas également de le faire dans la fonction couper_intro un peu plus bas.

    Mais, il y a un revers de la médaille : à chaque mise à jour de SPIP, tu seras bonne pour recommencer la manip. Ce n’est donc pas très satisfaisant à moyen terme.

    La solution plus lourde et plus rigoureuse serait de recréer un filtre personnalisé, en tout point conforme au filtre couper sauf pour ce caractère de suite, et d’appeler ce nouveau filtre...


  • visiblement, ce n’est plus dans /ecrire/inc_texte.php3 que l’on modifie. qqu’un aurait il une idée du fichier dans lequel on pourrait faire les modifs ??


  • < #4 > Modifier affichage du Filtre Couper ? ˆ
    par alberto - 31 janvier 2007 16:01

    SPIP 1.9.1
    ecrire/inc/texte.php


  • en effet,

    dans le fichier "ecrire/inc/texte.php"
    tu as une ligne marqué :

    $points = '&nbsp;(...)';

    tu peut ainsi la modifié pour mettre un autre code html, par exemple :

    $points = '<span class="lasuite">lire la suite</span>';

    pour afficher ’lire la suite’ dans un style css predéfini.


  • Mea culpa, j’ai fait une faute de code :
    les guillement sont en trop dans

    $points = '<span class="lasuite">lire la suite</span>';

    le bon code est :

    $points = '<span class=lasuite>lire la suite</span>';

  • < #7 > Modifier affichage du Filtre Couper ? ˆ
    par Pandakore - 27 novembre 2010 17:13

    Bonjour

    Peux-t-on rendre les (...) cliquable vers l’article concerné ?

    Merci d’avance


  • < #8 > Modifier affichage du Filtre Couper ? ˆ
    par Pandakore - 27 novembre 2010 17:24

    Bonjour

    peut-on rendre les trois petits points cliquables vers l’article ?

    Cordialement
    Merci


  • Personne pour donner suite à cette question ? Peut-on rendre ces trois points cliquables vers l’article lui même ?


  • dans le squelette, par exemple :

    [(#TEXTE|couper{300, &nbsp;<a href="#URL_ARTICLE">(...)</a>})]

    ou encore :

    [(#INTRODUCTION|replace{\(\.\.\.\), <a href="#URL_ARTICLE">$0</a>})]

  • et plus précisemment :

    [(#INTRODUCTION|replace{\(\.\.\.\)$, <a href="#URL_ARTICLE">$0</a>})]

    au cas où il y aurait (...) en amont dans le corps du texte.


  • Merci ... C’est impec’ ...


  • Merci ... Ca marche impec’.

    J’ai juste complété ton bout de code par :

    [(#TEXTE|couper{120}|replace{\(\.\.\.\), <a href="#URL_ARTICLE">$0</a>})]

    Une petite question avant de clore le sujet. A quoi ça sert le $0 ? Je suppose que c’est la variable qui récupère le premier argument de la fonction replace(). Et le $ placé après \(\.\.\.\), il sert à quoi exactement ?

    Je trouve que la fonction replace() à l’adresse http://www.spip.net/fr_article4309.html est très mal documentée. Peut-on trouver mieux ?

    Encore un grand merci ...


  • oui.
    |replace{quoi, par quoi} est un filtre de spip qui utilise une expression rationnelle (aussi appelée regexp : voir le manuel de php sur ce sujet).

    tu as bien vu que le 0 récupère le premier élément retourné par l’expression rationnelle (donc, ici : (...)) ; le $ final du motif de recherche est là pour indiquer qu’on cherche ce motif (pour le remplacer) que s’il se trouve en fin du texte sur lequel porte la recherche. on pourrait imaginer que dans le texte il y ait un autre (...) qui, lui, ne devrait pas être remplacé.


  • Merci .. Maintenant c’est plus clair pour la fonction replace() ^^ ...
    On peut peut être clore le sujet ...


  • Le plugin Couteau Suisse gère très bien les modalités du filtre couper


  •  


Répondre à la question

« Modifier affichage du Filtre Couper ? »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?

  • Comment faire pour rattacher un formulaire a liste déroulant à une table de la base ?

    15:53

    Réponse(s) : 2

    Perso je comprends pas ta question et encore moins ton code :<. Spip à une syntaxe qui est plutôt bien documenter. <form action="url" method="post"> <select (...)

  • Galerie d'image lightbox slider adaptable

    par Jhessy
    12:05

    Résolu - Réponse(s) : 4

    Merci pour ton aide mais j’ai finalement opté pour un plugin, qui le plugin Galleria. Donc je vais mettre ce sujet résolut.

  • afficher valeurs par ordre croissant

    par Manu
    05:08

    Réponse(s) : 1

    As-tu essayé "par chambre" ? <BOUCLE_filtrevue(ARTICLES)id_rubriquepar chambre>

  • Probleme avec mediabox spip3.1.6

    par chti47
    25 juillet 15:49

    Résolu - Réponse(s) : 12

    CA MARCHE !! Merci beaucoup à tous d’avoir pris du temps pour mon problème ! J’aime ce forum spip ! Chti47

  • Comment faire pour créer un formulaire a liste déroulante qui est rataché a une table de la base (...)

    par Jhessy
    24 juillet 16:53

    Pas de réponse

    Bonjour les amis ! ET merci d’avance pour vos réponses :) Alors je vous fais le topo. Ce que je souhaite faire, c’est d’inséré sur ma page, une liste déroulante qui contiendra des mots-clés qui sont (...)

  • creer ou bien modifier son article côté public via un modèle

    par Laëtitia
    22 juillet 18:16

    Résolu - Réponse(s) : 4

    Je remarque une chose, si il y a 1 document dans le portfolio du rédacteur il peut en charger d’autres sur sa page publique, mais c’est quand il n’y en a pas encore que le chargement ne se fait pas (...)

  • pb spip/spipr et test robots google

    par Didine
    19 juillet 20:07

    Résolu - Réponse(s) : 7

    Bonjour, je suis désolée mais le problème est de retour sur ce site alors que ça fonctionnait après notre échange. Le problème se pose sur plusieurs sites SPIP... peut-être est-ce dû aux modifications (...)

  • Appeler squelette

    par Mickael
    17 juillet 19:26

    Résolu - Réponse(s) : 2

    Ok, effectivement j’ai des articles qui ont perdu leur affectation :s, du coup je me retrouve avec une rubrique vide... Merci beaucoup

  • Update de la table auteurs

    par Luc
    17 juillet 11:25

    Réponse(s) : 3

    Merci, mais en fait je n’ai aucun problème à afficher les auteurs connectés en récupérant les infos de la table auteurs ; ce que je cherche, c’est faire en sorte que les auteurs connectés updatent la (...)

  • plugin SAISIES & messages d'erreur

    par Keny972
    7 juillet 14:57

    Pas de réponse

    Bonjour, J’utilise en local le plugin SAISIES pour gérer un formulaire de création d’objet éditorial. Je cherche comment ajouter à un champ SAISIES une span message_erreur ? Pas le message (...)

  • Messages : 29336
  • 8202 43 %
  • Poser une nouvelle question