Surcharge de la balise #INTRODUCTION

Bonjour,

Souhaitant que la balise #INTRODUCTION ne prenne pas en compte le champ de descriptif, j'ai fait une surcharge dans le fichier mes_fonctions.php comme ça (il s'agit de SPIP 1.9.3 SVN) :

function balise_INTRODUCTION($p) {

$type = $p->type_requete;

$_texte = champ_sql('texte', $p);
$_descriptif = "''";

if ($type == 'articles') {
  $_chapo = champ_sql('chapo', $p);
  $_descriptif = champ_sql('descriptif', $p);
  $_texte = "(strlen($_descriptif) OR chapo_redirigetil($_chapo))
  ? ''
  : $_chapo . \"\\n\\n\" . $_texte";
}

// Ligne ajoutée pour supprimer #DESCRIPTIF
$_descriptif = "''";

...

Et ça marche. Mais je ne comprends pas très bien ce que je fais là. Et je me demande s'il y a une façon « plus propre » pour faire cela ?

Est-ce que d'autres parmi vous faites des surcharges d'#INTRODUCTION ?

merci, Paolo

Tu veux faire quoi précisément ?

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de
Paolo
Envoyé : jeudi 28 février 2008 17:18
À : spip@rezo.net
Objet : [Spip] Surcharge de la balise #INTRODUCTION

Bonjour,

Souhaitant que la balise #INTRODUCTION ne prenne pas en compte le champ de
descriptif, j'ai fait une surcharge dans le fichier mes_fonctions.php comme
ça
(il s'agit de SPIP 1.9.3 SVN) :

function balise_INTRODUCTION($p) {

$type = $p->type_requete;

$_texte = champ_sql('texte', $p);
$_descriptif = "''";

if ($type == 'articles') {
  $_chapo = champ_sql('chapo', $p);
  $_descriptif = champ_sql('descriptif', $p);
  $_texte = "(strlen($_descriptif) OR chapo_redirigetil($_chapo))
  ? ''
  : $_chapo . \"\\n\\n\" . $_texte";
}

// Ligne ajoutée pour supprimer #DESCRIPTIF
$_descriptif = "''";

...

Et ça marche. Mais je ne comprends pas très bien ce que je fais là. Et je me

demande s'il y a une façon « plus propre » pour faire cela ?

Est-ce que d'autres parmi vous faites des surcharges d'#INTRODUCTION ?

merci, Paolo

_______________________________________________
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
FAQ : http://www.spip.net/fr_article1054.html

Paolo wrote:

Et ça marche. Mais je ne comprends pas très bien ce que je fais là. Et je me demande s'il y a une façon « plus propre » pour faire cela ?

Non, je crois bien que c'est la méthode propre justement, enlever le _dist et mettre la nouvelle fonction perso dans mes_fonctions.

Samy RABIH wrote:

Tu veux faire quoi précisément ?

Je veux que #INTRODUCTION donne toujours les premiers X mots de #CHAPO + #TEXTE, qu'il y ait ou non du texte dans le champ descriptif (que nous utilisons pour autre chose qu'un texte descriptif).

Paolo

BoOz wrote:

enlever le
_dist et mettre la nouvelle fonction perso dans mes_fonctions.

Oui, BoOz, ça je sais. C'est juste que cela me deplaît que la fonction commence en mettant
$_descriptif = "''";

continue en lui attribuant une valeur, puis plus loin, de nouveau je fais :
$_descriptif = "''";

pour le remettre à zéro. Je me suis juste dit que (si seulement je comprenais mieux le code) il doit avoir une meilleure façon d'arriver à la même chose.

Mais... en général la vie est si belle, je peux vivre avec :slight_smile:

Paolo

Paolo a écrit :

BoOz wrote:

enlever le
_dist et mettre la nouvelle fonction perso dans mes_fonctions.

Oui, BoOz, ça je sais. C'est juste que cela me deplaît que la fonction commence en mettant
$_descriptif = "''";

continue en lui attribuant une valeur, puis plus loin, de nouveau je fais :
$_descriptif = "''";

pour le remettre à zéro. Je me suis juste dit que (si seulement je comprenais mieux le code) il doit avoir une meilleure façon d'arriver à la même chose.

Mais... en général la vie est si belle, je peux vivre avec :slight_smile:

de memoire, il y a un mecanisme specifique pour l'introduction, il suffit de faire une function introduction ($type, $texte, $chapo, $descriptif) et de la mettre dans mes_fonctions.

@++