[spip-dev] couper()

Bonjour,

dans la fonction 'couper()', on a le code suivant :

while(strpos($texte,"[[") > 0) {
  $debut=substr($texte,0,strpos($texte,"[["));
  $zet=substr($texte,strpos($texte,"[[")+2,strlen($texte));
  $milieu=substr($zet,0,strpos($zet,"]]"));
  $fin=substr($zet,strpos($zet,"]]")+2,strlen($zet));
  $texte=$debut.$fin;
}

Je suppose que son unique but est d'ôter les notes de bas de page.

Si ce n'est pas le cas, ne lisez pas la suite ... :wink:

Outre le fait qu'on récupère un $milieu dont on ne se sert jamais,
pourquoi ne pas tout simplement faire ce qui suit, aux noms de
variable près :

$newText = ereg_replace("\[\[([^]]*)\]\]","", $newText);

En règle générale, il faudrait que chacun prenne la peine de commenter
son code, ça fera gagner beaucoup de temps par la suite ... :wink:

-Nicolas

@ Nicolas Hoizey (nhoizey@phpheaven.net) :

dans la fonction 'couper()', on a le code suivant :

...

$newText = ereg_replace("\[\[([^]]*)\]\]","", $newText);

Presque ! Je remplace par :
    $texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);

J'ai aussi ajouté dans propre :
    class="spip_lien_(interne|externe)" dans les "<a href" des liens spip

    class="spip_inter" dans les intertitres (choisis comme
                                        titres de niveau 3 : <H3 class=spip_inter>

    class="spip_note" dans les appels de note standards (en haut et en bas)

Et ajouté une accélération (théoriquement!) du calcul des insécables dans
typo().

Reste à vérifier un peu sérieusement tout ça sur plusieurs sites de test et
à bricoler les feuilles de style standards dans spip_style.css et
ecrire/inc.php3 (mais, là encore, c'est du design donc je m'en remets à
ARNO* s'il a le temps ?)

C'est vrai que la solution des feuilles de style est très sympa : il restera
tout de même à gérer les feuilles de style 'paragraphes' et à écrire la doc.
Il faudra aussi un avertissement lors de l'upgrade : Antoine, comment
fait-on pour afficher, avec le ftp fichier_bizarros, un message d'alerte du
genre : ATTENTION le moteur de typographie a été modifié, et vous permet
désormais de gérer l'affichage standard via une feuille de style, à
installer dans spip_tyle.css et à appeler dans vos squelettes... ?

Nicolas (puisqu'il en faut pour tout le monde!) tu pourrais faire la doc
"feuilles de style" sur uZine ?

A+

-- Fil

Salut,

j'ai mis à jour les fichiers suivants :

spip_style
inc
inc_ecrire

histoire de mettre des styles potables, et de corriger
les conneries (qui a mal transféré les accents dans
inc_texte ??? ;-))

a+

Fil wrote:

Ah et puis j'ai aussi mis à jour l'espace public,
histoire de sécuriser les #PS* comme demandait
Fil, et d'ajouter un bouton "recalculer le
squelette".

a+

Bonsoir,

$newText = ereg_replace("\[\[([^]]*)\]\]","", $newText);

Presque ! Je remplace par :
    $texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);

Euh ... pourquoi donc, je vois pas là ??? :slight_smile:

J'ai aussi ajouté dans propre :
class="spip_lien_(interne|externe)" dans les "<a href" des liens
spip

Autant commencer à mettre en anglais tout ce qu'on ajoute dans le
code, non ? En plus, on n'a pas besoin de préciser "lien" puisqu'on
met ce style forcément sur un <a ...>, donc je propose "spip_in" et
"spip_out" ...

class="spip_inter" dans les intertitres (choisis comme titres de
niveau 3 : <H3 class=spip_inter>

Pourquoi ne pas prendre tout simplement un <p class="spip_intertitre">
(je n'ai pas de nom anglais sous la main) qui évite de se coltiner les
caractéristiques par défaut du <h3> ?

class="spip_note" dans les appels de note standards (en haut et en
bas)

Ce sont aussi des <a ...>, on est bien d'accord ?

Et ajouté une accélération (théoriquement!) du calcul des insécables
dans typo().

Ah ? C'est bien ça. J'ai vu plein d'endroits dans ce 'inc_texte.php3'
où des optimisations sont possibles. Ca va booster !!! :slight_smile:

Reste à vérifier un peu sérieusement tout ça sur plusieurs sites

Je passe en dernière version sur mon PC, et je teste avec le contenu
de Gastero Prod ce soir ...

à bricoler les feuilles de style standards dans spip_style.css

Ouais, OK, je sais que mes couleurs étaient nazes ... :wink:

et ecrire/inc.php3 (mais, là encore, c'est du design donc je m'en
remets à ARNO* s'il a le temps ?)

Pourquoi pas une autre feuille de style 'ecrire/spip_style.css' en
plus de celle qui est à la racine ?

C'est vrai que la solution des feuilles de style est très sympa

Ouf ... :wink:

il restera tout de même à gérer les feuilles de style 'paragraphes'

Pour ça, il faut écrire de vrais paragraphes, avec <p> et </p>. Je
bosserais peut-être dessus si personne ne se lance.

et à écrire la doc

Oui, aussi.

Nicolas (puisqu'il en faut pour tout le monde!) tu pourrais faire la
doc "feuilles de style" sur uZine ?

OK, je vais m'y coller. Ca tombe bien, j'ai déjà un compte sur uZine
depuis longtemps, mais je n'ai jamais trouvé de sujet à traiter aussi
bien que peuvent le faire tous les autres contributeurs ... :slight_smile:

-Nicolas

@ Antoine Pitrou (pitrou@free.fr) :

histoire de mettre des styles potables

oui

les conneries (qui a mal transféré les accents dans inc_texte ??? ;-))

Oups !

et d'ajouter un bouton "recalculer le squelette".

Quel intérêt ? Au premier abord ça alourdit passablement la présentation
admin (pour des admins un peu bleus). Pourquoi ne pas mettre plutôt un
bouton "Recalculer les squelettes" à côté de "Purger le cache" dans la
partie Sauvegarde-Restauration ?

-- Fil

et d'ajouter un bouton "recalculer le squelette".

Pourquoi ne pas mettre plutôt un bouton "Recalculer les squelettes"
à côté de "Purger le cache" dans la partie Sauvegarde-Restauration ?

Euh ... parce que ce serait mettre un second bouton à cet endroit qui
n'est pas fait pour ça ? Ah non, merde, je vais prendre des baffes,
moi si je continue ... :slight_smile:

De toute façon, pourquoi ne pas purger tous les caches en une fois ?

Et puis recalculer tous les squelettes d'un coup me semble difficile,
on ne sait pas lesquels sont utilisés avant qu'ils soient réellement
appelés sur le site ...

-Nicolas

> Presque ! Je remplace par :
> $texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);

Euh ... pourquoi donc, je vois pas là ??? :slight_smile:

Un lien dans une note : [[ [texte->url] ]]
il faut couper tout ça __________________
et pas juste ça _______________

> J'ai aussi ajouté dans propre : class="spip_lien_(interne|externe)" dans
> les "<a href" des liens spip

Autant commencer à mettre en anglais tout ce qu'on ajoute dans le
code, non ?

Je ne vois pas l'intérêt de coder en anglais. D'autant qu'on aura rapidement
un truc completement batard, avec du français, des fautes d'orthographes
($delais), du franglais et de l'anglais. Tu m'expliques ? Le passage à
l'internationalisation, en tous cas, ça ne signifie pas coder en anglais.

En plus, on n'a pas besoin de préciser "lien" puisqu'on
met ce style forcément sur un <a ...>, donc je propose "spip_in" et
"spip_out" ...

En feuilles de styles je suis bleu, je viens de comprendre ça. Oui, on peut
faire plus simple.

Pourquoi ne pas prendre tout simplement un <p class="spip_intertitre">
(je n'ai pas de nom anglais sous la main) qui évite de se coltiner les
caractéristiques par défaut du <h3> ?

Je ne suis pas sûr que les navigateurs "braille" ou "lynx" soient très
sensibles aux charmes du graphisme ; ils aiment bien, en revanche, le
structuré. Maintenant, si une feuille de style ne permet pas d'enlever le
gras par défaut du H3, il faut peser le pour et le contre.

> class="spip_note" dans les appels de note standards (en haut et en
> bas)

Ce sont aussi des <a ...>, on est bien d'accord ?

Oui, bien sûr. Mais pas de même "nature" : on a donc trois types de liens :
internes au site, vers l'extérieur, et interne au document. Trois styles
différents (on peut peut-être unifier le nom des styles).

> Et ajouté une accélération (théoriquement!) du calcul des insécables
> dans typo().

Ah ? C'est bien ça. J'ai vu plein d'endroits dans ce 'inc_texte.php3'
où des optimisations sont possibles. Ca va booster !!! :slight_smile:

Oui : attention aux fausses optimisations... Là j'ai passé une expression
régulière (a|b|c|d) en [abcd], ce qui effectivement booste. Il doit en
rester des dizaines, de microoptimisations. Regarde dans les archives comme
on s'est déjà marrés avec le moteur typo()

Pourquoi pas une autre feuille de style 'ecrire/spip_style.css' en
plus de celle qui est à la racine ?

On a deux solutions :

1) une seule feuille de style -> nécessite d'homogénéiser les parties
    publique et ecrire/ ; mais permet à la "prévisu" de ressembler au
    texte final.

2) deux feuilles différentes : permet une meilleure "prévisu" dans tous les
    cas (imagine que tu gères un site sur fond noir : je te dis pas le
    carnage visuel dans /ecrire/ avec l'option 1 !) ; demande, en revanche,
    de jongler mentalement entre les deux styles ; facile à changer (suffit
    de copier le css public en css privé

je crois que je préfère le 2). ARNO* ?

Pour ça, il faut écrire de vrais paragraphes, avec <p> et </p>. Je
bosserais peut-être dessus si personne ne se lance.

Bon courage. Il y a beaucoup de cas de figure.

-- Fil

Et puis recalculer tous les squelettes d'un coup me semble difficile,
on ne sait pas lesquels sont utilisés avant qu'ils soient réellement
appelés sur le site ...

C'est une préiphrase, la même d'ailleurs que "Recalculer cette page", qui ne
recalcule pas vraiment : elle efface le cache puis recharge la page. Dans la
pratique ça donne bien un recalcul de la page au moment voulu, mais si tu
stoppes ton navigateur entre les deux la page n'est pas recalculée. Ainsi on
peut écrire "Reclaculer tous les squelettes" sur le bouton, et que ce
dernier ne fasse qu'effacer tous les squelettes.

-- Fil

dernier ne fasse qu'effacer tous les squelettes.

"tous les squelettes compilés", voulais-je dire, ceux qui se trouvent dans
CACHE/, pas ceux que vous avez passé des heures à bichonner.

-- Fil

C'est une préiphrase, la même d'ailleurs que "Recalculer cette
page", qui ne recalcule pas vraiment : elle efface le cache puis
recharge la page.

Ce n'est vrai que dans la partie publique, pas dans la privée.

Ca ne marche que si le bouton pour "recalculer" est dans la page
précisemment demandée, tout comme pour le cache du HTML, on ne peut
pas se limiter au back-office comme tu le proposais si on veut qu'il y
ait réellement mise à jour et non pas seulement effacement ...

-Nicolas

Bon, encore des changements.

J'ai enlevé le bouton "recalculer le squelette". Par contre,
je n'ai rien ajouté dans la partie privée car, comme le souligne
Nicolas, le bouton "purger le cache" efface déjà tout.

J'ai séparé propre() en deux. Tout le traitement des raccourcis
est dans traiter_raccourcis(). propre() est juste une encapsulation
qui appelle en plus stripslashes et deux trois autres trucs. Dans
l'espace public, stripslashes est séparé afin d'être toujours
opérant quand on fait #TEXTE* : bcp plus propre, c'est le cas
de le dire :slight_smile:

Aussi, lors d'une upgrade de la base, les squelettes compilés
sont automatiquement effacés, au cas où le moteur a évolué
depuis la dernière version. Ca évitera de dire aux gens d'effacer
leurs squelettes pour profiter d'une fonctionnalité :slight_smile:

a+

Fil wrote:

On a deux solutions :

1) une seule feuille de style -> nécessite d'homogénéiser les parties
    publique et ecrire/ ; mais permet à la "prévisu" de ressembler au
    texte final.

2) deux feuilles différentes : permet une meilleure "prévisu" dans tous les
    cas (imagine que tu gères un site sur fond noir : je te dis pas le
    carnage visuel dans /ecrire/ avec l'option 1 !) ; demande, en revanche,
    de jongler mentalement entre les deux styles ; facile à changer (suffit
    de copier le css public en css privé

je crois que je préfère le 2).

Moi aussi.

a+

Un lien dans une note : [[ [texte->url] ]]
il faut couper tout ça __________________
et pas juste ça _______________

Si je ne m'abuse, on vient justement d'enlever TOUS les liens avec
l'instruction précédente, non ? :wink:

Autant commencer à mettre en anglais tout ce qu'on ajoute dans le
code, non ?

Je ne vois pas l'intérêt de coder en anglais.

Tout simplement pour permettre aux non francophones (il en reste dans
le monde, si si) de jeter un oeil au source pour aider à débugguer et
faire évoluer ...

D'autant qu'on aura rapidement un truc completement batard, avec du
français

C'est clair qu'il y a du nettoyage (et des ajouts) à faire avant tout.

des fautes d'orthographes ($delais)

Oui, elle est plutôt pénible celle-là, alors qu'elle ne demande pas
trop de boulot à être corrigée.

du franglais

Inévitable, malheureusement, mais c'est souvent plus compréhensible
que le français pour un anglophone.

Le passage à l'internationalisation, en tous cas, ça ne signifie pas
coder en anglais.

Je suis tout à fait d'accord, c'est l'ouverture du code.

En feuilles de styles je suis bleu, je viens de comprendre ça. Oui,
on peut faire plus simple.

Pas de problème, ça vient vite, tu verras. :slight_smile:

Je ne suis pas sûr que les navigateurs "braille" ou "lynx" soient
très sensibles aux charmes du graphisme
ils aiment bien, en revanche, le structuré

OK.

Pour les navigateurs braille ou audio, je sais qu'on peut ajouter dans
la feuille de style des précisions qui leur sont destinées, mais je ne
l'ai jamais fait.

Pour Lynx et les autres navigateurs visuels mais non graphiques, je ne
sais pas comment ils représentent le h3.

Maintenant, si une feuille de style ne permet pas d'enlever le gras
par défaut du H3, il faut peser le pour et le contre.

Si, si, on peut redéfinir la graisse, pas de problème de ce côté.

Bon, bin c'est clair, on garde quand même h3 à priori ... :slight_smile:

class="spip_note"

Ce sont aussi des <a ...>, on est bien d'accord ?

Oui, bien sûr. Mais pas de même "nature"

OK, c'est clair.

On met "spip_in", "spip_out" et "spip_note", alors ?

Oui : attention aux fausses optimisations...

Oui, oui, je parle bien d'optimisation de traitement, pas de lignes de
code ... :wink:

Il doit en rester des dizaines, de microoptimisations.

Oui, parfois c'est une instruction inutile, par exemple ...

Pourquoi pas une autre feuille de style 'ecrire/spip_style.css' en
plus de celle qui est à la racine ?

On a deux solutions :

1) une seule feuille de style -> nécessite d'homogénéiser les
   parties publique et ecrire/ ; mais permet à la "prévisu" de
   ressembler au texte final.

2) deux feuilles différentes : permet une meilleure "prévisu" dans
   tous les cas (imagine que tu gères un site sur fond noir : je te
   dis pas le carnage visuel dans /ecrire/ avec l'option 1 !) ;
   demande, en revanche, de jongler mentalement entre les deux
   styles ; facile à changer (suffit de copier le css public en css
   privé je crois que je préfère le 2). ARNO* ?

Il suffit à priori de bien préciser que la feuille de style d'un
article doit être séparée de la feuille de style plus générale du
site, comme ça on a pas de problème.

Perso, j'aurais mon propre 'style.css', le 'spip_style.css' de SPIP à
la racine, et un 'spip_style.css' dans 'ecrire' pour les styles de
l'interface ...

On précise qu'il ne faut pas ajouter de style dans 'spip_style.css',
mais juste modifier les propriétés, et ça roule ...

Non ?

Pour ça, il faut écrire de vrais paragraphes, avec <p> et </p>. Je
bosserais peut-être dessus si personne ne se lance.

Bon courage. Il y a beaucoup de cas de figure.

Oui, je sais bien, mais je me suis rodé sur les tableaux ... :slight_smile:

-Nicolas

le 20/09/01 22:27, Nicolas Hoizey =E0 nhoizey@phpheaven.net a =E9crit=A0:

Pour Lynx et les autres navigateurs visuels mais non graphiques, je ne
sais pas comment ils repr=E9sentent le h3.

Lynx (comme Links ou Wanabe sur Mac) se d=E9brouille pas trop mal avec le HTM=
L
conforme 8)) =E0 la norme WC3

