Module pour executer du code PHP

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

  • [RÉGLÉ] Module pour executer du code PHP

    Bonjour à tous

    J'ai développé un logiciel qui doit aller se connecter et chercher des informations sur mon site web.

    Pour l'instant j'ai crée un article (nommé controle) qui contient le code PHP suivant

    Code PHP:
    {source}<?php

    $id 
    $_GET['identif'];
    $info $_GET['information'];
    if ( 
    $id == 1234 ) {
     echo 
    '#Retour'+$informationderetour+'Retour#';
    }
    ?>{/source}
    Mon logiciel quant à lui se connecte sur le site avec l'URL suivante:
    Code:
    http://www.monsite-joomla.fr/index.php/controle?identif=1234&information=Machine"
    Ensuite il lit ce qui est retourné par le serveur.

    Le problème c'est que cette solution n'est pas satisfaisante car je suis obligé de trouver l'information de retour du serveur dans tout un fatras de données. De plus pour avoir accès à cet article je suis obligé de créer un menu qui est visible sur le site ce qui ne me convient pas.

    En me renseignant j'ai vu qu'on pouvait développer des modules et j'ai récupéré un modèle de module (mod_capsule) par contre j'ai du mal à comprendre comment l'utiliser.

    Merci d'avance pour toute aide

  • #2
    Bonjour

    Mod_capsule a été développé par un ami ;-) Est-ce celui de Incode.be que tu as utilisé ?

    Son mode d'emploi : https://docplayer.fr/5501014-Creatio...a-de-base.html

    Site originel : https://www.incode.be/joomla (le PDF n'y est plus accessible visiblement)

    Bonne journée.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Oui c'est bien celui là et effectivement le pdf d'explication n'est plus disponible.
      Je vais regarder le mode d'emploi sur l'autre lien
      Merci

      Commentaire


      • #4
        Envoyé par Remi45 Voir le message
        Bonjour à tous

        J'ai développé un logiciel qui doit aller se connecter et chercher des informations sur mon site web.

        ...

        Le problème c'est que cette solution n'est pas satisfaisante car je suis obligé de trouver l'information de retour du serveur dans tout un fatras de données. De plus pour avoir accès à cet article je suis obligé de créer un menu qui est visible sur le site ce qui ne me convient pas.

        En me renseignant j'ai vu qu'on pouvait développer des modules et j'ai récupéré un modèle de module (mod_capsule) par contre j'ai du mal à comprendre comment l'utiliser.

        Merci d'avance pour toute aide
        Hello.

        Quel type de logiciel ?
        Et ce logiciel doit se connecter avec un compte utilisateur Joomla (gestion des droits ?).

        Si oui, ton logiciel doit se comporter comme un humain et remplir la form de login.
        Ensuite il doit récupérer et renvoyer le cookie d'identification à chaque requette http.

        Cela fonctionne sans problème.

        Sinon, si tu n'as pas besoin de te logger, et que tu veux récupérer des informations, le plus simple est de créer un petit composant qui te renvoie une page avec un template en raw, avec les informations souhaitées (par exemple du csv) c'est prévu par le noyau de joomla.

        Si tu veux des informations déjà prévues (liste des articles par exemple), il te suffira de créer une nouvelle vue view.raw.php au lieu du classique view.html.php avec le template de vue adéquat bien sûr.
        Mais en s'inspirant du view.html.php et de ses template c'est assez simple.

        Dans l'url tu rajoute &format=raw et au lieu d'afficher du html tu as ce que tu a prévu en raw (du csv en general).

        Avec le raw tu n'auras que la partie composant, donc pas les modules, etc... donc que les lignes (de csv ou autre) que tu auras générée dans ton template de vue et rien d'autre.

        Ragarde comment cela marche avec le format d'affichage 'feed' qui sort du xml (pour un flux rss).

        Par exemple :
        http://url_de_ton_site/index.php?opt...ed&format=feed

        Tu verra qu'ace ce format d'affichage feed qu'il n'y a pas non plus ce que tu appelles le "fatra de données" et qu'on a juste du xml propre.

        La vue ici étant en /component/com_content/views/feature/view.feed.php


        Mais Joomla 4 devrait nous apporter (enfin) un webservice, se sera alors encore bien plus simple.
        Dernière édition par roland_d_alsace à 20/12/2018, 09h38 Raison: correction sur la vue feed qui sort du xml pour un flux rss
        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
          Envoyé par roland_d_alsace Voir le message

          Quel type de logiciel ?
          Et ce logiciel doit se connecter avec un compte utilisateur Joomla (gestion des droits ?).

          Si oui, ton logiciel doit se comporter comme un humain et remplir la form de login.
          Ensuite il doit récupérer et renvoyer le cookie d'identification à chaque requette http.

          Cela fonctionne sans problème.
          Le logiciel ne se connecte pas comme utilisateur joomla. C'est un logiciel en java qui doit juste se connecter au site lors de son activation pour avoir une clef d'activation. J'envoie des informations sur la machine où le logiciel a été et un identifiant que l'utilisateur a obtenu après s'être inscrit sur le site. Coté serveur je vérifie que l'identifiant existe et ensuite je délivre une clef qui débloque les fonctionnalités du logiciel.


          Envoyé par roland_d_alsace Voir le message
          Sinon, si tu n'as pas besoin de te logger, et que tu veux récupérer des informations, le plus simple est de créer un petit composant qui te renvoie une page avec un template en raw, avec les informations souhaitées (par exemple du csv) c'est prévu par le noyau de joomla.

          Oui c'est ce qu'il me faut. Où est ce que je peux trouver la doc pour faire ce type de composant
          Dernière édition par Remi45 à 19/12/2018, 21h39

          Commentaire


          • #6
            Envoyé par Remi45 Voir le message
            Oui c'est ce qu'il me faut. Où est ce que je peux trouver la doc pour faire ce type de composant
            C'est une vue "standard".

            Si tu as le livre de Marc (Studer) "Développer des extensions pour joomla", il évoque sommairement les types de vues disponibles dans le framework (voici un extrait de la page 195) :
            • html (implicite) : type mime "text/html" précisant un format html
            • feed : xml pour flux rss
            • raw : mime "text/html" sans informations additionnelle
            • xml : mime "application/xml"
            • json : mime "application/json"
            • image : mime "image/png"
            • opensearch : mime application/opensearchdescription+xml"
            • error : mime "text/html" avec les information d'arreur du contexte
            Le type est indiqué dans la variable d'url "format"
            Et chaque url de la forme http://..../index.php?option=com_nom...ant&format=raw chargera la vue view.raw.php, idem pour json qui charge le fichier view.json.php (voir chemin ci-dessus en #4)
            Il faut bien sûr que la vue du type format demandé existe bien sinon l'internaute aura une 404.

            Implicitement si format n'est pas donné c'est view.html.php qui est chargé (c'est défini dans le contrôleur général il me semble, si le type de format implicite n'est pas changé dans le constructeur de la classe dérivée du contrôleur).

            Pour la doc, il faudra mettre un peu la main dans la mécanique, mais ce n'est pas le + compliqué vu qu'il n'y a pas de mise en page spécifique (et donc pas d'appel aux classes JForm, Jhtml, etc... du framework).
            Il suffit de t'inspirer d'une vue html ou de la vue feed comme je te l'indique ci-dessus, de changer le type en raw, et de virer tout le html, la pagination,etc....

            Tu peux même faire l'affichage directement dans le view.xxx.php sans passer par un ou des fichiers de template de vue (sous dossier /tmpl du dossier de la vue), car cela ne présente qu'assez peu d’intérêt de pouvoir overrider un affichage raw ou json.

            Franchement une fois que tu as pigé le système, ce n'est pas + compliqué que ce que tu envisageais de faire, et surtout bien + propre, plus facile à maintenir et à faire évoluer.

            Ainsi par exemple, le type de vue json est souvent utilisé pour répondre à des requêtes Ajax.
            Fait une recherche sur le nom de fichier view.raw.php dans l'arborescence de ton site (kunena en utilise par exemple), sinon sur view.json.php
            Dernière édition par roland_d_alsace à 20/12/2018, 09h54
            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
              J'ai trouvé un site qui m'a bien aidé http://docteurjoomla.com/nos-tutorie...oomla-partie-1
              Et avec format=raw ça fonctionne parfaitement
              Par contre je n'arrive pas à mettre le préfixe réglé. A la fin de l'édition il me refuse le droit de sauvegarder
              Dernière édition par Remi45 à 20/12/2018, 21h14

              Commentaire


              • #8
                Pourtant il est bien à sa place sur le premier message.
                Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
                Confucius

                Commentaire


                • #9
                  Envoyé par lesoutier Voir le message
                  Pourtant il est bien à sa place sur le premier message.
                  Effectivement il y a du avoir un micmac quand j'ai fait la manipulation mais au final ça a fonctionné. Les joies de l'informatique

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X