trier titres par taille

Bonjour,

existe t'il une balise pour trier les titres de rubrique par leur nombre
de caractères ?

j'utilise ceci:

<?php $ordre_naturel=0; ?>
<BOUCLE_rubriques(RUBRIQUES){racine}>
<?php
$titre_atrier[$ordre_naturel]='#TITRE';
$url_atrier[$ordre_naturel]='#URL_RUBRIQUE';
$ordre_naturel++;
?>
</BOUCLE_rubriques>
<?php
for($i=0;$i<$ordre_naturel;$i++){
  $longueur_titre[$i][0]=strlen($titre_atrier[$i]);
  $longueur_titre[$i][1]=$url_atrier[$i];
  $longueur_titre[$i][2]=$titre_atrier[$i];
}
sort($longueur_titre);
for($i=0;$i<$ordre_naturel;$i++){
echo "<div class=\"menu\"<a href=\"".$longueur_titre[$i][1]."\">".$longueur_titre[$i][2]."</a></div>";

}
?>

à part le code pépère, existe t'il une balise du genre {par taille} ou
{par longueur} voire {par taille_longueur} .. j'en ai essayé pas mal;
mais le vocabulaire me manque ... pour vous dire comment spip est
magique pour moi.

gilles

gilles wrote:

Bonjour,

existe t'il une balise pour trier les titres de rubrique par leur nombre
de caractères ?

à part le code pépère, existe t'il une balise du genre {par taille} ou
{par longueur} voire {par taille_longueur} .. j'en ai essayé pas mal;
mais le vocabulaire me manque ... pour vous dire comment spip est
magique pour moi.

gilles

Les critères {par XXX} corespondent à un champ de la table correspondant à l'objet (articles, rubriques, etc.).

Et il n'y a pas de champ longueur (mais SPIP 1.8 (2.0 ?) permettra de le créer).

--

Olivier G.
http://talath.no-ip.info/~carmine/blog/dotclear/index.php/

On Sat, Aug 21, 2004 at 12:03:38PM +0200, Olivier GENDRIN wrote:

gilles wrote:
>Bonjour,
>
>existe t'il une balise pour trier les titres de rubrique par leur nombre
>de caractères ?
>

Les critères {par XXX} corespondent à un champ de la table correspondant
à l'objet (articles, rubriques, etc.).

ouf, je n'ai donc pas cherché pour rien, je me doutais un peu de ceci
car en faisant un grep sur ' titre' dans ecrire/, je n'ai trouvé en gros
que des requetes sql.

Sinon, tu veux dire que si je rajoute un champs 'longueur' dans la table
rubrique, je peux y placer les longueurs avec un script et ensuite
refaire ma boucle avec {par longueur} en imaginant que ce champs
s'appelle longueur, ça risque de marcher ? en attendant la version 2,
bien sûr.

gilles

gilles wrote:

On Sat, Aug 21, 2004 at 12:03:38PM +0200, Olivier GENDRIN wrote:

gilles wrote:

Bonjour,

existe t'il une balise pour trier les titres de rubrique par leur nombre
de caractères ?

Les critères {par XXX} corespondent à un champ de la table correspondant à l'objet (articles, rubriques, etc.).

ouf, je n'ai donc pas cherché pour rien, je me doutais un peu de ceci
car en faisant un grep sur ' titre' dans ecrire/, je n'ai trouvé en gros
que des requetes sql.

Sinon, tu veux dire que si je rajoute un champs 'longueur' dans la table
rubrique, je peux y placer les longueurs avec un script et ensuite
refaire ma boucle avec {par longueur} en imaginant que ce champs
s'appelle longueur, ça risque de marcher ? en attendant la version 2,
bien sûr.

Heu. Non, je pense que ça ne marchera pas, mais tu peux essayer. Mais ça fonctionnera avec SPIP 1.8 (2.0 ?).

--

Olivier G.
http://talath.no-ip.info/~carmine/blog/dotclear/index.php/

