[SPIP Zone] typo retour a la ligne (seulement coté public )

Salut,
bon sans vouloir déchainer les foules ni lancer de troll sur ce point longuement débatu...
Je cherche a avoir le retour a la ligne simple équivalent au raccourci "_ ".
j'ai suivi une partie de cette contrib
http://www.spip-contrib.net/Retours-a-la-ligne-fideles-a-l

Mais depuis qu'une partie de l'espace privé est squeletisé, je me retrouve avec des bugs dans la partie privé qui devient en partie inutilisable.
Existe-t-il un moyen de n'éxécuter cette modification de typo uniquement coté public et pas coté privé ?

j'ai pensé a l'appel du pipeline pre_typo a l'intérieur d'un pipeline spécifique a la partie publique : insert_head ?
Mais je ne trouve pas le code permettant d'appeller un pipeline ( autrement qu'avec un plugin.xml ), et dans mon cas de rajouter une fonction dans un pipeline a partir d'un autre pipeline j'en aurais besoin ...

Une autre idée ?

Merci de vos conseils :slight_smile:

Bon je viens de trouver une réponse a ma question :

il suffit simplement de modifier le tableau $spip_pipelines définit dans inc-version.php ...

Yoann NOGUES (zerax) a écrit :

Salut,
bon sans vouloir déchainer les foules ni lancer de troll sur ce point longuement débatu...
Je cherche a avoir le retour a la ligne simple équivalent au raccourci "_ ".
j'ai suivi une partie de cette contrib
Retours à la ligne fidèles à l'article rédigé - SPIP-Contrib

Mais depuis qu'une partie de l'espace privé est squeletisé, je me retrouve avec des bugs dans la partie privé qui devient en partie inutilisable.
Existe-t-il un moyen de n'éxécuter cette modification de typo uniquement coté public et pas coté privé ?

j'ai pensé a l'appel du pipeline pre_typo a l'intérieur d'un pipeline spécifique a la partie publique : insert_head ?
Mais je ne trouve pas le code permettant d'appeller un pipeline ( autrement qu'avec un plugin.xml ), et dans mon cas de rajouter une fonction dans un pipeline a partir d'un autre pipeline j'en aurais besoin ...

Une autre idée ?

Merci de vos conseils :slight_smile:

Yoann NOGUES (zerax) a écrit :

bon sans vouloir déchainer les foules ni lancer de troll sur ce point longuement débatu...
Je cherche a avoir le retour a la ligne simple équivalent au raccourci "_ ".
j'ai suivi une partie de cette contrib
Retours à la ligne fidèles à l'article rédigé - SPIP-Contrib

Mais depuis qu'une partie de l'espace privé est squeletisé, je me retrouve avec des bugs dans la partie privé qui devient en partie inutilisable.

J'ai fait ca dans mes_fonctions.php

function sautligne_pre_typo($texte){
  $texte = trim($texte);
  $texte = preg_replace("@([\w\d])([\n])([\w\d])@S", "$2_ $3", $texte);
  return $texte;
}

function ajout_pipelines_perso($texte){
  $spip_pipeline['pre_propre']="sautligne_pre_typo";
  return $texte;
}

$spip_pipeline['insert_head']="ajout_pipelines_perso";

mais j'ai toujours des bugs dans la partie privée notamment sur le couteau suisse ( dans la génération des formulaires ajax de modification de la config des lames )
sur SPIP 1.9.2c

Par contre le fonctionnement n'est a pas tout a fait ca ... le saut de paragraphe : \n\n n'est pris en compte que comme 2 <br/>
...
une idée pour la regexp ?

Par avance merci :slight_smile:

Je cherche a avoir le retour a la ligne simple équivalent au raccourci "_ ".
j'ai suivi une partie de cette contrib
Retours à la ligne fidèles à l'article rédigé - SPIP-Contrib