Par contre il ne tiendra pas compte du r=E9glage de la graisse : pour lui
c'est gras ou cela ne l'est pas :))

Aris

Lynx (comme Links ou Wanabe sur Mac) se débrouille pas trop mal avec
le HTML conforme 8)) à la norme WC3

Par contre il ne tiendra pas compte du réglage de la graisse : pour
lui c'est gras ou cela ne l'est pas :))

Et il n'y a pas de possiblité de réglage de la taille de police, si je
ne m'abuse, donc c'est juste la graisse qui est intéressante pour eux,
non ?

Enfin bon, on va à priori garder le h3 ... :wink:

-Nicolas

le 20/09/01 23:01, Nicolas Hoizey =E0 nhoizey@phpheaven.net a =E9crit=A0:

Et il n'y a pas de possiblit=E9 de r=E9glage de la taille de police, si je
ne m'abuse, donc c'est juste la graisse qui est int=E9ressante pour eux,
non ?
=20
Enfin bon, on va =E0 priori garder le h3 ... :wink:

Exact... c'est du mode texte :wink: il ne faut donc pas exag=E9rer :))

A.

Fil wrote:
>
> On a deux solutions :
>

1) une seule feuille de style -> n=E9cessite d'homog=E9n=E9iser les part=

ies

     publique et ecrire/ ; mais permet =E0 la "pr=E9visu" de ressembler a=

