Eduard Posted October 3, 2019 Share Posted October 3, 2019 Buenas, Estoy desarrollando un módulo. El módulo tiene un acceso desde backoffice en el menú. Cuando entra desde el menú, no da ningún aviso. En la página que presenta hay distintos botones para insertar, listar etc. Cuando (recargo la página) pulso estos me da un error que no entiendo muy bien a que se refiere: ¿Qué no encuentra el objeto configuración? se refiere a esta parte del código... $lang = new \Language((int)\Configuration::get('PS_LANG_DEFAULT')); ¿Cómo puedo activar la barra debug "Symfony", en mi módulo, para poder ver más info? En las partes nativas de Prestashop sale (tengo activado modo debug) Gracias. DATOS: Esto sucedes en Prestashop 1.7 Link to comment Share on other sites More sharing options...
yined Posted December 20, 2019 Share Posted December 20, 2019 Hola como estas podrias adjuntar tu codigo para lograr validar los bugs que pudieras tener. Link to comment Share on other sites More sharing options...
Eduard Posted December 21, 2019 Author Share Posted December 21, 2019 Hola yined, El error se produce al recargar el controlador. <?php /** * @author Eduardo Pinuaga Linares - Did-web * @copyright Did-web 2019 * @license GNU General Public License version 2 * * @version 1.1 * * Languages: ES, DE, EN * PS version: 1.7 * **/ require_once dirname(__FILE__) . '/../../vendor/didweb/paginator/classes/paginator.php'; //require_once __DIR__ . '/../../vendor/autoload.php'; use DidWeb\Sql\Repositories; use didweb\ratioruntime\ratioruntime; //use didweb\paginator\Paginator; use DidWeb\Paginator\Classes\Paginator; use DidWeb\Models\DwgRecorded; use DidWeb\DwGrabados\Classes\DwgAlert; use DidWeb\DwGrabados\Classes\DwgUploadCsvApply; class DwgUploadCsvApplyController extends ModuleAdminController { public $files; private $productsRecorded = array(); public function __construct() { parent::__construct(); $this->bootstrap = true; $this->module->hookBackOfficeHeader(); $this->template = 'dwg_upload_csv_apply.tpl'; } public function createTemplate($tpl_name) { $getPosition = \Tools::getValue('position'); $datas = null; $finish = null; $position = ($getPosition === false)?'init':$getPosition; $alerts = new DwgAlert(); $uploadProcess = new DwgUploadCsvApply(); switch($position) { case 'upload': $csvApplyFile = $_FILES['csv-apply']; $path = $csvApplyFile['name']; $ext = pathinfo($path, PATHINFO_EXTENSION); if($ext != '.csv') { $resultSetSourceFile = $uploadProcess->setSourceFile($csvApplyFile); if($resultSetSourceFile) { $alerts->setAlert(true, 'success', 'Archivo Guardado con éxito.'); } else { $alerts->setAlert(true, 'danger', 'ERROR al subir el archivo.'); } } else { $alerts->setAlert(true, 'danger', 'ERROR La extensión ['.$ext.'] de archivo no permitida. Sólo está permitida: .csv'); } break; case 'update': $finish = $uploadProcess->updateDatasInDB(); if($finish) { $alerts->setAlert(true, 'success', 'Archivo actualizado con éxito.'); } else { $alerts->setAlert(true, 'danger', 'El archivo no existe, debes subir antes un CSV con los datos.'); } break; case 'purgelist': $delete = Repositories::deleteTable(DWE_APPLY_BY_REFERENCE); $alerts->setAlert(true, 'success', 'El listado ha sido eliminado.'); break; case 'init': break; } $page = \Tools::getValue('page'); $allDatas = $uploadProcess->getAllApplyDatas(); $urlBase = "index.php?controller=DwgUploadCsvApply" ."&token=".Tools::getValue('token'); $paginator_txt =array('Previous'=>'Anterior', 'Next'=>'Próximo'); $paginator = Paginator::pagination($page, $allDatas, 10, $urlBase, 5, $paginator_txt); $fileExist = $uploadProcess->fileExist(); $translations = ''; $this->context->smarty->assign(array( 'alerts' => $alerts->getAlert(), 'datas' => $datas, 'finish' => $finish, 'fileExist' => $fileExist, 'allDatas' => $paginator['result'], 'paginator' => $paginator )); return $this->context->smarty->createTemplate( _PS_MODULE_DIR_ . 'dwgrabados\views\templates\admin\/' . $tpl_name, $this->context->smarty ); } } El proceso lo realiza correctamente. Solo que salta la alerta. El controlador se vuelve a llamar a si mismo por ejemplo para pasar pro el "update". Pero al pasar esta vez pareces ser que no encuentra el "objeto configuration". Gracias. Link to comment Share on other sites More sharing options...
yined Posted December 21, 2019 Share Posted December 21, 2019 En la funciòn: createTemplate No estas colocando un case default o un alert al final verifica alli puede ser que no entre en al guno de los casos. No estas realizando validaciones sobre la variable $uploadProces Y por lo tanto no sabes si viene vacia o viene con errores. Tambien debes validar lo que estas pasando por el TPL y asi asegurarte que todo vaya bien. Link to comment Share on other sites More sharing options...
Eduard Posted January 5, 2020 Author Share Posted January 5, 2020 Ok Gracias yined. Voy a verificar esto que me comentas, en cuanto pueda, y pondré las conclusiones. Link to comment Share on other sites More sharing options...
Eduard Posted March 19, 2020 Author Share Posted March 19, 2020 Finalmente descubrí que es lo que sucedía. El error se produce cuando la url contiene algun parametro aparte del nombre de controlador y el token. Por ejemplo esta forma de enviar el formulario produce el error ... INCORRECTO -->> <form action="{$smarty.const.E_PRODUCTSBYTAGS_DIR_BASE_ADMIN}index.php?controller={$smarty.const.E_PRODUCTSBYTAGS_NAME_CONTROLER}&token={Tools::getAdminTokenLite({$smarty.const.E_PRODUCTSBYTAGS_NAME_CONTROLER})}&option=update" method="POST" class="defaultForm form-horizontal" id="fieldset_form"> Porque contiene este parámetro pasado por GET -> &option=update CORRECTO -->> <form action="{$smarty.const.E_PRODUCTSBYTAGS_DIR_BASE_ADMIN}index.php?controller={$smarty.const.E_PRODUCTSBYTAGS_NAME_CONTROLER}&token={Tools::getAdminTokenLite({$smarty.const.E_PRODUCTSBYTAGS_NAME_CONTROLER})}" method="POST" class="defaultForm form-horizontal" id="fieldset_form"> SOLUCIÓN: Quitó el parámetro pasado por GET y lo mandó como hidden por POST Gracias por la ayuda. Saludos 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