[spip-dev] inc_texte.php3

Coucou,

je viens de réécrire une bonne partie de ecrire/inc_texte.php3 :

1) l'affichage des dates : simplifié et unifié le code

2) utilisation de la variable globale $lang -- pour l'instant influe sur la typo et l'affichage des dates, en français ('fr' ou par défaut) et en anglais ('en').
Pour activer la langue anglaise, il suffit de mettre, dans l'appel du squelette (dans ./article.php3) la ligne
  $lang = 'en';

3) lors de la création des notes, ne pas préciser <P align=left>, pour que justifier() puisse faire son travail si besoin.

4) simplifié et accéléré le calcul des notes en utilisant ereg_replace au lieu de strpos, ainsi que le calcul des liens (gros gros travail ! des expressions régulières furieuses !)

5) la fonction justifier() avait un bug : quel que soit le contenu du texte à justifier, elle ajoutait devant <P align=justify>... ce qui fait qu'une boucle conditionnelle comme [<HR>(#CHAPO|justifier)<HR>] afficahit deux <HR> même si le chapo était vide.

6) sur le modèle de justifier(), les filtres feragauche(), feradroite() et centrer(). S'utilisent comme suit : (#NOTES|feradroite)

7) les appels de notes ne sont plus obligatoirement des crochets [] : se règle en inscrivant dans l'appel du squelette (dans ./article.php3) un passage comme
    $ouvre_ref = '&nbsp;('; $ferme_ref=')';
    $ouvre_note = '('; $ferme_note=')';
ou encore, par exemple :
    $ouvre_ref = '<sup>'; $ferme_ref='</sup>';
    $ouvre_note = ' '; $ferme_note='. - ';

Je ne l'intègre pas tout de suite sur le site de devel/, car il reste peut-être un bug?? J'ai vérifié sur pas mal de pages compliquées, avec des liens dans les notes par exemple... mais je préfère que vous y jetiez un oeil avant. (fichier ci-joint).

inc_texte.php3 (18.7 KB)

Hello,

1) l'affichage des dates : simplifié et unifié le code

Sympa ça !

feragauche(), feradroite()

Heu... c'est quoi ces noms ? Pquoi pas aligner_gauche, aligner_droite ?

4) simplifié et accéléré le calcul des notes en utilisant ereg_replace au lieu de strpos

Faut voir avec Arno pour la compatibilité Scarabée....

mais je préfère que vous y jetiez un oeil avant. (fichier ci-joint).

Bon alors :

Eviter les accents dans les commentaires PHP. Quant aux accents dans le code,
utiliser un éditeur qui les laisse au format "standard" (genre iso-8859-1 ;-))
cf. "brève" qui apparaît avec un petit carré blanc chez moi.

Remettre le trim() sur le $lien_url. ($lien_url = trim(...))
Sur l'expression régulière des liens, rajouter qu'il ne faut pas de crochet ouvrant
non plus à l'intérieur (au cas où le type fait un lien à l'intérieur d'un texte
déjà entre crochets : prendre le lien et non le texte qui est avant).

Essayer sous PHP3 aussi, pour être sûr (à moins que tu ne l'aies déjà fait !).

Heu, ça n'a rien à voir, mais ce serait possible d'intégrer aussi
"enlettres.php3" en le nettoyant et en lui donnant un nom potable ? :)))

a+

Antoine.

WGX, un système à la PHPNuke, mais avec des trucs sympas :

- système de templates avec agrégation dans des layouts
- système de cache pour les templates (pas les pages entières,
apparemment)

Par contre, la templatisation est largement moins fine que dans SPIP.
Et la licence est bizarre (pas GPL).

http://www.webgenerator-x.com/

a+

Antoine.

> feragauche(), feradroite()
Heu... c'est quoi ces noms ? Pquoi pas aligner_gauche, aligner_droite ?

OK, j'ai changé les noms

