Jump to content

[SOLUCIONADO] Mostrar una categoría como inicio de Web


Recommended Posts

Buenas,

Te presento dos posibles maneras de poder realizar lo que pides. Seguramente hayan mas pero estas son las más rápidas:

A) Sencilla pero NO es la opción mas recomendable: 

 1- Abre tu fichero Controllers/front/IndexController.php

 2- Modifica la función initContent como se mmuestra a continuación:

public function initContent()
{

   parent::initContent();
   Tools::redirect('index.php?id_category=10&controller=category'); // 10 es la id de categoria de ejemplo, en tu caso reemplazalo por la que desees
   $this->context->smarty->assign('HOOK_HOME', Hook::exec('displayHome'));
   $this->setTemplate(_PS_THEME_DIR_.'index.tpl');

}

B ) Opción Recomendada:

1- Copia el fichero Controllers/front/IndexController.php en override/Controllers/front

2- Abre el archivo copiado y edita el código:

class IndexController extends IndexControllerCore 
{

    public function initContent()
    {
       Tools::redirect('index.php?id_category=10&controller=category'); // 10 es la id de categoria de ejemplo, en tu caso reemplazalo por la que desees

    }
}

3- Guarda el archivo, elimina la caché y verifica su funcionamiento.

 

Espero que te sirva de ayuda.

Saludos,

 

Edited by LabelGrup Networks (see edit history)
Link to comment
Share on other sites

Muchas gracias por la respuesta, creo que se me olvidó mencionar algo.

Y es que quiero crear en la main page una lista de productos de una categoría a elegir pero que no sea directamente la página de la categoría.

Ha sido fallo mio por no explicarme bien pero maravillosa respuesta. Muchas gracias

Link to comment
Share on other sites

Si estás usando el tema Classic de Prestashop simplemente tendrías que ir al fichero  modules\ps_featuredproducts\ps_featuredproducts.php y modificar la siguiente función:

    protected function getProducts()
    {
        $category = new Category((int) Configuration::get('HOME_FEATURED_CAT')); //Aquí está la clave

        $searchProvider = new CategoryProductSearchProvider(
            $this->context->getTranslator(),
            $category
        );

        $context = new ProductSearchContext($this->context);

        $query = new ProductSearchQuery();

        $nProducts = Configuration::get('HOME_FEATURED_NBR');
        if ($nProducts < 0) {
            $nProducts = 12;
        }

        $query
            ->setResultsPerPage($nProducts)
            ->setPage(1)
        ;

        if (Configuration::get('HOME_FEATURED_RANDOMIZE')) {
            $query->setSortOrder(SortOrder::random());
        } else {
            $query->setSortOrder(new SortOrder('product', 'position', 'asc'));
        }

        $result = $searchProvider->runQuery(
            $context,
            $query
        );

        $assembler = new ProductAssembler($this->context);

        $presenterFactory = new ProductPresenterFactory($this->context);
        $presentationSettings = $presenterFactory->getPresentationSettings();
        $presenter = $presenterFactory->getPresenter();

        $products_for_template = [];

        foreach ($result->getProducts() as $rawProduct) {
            $products_for_template[] = $presenter->present(
                $presentationSettings,
                $assembler->assembleProduct($rawProduct),
                $this->context->language
            );
        }

        return $products_for_template;
    }

Tendrías que modificar la variable $category por la categoría que quieres mostrar, por ejemplo: 

$category = new Category(6);

Y con eso, en vez de mostrarte los productos destacados te mostraría los productos de la categoría que tu selecciones. Pero como te digo, eso en caso de usar el tema Classic.

 

Espero que sea esto lo que estuvieras buscando.

Saludos,

 

Edited by LabelGrup Networks (see edit history)
Link to comment
Share on other sites

  • Frank_C changed the title to [SOLUCIONADO] Mostrar una categoría como inicio de Web

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...