définir les assets d'un ancien composant

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] définir les assets d'un ancien composant

    Bonjour,

    J'ai un ancien composant que j'ai migré jusqu'à joomla3 qui n'a toujours pas d'assets. D'après les docs trouvées à ce sujet j'ai créé les xml suivants:
    access.xml
    Code HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <access component="com_edf">
    <section name="component">
    <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
    <action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" />
    <action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" />
    <action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" />
    <action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" />
    <action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_COMPONENT_DESC" />
    <action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_COMPONENT_DESC" />
    </section>
    <section name="category">
    <action name="core.create" title="JACTION_CREATE" description="COM_CATEGORIES_ACCESS_CREATE_DESC" />
    <action name="core.delete" title="JACTION_DELETE" description="COM_CATEGORIES_ACCESS_DELETE_DESC" />
    <action name="core.edit" title="JACTION_EDIT" description="COM_CATEGORIES_ACCESS_EDIT_DESC" />
    <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" />
    <action name="core.edit.own" title="JACTION_EDITOWN" description="COM_CATEGORIES_ACCESS_EDITOWN_DESC" />
    </section>
    et config.xml
    Code HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <config>
    
    <fieldset name="permissions"
    label="JCONFIG_PERMISSIONS_LABEL"
    description="JCONFIG_PERMISSIONS_DESC">
    
    <field name="rules"
    type="rules"
    label="JCONFIG_PERMISSIONS_LABEL"
    class="inputbox"
    validate="rules"
    filter="rules"
    component="com_edf"
    section="component" />
    
    </fieldset>
    
    </config>
    Maintenant mon composant apparait bien dans la conf des droits d'accès en backoffice mais n'a toujours pas d'entrée dans la table _assets, ce qui génère des warnings dans les logs:
    WARNING 127.0.0.1 assets No asset found for com_edf, falling back to root.1
    Comment ajouter une entrée pour mon composant dans la table _assets ?
    Dernière édition par kmchen à 13/04/2020, 00h18
    Thierry CHEN
    http://www.webologix.com

  • #2
    Hello.

    Sauf erreur de copie, il manque le tag fermant </access> dans ton access.xml

    Le reste me parait conforme, le nom du composant et de la section sont bien en corrélation entre la définition du access.xml et le champ de type rules dans le config.xml.
    Pour les droits "standard" je n'en fais pas + et cela fonctionne.

    Le warning tu l'as à quel niveau ?
    Quand tu fais un appel à l'une des méthodes getAutorised ?
    Dernière édition par roland_d_alsace à 09/04/2020, 10h26 Raison: faute
    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
    Rejoignez le Joomla Users Groupe Alsace...
    roland_d_alsace va-t-il devenir roland_du_grand_est ?

    Commentaire


    • #3
      Je n'utilise pas l'access de joomla. Ce composant a été développé bien avant l'apparition des ACL dans Joomla (1.0) et dispose de sa propre gestion des droits d'accès.
      Les warnings sont générés par le module mod_menu
      Thierry CHEN
      http://www.webologix.com

      Commentaire


      • #4
        Envoyé par kmchen Voir le message
        Les warnings sont générés par le module mod_menu
        Donc tu veux juste rajouter la gestion du droit d'accès à l'admin du composant (apparition du composant dans le menu admin) et l'utilisation des catégories du framework (à condition de modifier ton composant et ses tables) ?

        Cela devrait marcher comme tu l'a fait.

        A condition que tu ais bien mis le </access> (voir ma réponse ci-dessus).

        Accessoirement tu peux supprimer les droits core.create, core.delete, et core.edit.xxx dans le access.xml si tu ne modifie pas ton composant pour gerer ses droits.
        A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
        Rejoignez le Joomla Users Groupe Alsace...
        roland_d_alsace va-t-il devenir roland_du_grand_est ?

        Commentaire


        • #5
          Oui le </access> est une simple faute de copier coller dans le post. Et mon composant apparait bien dans la configuration ACL de Joomla, même si c'est une coquille vide.

          Je ne souhaite pas utiliser les fonctionalités ACL de Joomla pour le moment mais simplement épurer au maximum mes logs afin de mieux surveiller le comportement de mon application donc faire disparaitre ces warnings qui polluent mes logs.

          Je pensais que la création des access et config xml suffirait à créer des entrées dans la table _assets mais ce n'est pas le cas. Sais tu pouquoi ?
          Thierry CHEN
          http://www.webologix.com

          Commentaire


          • #6
            Envoyé par kmchen Voir le message
            Oui le </access> est une simple faute de copier coller dans le post. Et mon composant apparait bien dans la configuration ACL de Joomla, même si c'est une coquille vide.

            Je ne souhaite pas utiliser les fonctionalités ACL de Joomla pour le moment mais simplement épurer au maximum mes logs afin de mieux surveiller le comportement de mon application donc faire disparaitre ces warnings qui polluent mes logs.

            Je pensais que la création des access et config xml suffirait à créer des entrées dans la table _assets mais ce n'est pas le cas. Sais tu pouquoi ?
            Comme dit ci dessous, ce que tu as fait doit suffire.

            Petite question bête : as-tu mis des droits particuliers dans les parametres du composant puis enregistré au moins une fois ?

            Si tu laisse les droits à "hérité" sans rien modifier au moins une fois dans les droits de ton composant, il n'y a à priori rien qui s'enregistre dans la table #__asset.

            Pour ma part j'ai toujours ajouté des droits spécifiques à mes composants.
            Je n'ai donc jamais observé le cas où j'ai seulement des droits standards à "hérité".

            Mais si on regarde le contenu de #__asset, j'ai bien l'impression que seuls les droits spécifiques pour un groupe d'utilisateur figurent dans je champ JSON "rules".

            Donc si tu ne forces pas une valeur (donc mettre autre chose que "hérité"), il n'y a pas de raison que quelque chose s'inscrive dans #__assets.

            Et le framework s'en sort lors du calcul des droits, s'il ne trouve pas de règle spécifique dans un niveau bas (item -> catégorie -> composant) , il remonte dans l'héritage (donc dans ton cas particulier il prendra les droits des parametres globaux de Joomla)..
            Dernière édition par roland_d_alsace à 11/04/2020, 10h44
            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
            Rejoignez le Joomla Users Groupe Alsace...
            roland_d_alsace va-t-il devenir roland_du_grand_est ?

            Commentaire


            • #7
              Pas bête du tout la question. Bravo Roland, laisser les paramètres par défaut était le problème. Merci
              .
              Par contre, chaque site a sa manière de marquer un post comme résolu et je ne vois pas quelle est la procédure ici. Désolé

              Trouvé mais pas très convivial. Un petit bouton "marquer comme réglé" aurait été plus simple pour tout le monde
              Dernière édition par kmchen à 13/04/2020, 00h20
              Thierry CHEN
              http://www.webologix.com

              Commentaire


              • #8
                Deux autres questions dans le même thème :

                1 / je n'arrive pas à trouver où sont définis les titres des composants affichés dans la configuration joomla. CF copie écran 1 jointe on voit "com_edf". Où changer ça ?

                Cliquez sur l'image pour l'afficher en taille normale  Nom : image_35887.png  Affichages : 7  Taille : 81,5 Ko  ID : 2015984




                2/ Joomla m'affiche un bouron "paramètres" dans l'admin du composant CF copie écran. J'ai déjà un tel bouton géré par mon composant. Ca en fait deux. Où empêcher l'affichage de celui de Joomla ?

                Cliquez sur l'image pour l'afficher en taille normale  Nom : Screenshot_20200413_182922.png  Affichages : 0  Taille : 34,4 Ko  ID : 2015986

                Dernière édition par kmchen à 13/04/2020, 17h33
                Thierry CHEN
                http://www.webologix.com

                Commentaire


                • #9
                  Envoyé par kmchen Voir le message
                  Deux autres questions dans le même thème :

                  1 / je n'arrive pas à trouver où sont définis les titres des composants affichés dans la configuration joomla. CF copie écran 1 jointe on voit "com_edf". Où changer ça ?
                  ...
                  Il te faut une clé de langue du nom de ton composant donc

                  Code:
                  COM_EDF="mon composant"
                  dans ton fichier de clés de langues système (donc celui qui termine par .sys.ini)

                  Envoyé par kmchen Voir le message
                  Deux autres questions dans le même thème :
                  ...

                  2/ Joomla m'affiche un bouron "paramètres" dans l'admin du composant CF copie écran. J'ai déjà un tel bouton géré par mon composant. Ca en fait deux. Où empêcher l'affichage de celui de Joomla ?
                  ...

                  Vu que tu as rajouté un config.xml avec un fieldset concernant les droits, le bouton "parametres" est présent, sinon comment accéder aux droits.

                  Sinon change le clé de langue de ton composant et appelle le "configuration" par exemple.
                  Je suppose que ce bouton ouvre une vue particulière, qui n'a rien à voir avec un fichier xml comme le config.xml ?

                  Le bouton "paramètre" est géré par le framework.
                  Si tu surcharges la traduction par "droits" par exemple, ce terme "droits" sera appliqué au lieu de "parametres" dans tous les composants.
                  Donc il n'y a pas trop de formules.
                  Dernière édition par roland_d_alsace à 13/04/2020, 19h44
                  A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                  Rejoignez le Joomla Users Groupe Alsace...
                  roland_d_alsace va-t-il devenir roland_du_grand_est ?

                  Commentaire


                  • #10
                    Si tu surcharges la traduction par "droits" par exemple,
                    où ça ?

                    Je constate par ailleurs que 2 autres composants n'ont pas ce bouton "paramètres" géré par le Framework. Donc il y a moyen de controller son apparition dans le composant quelque part...

                    Autre chose, je n'arrive pas à retrouver où sont définis les libellés du menu composants pour COM_EDF. J'avais un com_edf.menu.ini qui semblait définir les menus et sous menus du composant (où COM_EDF était défini d'ailleurs...) et là j'ai beau le modifier je n'arrive pas à atteindre les libellés affichés dans les sous menus composants de COM_EDF.
                    Où ça se passe maintenant ?
                    Thierry CHEN
                    http://www.webologix.com

                    Commentaire


                    • #11
                      Envoyé par kmchen Voir le message
                      où ça ?
                      Dans les substitutions de langues (extensions > langues > substitutions).



                      Correction de ma réponse, voir post suivant...
                      Dernière édition par roland_d_alsace à 14/04/2020, 10h38
                      A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                      Rejoignez le Joomla Users Groupe Alsace...
                      roland_d_alsace va-t-il devenir roland_du_grand_est ?

                      Commentaire


                      • #12
                        Envoyé par kmchen Voir le message

                        Je constate par ailleurs que 2 autres composants n'ont pas ce bouton "paramètres" géré par le Framework. Donc il y a moyen de controller son apparition dans le composant quelque part...
                        En fait, le bouton "parametres" est généré dans la méthode :
                        Code PHP:
                        JToolbarHelper::preferences('com_edf'); 
                        Normalement tu dois avoir dans le code de ta vue (view.html.php) quelque chose ainsi :
                        Code PHP:
                        /**
                        * Setting the toolbar
                        */
                        protected function addToolBar()
                        {
                        ...

                        if (
                        $canDo->get('core.admin'))
                        {
                        JToolbarHelper::preferences('com_edf');
                        JToolbarHelper::divider();
                        }


                        ...

                        Donc on affiche l bouton si l'administrateur courant a le droit d'administration du composant (core.admin).
                        A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                        Rejoignez le Joomla Users Groupe Alsace...
                        roland_d_alsace va-t-il devenir roland_du_grand_est ?

                        Commentaire


                        • #13
                          Super, un grand merci Roland. C'est propre maintenant. Reste plus que le menu composants.

                          Je n'arrive pas à retrouver où sont définis les libellés du menu composants pour COM_EDF. J'avais un com_edf.menu.ini qui semblait définir les menus et sous menus du composant (où COM_EDF était défini d'ailleurs...) et là j'ai beau le modifier je n'arrive pas à atteindre les libellés affichés dans les sous menus composants de COM_EDF.
                          Où ça se passe maintenant ?

                          J'ai fini par les trouver dans la BDD _menu mais je suppose qu'il y a bien un moyen prévu de les modifier ...
                          Dernière édition par kmchen à 14/04/2020, 16h39
                          Thierry CHEN
                          http://www.webologix.com

                          Commentaire


                          • #14
                            Envoyé par kmchen Voir le message
                            Super, un grand merci Roland. C'est propre maintenant. Reste plus que le menu composants.

                            Je n'arrive pas à retrouver où sont définis les libellés du menu composants pour COM_EDF. J'avais un com_edf.menu.ini qui semblait définir les menus et sous menus du composant (où COM_EDF était défini d'ailleurs...) et là j'ai beau le modifier je n'arrive pas à atteindre les libellés affichés dans les sous menus composants de COM_EDF.
                            Où ça se passe maintenant ?

                            J'ai fini par les trouver dans la BDD _menu mais je suppose qu'il y a bien un moyen prévu de les modifier ...
                            Dans la table #__menu, ce sont des clés de langues, où les textes en clair ?

                            Si ce sont des clés, elles sont à définir dans ton fichier de langage système (com_edf.sys.ini).

                            Si ce sont des chaine, met des clés COM_EDF_MENU_xxx dans la colone title des enregistremenrs correspondant à ton composant dans la table #__menu et défini ces clés dans com_edf.sys.ini
                            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                            Rejoignez le Joomla Users Groupe Alsace...
                            roland_d_alsace va-t-il devenir roland_du_grand_est ?

                            Commentaire


                            • #15
                              Faut donc intervenir directement sur les tables de la base ?! Pas moyen de les faire ajuster automatiquement en modifiant des fichiers de conf ?
                              Thierry CHEN
                              http://www.webologix.com

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X