Conditionnelle dans un composant site/controller.php

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

  • [Problème] Conditionnelle dans un composant site/controller.php

    Bonjour,

    Je suis actuellement en développement d'un composant qui gére des demandes. Mais ce n'est pas la question .

    J'ai un "problème" au niveau du controller.php à la racine de site. Voila le code:

    Code PHP:
    class InterimController extends JController
    {
        
    /**
         * @var        string    The default view for the display method.
         *
         * @since    0.0.1
         *
         * @see        JController::$default_view
         */
        
    if (???????????)
            protected 
    $default_view 'hotel';
        } 
        else 
        {
            protected 
    $default_view 'demande';
        }

    Le problème s'est la conditionnelle, j'aimerais qu'elle puisse vérifier qu'un utilisateur à bien rempli un formulaire d'hotel avant de procédé à la demande. Donc que la vue de la form de l'hotel s'affiche en premier à la connexion et qu'une fois le formulaire rempli, l'utilisateur est le loisir de se connecter et de tomber sur ces demandes...

  • #2
    Re : Conditionnelle dans un composant site/controller.php

    Personne?

    Commentaire


    • #3
      Re : Conditionnelle dans un composant site/controller.php

      Bonjour,

      Tout composant peut avoir une collection de vues.

      La sélection des vues se fait en général lors de l'appel de la méthode display, qui reçoit un paramètre $tpl.

      Il n'est nul besoin de ce genre de condition, qui même en PHP n'est pas sémantiquement conforme aux bonnes méthodes.

      Voir le documentation sur la gestion MVC de Joomla! et la sélection des views via $tpl de la méthode display. Chaque view est un répertoire avec le nom de la view dans le répertoire views du composant. http://docs.joomla.org/J2.5:Developi..._the_site_part
      Pas de demande de support par MP.
      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

      Commentaire


      • #4
        Re : Conditionnelle dans un composant site/controller.php

        Je vois, mais du coup je sais pas trop comment géré l'affichage conditionnelle de ma vue dans le display... Mon code ressemble à ça:

        Code PHP:
        class InterimViewHotel extends JView
        {
        public function 
        display($tpl null
            {
                
        // Get data from the model
                
        $this->form $this->get('Form');
                
        $this->params $this->get('Params');
                
        $this->item $this->get('Item');
                
        $this->state $this->get('State');
                
        $this->return_page $this->get('ReturnPage');

                
        // Get the user
                
        $user JFactory::getUser();
                if (!
        $user->authorise('core.edit''com_interim.hotel.' $this->item->id) && !($user->authorise('core.edit.own''com_interim.hotel.' $this->item->id) && $user->get('id') == $this->item->created_by)) 
                {
                    return 
        JError::raiseError(403JText::_('JLIB_APPLICATION_ERROR_EDIT_NOT_PERMITTED'));
                }

                
        // Check for errors.
                
        if (count($errors $this->get('Errors'))) 
                {
                    return 
        JError::raiseWarning(500implode('<br />'$errors));
                }

                
        // Check for not found.
                
        if (!$this->item || $this->item->published != 1
                {
                    return 
        JError::raiseError(404JText::_('COM_INTERIM_ERROR_HOTEL_NOT_FOUND'));
                }

                
        // Prepare the document
                
        $this->prepareDocument();

                
        // Display the layout
                
        parent::display($tpl);
            } 
        Dernière édition par Nenidd à 13/01/2014, 11h47

        Commentaire


        • #5
          Re : Conditionnelle dans un composant site/controller.php

          Lis bien les docs. Dans le form, tu as l'URL cible, dans laquelle le tpl de gestion est nommé. Le reste est quasiment automatique. Si $tpl n'est pas là, donc vide, tu choisis la vue form, si $tpl contient par exemple hotel, tu choisis ta vue hotel.

          Tu peux également utiliser les tasks.

          Regardes la structure de com_content, avec sa sélection de views et son controller. C'est une bonne approche.
          Dernière édition par jisse03 à 13/01/2014, 11h40
          Pas de demande de support par MP.
          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

          Commentaire


          • #6
            Re : Conditionnelle dans un composant site/controller.php

            Ok.
            Mais le problème c'est que je veut afficher que des formulaires. Quand l'utilise le composant pour la première fois, il doit remplir les info concernant son hotel.
            A ces prochaines connexion, il pourra afficher le formulaire pour remplir ces demandes et sa sera ce même formulaire appeler plusieurs fois.
            Je sais pas si j'ai été clair dès le début, et si du coup c'est la même solution, sachant que mon contrôller et mes views sont les mêmes que le com_content à la différence que j'ai des classes pour chaque object - Hotel et Demande. ( Donc 2 contrôllers, 2 views, 2 models)

            Commentaire


            • #7
              Re : Conditionnelle dans un composant site/controller.php

              Et tu as des tasks ? genre newhotel, newquote, etc ?

              Utilises la même méthode que pour les autres composants en associant les tasks et les views.
              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Re : Conditionnelle dans un composant site/controller.php

                Oui dans l'idée, il y a un new hotel dès le début, et après c'est que des demandes donc un new et des modif sur les hotels et demande donc des édits... Je renvoie un tableau récap' sur une autre vue, mais elle entre en compte autrement.
                Mon probléme c'est vraiment vérifier que tant que l'hotel n'est pas créer, l'utilisateur ne puisse pas émettre une demande.

                C'est pour sa que je pensais mettre un if(l'utilisateur n'a pas de hotel-> create by son num), il a accès au form hotel et sinon il a accès au form demande.

                Et oui j'ai des tasks :
                Code PHP:
                // Perform the Request task
                $controller->execute(JRequest::getCmd('task')); 
                dans l'entrée principe du composant du coté site
                Dernière édition par Nenidd à 13/01/2014, 14h10

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X