EmmanuelTesson Posted December 4, 2012 Share Posted December 4, 2012 Bonjour je crée actuellement un module perso administrable en back. j'ai créé le controller étendu de ModuleAdminController. j'utilise la méthode renderForm() pour gérer le formulaire d'ajout/modification des éléments : public function renderForm(){ $this->fields_form = array( 'legend' => array( 'title' => $this->l('Element') ), 'submit' => array( 'title' => $this->l('Save'), 'class' => 'button' ), 'input' => array( array( 'type' => 'text', 'label' => $this->l('Nom'), 'name' => 'name', 'size' => 33, 'required' => true, 'desc' => $this->l("Nom de l'élément") ), array( 'type' => 'radio', 'label' => $this->l('Type'), 'name' => 'type', 'size' => 33, 'class' => 't', 'required' => true, 'desc' => $this->l('Choix de la vente'), 'values' => array( array('id'=>'elt_amount','label'=>$this->l('Quantité'),'value'=>'amount'), array('id'=>'elt_weight','label'=>$this->l('Poids'),'value'=>'weight') ) ), array( 'type' => 'text', 'label' => $this->l('ID Produit'), 'name' => 'ocp_id_product', 'required' => true, 'desc' => $this->l('Begin typing the first letters of the product name, then select the product from the drop-down list'), ), array( 'type' => 'select', 'label' => $this->l('ID Catégorie Elt'), 'name' => 'id_element_categ', 'options'=> array( 'query'=>CategoryCustomProduct::getCategoriesOCP(), 'id'=>'id_onet_customproduct_categorie', 'name'=>'name' ) ), array( 'type' => 'radio', 'label' => $this->l('Actif?'), 'name' => 'active', 'required' => false, 'class' => 't', 'is_bool' => true, 'values' => array( array( 'id' => 'active_on', 'value' => 1, 'label' => $this->l('Enabled') ), array( 'id' => 'active_off', 'value' => 0, 'label' => $this->l('Disabled') ) ), 'desc' => $this->l('Enable Element in the Front Office') ), ) ); return parent::renderForm(); } je liste donc ci-dessus les champs présents dans ma table; le champ "ocp_id_product" est utilisé pour afficher via un Jquery autocomplete la liste des produits du catalogue. j'ai ajouté dans le script ci-dessous un champs caché pour récupérer l'ID du produit pour le renvoyer dans ma table ensuite. $(window).load(function () { /* function autocomplete */ $('#ocp_id_product').autocomplete('ajax_products_list.php', { minChars: 1, autoFill: true, max:20, matchContains: true, mustMatch:true, scroll:false }).result(function(event,data,formated){ $("#ocp_id_product_result").remove(); $("#ocp_id_product").after('<div id="ocp_id_product_result"><input type="hidden" id="ocp_id_product_val" name="ocp_id_product_val" value="'+data[1]+'" /><strong>'+data[0]+'</strong><span class="delOcpIdProduct" name="'+data[1]+'" style="cursor: pointer;"><img src="../img/admin/delete.gif"></span></div>'); }); }); Et c'est là ou cela se complique ! j'ai essayé d'overrider la méthode beforeAdd pour intervertir les valeurs ocp_id_product_val => ocp_id_product, mais sans sans succès... et si je passe par la méthode processUpdate, le copyFromPost ne prends pas en compte mon champs caché supplémentaire... Si quelqu'un a une idée comment faire ? 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