u

> texte final.
>

2) deux feuilles diff=E9rentes : permet une meilleure "pr=E9visu" dans=

tous les

     cas (imagine que tu g=E8res un site sur fond noir : je te dis pas le
     carnage visuel dans /ecrire/ avec l'option 1 !) ; demande, en revanc=

he,

     de jongler mentalement entre les deux styles ; facile =E0 changer (s=

uffit

     de copier le css public en css priv=E9

>
> je crois que je pr=E9f=E8re le 2).

Mitou...

M=EAme si =E7a peut para=EEtre bizarre, l'espace priv=E9 doit =EAtre
fondamentalement diff=E9rent du site public: =E7a n'est pas du WYSIWYG.
Pour le dire autrement: l'espace priv=E9 doit tr=E8s clairement g=E9rer du
contenu =E9ditorial, totalement ind=E9pendant de la mise en page
graphique. D'o=F9 l'int=E9r=EAt de la solution 2: il n'y a pas
d'homog=E9n=E9it=E9 =E0 rechercher entre le site public et le site priv=E9, =
qui
ont deux vocations diff=E9rentes (et autant que l'interface le
souligne). En effet, le risque d'une homog=E9n=E9isation entre les deux
espaces serait d'obtenir des textes =E0 l'interface fig=E9e, c'est-=E0-dire
con=E7us pour une certaine interface et pas une autre (d'o=F9: mises =E0
jour du site rendues impossibles pour des raisons graphiques, et
=E9change entre deux sites perturb=E9 par les diff=E9rences graphiques).

Au passage, attention =E0 limiter inc-style au strict minimum (en gros:
ce qui se trouvait auparavant bloqu=E9 en dur dans inc-texte): il est
important que l'interface graphique soit dans les squelettes, et non
dans des fichiers qui seraient li=E9s =E0 la distribution de SPIP.

ARNO*

@ Nicolas Hoizey (nhoizey@phpheaven.net) :

> Un lien dans une note : [[ [texte->url] ]]
> il faut couper tout ça __________________
> et pas juste ça _______________

Si je ne m'abuse, on vient justement d'enlever TOUS les liens avec
l'instruction précédente, non ? :wink:

Alors prends ça comme exemple (tordu, je le reconnais): [[ une note avec un ] ]]

Alors prends ça comme exemple (tordu, je le reconnais):
[[ une note avec un ] ]]

Ah oui, ça c'est bien tordu, OK, je me rends ... :slight_smile:

-Nicolas