2010-11-25 2 views
0

Cette question est liée à la question here, qui concerne les meilleures pratiques de gestion des interfaces à onglets. Il a fait référence à un billet de blog intitulé Pourquoi le programme d'actions de Zend Framework est mal, qui a souligné que vous devriez utiliser des partiels et afficher des aides pour les éléments qui seront réutilisés. C'est bien jusqu'à ce que l'élément doive gérer une entrée, auquel cas les aides de vue ne sont pas la réponse. C'est là que vous utilisez des aides à l'action, Matthew Weier O'Phinney parle d'un cas d'utilisation pour cela dans son article de blog intitulé Utiliser des aides à l'action pour implémenter des widgets réutilisables. Après avoir lu ces points de vue, je semble être plus confus sur le meilleur plan d'action pour mon interface. Le site se composera de trois onglets principaux, Cas, Personnel, & Départements. Chacun de ces onglets suivra une présentation similaire consistant en un sélecteur/tableau de recherche, un résumé (Case | Personnel | Département), puis une autre zone avec un menu à onglet vertical. Les onglets principaux comporteront des éléments d'onglet verticaux identiques, à l'exception des informations affichées.Contrôleurs, aides à l'action ou View Assisters pour une interface à onglets à plusieurs niveaux

La question est de savoir comment structurer les vues, les aides et les contrôleurs autour de cette interface. Je pensais avoir un index, un dossier, le personnel et le contrôleur du département. Création d'un assistant d'action qui réutilisera une vue pour chaque onglet principal, mais utilisera les données de demande pour déterminer le groupe actuellement sélectionné (Case | Personnel | Département). Utilisation des contrôleurs de tabulation individuels pour gérer les requêtes ajax jQuery pour le contenu de l'onglet vertical et déléguer la sortie à un assistant de vue qui réutilisera une vue commune. Et utilisez également les contrôleurs d'onglets individuels pour gérer les opérations jQuery ajax crud. Est-ce la meilleure façon de procéder, ou existe-t-il de meilleures méthodes plus efficaces?

Répondre

1

Je créer des contrôleurs séparés pour chacun de vos trois onglets principaux. Les onglets verticaux que vous décrivez correspondent à des actions sur ces contrôleurs.

Pour rendre tous ces onglets de navigation - de haut niveau et les verticales - il semble que la réponse est .... Zend_Navigation (more info).

Vous pouvez placer toutes les données de navigation structurées - probablement lues à partir d'un fichier INI ou d'un fichier XML ou même d'un tableau structuré - dans un seul conteneur Zend_Navigation puis afficher la branche "active".

+0

Merci pour votre réponse rapide. C'est exactement ce que j'ai fait jusqu'à maintenant, mais ce qui me préoccupe, c'est que j'ai le même design pour les onglets principaux, mais j'ai trois vues différentes pour eux. Et pour les verticales, qui sont accessibles par ajax, ils utilisent également le même design mais utilisent des vues différentes. Pour maintenir la pratique d'avoir de gros modèles et des contrôleurs minces ne devrais-je pas construire des aides réutilisables (vue | action) pour le rendu et la gestion de ces vues? – Rod

+0

Je voudrais utiliser une action pour tous les onglets, puis dans la vue utiliser partials pour rendre chaque contenu de l'onglet (de sorte que lorsque vous modifiez l'onglet, vous n'avez pas besoin de recharger la page), ainsi que mentionné par David utilise Zend_Navigation Pour afficher les onglets, vous pouvez déplacer la plupart des données de tabulation à l'intérieur d'un modèle sous 3 méthodes différentes (une pour chaque onglet, ou plus si une partie du code est réutilisée sur d'autres parties de votre écran). application) difficile, je ne sais pas comment cela va affecter la performance, mais cela va améliorer l'expérience de l'utilisateur. –

+0

Je vois le point @ poelinca: peut-être un seul contrôleur w/3 actions. Chaque action peut effectuer toutes les tâches requises pour remplir les onglets verticaux. Ensuite, quelques trucs cool côté client afin que vous puissiez tout voir sans recharger une page. Mais je pense que votre question est plus que cela. Ces trois "pages" sonnent "structurellement" similaires: tableau de recherche, résumé, tabulations. Ainsi, il semble raisonnable d'essayer de créer une aide d'action suffisamment paramétrable pour "obtenir" les données req'd (table de recherche, résumé, etc) et ensuite utiliser une aide-vue et des partiels paramétrés de façon similaire pour le rendu. Si c'est vraiment similaire. –

Questions connexes