Fonction Imprimer dans un composant

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

  • Fonction Imprimer dans un composant

    Bonjour,

    Je développe actuellement un composant spécifique pour Joomla 2.5. J'aimerai savoir comment je peux imprimer une page en cours ? Sous Joomla 1.5 il suffisait d'indiquer format=raw dans le lien et d'avoir une vue correspondante (view.raw.php). Mais il semblerait que cela ne fonctionne plus sous Joomla 2.5.

    Quelqu'un a une idée ?

    Merci

  • #2
    Re : Fonction Imprimer dans un composant

    Bonjour

    As-tu essayé &tmpl=component&format=raw ?

    La partie &tmpl=component remplace l'ancien index2.php qui permettait de n'avoir que le rendu de l'action du composant et pas toute la mise en page du site ni les modules; que ton "output" à toi.

    Bonne soiré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
      Re : Fonction Imprimer dans un composant

      Bonjour,

      Merci cavo789 pour ta réponse, cela m'a donné une très bonne piste de recherche.

      Alors en fait, dans mon controller j'ai ajouté les lignes suivantes (que j'ai trouvé dans com_users) :
      Code PHP:
      // Get the document object.
      $document    JFactory::getDocument();
          
      // Set the default view name and format from the Request.
      $vName     JRequest::getCmd('view''nomDeMaVue');
      $vFormat $document->getType(); 
      et pour appeler ma vue
      Code PHP:
      $view $this->getView($vName$vFormat); 
      Comme ça j'appelle ma vue en précisant si c'est un format "RAW" ou "HTML" (celui par défaut).

      Donc mon lien ressemble à ça
      Code PHP:
      echo JRoute::_('index.php?option=com_moncomposant&view=nomDeMaVue&task=moncontroller.mafonction&tmpl=com_moncomposant&format=raw'); 
      Par contre la subtilité : il a fallu que je copie-colle mon contrôleur en le renommant "moncontroller.raw.php".

      D'où ma nouvelle difficulté : est-ce que je peux faire hériter mon contrôleur "RAW" de mon contrôleur "HTML", de façon à n'avoir mes fonctions que dans un seul fichier ?

      Merci pour vos réponses

      Commentaire


      • #4
        Re : Fonction Imprimer dans un composant

        Bonjour,
        et à quoi sert le &format=raw ? Avec &tmpl=component ça ne suffit pas ?
        Schtroumpfe toi le Schtroumpf t'aidera.
        Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

        Commentaire


        • #5
          Re : Fonction Imprimer dans un composant

          &format=raw me permet de préciser que c'est une impression. Cela permet de supprimer le template Joomla pour ne garder que le contenu de ma page.

          D'ailleurs j'ai simplifié encore mon code. Comme je n'utilise qu'une vue, je ne la précise plus dans le lien mais directement dans monController et tmpl=monComposant en fait ne sert pas. Donc je l'ai supprimé aussi de mon lien.

          ça donne :
          dans monController.php
          Code PHP:
          // Get the document object
          $document    JFactory::getDocument();
          $vFormat $document->getType();  // get the type (RAW or HTML)
          $view $this->getView('nomDeMaVue'$vFormat); 
          et mon lien :
          Code PHP:
          echo JRoute::_('index.php?option=com_moncomposant&task=monController.maFonction&format=raw'); 

          Commentaire


          • #6
            Re : Fonction Imprimer dans un composant

            Envoyé par sandrine14 Voir le message
            ... et tmpl=monComposant en fait ne sert pas. ...
            Avais-je écrit "tmpl=monComposant" dans ma première réponse ? Tu es sûr ?

            Peut-être préfères-tu lire du "Grand Schtroumpf", cela peut se comprendre, pas de soucis mais là aussi, es-tu sûr que tu peux faire confiance à tes yeux ?

            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


            • #7
              Re : Fonction Imprimer dans un composant

              Re,
              cela dit, il est tout à fait certain que tmpl=monComposant ne sert pas
              Schtroumpfe toi le Schtroumpf t'aidera.
              Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

              Commentaire


              • #8
                Re : Fonction Imprimer dans un composant

                Bonjour,

                oups.... alors je dirai pour ma défense : lundi matin, horaire d'été, pas réveillée....

                Bon alors j'ai revu ma copie. J'ai commenté dans monController.php les lignes
                Code PHP:
                // Get the document object.
                // $document    = JFactory::getDocument();
                // Set the default view name and format from the Request.
                // $vFormat = $document->getType(); 
                et j'appelle ma vue comme ça :
                Code PHP:
                $view $this->getView('maVue''HTML'); 
                et dans mon lien j'ai ajouté
                Code PHP:
                &tmpl=component&format=raw 
                J'ai ensuite supprimé mon fichier monController.raw.php et maVue.raw.php
                J'ai testé et j'ai eu une erreur 500 "Contrôleur invalide : monController.php"
                J'ai copié monController.php en monController.raw.php et cela fonctionne je n'ai plus d'erreur 500.

                Par contre j'ai toujours cette histoire de double contrôleur.

                Commentaire


                • #9
                  Re : Fonction Imprimer dans un composant

                  Deuxième essai : j'ai supprimé &format=raw dans mon lien et j'ai supprimé monController.raw.php.
                  Cela fonctionne ! Et je n'ai plus qu'un Contrôleur.

                  Par contre j'utilisais le même système pour générer un Export Excel, et du coup cela ne fonctionne plus.
                  Alors qu'hier avec ma première solution cela fonctionnait.

                  Est-il possible que je garde la solution d'un double contrôleur : monController.php et monController.raw.php mais que le deuxième hérite du premier ?

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X