Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
Backend de PrestaShop, error fatal en la llamada ajax

En el backend de un sitio de PrestaShop estoy usando esta función:

 public function hookAjax($action, $id_product, $id_lang, $title, $descript, $order, $id = NULL) { /* various code*/ $this->context->smarty->assign( array( 'block_define' => $this->getFormDesc($id_product) ) ); return $this->context->smarty->fetch($this->local_path.'views/templates/hook/admin_extra_desc.tpl'); } public function getFormDesc($id_product) { $array = array(); foreach (Language::getLanguages() as $lang) { /*various code*/ foreach($result as $k=> $r) { $files = array(); $helper = new HelperImageUploader(); $helper->setMultiple(false)->setUseAjax(true)->setName('thumbnail_'.$r['id'].'_'.$r['id_lang'])->setFiles($files)->setMaxFiles(3)->setUrl('../modules/module-name/imgAjaxCall.php?'); $result[$k]['img-form'] = $helper->render(); $result[$k]['img'] = $result[$k]['img'] ? _PS_BASE_URL_.__PS_BASE_URI__.'modules/module-name/upload/'.$result[$k]['img'] : ''; } $array[$lang["id_lang"]] = array( 'lang_data' => $lang, 'count' => count($result), 'data' => $result ); } return $array; }

HookAjax es llamado por:

 <?php include(dirname(__FILE__).'/../../config/config.inc.php'); $context = Context::getContext(); $addDesc = Module::getInstanceByName('module-name'); echo $addDesc->hookAjax($_POST['action'],$_POST['id_prodotto'],$_POST['lang'],$_POST['title'], $_POST['text_desc'], NULL, $_POST['row']); ?>

Pero lucho con este error:

Error fatal: llamar a una función miembro addJs() en un no objeto en {my_site}/classes/helper/HelperUploader.php en la línea 257

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Debe incluir init.php en HookAjax después de incluir config.inc.php para que el controlador se inicialice en contexto.

 include(dirname(__FILE__).'/../../init.php');

Tenga en cuenta que esto es solo una mala práctica, respete el MVC y use los controladores adecuados para sus llamadas AJAX y validación/procesamiento de datos en ellos, no dentro de la clase del módulo principal.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda