MarcoDev2022 Posted September 14, 2022 Share Posted September 14, 2022 Buenos días, Estoy intentando implementar un select de tipo multiple dentro de la configuración de adminitración de de un componente. Al incorporar el input en el form me aparece el siguiente mensaje de error y no soy capaz de capturar los datos en forma de array. Mensaje de error: Notice en línea 806 en archivo /home/user/prestashop/var/cache/dev/smarty/compile/4f/bf/56/4fbf5663e90248675e7a6b2b0e8079df6a276981_0.file.form.tpl.php [8] Undefined index: VAR_TYPE[] Añado la manera en la que incorporo el input array( 'col' => 6, 'type' => 'select', 'multiple' => true, 'prefix' => '<i class="icon icon-info-sign"></i>', 'desc' => $this->l('Type'), 'name' => 'VAR_TYPE', // he probado también con 'VAR_TYPE[]' 'label' => $this->l('Type'), 'options' => array( 'query' => array( array( 'id_option' => 'type1', 'name' => 'Type 1' ), array( 'id_option' => 'type2', 'name' => 'Type 2' ), ), 'id' => 'id_option', 'name' => 'name' ), ), ¿Alguien puede ayudarme con esto? Prestashop: 1.7.8.7 Link to comment Share on other sites More sharing options...
ventura Posted September 14, 2022 Share Posted September 14, 2022 Ejemplo [ 'type' => 'select', 'label' => $this->trans('Estados de pedido', [], 'Modules.Tumodulo.Admin'), 'hint' => $this->trans('Estados de pedido seleccionados, [], 'Modules.Tumodulo.Admin'), 'name' => 'SELEC_MULTIPLE_ESTADOS[]', 'id' => 'customer-select', 'desc' => $this->trans('Seleccionar estados de pedido', [], 'Modules.Tumodulo.Admin'), 'class' => 'chosen', 'identifier' => 'name', 'multiple' => true, 'options' => [ 'query' => OrderState::getOrderStates($this->context->language->id), 'id' => 'id_order_state', 'name' => 'name', ], ], Link to comment Share on other sites More sharing options...
MarcoDev2022 Posted September 14, 2022 Author Share Posted September 14, 2022 Hola Ventura, gracias por tu respuesta. He probado el ejemplo que me pasas y aparece el mismo error: Notice en línea 806 en archivo /home/user/prestashop/var/cache/dev/smarty/compile/4f/bf/56/4fbf5663e90248675e7a6b2b0e8079df6a276981_0.file.form.tpl.php [8] Undefined index: SELEC_MULTIPLE_ESTADOS[] Link to comment Share on other sites More sharing options...
ventura Posted September 14, 2022 Share Posted September 14, 2022 Perdona, no repare en lo del error. Versión de Prestashop y de PHP utilizada ¿? Si es posible borra cache, desde el admin y eliminando el contenido de /var/cache/pro/* /var/cache/dev/* Link to comment Share on other sites More sharing options...
MarcoDev2022 Posted September 14, 2022 Author Share Posted September 14, 2022 Tengo la caché desactivada, tanto la de smarty cono la general, no obstante he vaciado caché y he borrado esos directorios que comentas. El problema persiste 😓 ¿Se te ocurre algo más? Prestashop: 1.7.8.7 PHP: 7.4 Link to comment Share on other sites More sharing options...
ventura Posted September 14, 2022 Share Posted September 14, 2022 Donde estas añadiendo el select, entiendo que en un formulario de un modulo. o algo similar Link to comment Share on other sites More sharing options...
MarcoDev2022 Posted September 15, 2022 Author Share Posted September 15, 2022 El select se está añadiendo dentro de un módulo, desde la clase principal del módulo. Haciendo uso de estos métodos: protected function renderForm(){ .... $helper->generateForm(array($this->getConfigForm())); } .... protected function getConfigForm() { return array( 'form' => array( 'legend' => array( 'title' => $this->l('Settings'), 'icon' => 'icon-cogs', ), 'input' => array( [ 'type' => 'select', 'label' => $this->trans('Estados de pedido', [], 'Modules.Tumodulo.Admin'), 'hint' => $this->trans('Estados de pedido seleccionados', [], 'Modules.Tumodulo.Admin'), 'name' => 'SELEC_MULTIPLE_ESTADOS[]', 'id' => 'customer-select', 'desc' => $this->trans('Seleccionar estados de pedido', [], 'Modules.Tumodulo.Admin'), 'class' => 'chosen', 'identifier' => 'name', 'multiple' => true, 'options' => [ 'query' => OrderState::getOrderStates($this->context->language->id), 'id' => 'id_order_state', 'name' => 'name', ], ], ..... Link to comment Share on other sites More sharing options...
ventura Posted September 15, 2022 Share Posted September 15, 2022 Muy raro. Prueba a utilizar short array syntax en toda la getConfigForm() function Puede ser debido al uso de alguna variable en algún helper .tpl, ejemplo Tumodulo/views/templates/admin/_configure/helpers/form/form.tpl Link to comment Share on other sites More sharing options...
MarcoDev2022 Posted September 18, 2022 Author Share Posted September 18, 2022 Buenas Ventura, He simplificado al máximo la creación del formulario: /** * Create the structure of your form. */ protected function getConfigForm() { return array( 'form' => array( 'legend' => array( 'title' => $this->l('Settings'), 'icon' => 'icon-cogs', ), 'input' => array( [ 'type' => 'select', 'label' => $this->trans('Estados de pedido', [], 'Modules.Tumodulo.Admin'), 'hint' => $this->trans('Estados de pedido seleccionados', [], 'Modules.Tumodulo.Admin'), 'name' => 'SELEC_MULTIPLE_ESTADOS[]', 'id' => 'customer-select', 'desc' => $this->trans('Seleccionar estados de pedido', [], 'Modules.Tumodulo.Admin'), 'class' => 'chosen', 'identifier' => 'name', 'multiple' => true, 'options' => [ 'query' => OrderState::getOrderStates($this->context->language->id), 'id' => 'id_order_state', 'name' => 'name', ], ] ), 'submit' => array( 'title' => $this->l('Guardar'), ), ), ); } El problema sigue apareciendo, ya no sé que más probar, porque esto no tiene sentido para mí Link to comment Share on other sites More sharing options...
ventura Posted September 19, 2022 Share Posted September 19, 2022 No deja de ser un Notice y de un fichero del cache de desarrollo. Si no te impide seguir avanzando en el desarrollo, puedes continuar avanzando. Incluye el select en getConfigFieldsValues y en el postProcess para ver si te guarda y actualizada los registros correctamente Link to comment Share on other sites More sharing options...
idnovate.com Posted September 19, 2022 Share Posted September 19, 2022 El problema es que no le estás asignando un valor a esa variable. Revisa donde asignas $this->fields_value. 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