sabrine Posted March 24, 2014 Share Posted March 24, 2014 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now