Système de notation d'articles

Bonjour,

Webmaster d'un site de BD, je souhaiterais attribuer aux albums présentés une note.

J'ai pensé à un système d'étoiles à mettre dans le surtitre, ce qui me permetrait de trier ensuite les articles par note.

Le problème, c'est que le caractère étoile "*" est très moche, l'idéal étant l'insertion automatique d'un graphisme comme c'est le cas pour les tirets "-". Ainsi "***" m'afficherait le graphisme 3etoiles.gif .

Mes questions : est-ce que quelqu'un sait comment cela est possible ou avez-vous trouvé une meilleure solution ?

Merci

Arnaud
www.bdvoreur.com

P.S. : chapeau bas aux développeurs de SPIP !

Le problème, c'est que le caractère étoile "*" est très moche, l'idéal étant
l'insertion automatique d'un graphisme comme c'est le cas pour les tirets
"-". Ainsi "***" m'afficherait le graphisme 3etoiles.gif .

Il suffit de faire un filtre. Dans le fichier /mes_fonctions.php3 tu
indiques :

<?
  function titre_etoile($titre) {
     $titre = ereg_replace("\*", "<img src='1etoile.gif' alt='*'>, $titre);
  }
?>

Et dans le squelette, tu remplaces #TITRE par [(#TITRE|titre_etoile)].
Bien sûr ton filtre peut être plus subtil que celui indiqué ci-dessus.

-- Fil

OUPS ! Lire

<?
  function titre_etoile($titre) {
     $titre = ereg_replace("\*", "<img src='1etoile.gif' alt='*'>, $titre);
     return $titre;
  }
?>

@ Fil (fil@rezo.net) :

Il suffit de faire un filtre. Dans le fichier /mes_fonctions.php3 tu

Et on peut aussi mettre directement des liens (url fixes) dans les fonctions ?
De manière que l'image soit cliquable ?
Merci
_________________________
At 14:50 12/11/2001 +0100, Fil wrote:

Il suffit de faire un filtre. Dans le fichier /mes_fonctions.php3 tu
indiques :

<?
function titre_etoile($titre) {
    $titre = ereg_replace("\*", "<img src='1etoile.gif' alt='*'>, $titre);
}
?>

Et dans le squelette, tu remplaces #TITRE par [(#TITRE|titre_etoile)].
Bien sûr ton filtre peut être plus subtil que celui indiqué ci-dessus.

----------
Perline (mailto:perline@lipietz.net)
Attachée parlementaire
d'Alain Lipietz (député européen, France, Les Verts)

Webmaitresse du site de
l'ex-Candidat des Verts à l'élection présidentielle de 2002
http://lipietz2002.net/
-------------------------------------------------------------------------

@ Perline (perline@perline.org) :

Et on peut aussi mettre directement des liens (url fixes) dans les
fonctions ? De manière que l'image soit cliquable ? Merci

Oui, bien sûr.

><?
> function titre_etoile($titre) {
> $titre = ereg_replace("\*", "<img src='1etoile.gif' alt='*'>, $titre);
> }
>?>

@ Perline (perline@perline.org) :

Et on peut aussi mettre directement des liens (url fixes) dans les
fonctions ? De manière que l'image soit cliquable ? Merci

At 22:17 12/11/2001 +0100, Fil wrote:

Oui, bien sûr.
Perline demande, genre :

><?
> function titre_etoile($titre) {
> $titre = ereg_replace("\*", <a href='http://ledomaine.com/'>"<img src='1etoile.gif' alt='*'>, $titre);
> }
>?>

----------
Perline (mailto:perline@lipietz.net)
Attachée parlementaire
d'Alain Lipietz (député européen, France, Les Verts)

Webmaitresse du site de
l'ex-Candidat des Verts à l'élection présidentielle de 2002
http://lipietz2002.net/
-------------------------------------------------------------------------

>Perline demande, genre :

presque ! Le ereg_replace(a,b,c) signifie "remplacer a par b dans c".

<?
  function titre_etoile($titre) {
     $titre = ereg_replace("\*",
        "<a href='http://ledomaine.com/'><img src='1etoile.gif' alt='*'></a>",
        $titre);
  }
?>

-- Fil

At 14:50 +0100 12/11/01, Fil wrote:

> Le problème, c'est que le caractère étoile "*" est très moche, l'idéal étant

l'insertion automatique d'un graphisme comme c'est le cas pour les tirets

> "-". Ainsi "***" m'afficherait le graphisme 3etoiles.gif .

Il y a aussi la possibilité d'utiliser des mots-clés de notation. C'est un peu plus chaud, mais peut-être plus propre: tu créés un groupe de mots-clés intitulé "Notation", et là-dedans plusieurs mots-clés successifs: "1", "2", "3"..., auxquels tu attribues des logos correspondant au nombre d'étoiles. A chaque article, tu peux ensuite attribuer un mot-clé correspondant à sa "notation".

Ensuite, il faut dans les squelettes ajouter une boucle de mot récupérant le mot-clé associé à l'article, et de "type" Notation. Afficher le logo de ce mot-clé pour obtenir la note que tu lui as attribué. C'est un peu plus difficile, mais ça me semble le meilleur moyen de contourner la limitation.

Tu peux sans doute développer encore ce système, avec plusieurs "notes" différentes par article, tels "Note pour la graphisme", "Note pour le scénario", "Note pour la qualité du papier employé" :-)) Tu peux ainsi créer un groupe de mot-clé pour chaque "note", avec comme mots à l'intérieur à chaque fois "1", "2", "3"... et créer les boucles nécessaires.

Un des axes de la version en développement (la future 1.3) est de faciliter la gestion des mots-clés dans les squelettes, ça devrait permettre de rendre ce type de procédés plus puissant. Donc à suivre...

ARNO*

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

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

Hello Perline,

P> Et on peut aussi mettre directement des liens (url fixes) dans les fonctions ?
P> De manière que l'image soit cliquable ?
P> Merci

Oui. Ta fonction devient ainsi:

<?
  function titre_etoile($titre) {
     $titre = ereg_replace("\*", "<a href='http://monsite.com'><img
     src='1etoile.gif' alt='*'></a>", $titre);
     return $titre;
  }
?>

En fait je vais t'expliquer le fonctionnement de la fonction
ereg_replace de php:

$titre = ereg_replace("1er","2ème","3ème");

Ou "1er" est le texte à chercher et à remplacer dans le texte (en cas
de caractères spéciaux tels une étoile, des guillemets, etc. mettre
"\" (antislash, sans les guillemets) devant.)

"2ème" est le texte qui remplacera le texte indiqué dans "1er", ça
peut être du code html, même remarque que pour "1er" pour les
caractères spéciaux.

"3ème" est le texte où chercher et remplacer "1er" et "2ème", ici
c'est la variable $titre.

Ainsi la fonction suivante:
ereg_replace("\*", "<a href='http://monsite.com'><img
     src='1etoile.gif' alt='*'></a>", $titre);

Signifie:
Chercher et remplacer tous les "\*" (étoiles) par "<a
href='http://monsite.com'><img src='1etoile.gif' alt='*'></a>" dans le
titre (variable $titre).

Petite remarque, si tu veux remplacer les 4, 5 etc. étoiles, il faut
mettre le plus grand nombre de caractères identiques en haut et
procéder par ordre décroissant.

Explications: Si $titre vaut "Bonjour. ** deux
étoiles * une étoile." et que notre fichier mesfonctions.php3
contient:

<?
  function titre_etoile($titre) {

     $titre = ereg_replace("\*", "<a href='http://monsite.com'><img
     src='1etoile.gif' alt='*'></a>", $titre);

     $titre = ereg_replace("\*\*", "<a href='http://monsite.com'><img
     src='2etoiles.gif' alt='**'></a>", $titre);

     return $titre;
  }
?>

Vous obtiendrez le résultat suivant:

"Bonjour. <a href='http://monsite.com'><img src='1etoile.gif'
alt='*'></a> <a href='http://monsite.com'><img src='1etoile.gif'
alt='*'></a> deux étoiles <a href='http://monsite.com'><img
src='1etoile.gif' alt='*'></a> une étoile."

Le script a reconnu vos deux étoiles comme séparées et donc il a créé
deux fois le code pour UNE étoile. Alors que si vous inversez vos deux
fonctions ereg_replace en mettant celle aux deux étoiles en premier
vous obtiendrez votre code pour les DEUX étoiles avec DEUX étoiles.

Vous pensez peut-être que ce n'est pas grave. Dans ce cas ce n'est pas
très dommageable. Mais quand vous programmez des trucs plus compliqués
pour mettre en page vos variables avec du gras ou de l'italique vous
aurez besoin de réfléchir sérieusement à l'ordre des fonctions.

Voilà, c'était le cours du jour.

à+

--
Best regards,
Dioxyde mailto:dioxyde@dioxyde.org