web-dev-qa-db-fra.com

Comment intégrer mon composant administrateur personnalisé avec les tables de base de données Joomla principales lors de l'installation?

Contexte: Je commence à empaqueter trois extensions Joomla personnalisées associées que j'ai développées. (Ceci est directement associé à ma précédente question JSE , si vous voulez plus de contexte.) Le paquet contient un composant (com_o3_picture) qui a commencé comme un clone de com_contact à partir du noyau, puis a été ajusté pour répondre aux besoins des clients. En outre, il existe un editors-xtd plugin pour générer des espaces réservés dans Articles et un plugin content pour remplacer les espaces réservés par du contenu dynamique.

Parce que j'utilise à peu près la même fonctionnalité de com_contact, mon install.mysql.utf8.sql le fichier crée un #__o3_picture_details table. C'est déjà fait avec succès.

Il y a quelques mois, lorsque j'ai testé mon composant par lui-même, j'ai réalisé que je n'avais pas le Pictures>Pictures et Pictures>Categories sous-menus dont j'avais besoin dans le menu Administrateur Components>Pictures (pour refléter les options fournies par Contacts). J'ai donc inséré manuellement quelques lignes dans #__menu résoudre le problème. C'est quelque chose que j'ai "accroché" car j'avais besoin de référencer les identifiants générés pour affecter correctement les relations parent-enfant.

Questions:

  1. Comment automatiser le processus d'option de menu? Cela peut-il être fait intelligemment dans le install.mysql.utf8.sql? ou dois-je utiliser un appel en amont? ou après le vol? ou d'une manière entièrement différente/meilleure?

  2. Je sais je dois insérer dans #__content_types . Y a-t-il des lignes essentielles dans d'autres tableaux qui devraient être insérées/mises à jour? Je veux dire, #__assets est une table qui pourrait ne pas être nécessaire à laquelle parler, mais je préfère tout faire dans mon installation plutôt que d'exécuter une synchronisation à partir du fixateur d'actifs ACL de PWT. Un autre exemple est #__associations - Je ne pense pas avoir besoin de faire quoi que ce soit à celui-là?

Comment puis-je être sûr d'avoir créé tout ce qui est attendu? Essai et erreur? ...Je ne préfère pas. Quelqu'un a-t-il une expérience/expertise à partager?

1
mickmackusa
  1. Les éléments du menu Administrateur peuvent être ajoutés au fichier manifeste <administration> section:

    <menu img="class:example">COM_EXAMPLE</menu>
    <submenu>
        <menu
            link="option=com_example"
            img="class:example-items"
            alt="Example/Items">COM_EXAMPLE_ITEMS</menu>
        <menu
            link="option=com_categories&amp;extension=com_example"
            view="categories"
            img="class:example-cat"
            alt="Example/Categories">COM_EXAMPLE_CATEGORIES</menu>
    </submenu>
    

    https://docs.joomla.org/Manifest_files#Menu_links_and_submenus

  2. À moins que vous ne souhaitiez insérer des exemples d'éléments lors de l'installation, non. L'enregistrement du composant sera ajouté à #__assets table automatiquement.
1
Sharky