ah si, je suis fatigué :)

$id_parent = $fond['args']['contexte']['id_parent']

test la présence et assigne la valeur
$fond['args']['contexte']['id_parent']

Dans le code c'est le point virgule qui n'a pas lieu d'être (Voire
commentaire).
Pour le reste, ça devrait rouler :D

Le lun. 30 sept. 2019 à 23:28, pierre laszczak <pierre.laszc...@gmail.com>
a écrit :

> Salut
>
> function exemple_formulaire_fond($fond) {
>       if (
>               $fond['args']['form'] == 'editer_article'
>               and $id_parent = $fond['args']['contexte']['id_parent']; // ça 
> ne va pas il ne faut pas de ';' ici
>               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;}
>
>
>
> Je ne comprend pas le $id_parent = $fond['args']['contexte']['id_parent'] ?? 
> il doit y avoir une subtilité...
> Pour le reste je dirai qu'on veut uniquement remplacer le texte pour la 
> rubrique racine du secteur 7
>
> Sinon pour la page blanche,  en dev ça ne devrait pas être une page blanche 
> mais un message d'erreur php qui s'affiche
> tu **dois** au minimum afficher les erreurs fatales php pour savoir ou ça 
> pète dans ton code :). Il y a 10 000 tutos pour ça sur spip ou ailleurs.
>
> Cordialement
>
>
> Le lun. 30 sept. 2019 à 21:16, Naema <junkofze...@gmail.com> a écrit :
>
>> 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
>
>
_______________________________________________
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 à