existe t'il une balise pour trier les titres de rubrique par leur nombre
de caractères ?

Ce qui est dans {par ...} est passé tel quel à MySQL, tu dois donc pouvoir
trier comme suit :

<BOUCLE1(ARTICLES){par LENGTH(titre)}{inverse}{0,5}>
#PUCE #TITRE, taille = [(#TITRE*|strlen)]
</BOUCLE1>

$titre_atrier[$ordre_naturel]='#TITRE';

Ne fais jamais ça malheureux sans utiliser |texte_script :
$titre_atrier[$ordre_naturel]='[(#TITRE|texte_script)]';
sinon les trous de sécurité vont te manger tout cru !

Ca pourrait faire une jolie contrib dans la caverne aux boucles...

-- Fil

On Sun, Aug 22, 2004 at 02:02:24AM +0200, Fil wrote:

> existe t'il une balise pour trier les titres de rubrique par leur nombre
> de caractères ?

Ce qui est dans {par ...} est passé tel quel à MySQL, tu dois donc pouvoir
trier comme suit :

<BOUCLE1(ARTICLES){par LENGTH(titre)}{inverse}{0,5}>
#PUCE #TITRE, taille = [(#TITRE*|strlen)]
</BOUCLE1>

yop, on voit que tu es né sur un 18m, toi.

> $titre_atrier[$ordre_naturel]='#TITRE';

Ne fais jamais ça malheureux sans utiliser |texte_script :
$titre_atrier[$ordre_naturel]='[(#TITRE|texte_script)]';
sinon les trous de sécurité vont te manger tout cru !

Ca pourrait faire une jolie contrib dans la caverne aux boucles...

bein, c'est que je ne sais pas trop comment ça marche le serveur
contrib. C'est pas chez moi, j'ose pas cliquer sur login. Mais promis,
dès que je mets en ligne quelque chose de ce genre avec un tainted comme
tu viens de me le montrer, je proposerai un article.

Dessiner avec les lignes porte un nom dont je ne me rapelle plus. J'ai
un poème comme ça dessiné sous la forme d'une bouteille et puis il y a
mon martien :slight_smile: http://bermudos.free.fr/IMG/rubon1.jpg .. dommage, il
s'est fait manger sur www.geocities.com, je l'avais fais version femme
avec des gros LOLOLOLOLO.

gilles

Bonjour, j’ai une erreur de ce type :

password: NO) in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

Warning: mysql_query(): A link to the server could not be established in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

Quelqu’un peut me dire ce qui se passe ?

Merci d’avance pour la réponse.

Athama

On Sun, Aug 22, 2004 at 10:55:53AM +0200, Athama Ashen wrote:

Bonjour, j'ai une erreur de ce type :

password: NO) in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

bonjour, il manque un bout de l'erreur. ce n'est pas grave. c'est que
normalement ce genre d'erreur est:

# mysqldump merbude
-- MySQL dump 9.09
--
-- Host: localhost Database: merbude
---------------------------------------------------------
-- Server version 4.0.15
mysqldump: Got error: 1044: Access denied for user: 'root@localhost' to database

pour ce qui est de la connexion à la base de données par un autre
utilisateur que celui qui y est permis. Et, on trouve à peu près la même
erreur, mais plus volubile lorsqu'il s'agit d'un utilisateur authentifié
sur cette base mais sans le mot de passe.

# mysqldump merbude -u spip-admin
mysqldump: Got error: 1045: Access denied for user: 'spip-admin@localhost' (Using password: NO) when trying to connect

Il en reste une dernière qui est que l'utilisateur n'existe pas pour la
table mysql.user:

# mysqldump merbude -u spip-adm
-- MySQL dump 9.09
--
-- Host: localhost Database: merbude
---------------------------------------------------------
-- Server version 4.0.15
mysqldump: Got error: 1044: Access denied for user: '@localhost' to database 'merbude' when selecting the database

