Ciao a tutti, sto lavorando su un modulo, che deve effettuare dei calcoli solo in prodotti presenti in determinate categorie.
Quindi ho utilizzato l'HelperTreeCategories per la creazione automatica dell'albero delle categorie.
Il problema è che al salvataggio della configurazione del modulo, vengono memorizzati tutti i dati, tranne quelli dell'HelperTreeCategories.
Impostando le categorie, se riapro il modulo risultano tutte non selezionate, e quindi nemmeno sul frontend e nel file product.php riesco a recuperare l'array che mi serve.
Ho provato a seguire le guide, anche tramite un manuale acquistato e vari esempi trovati su internet, ho anche provato a copiare la struttura da altri moduli, ma non funziona comunque il salvataggio.
Al momento la parte di codice è questa:
Nella funzione getContent(), se il modulo è correttamente configurato:
Configuration::updateValue('wi_tax_categories', Tools::getValue('wi_tax_categories'));
Nella funzione displayForm()
$root = Category::getRootCategory();
//Generating the tree
$tree = new HelperTreeCategories('categories_treeview'); //The string in param is the ID used by the generated tree
$tree->setUseCheckBox(true)
->setAttribute('is_category_filter', $root->id)
->setRootCategory($root->id)
->setSelectedCategories(array((int)Configuration::get('wi_tax_categories')))
->setUseSearch(true)
->setInputName('wi_tax_categories'); //Set the name of input. The option "name" of $fields_form doesn't seem to work with "categories_select" type
$categoryTreeCol = $tree->render();
Come contenuto di input dell' $fields_form[0]['form'] = array()
array(
'type' => 'categories_select',
'label' => $this->l('Categorie'),
'name' => 'wi_tax_categories',
'category_tree' => $categoryTreeCol // qui richiamo la struttura renderizzata (creata)
),
Per il caricamento delle informazioni già presenti sul DB, quindi dopo il salvataggio del form, al momento iniziale:
$helper->fields_value['wi_tax_categories'] = Configuration::get('wi_tax_categories');
Ed infine, nella funzione hookDisplayLeftColumn() che utilizzo per le variabili di smarty da poter utilizzare nel frontend:
// Recupero categorie
$elencoCats = $helper->fields_value['wi_tax_categories'] = Configuration::get('wi_tax_categories');
$this->context->smarty->assign(
array(
########
'wielencocats' => $elencoCats
));
Non mi da nessun tipo di errore di codice tra configurazione, installazione e salvataggio, infatti altre variabili presenti, e i calcoli vengono effettuati correttamente.
Quindi riepilogando l'unica cosa che non viene effettuata è il salvataggio delle categorie selezionate, e il recupero quindi di esse in frontend, dove giustamente non trovando valori memorizzati nella variabile, mi viene restituita un array false.