Jump to content

Recommended Posts

Bonjour, 

J’ai un problème du contrôleur dans Back-office

Lorsque je clique  sur un bouton créer une formulaire doit m'affiche 

J’ai créé pour la formulaire un contrôleur, un model et une vue.

 

Le message qui m'affiche:

 

Not Found  

The requested URL /alcomdevis/Addformulaire.php was not found on this server.

 

 le fichier  "Addformulaire.php" existe dans le dossier du module mais je ne sais pas pourquoi ce " not found on this server".

le contenue de ce fichier:

<?php
 
require(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('AddformulaireController')->run();
  
le contenue du modele "alcomdevis\models\admin\Addformulaire.php":
<?php
class Addformulaire extends ObjectModel
{
    
    //On commence par définir nos propriétés (champs de notre table)
    public $nom_devis;
    public $id_devis;
    public $id_customer;
    public $statut_devis;
public $date_validation_devis;
    
    //Parties renseignant sur les propriétés de chaque champs pour le Back office
    protected $fieldsRequired = array('nom_devis','id_devis','id_customer','statut_devis','date_validation_devis');
    protected $fieldsValidate = array('nom_devis' => 'isName','id_devis' => 'isString', 'id_customer' => 'isString', 'statut_devis' => 'isName', 'date_validation_devis' =>'isDate');
   
    protected $table = 'formulaire';
    //On définit l'identifiant pour le back office
    protected $identifier = 'id_formulaire';
 
    
    
    // La fonction getFields() nous permet de relier les propriétés avec la table
    // on pourra ainsi récupérer dans le Back Office nos champs très facilement
    public function getFields() 
    { 
        parent::validateFields();
$fields['nom_devis'] = pSQL($this->nom_devis);
$fields['id_devis'] = (int)($this->id_devis);
$fields['id_customer'] = (int)($this->id_customer);
$fields['statut_devis'] = pSQL($this->statut_devis);
        $fields['titre'] = pSQL($this->titre);
        $fields['date_validation_devis'] = pSQL($this->date_validation_devis);
        return $fields;     
    }
//Méthode listing de la table
   
    public function listeFormulaire($id_customer=NULL)
        {
            if($id_customer!=NULL)
                {
                    //On sélectionne toutes les lignes de la table formulaire et en même temps les champs concordant de la table customer
                    $sql='select * from '._DB_PREFIX_.'formulaire FO INNER JOIN '._DB_PREFIX_.'customer CU 
                    ON FO.id_customer=CU.id_customer where FO.id_customer='.(int)($id_customer);
                }
            else
                {
                    //On sélectionne toutes les lignes de la table formulaire et en même temps les champs concordant de la table customer
                    $sql='select * from '._DB_PREFIX_.'formulaire FO INNER JOIN '._DB_PREFIX_.'customer CU 
                    ON FO.id_customer_formulaire=CU.id_customer';
                }
            //Méthode pour la lecture dans la base
            $result=Db::getInstance()->execute($sql);
            //On retourne le résultat
            return $result;
        }
        
    //Méthode pour supprimer un ou tous les formulaires de la table 
    public function deleteFormulaire($id_formulaire=NULL)
        {
            if($id_formulaire==NULL)
                {
                    //On supprimer tous les forumlaires
                    $sql='delete from '._DB_PREFIX_.'formulaire';
                }
            else
                {
                    //On supprime uniquement le forumlaire sélectionné
                    $sql='delete from '._DB_PREFIX_.'formulaire where id_formulaire='.$id_formulaire;
                }
            //Méthode pour la lecture dans la base
            $result=Db::getInstance()->execute($sql);
            //On retourne le résultat
            return $result;
        }
        
    //Méthode pour insertion d'un formulaire dans la base de données depuis l'objet formulaire
    
    public function insertFormulaire($nom_devis,$id_devis,$id_customer,$statut_devis,$date_validation_devis)
        {
            $sql='insert into '._DB_PREFIX_.'formulaire (`id_devis`,`id_customer`,`statut_devis`,`date_validation_devis`) 
VALUES("'.$nom_devis.'","'.$id_devis.'","'.$id_customer.'","'.$statut_devis.'","'.$date_validation_devis.'")';
            //Méthode pour la lecture dans la base
            $result=Db::getInstance()->execute($sql);
            //On retourne le résultat
            return $result;
        }
 
/*Méthode pour récupére le nom et prénom d'un client suivant son ID client
    * On en a besoin dans la page du Back office
    */
 
public function nom_client($id_customer)
        {
            $res='select firstname,lastname from '._DB_PREFIX_.'customer where id_customer='.$id_customer;
            //Méthode pour la lecture dans la base
            $result=Db::getInstance()->getRow($res);
            //On retourne le résultat
            return $result;
        }
  //Méthode crée pour insérer le forumlaire envoyé en devis
   
    public function ajouter_devis($nom_devis,$id_devis,$id_customer,$statut_devis,$date_validation_devis)
        {
            //On insère le devis dans la table devis
            $sql='insert into '._DB_PREFIX_.'devis (id_devis,nom_devis,statut_devis,date_validation_devis,date_devis,id_customer,id_admin,id_panier,id_produit)
                VALUES ('.$id_devis.','.$nom_devis.','.$statut_devis.','.$date_validation_devis.',"",'.$id_customer.',"","","");';
            $result=Db::getInstance()->execute($sql);
            
            //On récupère l'ID devis
            $ID=Db::getInstance()->Insert_ID();
     
            //On insère dans la table devis_lang
            $sqll='insert into '._DB_PREFIX_.'devis_lang (id_devis,id_lang,statut_devis,date_devis,id_customer)
VALUES('.$ID.',2,'.$statut_devis.',"",'.$desc.'","'.$id_customer.')';
                   
            $result2=Db::getInstance()->execute($sqll);
            
           
        }
}
le contenue du contrôleur:
<?php
class AddformulaireController extends ModuleAdminController
{
 
    public $php_self = '/models/admin/Addformulaire.php';
    public $ssl = true;
 
    public function postProcess()
    {
        //On vérifie le bouton submit du formulaire
        if(Tools::isSubmit('bouton'))
            {
                // On va commencer en premier par récupérer l'id admin avec la variable cookie
                // et vérifier que la personnes est bien loggée
                global $cookie;
                if(!isset($cookie->id_employee))
                    {
                        $message='Aucun client loggé';
                    }
                else
                    {
                        $errors=array();
                        $customer=$cookie->id_employee;
                        //On récupère les valeurs du formulaire
                        $nom_devis=Tools::getValue('nom');
$id_devis=Tools::getValue('ref');
$id_customer=Tools::getValue('client');
                        $statut_devis=Tools::getValue('statut');
$date_validation_devis=Tools::getValue('date_liv');
 
                        //On va vérifier les champs obligatoires
                        if($nom_devis==''||$id_customer==''||$statut_devis=='')
                            {
                                if($nom_devis==''){array_push($errors,'S\'il vous plaît n\'oubliez pas de mettre un nom du devis<br />');}
                                if($id_customer==''){array_push($errors,'S\'il vous plaît n\'oubliez pas de mettre un nom du client<br />');}
                                if($statut_devis==''){array_push($errors,'S\'il vous plaît n\'oubliez pas de mettre un statut du devis<br />');}
                            }
                        else
                            {
                                //Les champs sont remplis, on va faire le traitement des données.
                                //On utilise la méthode insertFormulaire() pour insérer le formulaire:
                                Formulaire::insertFormulaire($nom_devis,$id_devis,$id_customer,$statut_devis,$date_validation_devis);
                                $message='Votre demande a bien été envoyée';
                            }
                    }
                //On envoie le message si il existe:
                if(isset($message))self::$smarty->assign('message',$message);
                if(isset($errors))self::$smarty->assign('erreurs',$errors);
            }
        
    }
    public function process()
    {
        parent::process();
        $this->postProcess();
        
    }
 
    public function displayContent()
    {
        parent::displayContent();
        self::$smarty->display(_PS_THEME_DIR_.'Addformulaire.tpl');
    }
}
je crois que la faute vient de cette fonction au niveau du bouton creér 
 public function initToolbar()
  {
 $this->toolbar_btn = array();
      $this->toolbar_btn['new'] = array('desc' => $this->l('Nauveau devis'), 'href' => '/alcomdevis/Addformulaire.php');
 $this->toolbar_btn['cancel'] = array('desc' => $this->l('Retour'), 'href' =>'http://localhost/prestashop/admin3231/index.php?controller=AdminHome&token=ad61f286e2a655716ce175cf514557cd');
  }
 
Merci d'avance :)
 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...