⚡ Hooks del Back Office — referencia de los mas usados
Actualizado: 2024-12-01
El Back Office de PrestaShop expone mas de 100 hooks para que los modulos puedan modificar y extender sus paginas sin necesidad de overrides. Aqui estan los mas usados en el desarrollo profesional de modulos.
#Hooks de layout del BO
| Hook | Descripcion |
|---|---|
| displayAdminAfterHeader | Contenido justo despues de la cabecera del BO |
| displayAdminBefore | Antes del contenido principal de cualquier pagina del BO |
| displayBackOfficeHeader | En el del BO (para añadir CSS/JS inline) |
| actionAdminControllerSetMedia | Para registrar CSS/JS en el BO (como registerStylesheet) |
| displayAdminLogin | En la pagina de login del BO |
| displayAdminNavigationEnd | Al final de la barra de navegacion lateral |
#Hooks de la pagina de pedido
| Hook | Descripcion | Parametros |
|---|---|---|
| displayAdminOrderMain | Zona principal de la pagina de pedido | id_order |
| displayAdminOrderSide | Barra lateral de la pagina de pedido | id_order |
| displayAdminOrderTop | Parte superior de la pagina de pedido | id_order |
| displayAdminOrderTabContent | Contenido de un tab en la pagina de pedido | id_order, id_tab |
| displayAdminOrderTabLink | Enlace de un tab en la pagina de pedido | id_order |
| actionGetAdminOrderButtons | Botones de la cabecera de la pagina de pedido | id_order, actions |
#Hooks de Grid (listados)
Ejemplo de registro y uso de hooks de Grid
php
<?php
public function install(): bool
{
return parent::install()
&& $this->registerHook('actionOrderGridDefinitionModifier')
&& $this->registerHook('actionOrderGridQueryBuilderModifier')
&& $this->registerHook('actionProductGridDefinitionModifier');
}
// Añadir columna al grid de pedidos
public function hookActionOrderGridDefinitionModifier(array $params): void
{
$definition = $params['definition'];
$definition->getColumns()->addAfter(
'reference',
(new \PrestaShop\PrestaShop\Core\Grid\Column\Type\DataColumn('mymodule_data'))
->setName('Dato extra')
->setOptions(['field' => 'mymodule_data'])
);
}
// Modificar la query del grid de pedidos
public function hookActionOrderGridQueryBuilderModifier(array $params): void
{
$qb = $params['search_query_builder'];
$qb->addSelect('md.extra_value AS mymodule_data');
$qb->leftJoin('o', _DB_PREFIX_ . 'mymodule_order_data', 'md', 'md.id_order = o.id_order');
}
#Hooks de objetos (CRUD)
| Hook | Cuando se llama |
|---|---|
| actionObjectProductAddBefore/After | Antes/despues de crear un producto |
| actionObjectProductUpdateBefore/After | Antes/despues de actualizar un producto |
| actionObjectProductDeleteBefore/After | Antes/despues de borrar un producto |
| actionObjectOrderAddBefore/After | Antes/despues de crear un pedido |
| actionObjectCustomerAddBefore/After | Antes/despues de crear un cliente |
| actionObjectCategoryAddBefore/After | Antes/despues de crear una categoria |
| actionObjectCarrierAddBefore/After | Antes/despues de crear un transportista |
Descargar en Markdown
Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.