getCustomSortOrders(); // Inyectamos en el objeto estándar (por si acaso) $variables['listing']['sort_orders'] = $customSorts; // Inyectamos nuestra variable persistente $this->context->smarty->assign('my_custom_sorts', $customSorts); return $variables; } // Método 2: Para asegurar la carga inicial de la página public function initContent() { parent::initContent(); error_log("LOADING", 3, "dropcontroller.log"); $this->context->smarty->assign('my_custom_sorts', $this->getCustomSortOrders()); } // Método Privado para no repetir código private function getCustomSortOrders() { $translator = $this->getTranslator(); $sortOrders = []; // VENTAS - Usamos un bloque try/catch preventivo o simplemente lo añadimos // sabiendo que el campo en BD para ventas suele llamarse 'sales' en el motor de búsqueda $sortOrders[] = (new SortOrder('product', 'position', 'desc'))->setLabel($translator->trans('Los más vendidos', [], 'Shop.Theme.Catalog')); // Relevancia (Posición) $sortOrders[] = (new SortOrder('product', 'position', 'asc'))->setLabel($translator->trans('Relevancia', [], 'Shop.Theme.Catalog')); // Precio $sortOrders[] = (new SortOrder('product', 'price', 'asc'))->setLabel($translator->trans('Precio: menor a mayor', [], 'Shop.Theme.Catalog')); $sortOrders[] = (new SortOrder('product', 'price', 'desc'))->setLabel($translator->trans('Precio: mayor a menor', [], 'Shop.Theme.Catalog')); // Nombre $sortOrders[] = (new SortOrder('product', 'name', 'asc'))->setLabel($translator->trans('Nombre: A-Z', [], 'Shop.Theme.Catalog')); $sortOrders[] = (new SortOrder('product', 'name', 'desc'))->setLabel($translator->trans('Nombre: Z-A', [], 'Shop.Theme.Catalog')); $sortOrders[] = (new SortOrder('stock_available', 'quantity', 'desc'))->setLabel($translator->trans('Disponible, Mayor a Menor', [], 'Shop.Theme.Catalog')); $formattedSortOrders = []; $currentOrder = Tools::getValue('order'); foreach ($sortOrders as $sortOrder) { $orderArray = $sortOrder->toArray(); $orderArray['url'] = $this->context->link->getPageLink( 'prices-drop', true, $this->context->language->id, ['order' => $sortOrder->toString()] ); $orderArray['current'] = ($currentOrder === $sortOrder->toString()); $formattedSortOrders[] = $orderArray; } return $formattedSortOrders; } }

Filtros activos

Envíanos un mensaje