2010-11-09 3 views
0

Je suis en train de créer une barre latérale dynamique dans zend framework. J'ai googlé quelques articles, parcouru même l'archive de stackoverflow mais je n'arrive pas à l'obtenir alors s'il vous plaît aidez-moi à comprendre cela. Voici une partie de mon dossier layout.phtml:création d'une barre latérale dynamique avec zend framework

<div id="contentWrapper"> 
<div id="contentArea"> 
<?php echo $this->layout()->content; 
?> 
</div> 
<div id="sidebar"> 
    <div id="user-authentication"> 
     <?php if (Zend_Auth::getInstance()->hasIdentity()) { 
     ?>Logged In as<br /> 
     <?php 
      echo Zend_Auth::getInstance()->getIdentity(); 
     } else { 
     ?> 

      <input type="text" name="login" class="loginInput" /><br/>  
      <input type="password" name="password" class="loginInput" /><br/>  

      <input type="submit" name="submit" value="Log In" class="loginButton" />  
<?php } ?> 
    </div> 
    <div id="sidebar-content"> 
          <? echo $this->layout()->sidebar; ?> 
    </div> 
</div> 

</div> 

je pourrais utiliser ce Best practice creating dynamic sidebar with zend framework, mais cela signifie que je aurais besoin d'avoir un code redondant pour afficher la boîte de connexion/connecté en tant que.

Répondre

0

Etes-vous simplement inquiet de la répétition de hasIdentity et getIdentity dans le div sidebar-contenu?

Si oui, peut-être vous préférez ceci:

<?php 
    $auth = Zend_Auth::getInstance(); 
    $user = $auth->hasIdentity() ? $auth->getIdentity : NULL; 
?> 
<div id="user-authentication"> 
    <?php if ($user) { ?> 
     User stuff. 
    <?php } else { ?> 
     Public stuff. 
    <?php } ?> 
</div> 
<div id="user-authentication"> 
    <?php if ($user) { ?> 
     User stuff. 
    <?php } else { ?> 
     Public stuff. 
    <?php } ?> 
</div> 

Cependant, c'est juste une question de style de codage. Il n'y a rien de mal à vérifier l'état d'un utilisateur connecté plus d'une fois. C'est nécessaire avec le code modulaire pour le faire; c'est probablement pourquoi Zend_Auth est un Singleton.

+0

J'ai réussi à utiliser des partiels. Il donne. J'ai ma connexion en partie partielle et d'autres parties de la barre latérale en tant que partiels et j'aime le fait que cela me donne la flexibilité de chargement partielle que je veux où je veux. Dans ma mise en page, je n'ai que $ this-> layout() -> contenu. Dans mes fichiers de vue, je charge les partiels. Fonctionne bien jusqu'à présent et c'est très flexible. Je vais approuver votre réponse, car cela m'a aidé à y penser (même si j'ai lu d'autres articles à ce sujet, j'étais sceptique) – user253530