La tienne ressemble à la seconde. Ce ne doit être qu'un problème
d'authentification avec les GRANT de mysql. Peut être qu'en flushant les
permissions, tu obtiendras quelque chose. Sinon, des fois il suffit de
faire redémarrer le serveur MySQL ou au moins le réveiller avec mysqladmin

être root ne suffit parfois pas

# mysqladmin flush-privileges
mysqladmin: reload failed; error: 'Access denied. You need the RELOAD privilege for this operation'

il faut dans ce cas lui donner ce qu'il te manque.

# mysqladmin flush-privileges -u spip-admin --password=******* (secret)

Warning: mysql_query(): A link to the server could not be established in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

Là, c'est spip qui s'énerve et qui en remet une couche.

Quelqu'un peut me dire ce qui se passe ?

En espérant que cette erreur ait disparue, car j'ai gardé ton message
depuis ce matin en espérant que quelqu'un l'avait déjà vue et ne peux te
laisser sans réponse. Même succinte. Dis en plus. Qu'as tu été remplir et
as tu essayé autre chose (voire effacer ecrire/inc_connect.php3)

sinon, 8a8bb31e8a4f697a914688013f8bf310 c'est le md5sum de quoi ?
l'opération inverse n'existe pas et c'est un peu frustrant de ne pas
avoir 16^32 minutes pour le trouver durant sa chienne de vie.

gilles

sinon, 8a8bb31e8a4f697a914688013f8bf310 c'est le md5sum de quoi ?
l'opération inverse n'existe pas et c'est un peu frustrant de ne pas
avoir 16^32 minutes pour le trouver durant sa chienne de vie.

bermudos@tatooine:~$ dc -e '16 32 ^ f'
340282366920938463463374607431768211456
bermudos@tatooine:~$ dc -e '32 16 ^ f'
1208925819614629174706176

pardon, j'ai du faire une erreur de jugement sur la distributivité d'un
exposant.

gilles

Bonjour Gilles,

Je n’ai pas toujours la solution. Je te remets ici l’erreur. Ce qui est drôle c’est que cette erreur n’apparait que sur une seule page.
Merci de tes lumières si tu peux me conseiller sur la marche à suivre.

Athama

Warning: mysql_query(): Access denied for user: ‹ httpd@localhost › (Using password: NO) in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

Warning: mysql_query(): A link to the server could not be established in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25



Warning: mysql_query(): Access denied for user: ‹ httpd@localhost › (Using password: NO) in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

Warning: mysql_query(): A link to the server could not be established in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

On Sun, Aug 22, 2004 at 10:55:53AM +0200, Athama Ashen wrote:

Bonjour, j’ai une erreur de ce type :

password: NO) in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

bonjour, il manque un bout de l’erreur. ce n’est pas grave. c’est que
normalement ce genre d’erreur est:

mysqldump merbude

– MySQL dump 9.09

– Host: localhost Database: merbude

– Server version 4.0.15
mysqldump: Got error: 1044: Access denied for user: ‹ root@localhost › to database

pour ce qui est de la connexion à la base de données par un autre
utilisateur que celui qui y est permis. Et, on trouve à peu près la même
erreur, mais plus volubile lorsqu’il s’agit d’un utilisateur authentifié
sur cette base mais sans le mot de passe.

mysqldump merbude -u spip-admin

mysqldump: Got error: 1045: Access denied for user: ‹ spip-admin@localhost › (Using password: NO) when trying to connect

Il en reste une dernière qui est que l’utilisateur n’existe pas pour la
table mysql.user:

mysqldump merbude -u spip-adm

– MySQL dump 9.09

– Host: localhost Database: merbude

– Server version 4.0.15
mysqldump: Got error: 1044: Access denied for user: ‹ @localhost › to database ‹ merbude › when selecting the database

La tienne ressemble à la seconde. Ce ne doit être qu’un problème
d’authentification avec les GRANT de mysql. Peut être qu’en flushant les
permissions, tu obtiendras quelque chose. Sinon, des fois il suffit de
faire redémarrer le serveur MySQL ou au moins le réveiller avec mysqladmin

être root ne suffit parfois pas

