2010-06-22 17 views
5

J'ai fait un composant pour Joomla et cela fonctionne bien avec l'URL directe: http://www.something.com/index.php?option=com_pbformshow composant joomla dans le type d'élément de menu

Le problème est que lorsque je tente de l'ajouter dans le menu. Lorsque je modifie le type d'élément de menu, le composant est répertorié, mais lorsque je clique dessus, aucune vue ne s'applique à l'élément de menu. Dois-je configurer quoi que ce soit d'autre dans le composant?

Merci!

+0

J'ai trouvé cette ligne dans l'un des tutoriels. "Vous pouvez également masquer une vue en utilisant un trait de soulignement '_' dans le nom". Je perds beaucoup d'heures avant de le trouver. – Simon

Répondre

2

Si vous configurez votre composant de la manière MVC, vous aurez alors une structure de dossiers vues/mise en page dans votre dossier de composants. Chaque vue différente que vous avez là-bas sera répertoriée dans les types de menus sous le nom de votre composant. C'est là que les vues peuvent être choisies.

Par exemple. dans votre structure de dossiers composant que vous avez

views/view_a 
views/view_b 
views/view_c 

puis dans le sélecteur de menu Joomla vous auriez ces choix pour sélectionner une vue.

Si vous n'avez pas configuré votre composant MVC comme alors un coup d'oeil à ce tutoriel sur la façon de le faire que http://www.joomladevuser.com/tutorials/components

J'espère que ça aide! A bientôt

+0

oui, je l'ai fait à la mode MVC, le problème est que je n'ai pas utilisé le jview, j'ai fait une approche MVC à partir de zéro, et j'ai un dossier avec toutes les vues dont j'ai besoin. Existe-t-il une solution de contournement qui me permette d'utiliser cette approche dans les types de menus? – dbeja

+0

Je ne suis pas sûr à ce sujet, mais je suppose que vous auriez besoin d'initialiser votre vue (s) avec Joomla dans votre contrôleur afin qu'il sache qu'ils sont là. Vérifiez ce fil (http://forum.joomla.org/viewtopic.php?f=47&t=511442), il pourrait vous aider. – Martin

+1

ok, je l'ai fait différent. Dans le type de menu, je choisis External Link et écris le composant url (index.php? Option = com_mycomponent & template = temp1). Mais merci quand même pour les conseils! Votre premier lien sera très utile à l'avenir. – dbeja

1

Vous aurez peut-être besoin d'un fichier metadata.xml pour chacune de vos vues. Voir http://docs.joomla.org/Adding_view_layout_configuration_parameters pour plus de détails

+0

J'essaie ça, mais le problème c'est que j'ai mes propres classes d'affichage. Je n'utilise pas les classes d'affichage joomla. J'ai aussi une manière légèrement différente d'organiser les dossiers de composants. Peut-être que je dois aussi inclure quelque chose à l'intérieur des classes. – dbeja

3

Ajouter votre composant à table jos_components:

INSERT INTO jos_components (name, link, admin_menu_link, `option`) 
VALUES (
    'Greetings', 'option=com_greetings', 'option=com_greetings', 'com_greetings') 

Si vous avez toutes vos vues configuré correctement, vous devez ajouter votre composant dans la base de données Joomla.

Les fonctions et les dossiers d'affichage ne doivent pas comporter de tirets ou de traits de soulignement.

Bonne

  • /view/viewone
  • /view/viewtwo
  • /view/viewthree

Bad

  • /view/view_one
  • /view/view_two
  • /view/view_three
0

Utilisez cette solution simple. Vous vous attendiez à trouver votre nouveau composant dans la liste déroulante du type d'élément de menu, mais ce n'est pas là!Au lieu d'essayer de faire face à cette ferraille laide MVC faire ceci:

  • sélectionner « seul article » dans la liste et enregistrer votre nouvel élément de menu
  • maintenant ouvrir votre joomla db
  • sélectionnez _menu Table
  • modifier votre ligne de menu
  • lien de modification de l'article à index.php? option = com_yourcomponent
  • enregistrer et jeter un oeil à gestionnaire de menu administrateur

J'ai migré ma collection Joomla 1.5 de scripts Ajax/PHP vers Joomla 1.7.3 en utilisant cette solution en une seule journée.

Morceau de gâteau.

Questions connexes