> 4) simplifié et accéléré le calcul des notes en utilisant ereg_replace au lieu de strpos
Faut voir avec Arno pour la compatibilité Scarabée....

Arno ?

Eviter les accents dans les commentaires PHP. Quant aux accents dans le code,
utiliser un éditeur qui les laisse au format "standard" (genre iso-8859-1 ;-))
cf. "brève" qui apparaît avec un petit carré blanc chez moi.

OK, j'ai mis un chr(232) à la place (on devrait faire ça partout)

Remettre le trim() sur le $lien_url. ($lien_url = trim(...))

OK

Sur l'expression régulière des liens, rajouter qu'il ne faut pas de crochet ouvrant
non plus à l'intérieur (au cas où le type fait un lien à l'intérieur d'un texte
déjà entre crochets : prendre le lien et non le texte qui est avant).

OK

Essayer sous PHP3 aussi, pour être sûr (à moins que tu ne l'aies déjà fait !).

Oui

Heu, ça n'a rien à voir, mais ce serait possible d'intégrer aussi
"enlettres.php3" en le nettoyant et en lui donnant un nom potable ? :)))

Bon, je m'arrête là. La nouvelle version de inc_texte est dans
devel/1.0beta12 ;

Parmi les améliorations nouvelles par rapport à hier, il faut noter que

* propre() et typo() sont maintenant totalement inoffensives sur les liens
html <A HREF="...>

* ces deux fonctions fonctionnent mieux qu'avant dans les situations limites
(par exemple un ; juste en début de texte -- ou juste après un appel de
note)

* la plupart des codes intégrés les uns dans les autres devraient marcher
    [coucou [[note[lien->url] ]] [texte->article123] ]
mais ça n'est pas parfaitement au point (il faudrait un analyseur syntaxique
qui dépasse mes compétences...)

-- Fil

Hello,

OK, j'ai mis un chr(232) à la place (on devrait faire ça partout)

J'ai fini de remplacer les autres caractères "spéciaux" par leurs
codes ascii : « » °. J'ai téléchargé le inc_texte correspondant
dans la beta12. (je ne sais pas s'il faut la passer manuellement
dans le répertoire distrib ?)

a+

Antoine.

Hello,

Petite réflexion à propos de la présentation des articles
dans le back-office : c'est pas clair. Les couleurs ne
sont pas homogénéisées, et à certains endroits (auteurs),
il y a trop d'informations présentées à la fois, ce qui
rend très confuse la vue d'ensemble.

(d'ailleurs, je persiste à dire qu'en espaçant les blocs,
ce serait plus lisible)

a+

Antoine.

@ Antoine Pitrou (pitrou@free.fr) :

Hello,

> OK, j'ai mis un chr(232) à la place (on devrait faire ça partout)

J'ai fini de remplacer les autres caractères "spéciaux" par leurs
codes ascii : « » °. J'ai téléchargé le inc_texte correspondant
dans la beta12. (je ne sais pas s'il faut la passer manuellement
dans le répertoire distrib ?)

Ce sera pour la prochaine distrib ! :wink:

-- Fil

Salut,

Je viens d'installer un nouveau fichier TODO.txt (copie ci-dessous).

Quelques précisions...

- La commande {1/3}, {2/3}, {3/3} dans les boucles ne devrait pas être très difficile à implémenter, et elle me semble importante. Elle permet en effet de faire des tableaux à plusieurs colonnes à peu près équilibrées. (Voir la page d'accueil de canevet.com; on ne peut reproduire cela qu'avec deux boucles {1/2} pour les rubriques à gauche, et {2/2} pour ceux de droite.)

- La sélection selon les dates, dans les boucles, est également importante, mais réclame une grammaire très précise et très cohérente. Exemple de contradiction:
      - {date<12/4/2000} ou {date<4/2000}, pour les articles AVANT avril 2000;
      - mais: {date < 2 mois} pour articles depuis 2 mois.
Contradiction évidente: le signe "<" indique dans le premier cas une date "avant", dans le second, une date "après". Donc faut trouver une méthode plus claire (dans le second cas, le mot "depuis", par exemple?)

- Pour la doc dans uZine, il faut qu'on définisse précisément une structure et ce qu'on met en ligne. En effet, les docs du libre, foisonnantes, ont généralement pour premier effet de décourager l'utilisateur. SPIP est par définition très simple à installer et utiliser: il ne faudrait pas qu'une doc mal foutue donne l'impression contraire.

- En tout état de cause: pas de "1.0" avant que ce soit la release officielle, avec les docs et les squelettes qui vont bien. En effet, (1) il ne faut pas donner l'impression qu'on a une release officielle alors qu'on n'est pas prêts (franchement, j'ai pas envie d'arrêter de travailler pour faire face aux questions liées à une documentation incomplète); (2) la 1.0 ne doit plus faire l'objet d'aucune mise à jour: les mise-à-jour, c'est une élément de complexité, donc il faut les éviter au maximum (les réserver aux dingues qui veulent tester toutes les nouvelles versions).

- Pour la 1.1, intégrer des fonctions de groupware, permettant de faciliter le travail coopératif. Par exemple, Vacarme utilise déjà SPIP pour "fabriquer" le journal papier via l'interface Web (ils ont ouvert une rubrique consacrée au prochain numéro, dans laquelle rien n'est "publié" en ligne, mais dans laquelle les rédacteurs installent et discutent ces articles); je crois bien qu'un système permettant de passer des messages, de fixer des rendez-vous... serait alors très pratique. En plus, c'est pas bien compliqué à faire. (Pour le calendrier, voyez la page "cachée" actuellement: /ecrire/calendrier.php3.)

De plus, pour la 1.0, supprimer le système de "mémos", trop mal branlé.

- Pour la 1.2, système d'UPLOAD de fichiers... Notamment "traitement par lot". Par exemple, pour Voltaire, ils ont 7000 documents à intégrer, déjà plus ou moins formatés, qu'un tel traitement automatiquement permettrait d'nitégrer facilement. En l'abscence de ce système, évidemment ils ne peuvent pas intégrer ces 7000 documents "à la main"...

TODO.txt ==================

POUR LA RELEASE 1.0

ARNO* wrote:

- Dans les boucles, sélection selon les dates:
        {date<12/4/2000}: avant le 12/4/2000
        {date>12/4/2000}: après le 12/4/2000

Marche déjà avec des dates au format mysql :
<BOUCLE3(ARTICLES){tout}{date > 2001-03-12}{par date}{0,5}>

        {date depuis 2 mois}: articles depuis 2 mois (trouver une
formulation cohérente)

Suffit de mettre "age" à la place, et de remplacer "age" par
TO_DAYS(DATE_SUB(NOW(), date)). Mettre le paramètre de droite
en jours, ce qui est le plus logique : {age < 60}

- Dans les boucles, une commande de type {1/3} pour "découper" les
résultats en fonction du nombre de résultats. Ainsi: {1/4} retourne
le premier quart des résultats, (2/4) le second quart, etc.

Est-ce indispensable pour la 1.0 ?

- Dans "Configuration précise", envoi d'un mail du "quoi de neuf"
(façon uZine) avec délais fixé (en nombre de jours). C'est-à-dire,
pour envoyer tous les x jours la liste des nouveautés du site à
l'adresse xxx@monsite.com.

Mmmh, et le texte du mail, comment est-il configuré ?
Est-ce dans un fichier texte ?

- Logos pour auteurs et brèves (comme pour les articles et les rubriques).

Idem : vraiment indispensable ?

- Possibilité de lier une "grande" image à une image d'un article,

Itou.

- Activer/désactiver la mise en ligne des articles avant leur date de
mise en ligne.

Tambien.

