2010-07-24 8 views
1

L'exemple que j'ai en HTML:Cacher et montrer des parties d'un HTML avec PHP?

<div id="red-nav-warp"> 
    <ul id="red-nav-logo"> 
    <li><img class="sponsors" id="sponsorone" src="media/img/logosmall.png" /></li> 
    </ul> 
    <ul class="clearfix" id="red-nav-list-member" > 
    <li><?php $themeSys->Href('logout',$langSys->get('LOGOUT')); ?></li> 
    <li><?php $themeSys->Href('settings',$langSys->get('SETTINGS')); ?></li> 
    </ul>  
    <ul class="clearfix" id="red-nav-list" > 
    <li><?php $themeSys->Href('home',$langSys->get('HOME')); ?></li> 
    <li><?php $themeSys->Href('why',$langSys->get('WHY')); ?></li> 
    <li><?php $themeSys->Href('register',$langSys->get('REGISTER')); ?></a></li> 
    <li><?php $themeSys->Href('account',$langSys->get('MEMBER')); ?></a></li> 
    <li><?php $themeSys->Href('community',$langSys->get('COMMUNITY')); ?></a></li> 
    <li><?php $themeSys->Href('blog',$langSys->get('BLOG')); ?></a></li> 
    <li><?php $themeSys->Href('partners',$langSys->get('PARTNERS')); ?></a></li> 
    </ul> 

    <div class="clearfix"></div>  
</div><!-- END red-nav-warp --> 

Ce que je veux juste montrer une partie de HTML s'il est un utilisateur connecté.

<div id="red-nav-warp"> 
    <ul id="red-nav-logo"> 
    <li><img class="sponsors" id="sponsorone" src="media/img/logosmall.png" /></li> 
    </ul> 

    <!-- hidden or no output --> 
    <ul class="clearfix" id="red-nav-list" > 
    <li><?php $themeSys->Href('home',$langSys->get('HOME')); ?></li> 
    <li><?php $themeSys->Href('why',$langSys->get('WHY')); ?></li> 
    <li><?php $themeSys->Href('register',$langSys->get('REGISTER')); ?></a></li> 
    <li><?php $themeSys->Href('account',$langSys->get('MEMBER')); ?></a></li> 
    <li><?php $themeSys->Href('community',$langSys->get('COMMUNITY')); ?></a></li> 
    <li><?php $themeSys->Href('blog',$langSys->get('BLOG')); ?></a></li> 
    <li><?php $themeSys->Href('partners',$langSys->get('PARTNERS')); ?></a></li> 
    </ul> 

    <div class="clearfix"></div>  
</div><!-- END red-nav-warp --> 

Quelqu'un a une idée ou une classe exemple qui peut cacher des choses pour que je puisse écrire comme (mieux une classe si elle est possible.)

<div id="red-nav-warp"> 
    <ul id="red-nav-logo"> 
    <li><img class="sponsors" id="sponsorone" src="media/img/logosmall.png" /></li> 
    </ul> 
    <?php $hideSys->hiddenbelow(); ?> <!-- some hide class or some magic --> 
    <ul class="clearfix" id="red-nav-list-member" > 
    <li><?php $themeSys->Href('logout',$langSys->get('LOGOUT')); ?></li> 
    <li><?php $themeSys->Href('settings',$langSys->get('SETTINGS')); ?></li> 
    </ul> 
    <?php $hideSys->stop(); ?> <!-- end some hide class or some magic --> 
    <ul class="clearfix" id="red-nav-list" > 
    <li><?php $themeSys->Href('home',$langSys->get('HOME')); ?></li> 
    <li><?php $themeSys->Href('why',$langSys->get('WHY')); ?></li> 
    <li><?php $themeSys->Href('register',$langSys->get('REGISTER')); ?></a></li> 
    <li><?php $themeSys->Href('account',$langSys->get('MEMBER')); ?></a></li> 
    <li><?php $themeSys->Href('community',$langSys->get('COMMUNITY')); ?></a></li> 
    <li><?php $themeSys->Href('blog',$langSys->get('BLOG')); ?></a></li> 
    <li><?php $themeSys->Href('partners',$langSys->get('PARTNERS')); ?></a></li> 
    </ul> 

    <div class="clearfix"></div>  
</div><!-- END red-nav-warp --> 

Qu'est-ce que je l'ai fait, et oui, je savoir qu'il est un échec épique au moins je suis en train :)

<?php 
/** 
* TRYING TO HIDE SOME PART OF HTML 
* useing if $_Session['login'] = true; 
*/ 
class Hideing 
{ 
    function __construct() 
    { 

    } 

    function hiddenbelow() 
    { 
    return "if($_Session['login']){"; // epic fail 
    } 

    function stop() 
    { 
    return "}"; 
    } 
} 

$hideSys = new Hideing; 
?> 

Merci pour la recherche dans,

Adam Rama Dhan

Répondre

1

Votre code juste renvoie une chaîne. PHP ne l'exécutera pas automatiquement.

Vous devez faire

</ul> 
<?php if($_Session['login']) { ?> <!-- some hide class or some magic --> 
<ul class="clearfix" id="red-nav-list-member" > 
    <li><?php $themeSys->Href('logout',$langSys->get('LOGOUT')); ?></li> 
    <li><?php $themeSys->Href('settings',$langSys->get('SETTINGS')); ?></li> 
</ul> 
<?php } ?> <!-- end some hide class or some magic --> 
<ul class="clearfix" id="red-nav-list" > 

Vous avez peut-être lu sur la sagesse de seperating Model View et de la logique du contrôleur et que vous voulez résumer cette logique dans une classe, mais vous avez encore besoin ifs dans le code PHP.

</ul> 
<?php if($hideSys->isLoggedIn()) { ?> <!-- some hide class or some magic --> 
<ul class="clearfix" id="red-nav-list-member" > 
    <li><?php $themeSys->Href('logout',$langSys->get('LOGOUT')); ?></li> 
    <li><?php $themeSys->Href('settings',$langSys->get('SETTINGS')); ?></li> 
</ul> 
<?php } ?> <!-- end some hide class or some magic --> 
<ul class="clearfix" id="red-nav-list" > 

Lorsque la méthode isLoggedIn() renvoie une variable booléenne true ou false.

+1

Comment un combat en a-t-il fait une classe? ou c'est mieux comme ça? –

+0

@Adam: il y a d'autres façons, mais si vous voulez conserver tout le même fichier, et non refactoriser tout votre système, celui-ci sera le plus lisible par les autres codeurs, et il fera bien l'affaire. – Wrikken

+1

Personnellement, j'essaie toujours de séparer mon code en couches de présentation de vue modèle. Vous trouverez beaucoup sur ce en ligne. Mais de toute façon, vous voulez certainement ce code dans une classe ou une fonction, parce que vous ne voulez pas répéter le code - le code répété rend difficile de changer les choses plus tard. Et je suis sûr que isLoggedIn() sera un chèque fréquemment utilisé. – James

0

envelopper le code que vous voulez cacher avec:

<?php if ($_SESSION['login']): ?> 
<!-- code goes here --> 
<?php endif; ?>