Jump to content

hook h= ... - Question


Recommended Posts

Bonsoir !

 

J'avais un gros souci avec mon template que j'espère être occupé à solutionner en utilisant cette méthode:

{hook h ='displayUnTruc'}

Cependant, question... J'avais dans mon header.tpl (par exemple), des

{if isset($HOOK_UN_TRUC) && $HOOK_UN_TRUC}
  <section id="un_truc">
    <div class="container">
      <div class="row">
        <div class="spanzani">
          {$HOOK_UN_TRUC}
        </div>
      </div>
    </div>
  </section>
{/if}

Que j'ai donc remplacé par

<section id="un_truc">
  <div class="container">
    <div class="row">
      <div class="spanzani">
        {hook h='displayUnTruc'}
      </div>
    </div>
  </div>
</section>

Ma question est :  Est-ce encore nécessaire de mettre un "if" et si oui, comment le faire ???

 

Merci !

Link to comment
Share on other sites

Bonsoir,

 

Cela ne me semble plus nécessaire. La seule chose, c'est que si aucun module n'est greffé au hook en question, le retour est vide. Ce qui vous fait une div.spanzani vide, simplement.

 

Mais cela ne provoquera pas d'erreur, comme auparavant, ne s’agissant pas d'une variable qui pourrait ne pas exister ;-)

Link to comment
Share on other sites

Merci !
Oui, j'ai bien modifié dans les modules afin qu'ils y soient greffés ^_^

 

Au fait, si je posais la question c'est que pour d'autres hooks, la condition est plus élaborée...

Par exemple dans mon header.tpl :

<div id="center_column" class="{if !$st_hide_left_column && !$st_hide_right_column}span6{elseif !$st_hide_left_column || !$st_hide_right_column}span9{else}span12{/if}">

Sachant que $st_hide_left_column & $st_hide_right_column correspondent à ça dans mon FrontController :

blablabla
'st_hide_left_column' => !$this->display_column_left,
'st_hide_right_column' => !$this->display_column_right,
blablabla

Et je ne sais pas vraiment comment gérer ça... :blush:

 

Et que si je n'utilise pas "hook h=...", non seulement cela n'apparait pas mais de plus, j'ai plein de joyeuses erreurs "Undefined index" & "Trying to get property of non-object"....

Edited by Profette (see edit history)
Link to comment
Share on other sites

Pour être honnête, je pense que je me suis perdu dans votre demande, sur le coup. :-/

 

Vous souhaitez faire un contrôle sur quelles données ? Sur l'existence du hook comme l'exemple dans votre premier message ?

 

La condition mentionnée dernièrement ne vous permet que de changer la taille du bloc pour qu'il prenne en compte l'existence d'une colonne de gauche ou de droite, ou justement sa non existence. Elle n'a pas spécialement lieue d'être dans votre tpl.

 

Je n'ai pas saisi comment vous arrivez à l'index indéfini, sinon, mais je pense que l'on peut passer cette étape non nécessaire, selon ce que je comprends ;-)

Link to comment
Share on other sites

Désolé pour mon manque de clarté...

Au fait tout est parti d'un problème bizarre.

 

Lorsque je créais un compte test sur mon site, mon layout changeait radicalement, je ne voyais plus certains modules, d'autres apparaissaient...

 

En faisant des tests de debug, je me suis aperçu que le PS pour des raisons qui m'échappent, considérait le $st_hide_left_column (pour reprendre mon exemple ci-dessus) comme "Undefined index" & "Trying to get property of non-object".... et donc forcément n'apparaissait pas.

 

Sans trop bien comprendre l'origine problème, j'ai essayé la méthode "hook h=..." et là, la situation redevenait normale.

Mes hooks et donc mes modules apparaissaient à nouveau correctement et je n'avais plus de problème avec la compilation smarty.

 

Donc j'imagine que maintenant mon problème "butoir" est que je ne sais pas comment exprimer une condition, quelle est la bonne ponctuation a utiliser sans prendre la variable "$st_hide_left_column"...  Je devrais remplacer ça par "!$this->display_column_left" ou c'est complètement faux ?

Link to comment
Share on other sites

Je comprends qu'il y a une différence mais je ne comprends pas (du point de vue de mon niveau de bricoleur) ce que je dois mettre à la place de $st_hide_left_column dans mon tpl.

 

Vu que cette variable n'était déjà pas ou mal définie avant et que maintenant, je ne l'utilise plus...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...