Tutoriel : Les formulaires

Les formulaires sont essentiels dans un site internet. On en trouve sur toutes les pages, pour se connecter, créer un compte, laissez un email ...

 

Utilisation du widget

Cet exemple montre comment utiliser le widget dans vos controlleurs

Initialisation du formulaire : dans le fichier WidgetController.php

    
        $itineraire = new Itineraire($this->Core);
       
        if ($params != "") {
            $itineraire = $itineraire->GetByCode($params);
        }

        //Formulaire du parametrage de l'itinéraire
        $this->form = new ItineraireForm($this->Core);
        $this->form->Load($itineraire);
        $view->AddElement(new ElementView("itineraireForm", $this->form->Render()));
        
        
      
 

Dans le fichier de vue : tools.tpl

    
        <div class='col-md-12' id='itineraireTool' style='display:none'> 
            {{itineraireForm}}
        </div> 
    
    
 

Initialisation côté JS

    
        ItineraireForm.Init();
     
 

Récéeption dans l'application : Planificateur.php

    
 
  /**
     * Sauvegarde un itinieraire
     */
    function SaveItineraire() {
        return ItineraireHelper::SaveItineraire($this->Core, Request::GetPosts());
    }
   
 

Chargement et sauvegarde avec les entités : ItineraireHelper.php

    
    
    /*     * *
     * Sauvegarde une itinéraire
     */

    public static function SaveItineraire($core, $data) {

        $iteneraireForm = new ItineraireForm($core, $data);

        //On valide le formulaire
        if ($iteneraireForm->Validate()) {

            $itineraire = new Itineraire($core);

            if (isset($data["Id"]) && $data["Id"] != "") {
                $id = $data["Id"];
                $itineraire->GetById($data["Id"]);
            } else {
                $itineraire->DateCreated->Value = Date::Now();
            }

            $itineraire->UserId->Value = $core->User->IdEntite;
            $itineraire->Code->Value = Format::ReplaceForUrl($data["Name"]);

            //Catégorie 1 pour commencer car les autres ne sont pas afficher pour l'instant
            $itineraire->Status->Value = 1;

            $iteneraireForm->Populate($itineraire);

            //On sauvegarde
            $itineraire->Save();

            if ($id == "") {
                $id = $core->Db->GetInsertedId();
            }

            return $iteneraireForm->Success(array("Id" => $id));
        } else {
            return $iteneraireForm->Error();
        }
    }