Jump to content

Zouheir

Members
  • Content count

    5
  • Joined

  • Last visited

1 Follower

About Zouheir

  • Rank
    PrestaShop Newbie

Profile Information

  • Location
    Casablanca
  • Activity
    Developer
  1. No c'est juste que je me connecte sur deux postes. Voici mon code: Schema de la base pour les trois tables CREATE TABLE IF NOT EXISTS `ps_devis` ( `id_devis` int(10) unsigned NOT NULL, `id_shop_default` int(10) NOT NULL DEFAULT '1', `montant` decimal(20,6) NOT NULL DEFAULT '0.000000', `id_product` int(11) unsigned NOT NULL, `id_country` int(11) unsigned NOT NULL, `date_creation` datetime NOT NULL, `date_debut` datetime NOT NULL, `date_fin` datetime NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- -- Structure de la table `ps_devis_lang` -- CREATE TABLE IF NOT EXISTS `ps_devis_lang` ( `id_devis` int(10) unsigned NOT NULL, `id_lang` int(10) unsigned NOT NULL, `id_shop` int(10) unsigned NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Structure de la table `ps_devis_shop` -- CREATE TABLE IF NOT EXISTS `ps_devis_shop` ( `id_devis` int(10) NOT NULL, `id_shop` int(10) NOT NULL, `montant` decimal(20,6) NOT NULL DEFAULT '0.000000', `id_product` int(11) NOT NULL, `id_country` int(11) NOT NULL, `date_creation` datetime NOT NULL, `date_debut` datetime NOT NULL, `date_fin` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Index pour la table `ps_devis` -- ALTER TABLE `ps_devis` ADD PRIMARY KEY (`id_devis`); -- -- Index pour la table `ps_devis_lang` -- ALTER TABLE `ps_devis_lang` ADD PRIMARY KEY (`id_devis`,`id_lang`,`id_shop`); -- -- AUTO_INCREMENT pour la table `ps_devis` -- ALTER TABLE `ps_devis` MODIFY `id_devis` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=6; Et pour la classe DevisManage.php <?php class DevisManage extends ObjectModel { /** @var string Name */ public $montant; /** @var int default Shop id */ public $id_shop_default; public $id_product; public $id_country; public $date_debut; public $date_fin; public $date_creation; public $destination; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'devis', 'primary' => 'id_devis', 'multilang' => true, 'multilang_shop' => true, 'fields' => array( /* classic fields */ 'id_shop_default' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'montant' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice', 'required' => false), 'id_product' => array('type' => self::TYPE_INT, 'shop' => true,'validate' => 'isInt', 'required' => true), 'id_country' => array('type' => self::TYPE_INT, 'shop' => true,'validate' => 'isInt', 'required' => true), 'date_debut' => array('type' => self::TYPE_DATE, 'shop' => true, 'validate' => 'isDate', 'required' => true), 'date_fin' => array('type' => self::TYPE_DATE, 'shop' => true, 'validate' => 'isDate', 'required' => true), 'date_creation' => array('type' => self::TYPE_DATE, 'shop' => true, 'validate' => 'isDate', 'required' => true), ), ); .... et enfin pour la classe controller class AdminDevisManageController extends ModuleAdminController { /** @var array profiles list */ protected $products_array = array(); protected $destinations_array = array(); public function __construct() { $this->bootstrap = true; $this->table = 'devis'; $this->className = 'DevisManage'; $this->explicitSelect = true; $this->lang = true; $this->context = Context::getContext(); $this->addRowAction('edit'); $this->addRowAction('delete'); $this->addRowActionSkipList('delete', array(1)); $this->bulk_actions = array( 'delete' => array( 'text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?'), 'icon' => 'icon-trash' ) ); if (!Tools::getValue('id_devis')) $this->multishop_context_group = false; parent::__construct(); .... j'ai voulu vous montré ces trois codes car je pense que l'erreur vient soit apartir des tables ou bien des déclaration qui manques dans mon code. Merci
  2. et pourquoi ça a marché quand j'ai mi un die() après la condition "if (Shop::isTableAssociated($this->def['table']))". vous avez un tuto qui décrit cette configuration? Merci
  3. j'ai verifié mais c'est pas la cause, quand je met un die() apres la condition sur le multishop je recoi les insertion avec la duplication des id, c'est le principe de multishop. le probleme peut etre est du à autre chose
  4. bonjour, j'aimerai ajouter un champs de prix global dans le formulaire du prix de chaque produit et de changer l affichage du produit dans la boutique. j'ai arriver a realise ca mais par des modifications au niveau des fichiers prestashop 1.5 mais on me demmande de creer un module qui s'occupe de ca. donc mon probleme c'est en fait comment ajouter un champs depuis le module et comment repartir mes fichier sur le modele mvc que utilise prestashop. j'ai place : AdminImportController.php dans monmodule/controller/admin AdminProductsController.php dans monmodule/controller/front Product.php dans monmodule/models product.tpl + product_list.tpl + dossier (js) + dossier (css) tout ca dans monmodule/views/front prices.tpl dans monmodule/views/templates/admin/monmodule/ et voici ma classe module <?php if (!defined('_CAN_LOAD_FILES_')) exit; class monmodule extends Module { public function __construct() { global $cookie; $this->name = 'monmodule'; $this->tab = ''; $this->version = 1.5; $this->displayName = $this->l(''); $this->description = $this->l(''); $this->confirmUninstall = $this->l('Are you sure you want to uninstall the module ').$this->name; parent::__construct(); } public function install() { return (parent::install() AND $this->installModuleTab('AdminProducts', array(1=>'mymodule',2=>'monmodule') , 'AdminCatalog') ); } public function uninstall() { return (parent::uninstall() AND $this->uninstallModuleTab('AdminProducts') ); } private function installModuleTab($tabClass, $tabName, $nameTabParent) { $idTabParent = Db::getInstance()->getValue("SELECT `id_tab` FROM `"._DB_PREFIX_."tab` WHERE `class_name`='".$nameTabParent."'"); $tab = new Tab(); $languages=Language::getLanguages(false); $tabNameAllLanguages=array(); foreach($languages as $language) { if(isset($tabName[$language['id_lang']])) $tabNameAllLanguages[$language['id_lang']]=$tabName[$language['id_lang']]; else $tabNameAllLanguages[$language['id_lang']]=$tabName[1]; } $tab->name = $tabNameAllLanguages; $tab->class_name = $tabClass; $tab->module = $this->name; $tab->id_parent = $idTabParent; return ($tab->save()); } private function uninstallModuleTab($tabClass) { $idTab = Tab::getIdFromClassName($tabClass); if($idTab != 0) { $tab = new Tab($idTab); $tab->delete(); return true; } return false; } } ?> que dois je faire alors?
×