Developer 18.08.2013 addon, basics, developer, homefeatured, homepage, module, PHP

How to display different category in featured products?

Read simple tutorial related to default home featured (featured products) module. Change default category displayed in this module with several mouse clicks. Read this tut for free, enjoy!

By default, in homefeatured module prestashop displays products attached to the "home" category. Today I want to show you how to use different category instead of "home". All that we will have to do - is a simple modification of the main module .php file.

 

default prestashop "home" category in home featured module

prestashop homefeatured home category

 

 

Homefeatured module modification

Open the homefeatured.php file, this file is located in the modules/homefeatured/ directory. This is also main module .php file. Search for function hookDisplayHome($params). Function code looks like:

public function hookDisplayHome($params){
  if (!$this->isCached('homefeatured.tpl', $this->getCacheId('homefeatured'))){
    $category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);
    $nb = (int)Configuration::get('HOME_FEATURED_NBR');
    $products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8));
    
    $this->smarty->assign(array(
      'products' => $products,
      'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
      'homeSize' => Image::getSize(ImageType::getFormatedName('home')),
    ));
  }
  return $this->display(__FILE__, 'homefeatured.tpl', $this->getCacheId('homefeatured'));
}

Highlighted line is a definition of the $category object. It's most important thing in this case. All that we have to do is to change the

Context::getContext()->shop->getCategory() code to a ID number of category that we want to display.  In our store Accessories category has got ID 4. And we want to display accessories category in homefeatured block. So here is the modification:

$category = new Category(4, (int)Context::getContext()->language->id);

Save changes in this file and reload your store front page (just press f5). Remember that while you changing your template files, or module files, it's better to turn force compilation on and turn cache off. The effect of whole tutorial:

 

different category in home featured module

prestashop home featured different category

 

Of course you can use different category (in fact any category ID you want). If you don't know how to get category ID, just read this basic tutorial related to category management: how to get prestashop category ID. If you have any additional questions related to this topic - feel free to coninue discussion in the comments field below.

 

 

 

Zdjęcie autora: Milosz Myszczuk

Artykuł napisany przez Milosza Myszczuka, eksperta PrestaShop i oficjalnego moderatora społeczności PrestaShop. CEO i założyciel agencji interaktywnej VEKIA. Dowiedz się więcej.

If you like this article, support our work!

Comments