Mais depuis qu'une partie de l'espace privé est squeletisé, je me retrouve avec des bugs dans la partie privé qui devient en partie inutilisable.
      
J'ai fait ca dans mes_fonctions.php
  

Voici le code qui fonctionne dans mes_fonctions.php:
Bon ya forcement a améliorer la regexp mais ca au moins le mérite de fonctionner...

function sautligne_pre_typo($texte){
  $texte = trim($texte);
  $texte = preg_replace("@([\w\d])([\n])([\w\d])@S", "$2_ $3", $texte);
    $texte = preg_replace("@^ ?<br />@", "", $texte);

  $texte = "\n".$texte;
  return $texte;
}

function ajout_pipelines_perso($texte){
  $spip_pipeline['pre_propre']="sautligne_pre_typo";
  return $texte;
}

$spip_pipeline['insert_head']="ajout_pipelines_perso";

Yoann NOGUES (zerax) a écrit :

le code qui fonctionne dans mes_fonctions.php:
Bon ya forcement a améliorer la regexp mais ca au moins le mérite de fonctionner...

function sautligne_pre_typo($texte){
  $texte = trim($texte);
  $texte = preg_replace("@([\w\d])([\n])([\w\d])@S", "$2_ $3", $texte);
  
donc si je comprend bien, tu remplaces les retour à la ligne par "_ " avant le traitement de Spip qui lui les remplacera par des br
    $texte = preg_replace("@^ ?<br />@", "", $texte);
  
et, tu supprimes sauvagement les <br /> (et pas les <br/>) ?
  $texte = "\n".$texte;
  

et tu ajoute un retour à la ligne (qui sera eliminé par typo/propre je pense)

pourquoi pas juste

$texte = preg_replace("@([\w\d])([\n])([\w\d])@S", "$2<br/>$3", $texte);

  return $texte;
}

function ajout_pipelines_perso($texte){
  $spip_pipeline['pre_propre']="sautligne_pre_typo";
  return $texte;
}

$spip_pipeline['insert_head']="ajout_pipelines_perso";
  
tu devrais poster ca le sous l'article de spip contrib, ca peut servir.

Salut,

Stephane a écrit :

Yoann NOGUES (zerax) a écrit :
  

   $texte = preg_replace("@([\w\d])([\n])([\w\d])@S", "$2_ $3", $texte);
  
donc si je comprend bien, tu remplaces les retour à la ligne par "_ " avant le traitement de Spip qui lui les remplacera par des br
  

oui ... c'est pas génial ok ... mais toute la partie du compilo je n'ai jamais vraiment regardé
j'avais testé de remplacer plutot par des br directement et je ne me souviens plus pourquoi je ne l'avais pas garder...

    $texte = preg_replace("@^ ?<br />@", "", $texte);
  
et, tu supprimes sauvagement les <br /> (et pas les <br/>)
  

juste le premier ( qui est forcement un <br /> car ajouté par la regexp précedente )

  $texte = "\n".$texte;
  

et tu ajoute un retour à la ligne (qui sera eliminé par typo/propre je pense)
  

vu que la contrib rajouté ca, et que il me semble que post_autobr le faisait aussi ... il ma semblait important de l'y mettre... sans savoir ce qu'il en était. ( si je l'enléve ca ne change pas grand chose sur mes tests , sur 4-5 pages ).

pourquoi pas juste

$texte = preg_replace("@([\w\d])([\n])([\w\d])@S", "$2<br/>$3", $texte);

par ce que j'ai le premier br en trop

tu devrais poster ca le sous l'article de spip contrib, ca peut servir.
  

c'était déjà fait :slight_smile:
Par contre j'ai un soucis dans ma regexp si j'ai 2 raccourcis de liens, séparés par un \n ca ne les prends pas en compte.
il me faut créer un nouveau paragraphe pour séparé les liens qui se suivent ... je vais tenter d'arranger cette regexp toute pourrie

Merci :slight_smile: