[spip-dev] install pas belle suite

Salut les zamis. Si on ne veut pas avoir ce problème encore et encore, je
suggère qu'on mette, au cas où inc_connect.php3 n'exsite pas, un getil
message d'erreur et un pointeur vers la doc plutpot que ces horreurs
php-esques. Ce n'est pas la première fois qu'on en parle, je sais :wink:

(messages renvoyés avec permission)

----- Forwarded message from Gregory <greg.fichet@free.fr> -----

Ben, ça commence mal ! il manque un fichier dans le .zip.

----- End forwarded message -----

----- Forwarded message from Gregory <greg.fichet@schoolangels.com> -----

Bonjour,

J'ai dézippé le fichier .zip (je n'ai pas encore regardé le .tar.gz)
J'ai tout copié violemment comme indiqué dans le mail et ça donne :

Warning: Failed opening 'ecrire/inc_connect.php3' for inclusion in your script
on line 3

Warning: MySQL Connection Failed: Can't connect to local MySQL server through
socket '/var/run/mysqld/mysqld.sock' (2) in your script on line 13

Warning: -1 is not a MySQL link index in your script on line 13

Warning: 0 is not a MySQL result index in your script on line 14

Warning: Failed opening 'CACHE/d/%2Ffr.schoolangels.com%2Ftest%2Fspip%
2Findex.php3' for inclusion in your script on line 156

J'imagine bien qu'il ne peut pas se connecter à mySQL puisque je n'ai encore
rien indiqué comme password.
Après vérif, je n'ai pas le fichier inc_connect.php3.

Test sur :
http://fr.schoolangels.com/test/spip/

Voilà pour l'info

@+
Grégory

http://www.SchoolAngels.com/

Voilà, j'ai fait cette correction (un site sans 'inc_connect' affiche 'site
en travaux' en lieu et place des erreurs mysql) ; et je profite de
l'occasion pour renommer le tout 1.0-beta20/ et faire un peu de ménage sur
le site http://rezo.net/spip-dev/

@ Fil (fil@rezo.net) :

Salut,

Dans la beta 20, petite modif dans:
/ecrire/inc_texte.php3

La fonction "majuscules()" déconnait quand il y avait un "&" dans le texte à transformer. J'ai bidouillé un truc pas propre mais qui fonctionne mieux (enfin, chez moi...).

Amicalement,
ARNO*

@ Arno* (arno@scarabee.com) :

La fonction "majuscules()" déconnait quand il y avait un "&" dans le
texte à transformer. J'ai bidouillé un truc pas propre mais qui
fonctionne mieux (enfin, chez moi...).

Je viens de le reprendre et ça devrait mieux fonctionner. (fichier dans
1.0-beta20/ecrire/ )

-- Fil

@ Arno* (arno@scarabee.com) :
> La fonction "majuscules()" déconnait quand il y avait un "&" dans le
> texte à transformer. J'ai bidouillé un truc pas propre mais qui
> fonctionne mieux (enfin, chez moi...).

Je viens de le reprendre et ça devrait mieux fonctionner. (fichier dans
1.0-beta20/ecrire/ )

vois pas l'intérêt de l'appel récursif. strtoupper suffirait, non ?

@ Antoine Pitrou (pitrou@free.fr) :

> @ Arno* (arno@scarabee.com) :
> > La fonction "majuscules()" déconnait quand il y avait un "&" dans le
> > texte à transformer. J'ai bidouillé un truc pas propre mais qui
> > fonctionne mieux (enfin, chez moi...).
>
> Je viens de le reprendre et ça devrait mieux fonctionner. (fichier dans
> 1.0-beta20/ecrire/ )

vois pas l'intérêt de l'appel récursif. strtoupper suffirait, non ?

Tu dois être récursif car le premier (.*) récupère tous les accents sauf le
dernier. Ensuite tu convertis le dernier, et tu passes en majuscules() ce
qu'il y a devant (dans lequel il peut y avoir d'autres accents).

En revanche le while() est superflu, il peut être remplacé par un if() (un
seul changement à chaque itération, en remontant par la fin.

Mettons nous d'accord avant de changer le fichier une énième fois :wink:

Je propose récursif :

function majuscules($texte) {
    $suite = htmlentities($texte);
    $suite = ereg_replace('&amp;', '&', $suite);
    $suite = ereg_replace('&lt;', '<', $suite);
    $suite = ereg_replace('&gt;', '>', $suite);
    $texte = '';
    if (ereg('(.*)&([A-Za-z])([a-zA-Z]*);(.*)$', $suite, $regs)) {
        $texte .= majuscules($regs[1]);
        $suite = $regs[4];
        $carspe = $regs[2];
        $accent = $regs[3];
        if (ereg('^(acute|grave|circ|uml|cedil|slash|caron|ring|tilde|elig)$',
            $carspe = strtoupper($carspe);
        if ($accent == 'elig') $accent = 'Elig';
        $texte .= '&'.$carspe.$accent.';';
    }
    $texte .= strtoupper($suite);
    return $texte;
}

Phrase de test : "Pressions & répressions & bière à volonté pour Lætitia"

-- Fil

Fil wrote:

Tu dois être récursif car le premier (.*) récupère tous les accents sauf le
dernier. Ensuite tu convertis le dernier, et tu passes en majuscules() ce
qu'il y a devant (dans lequel il peut y avoir d'autres accents).

?? C'est bizarre, à mon avis le ereg récupère plutôt le premier
accent que le dernier.... Tu as essayé ?

Anyway, la récursivité est laide, inutile et compliquée (effets de bord
éventuels avec htmlentities multiples et autres blagues, etc.) ; le while
est là pour l'éviter - qu'il fasse les remplacements dans un sens, ou dans
l'autre. Règle d'or : toujours éviter la récursivité, quand c'est possible
(i.e. quand c'est une récursivité simple).

a+

@ Antoine Pitrou (pitrou@free.fr) :

?? C'est bizarre, à mon avis le ereg récupère plutôt le premier
accent que le dernier.... Tu as essayé ?

Bin oui ! "^(.*)" est "greedy" ("gourmant"), donc il mange autant que
possible, puis on arrive sur un accent "&([A-Za-z])([a-zA-Z]*);" puis la fin
du texte "(.*)$"

Normalement avec des vraies regexp on mettrait "^(.*?)" pour lui dire de ne
pas être gourmant, mais ereg() ne connaît pas cette syntaxe, donc il
commence par la fin.

Lbre à toi de le reprogrammer de zéro, en passaant d'abord tout en
strtoupper() puis en corrigeant tout ce qui est entre &[texte]; -- mais
attention aux exceptions, il faut relire toute la liste des caractères
spéciaux...

j'ai pas le temps d'essayer, mais un truc dans le genre :

function majuscules($texte) {
    $suite = htmlentities($texte);
    $suite = ereg_replace('&amp;', '&', $suite);
    $suite = ereg_replace('&lt;', '<', $suite);
    $suite = ereg_replace('&gt;', '>', $suite);
    $texte = '';
    while (ereg('(.*)&([A-Za-z])([a-zA-Z]*);(.*)$', $suite, $regs)) {
        $suite = $regs[1];
        $carspe = $regs[2];
        $accent = $regs[3];
        if (ereg('^(acute|grave|circ|uml|cedil|slash|caron|ring|tilde|elig)$',
            $carspe = strtoupper($carspe);
        if ($accent == 'elig') $accent = 'Elig';
        $texte = '&'.$carspe.$accent.';'.strtoupper($regs[4]).$texte;
    }
    $texte = strtoupper($suite).$texte;
    return $texte;
}

Fil wrote:

Hello,

remplacé degrade.gif (18 Ko) par degrade.jpg (3 Ko)

les icônes auteurs et brèves sont laides, faudra
les virer et les remplacer par les puces (6 fichiers
en moins).

a+

les icônes auteurs et brèves sont laides, faudra
les virer et les remplacer par les puces (6 fichiers
en moins).

Surtout pas: le but d'avoir des icones différentes, c'est pas sans raison. Ca permet à la fois d'avoir une présentation homogène des listes, et d'indiquer qu'il s'agit tout de même de choses différentes. C'est donc un élément important de l'interface. Ca semble idiot, mais c'est ce qui rend l'interface intuitive: par exemple dans la page d'un auteur, la liste est immédiatement identifiée comme étant une liste d'articles par les icônes (et non comme une liste d'autres auteurs). J'y tiens donc énormément, surtout pour d'éventuels développements de SPIP (va savoir quels types d'information on finira par afficher sur "A suivre" par exemple).

Sinon, pour la laideur, bon ben si j'y arrive j'essaierai d'en faire d'autres. Mais les icônes, c'est vraiment le truc le plus difficile d'une interface: et plus c'est petit, plus c'est difficile :slight_smile:

Pour résumer:
- d'accord pour modifier les icônes;
- totalement opposés au fait de les faire disparaître pour les remplacer par les puces.

Amicalement,
ARNO*

Salut,

Dans beta 20, minuscule modif dans :
/inc-calcul.php3

Le survol des logos avait un petit bug: la première image avec survol de la page ne fonctionnait pas.

ARNO*

Heu, hem, faut que tu refasses ta modif.
Je viens de poster un nouveau inc-calcul avec
le nouveau champ #FORMULAIRE_RECHERCHE, qui
insère un formulaire de recherche si le moteur
est activé (sinon, rien). Par défaut, ça envoie
vers recherche.php3, mais on peut le changer
en paramètre :

[Rechercher : (#FORMULAIRE_RECHERCHE|marecherche.php3)<P>]

J'ai complété le sommaire.html avec :wink:

a+

ARNO* wrote:

GENIAL !!!! Là je vois plus trop ce qui manque pour la 1.0 (à part les docs).

Bon, j'ai réinstallé ma petite modif pour le survol.

ARNO*

Coucou

Et voilà la fonction sans recursion : il suffisait d'utiliser
explode('&',$texte) et de travailler sur chaque morceau ; (testé,
et installé dans la beta20).

-- Fil

function majuscules($texte) {
    $texte = htmlentities($texte);
    $texte = ereg_replace('&amp;', '&', $texte);
    $texte = ereg_replace('&lt;', '<', $texte);
    $texte = ereg_replace('&gt;', '>', $texte);
    $zetexte = explode ('&',$texte);

    $texte ='';

    while (list($toto,$expr) = each($zetexte)){
        if (ereg('^([A-Za-z])([a-zA-Z]*);(.*)$', $expr, $regs)) {
            $carspe = $regs[1];
            $accent = $regs[2];
            $suite = $regs[3];
            if (ereg('^(acute|grave|circ|uml|cedil|slash|caron|ring|tilde|elig)$', $accent))
                $carspe = strtoupper($carspe);
            if ($accent == 'elig')
                $accent = 'Elig';
            $texte .= '&'.$carspe.$accent.';'. strtoupper($suite);
        } else
            $texte .= '&'.strtoupper($expr);
        }
    return substr($texte,1); //supprime le premier &
}