Aller au contenu

SPIP, strong et em


Perrine

Sujets conseillés

Bonsoir,

Je me suis enfin mise à SPIP et en testant l'affichage de mon premier article, je remarque que les {} et {{}} sont transformés en <i> et <b>, or, j'ai lu ça et là que SPIP générait un code à base de <strong> et <em>.

J'ai téléchargé la version disponible sur spip.net, la 1.7.2

J'ai donc essayé de farfouiller par ci par là pour comprendre et dans le fichier ecrire/inc_texte.php3, j'ai les lignes suivantes :

$letexte = str_replace("{{", "<b class=\"spip\">", $letexte);
$letexte = str_replace("}}", "</b>", $letexte);
$letexte = str_replace("{", "<i class=\"spip\">", $letexte);
$letexte = str_replace("}", "</i>", $letexte);

J'ai tenté de remplacer les b et i par strong et em mais quand je recalcule la page, aucune changement n'est opéré dans le code. J'ai vidé le cache, et rien n'y fait.

Peut-être créer un fichier mes_fonctions.php3 ? Mais je ne sais pas quoi mettre dedans.

Plus généralement, comment écrivez-vous vos articles ? Tous formatés en HTML entourés des balises <html> </html> dans le corps de l'article ? Ou laissez-vous SPIP générer son propre code ?

Merci d'avance :)

Lien vers le commentaire
Partager sur d’autres sites

Salut Azon :)

Spip fait bien des adeptes ;) Sur le Hub, de nombreux webmasters l'utilisent (par exemple Cariboo, ou encore le Hub lui-même), tu es donc presque sûre de toujours trouver réponse à tes questions.

Personnellement, j'essaie, dans la mesure du possible, de toujours utiliser les raccourcis typographiques de Spip, et pas de code Html. C'est plus propre et plus lisible. Surtout si vous êtes plusieurs et que certains ne connaissent pas le Html. Mais bien sûr parfois, on n'a pas le choix... Par exemple si je veux inserrer un textarea, je n'aurai pas d'autre solution que de le faire en html. Mais à la base, Spip est prévu pour écrire des articles, pas pour faire du webdesign (enfin pas dans les articles eux-mêmes).

Donc pour cette histoire de mise en forme du texte, le mieux est d'utiliser les accolades de Spip. Certes, les balises B et I ne sont pas géniales, avec des CSS ce serait mieux, mais bon... je pense qu'il faut faire le sacrifice.

En tous cas, évite d'aller toucher au code des fichiers Spip. Ce n'est pas grave en soi, mais si tu prends cette mauvaise habitude, tu risques d'obtenir un jour des trucs bizarres. Et personne ne pourra t'aider puisque tu auras tout changer partout. De plus, ça rend le passage d'une version à une autre difficile, puisque dans une mise à jour, les fichiers sont écrasés (et donc les modifs que tu as faites sont à refaire).

Au plaisir,

Ernestine

Lien vers le commentaire
Partager sur d’autres sites

Merci Ernestine pour ces précieux conseils :)

Cependant, tu dis qu'il faut se contenter de b et i mais j'ai lu sur ce post que SPIP générait ses strong et em et je comprends pas pourquoi ça ne fonctionne pas chez moi.

Quelle version utilises-tu ?

-------------

Ah voilà, j'ai poussé ma curiosité un peu plus et en faisant une recherche sur le patch de Pierre De Paepe, on tombe sur cette page.

Peut-on utiliser le patch décrit dans cette page sans avoir de problème de mise à jour par la suite ? Connais-tu ce patch ?

Merci :)

Lien vers le commentaire
Partager sur d’autres sites

Le plus simple pour contourner ce problème sans douleur, est, comme tu le supposais toi même, de créer un filtre personnalisé qui change les "<b>" et "<i>" en "strong" etc...

Il faut aussi ajouter deux lignes dans la feuille de style spip_style (ou mieux dans une deuxième feuille de style chargée en complément de celle de spip) pour gérer ces nouvelles balises.

Cela permet d'obtenir le résultat sans toucher au code, ce qui est, comme te l'a très bien expliqué Ernestine, une mauvaise idée.

Le filtre est à ajouter dans mes_fonctions.php3, et il faut le placer en bout de chaine (tous les autres filtres avant) pour éviter des surprises.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Cariboo,

Merci pour ce complèment d'info et dsl pour la réponse tardive, je voulais faire quelques tests avant de répondre.

J'ai donc essayé de mettre de faire ce que tu as dit mais je ne comprends pas comment écrire les lignes dans mes_fonctions.php3.

J'ai bien lu cette page : www.spip.net/f_article1825.html mais je ne sais pas quelle variable utiliser pour définir les strong et em.

Dans l'article cité, il est donné l'exemple de $debut_intertitre mais comment appeler les variables qui servent au formatage des {} et {{}} ?

----------------------------

Sinon, je me suis replongé dans le fichier ECRIRE/inc.texte.php3 et en fait, il y a 2 modifications à faire :

Une première aux alentours des lignes 847 et l'autre à peine plus bas, aux lignes 871 et +

Mais cette solution ne me plait guère puisqu'à la prochaine MAJ, je vais devoir remodifier ce fichier.

-----------------------------

Et pour finir, utilises-tu le patch de Pierre De Paepe ?

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...
Je me suis enfin mise à SPIP et en testant l'affichage de mon premier article, je remarque que les {} et {{}} sont transformés en <i> et <b>, or, j'ai lu ça et là que SPIP générait un code à base de <strong> et <em>.

J'ai téléchargé la version disponible sur spip.net, la 1.7.2

(...)

Peut-être créer un fichier mes_fonctions.php3 ? Mais je ne sais pas quoi mettre dedans.

AMHA, c'est effectivement dans ecrire/mes_fonctions.php3 que cela je joue.

Tu dois y insérer une fonction apres_propre qui sera appelée par Spip à la fin du calcul de la page.

Exemple:

<?php
   $GLOBALS['debut_intertitre'] = "<h3>";
   $GLOBALS['fin_intertitre'] = "</h3>";
   
function apres_propre($texte) {
  $texte = str_replace(" class=\"spip\">",">",$texte); /* supprime les mentions class="spip" */"
  $texte = str_replace("<p></p>"," ",$texte);  /* supprime quelques défauts du code de la 1.7.2 */
  $texte = str_replace("<p></div></p>","</div>",$texte);
  $texte = str_replace("<p><ul>","<ul>",$texte);
  $texte = str_replace("</ul></p>","</ul>",$texte);
  $texte = str_replace("<b>","<strong>",$texte);  /* ce qui t'intéresse */
  $texte = str_replace("</b>","</strong>",$texte);
  $texte = str_replace("<i>","<em>",$texte);
  $texte = str_replace("</i>","</em>",$texte);
return($texte);
}
?>

Chez moi (en 1.7.2), cela marche,

_AT_mitiés

phdm

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...