- En revanche, prévoir un pseudo-tag
#INSCRIPTION_REDACTEUR dans inc-calcul.php3 (parce que sinon, c'est
assez lourdingue à faire...).

Notons quand même que la fonction mail() n'a pas dû être testée sur
bcp d'hébergeurs, si ?

de cette manière, si quelqu'un veut faire la traduction, il n'a plus
qu'un fichier à modifier.

Ne pas oublier qu'il y a de plus en plus de textes présents sous
forme graphique (nouvelle interface).

De manière générale, je pense qu'il y a des gens qui seraient bien
contents de bosser avec SPIP tout de suite (même si c'est semi-documenté
et que toutes les fonctionnalités de l'espace ne sont pas là) plutôt
que d'attendre des mois ;))

a+

Antoine.

Suffit de mettre "age" à la place, et de remplacer "age" par
TO_DAYS(DATE_SUB(NOW(), date)). Mettre le paramètre de droite
en jours, ce qui est le plus logique : {age < 60}

Tu peux le faire (parce que moi, le moins je touche à inc-calcul, le mieux c'est :-))?

=== Les fonctions "pas indispensables"

Ce sont des fonctions à mon avis très faciles à implémenter, et qui permettraient de réellement "parachever" le truc. Ce serait dommage de s'en priver.

En général: il faut que la 1.0 soit complète, et qu'il n'y ait plus, ensuite, de mise-à-jour "mineures". C'est-à-dire que, pour les raisons de facilité d'installation/utilisation, le type installe SPIP et n'y touche plus. Si, dans les 15 jours qui suivent, on sort 5 mise à jour pour déplacer des virgules (c'est-à-dire des fonctions très pratiques et pourtant très simples), ce sera pas bon du tout.

Notons quand même que la fonction mail() n'a pas dû être testée sur
bcp d'hébergeurs, si ?

Ah oui, c'est vrai. Cela dit, toutes ces fonctions sont "optionnelles". Il faut que, dans le "config précise", j'indique que certains hébergeurs désactivent la fonction de mail, et que ça peut ne pas fonctionner...

De manière générale, je pense qu'il y a des gens qui seraient bien
contents de bosser avec SPIP tout de suite (même si c'est semi-documenté
et que toutes les fonctionnalités de l'espace ne sont pas là) plutôt
que d'attendre des mois ;))

Ces gens-là, ils n'ont qu'à passer par "spip-dev".

Le GROS soucis n'est pas, dans l'absolu, le fait de présenter un boulot par terminé. Le problème est indirect: si produit pas terminé, pas documenté, ou nécessité de mises à jour régulières, on va se taper 2000 messages par jour façon Medito: "ça marche pas, j'y connais rien, j'y pige rien, alors aidez-moi".

Le but à atteindre avant la release 1.0, c'est donc celui-ci: tout mettre en place pour qu'on ne soit pas submergé par les appels à l'aide. D'où la doc bien branlée et des squelettes clé-en-main.

Amicalement,
ARNO*

Salut,

Il y avait un bug qui interdisait le fonctionnement des "tableaux" dans les raccourcis SPIP. Donc nouvelle version de inc-texte.php3 dans la beta 12. Faudrait mettre ça aussi dans DISTRIB, parce que c'est un bug chiant...

Amicalement,
ARNO*

Hello,

Tu peux le faire (parce que moi, le moins je touche à inc-calcul, le
mieux c'est :-))?

Ok !

>De manière générale, je pense qu'il y a des gens qui seraient bien
>contents de bosser avec SPIP tout de suite (même si c'est semi-documenté
>et que toutes les fonctionnalités de l'espace ne sont pas là) plutôt
>que d'attendre des mois ;))

Ces gens-là, ils n'ont qu'à passer par "spip-dev".

Je suis entièrement d'accord. Mais encore faudrait-il qu'ils soient
au courant :wink: Le numéro et la qualification de ce qu'on sort importe
peu, par contre de l'extérieur je ne pense pas que l'état utilisable
et fonctionnel de SPIP soit très perceptible.

Le but à atteindre avant la release 1.0, c'est donc celui-ci: tout
mettre en place pour qu'on ne soit pas submergé par les appels à
l'aide. D'où la doc bien branlée et des squelettes clé-en-main.

Oui, squelettes et (surtout) docs - les squelettes de base étant
vraiment ok pour moi. Mais ça fait déjà des mois que ça devrait être
la priorité. Or, pas grand'chose n'a été fait dans ce rayon.....

Sinon, pour les mises à jour, il ne faut pas se leurrer : un soft
sans bugs et sans problèmes, ça n'existe pas :wink: (y compris dans
le monde du logiciel sérieux et/ou commercial, et cette observation
ne se limite pas à Microsoft).

a+

Antoine.

ARNO* wrote:

>Suffit de mettre "age" à la place, et de remplacer "age" par
>TO_DAYS(DATE_SUB(NOW(), date)). Mettre le paramètre de droite
>en jours, ce qui est le plus logique : {age < 60}

C'est fait. En passant, j'ai aussi corrigé un bug chiant sur
les boucles récursives (inc-calcul.php3).

a+

Salut tout le monde,

Je viens d’installer une version beta 13. Au rayon des nouveautés:

  • Absolument futile mais indispensable: dans “Modifier l’interface”, on peut choisir la couleur des listes (et quelques autres éléments graphiques). Bon, c’est totalement con, m’enfin comme ça, celui qui n’aime pas le bleu foncé et le bleu clair peut choisir encore plus moche… (si vous réussissez à supporter l’interface violette sans vomir, vous gagnez la prochaine mise-à-jour de SPIP gratuite)

  • Bon, du coup j’en ai profité pour changer les feuilles de style des formulaires, que certains trouvaient peu lisibles.

  • Le gros morceau: j’ai beaucoup avancé sur l’aide en ligne. Elle comporte désormais 29 articles détaillés. Certains des anciens sont mis à jour (voir notamment les nouveaux raccourcis typographiques), et leurs images sont modifiées pour intégrer la nouvelle interface.

Amicalement,
ARNO*

Le Scarabée : http://www.scarabee.com
uZine 2 : http://www.minirezo.net

DH/DSS, 0x11930F0B, DEEB 602D B344 644B AF88 BF73 85F4 2297 1193 0F0B

ARNO* wrote:

- Le gros morceau: j'ai beaucoup avancé sur l'aide en ligne. Elle comporte désormais 29 articles détaillés. Certains des anciens sont mis à jour (voir notamment les nouveaux raccourcis typographiques), et leurs images sont modifiées pour intégrer la nouvelle interface.

Une idée comme ça : ne présenter qu'aux administrateurs les parties qui
les concernent uniquement (installation, configuration). Ainsi, les
rédacteurs ont une aide plus simple sous les yeux.

@ Arno* (arno@scarabee.com) :

Je viens d'installer une version beta 13. Au rayon des nouveautés:

- Absolument futile mais indispensable: dans "Modifier l'interface",
on peut choisir la couleur des listes (et quelques autres éléments

Pas si bête : si tu gères plusieurs spip, ça te permet de faire qu'ils ne se
ressemblent pas trop, et donc de mieux les distinguer mentalement.

- Bon, du coup j'en ai profité pour changer les feuilles de style des
formulaires, que certains trouvaient peu lisibles.

Oui, c'est mieux chez moi.

- Le gros morceau: j'ai beaucoup avancé sur l'aide en ligne. Elle
comporte désormais 29 articles détaillés. Certains des anciens sont
mis à jour (voir notamment les nouveaux raccourcis typographiques),
et leurs images sont modifiées pour intégrer la nouvelle interface.

Comment fait-on pour apporter des corrections et ajouts ? Tu mets la doc
dans devel/DOC/ ??

-- Fil