Bonjour,
Typiquement cet exemple devrait répondre parfaitement à mon besoin de
changer l'intitulé d'un label de champs dans le formulaire d'édition d'un
article en fonction d'un secteur ou d'une rubrique donnée (cf.
https://programmer.spip.net/formulaire_fond):

function exemple_formulaire_fond($fond) {
        if (
                $fond['args']['form'] == 'editer_article'
                and $id_parent = $fond['args']['contexte']['id_parent'];
                and $id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques',
'id_rubrique=' . intval <http://www.php.net/intval>($id_parent)
                and $id_secteur === 7
        ) {
                $fond['data'] = str_replace
<http://www.php.net/str_replace>(_T('info_sous_titre'),
_T('exemple:label_exemple'), $fond['data']);
        }
        return $fond;}

Le problème c'est que cela me donne une magnifique page blanche, si je
copie ce code dans mes_options..

Mes remerciements tout d'abord à JLuc qui a proposé cet article sur
Programmer.spip , mais.... Quelqu'un pourrait-il corriger, car je n'y
arrive pas.
Je pense qu'il faudrait s'inspirer de ceci (une fonction perso qui
recherche un squelette d'article particulier en fonction de la
rubrique en question), qui fonctionne :
function chrisword_styliser($flux){
        // si article ou rubrique
        if (($fond = $flux['args']['fond'])
        AND in_array($fond, array('article','rubrique'))) {

                $ext = $flux['args']['ext'];
                // [...]
                if ($id_article = $flux['args']['id_article']) {
                        // calcul de la rubrique
                        $r = sql_getfetsel('id_rubrique', 'spip_articles', 
'id_article=' .
intval($id_article));
                        // comparaison de la rubrique avec Chris's Words of 
Wisdom
                        if (intval($r['id_rubrique']) == 2514){
                                // si un squelette $fond_chriswords existe
                                if ($squelette = 
test_squelette_chrisword($fond, $ext)) {
                                        $flux['data'] = $squelette;
                                }
                        }
                }
        }
        return $flux;
}

Merci d'avance pour vos lumières (les miennes sont faiblârdes
actuellement, après plusieurs mois sans avoir touché au code SPIP j'ai
tout perdu....)
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à  spip-...@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : https://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Répondre à