¡Hola a todos! Estoy intentando añadir una especie de shoutbox o chat simple para que los clientes puedan dejar mensajes rápidos en alguna página de mi tienda PrestaShop. La idea es algo muy básico, como un mini-foro de mensajes cortos visible para todos.
Mi problema es la persistencia de los datos. Estoy en PrestaShop 8.1.5 y he intentado crear un módulo con un hook displayFooter para mostrar el formulario y los mensajes, pero no consigo que los mensajes se guarden correctamente. No estoy seguro de cómo procesar el POST y la inserción en la base de datos de forma limpia sin romper nada.
Aquí tenéis un fragmento de cómo estoy intentando mostrar los mensajes y el formulario en mi myshoutbox.php:
public function hookDisplayFooter()
{
if (!$this->isCached('module:myshoutbox/views/templates/hook/shoutbox.tpl', $this->getCacheId())) {
$messages = Db::getInstance()->executeS('SELECT * FROM '._DB_PREFIX_.'shoutbox_messages ORDER BY id_message DESC LIMIT 5');
$this->context->smarty->assign([
'shoutbox_messages' => $messages,
'shoutbox_form_action' => $this->context->link->getModuleLink('myshoutbox', 'submit')
]);
}
return $this->display(__FILE__, 'views/templates/hook/shoutbox.tpl', $this->getCacheId());
El shoutbox.tpl tiene un formulario que envía a shoutbox_form_action. ¿Cómo debería manejar la lógica de guardado en el módulo? He intentado añadir la lógica directamente en el hook, pero eso no es lo correcto y no funciona.