2010-08-27 6 views
1

J'ai créé un contrôleur générique "Page" pour mon site. Ces pages contiennent principalement des informations statiques, elles extraient la version la plus récente du contenu de la page et la date de mise à jour à partir d'une base de données. Sur chaque page, ils ont un menu de section et un menu de ressources. Le menu de la section est dicté par la section logique du site où réside la page. Le menu des ressources contient des liens vers des ressources associées à cette page, des documents, des liens hors site, des liens vers des événements de calendrier, etc. à partir d'une base de données.Ajout de menus contextuels aux contrôleurs codeigniter

Actuellement le contrôleur de page les génère et les place dans la vue, mais je travaille sur d'autres contrôleurs qui peuvent avoir seulement un, les deux, ou aucun des menus. Devrais-je continuer à faire en sorte que la sélection et la génération du menu soient une fonction du contrôleur de page et copiez-le dans les nouveaux contrôleurs? Ou devrais-je en quelque sorte casser les fonctions de recherche de menu et de génération dans un autre objet (bibliothèque, helper, ou plugin)? Et si oui, comment devrais-je le sortir? Ou comment pourrais-je l'implémenter?

+0

Pourriez-vous coller votre code tel qu'il est en ce moment? – musoNic80

Répondre

0

Vous pouvez faire plusieurs choses, mais la chose importante à retenir est d'essayer d'avoir le code une fois, donc pour le menu, vous ne voulez pas le copier et le coller.

Si vous définissez un menu basé sur quelque chose de l'autorisation de l'utilisateur ou vous pouvez vérifier ces choses dans la vue par exemple:

<?php if ($this->tank_auth->checkPerm('Backup')) : ?> 
    <div class="menu_item" id="menu4">... 
<?php endif; ?> 

Vous pouvez également envoyer des paramètres à la vue du contrôleur si vous voulez changer le menu en fonction de la page ou d'une variété de choses.

Il ne devrait pas être nécessaire de créer une bibliothèque, un assistant ou un plugin.

Questions connexes