mysqladmin flush-privileges

mysqladmin: reload failed; error: ‹ Access denied. You need the RELOAD privilege for this operation ›

il faut dans ce cas lui donner ce qu’il te manque.

mysqladmin flush-privileges -u spip-admin --password=******* (secret)

Warning: mysql_query(): A link to the server could not be established in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

Là, c’est spip qui s’énerve et qui en remet une couche.

Quelqu’un peut me dire ce qui se passe ?

En espérant que cette erreur ait disparue, car j’ai gardé ton message
depuis ce matin en espérant que quelqu’un l’avait déjà vue et ne peux te
laisser sans réponse. Même succinte. Dis en plus. Qu’as tu été remplir et
as tu essayé autre chose (voire effacer ecrire/inc_connect.php3)

sinon, 8a8bb31e8a4f697a914688013f8bf310 c’est le md5sum de quoi ?
l’opération inverse n’existe pas et c’est un peu frustrant de ne pas
avoir 16^32 minutes pour le trouver durant sa chienne de vie.

gilles


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip

On Mon, Aug 23, 2004 at 02:10:22PM +0200, Athama Ashen wrote:

Bonjour Gilles,

bonjour athama,

Warning: mysql_query(): Access denied for user: 'httpd@localhost' (Using password: NO) in /home/www/8a8bb31e8a4f697a914688013f8bf310/web/ecrire/inc_db_mysql.php3 on line 25

comme il est dit dans le texte, l'utilisateur httpd n'a pas le droit
d'acceder à des données de la base pour laquelle est configuré spip.

On connait déjà le nom de l'utilisateur qui intente l'accès. On sait
aussi qu'il le fait sans mot de passe. Il donnerait un mot de passe,
il y aurait 'yes' au lieu de 'no' à using password.

Tu m'as dis aussi que cela n'arrivait que sur une seule page.

Deux ou trois pistes:

- regarder quel est le nom de cet utilisateur dans le fichier
  ecrire/inc_connect.php3. Déjà, cela te rassurera quant à ce httpd
  qui est le processus du serveur apache.

- déterminer quelle est la page qui fait l'erreur et renommer son
  squelette autrement pour retrouver celui de spip.

- lire les logs de mysql. Ils sont dans /var/lib/mysql/nom.machine.err

- il pourrait aussi y en avoir dans /var/lib/mysql/mysql.log si tu
  lançais ton serveur mysql avec l'option --log=/var/lib/mysql/mysqld.log.
  Cette option s'insere facilement dans /etc/init.d/mysql (ou
  /etc/rc.d/init.d/mysql selon ta distribution) au niveau de

      # Give extra arguments to mysqld with the my.cnf file. This script may
      # be overwritten at next upgrade.

  l'écoute pas, on ne change pas de serveur tous les jours et quand bien
  même ce n'est pas une option à conserver (taille du fichier). Tu ajoutes
  l'option avant le dernier '&' de la ligne qui suit et qui lance le serveur.

  Tu pourrais y lire:

040823 14:40:13 5541 Connect www-data@localhost on weather
                   5541 Query INSERT INTO datas (DATA,MONTH,DAY,YEAR,TIME,AMPM,EDT,TIMEUTC,WINDFROM,WINDEGREE,WINDSPEED,VISIBILITY,TEMPC,DEW,HUMIDITY,PRESSURE,OB) VALUES ('','Aug','23,','2004','08:00','AM','EDT','1200','S','(190 degrees) ','21','7','78','60','54%','30.06','LFLL 231200Z 19018G33KT 160V230 9999 FEW043 SCT100 26/16')
040823 14:39:59 5541 Quit

  par exemple, où on voit ici que l'utilisateur est www-data est non pas
  httpd. Il n'y a pas d'erreur d'émise ici. Ce ne sont que les requètes.

- placer un arobase d'échappement de l'erreur au début de la ligne 25.

ouala, je crois qu'il y en a déjà pas mal pour t'occuper et peut être
réparer le problème.

gilles