Dans un module, comment accéder à un fichier depuis le fichier default.php ?

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

  • Dans un module, comment accéder à un fichier depuis le fichier default.php ?

    Bonjour,.
    Dans un module que je prépare j'ai besoin d'accéder depuis le fichier default.php à un fichier que j'ai appelé email.php.
    J'ai placé ce fichier dans le dossier tmpl du module.

    tmpl
    default.php
    email.php


    Je n'arrive pas à envoyer les infos vers le fichier, le chemin provoque une erreur, je ne sais pas quel chemin indiquer dans le href..

    Quelqu'un sait-il comment je puisse procéder ?

    Cordialement.

    Eric

  • #2
    Encore moi,

    Je ne comprends pas trop votre demande, mais, au cas où....

    Le répertoire de votre module est accessible par une commande du type:
    Code PHP:
    $modulefield ''.JURI::base(true).'/modules/'.$module->module
    Pour accéder à une autre classe du module dans un fichier .php, il faut charger cette classe si elle n'est pas déjà chargée :
    Code PHP:
    JLoader::register('MonHelper'__DIR__ '/helper.php'); 
    et vous pouvez ensuite appeler les fonctions de votre classe par MonHelper::mafonction(...);

    Pascal
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Merci beaucoup.

      Commentaire


      • #4
        Bonjour,

        Je crois que je me suis mal exprimé.

        A partir du fichier defaut.php (tmpl/default.php) je dois transférer des infos vers un fichier email.php.
        J'ai un formulaire qui envoie (méthode GET) les infos que je récupère dans le fichier email.php. (tout cela fonctionne bien, l'url contient bien toutes les infos transmises)

        Je précise que ces deux fichiers sont dans le dossier tmpl de mon module.
        tmpl
        default.php
        email.php

        Quand j'indique le chemin du fichier de destination (action="/modules/mod_efneojob/tmpl/email.php"), et dès que je clique sur le bouton "Envoyer" de mon formulaire, la page est bien atteinte mais j'ai une erreur 500.

        Voici le fichier email.php :
        Code PHP:
        <?php
        // No direct access
        defined('_JEXEC') or die;
        JHtml::_('jquery.framework');
        $document JFactory::getDocument();
        $document->addStyleSheet("/modules/mod_efneojob/efneojob.css");
        ?>

        <?php
        // Contenu du fichier
        ?>
        Quelqu'un saurait-il me dire comment faire pour que ce fichier s'affiche ?

        Cordialement.

        Eric

        Commentaire


        • #5
          Bonjour Eric,

          Dans votre config, lorsque vous soumettez un formulaire par votre default.php, via un bouton submit, cela crée une tâche qui est renvoyée à votre module (sauf si vous avez paramétré un routage dans un autre composant). L'appel à la bonne classe se fait alors au niveau de votre fichier mod_efneojob.php en testant d'où vient l'appel au module principal.

          Dans votre formulaire, vous devez avoir <input type="hidden" name="task" /> et, dans votre module mod_efneojob.php, un test pour voir qui l'a appelé

          Code PHP:
          $task JRequest::getString('name','','post','');
          if (
          $task != "") { // on vient du formulaire
          // appel de l'envoi email
          .... 
          Dans votre classe d'email, vous pouvez alors récupérer les informations de votre formulaire par
          Code PHP:
          $app Factory::getApplication();
          $input $app->input;
          $data = array();
          $data['name'] = $input->get('name');
          .... 
          En espérant avoir été clair ,

          Pascal
          Dernière édition par pmleconte à 29/02/2020, 14h02
          If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

          Commentaire


          • #6
            Merci Pascal,
            Merci beaucoup,
            je n'ai pas compris ce que je devais indiquer à la place de :
            // on vient du formulaire
            // appel de l'envoi email


            Cordialement.

            Eric

            Commentaire


            • #7
              Le 1er commentaire est juste un commentaire...

              Le commentaire "appel de l'envoi email" est l'endroit où placer un appel à la classe contenu dans email.php avec sa méthode d'envoi d'email.

              Dans un de mes modules, j'ai

              JLoader::register('MonHelper', __DIR__ . '/helper.php');

              et, en fin de mon module.php, un test pour savoir si je viens d'un chargement standard du module ou d'un submit de mon formulaire :

              et cela donne
              Code PHP:
              $task JRequest::getString('name','','post','');
              if (
              $task != "") {
                  if (
              MonHelper::check_form_and_send_mail()) {
                        
              $layout 'thankyou'// default page
                  
              }
              }
              require 
              JModuleHelper::getLayoutPath('mod_cg_resa'$layout); 
              Dans mon module, j'ai ajouté une page "Merci" qui est affiché si tout est OK dans l'envoi du mail.

              Pour info, j'ai un petit module (complémentaire d'un composant) qui fait ce qui est demandé : https://www.conseilgouz.com/module-cg-resa

              Le module est téléchargeable à l'adresse ici

              Cela permet de voir comment tout cela s'articule.

              Pascal

              If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X