2016-01-22 34 views
0

我試圖修改prestashop中的homeslider模塊,以便它可以顯示最新的產品。如何在prestashop中獲得產品的名稱?

我創造了這個方法,返回上一個新的產品陣列:

protected function getNewProducts($nbr){ 

     $newProducts = false; 
     if (Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) 
      $newProducts = Product::getNewProducts((int) $this->context->language->id, 0, $nbr); 

     if (!$newProducts) 
      return; 
     return $newProducts; 
    } 

,我想從這個陣列產品中提取我需要這樣的信息,因爲它的名稱,說明...等

所以我改變了installSamples方法:

protected function installSamples() 
    { 
     $languages = Language::getLanguages(false); 
     for ($i = 1; $i <= 3; ++$i) 
     { 
      $slide = new HomeSlide(); 
      $slide->position = $i; 
      $slide->active = 1; 
      $product_set = $this->getNewProducts(3); // get the list of the last 3 products 

      foreach ($languages as $language) 
      { 
      $tmp=array_values($product_set); 

       $slide->title[$language['id_lang']] = $tmp[0].name; 
       $slide->description[$language['id_lang']] = '<h2>LOLILOL</h2> 
       <p>Test1</p> 
       <p><button class="btn btn-default" type="button">Shop now !</button></p>'; 
       $slide->legend[$language['id_lang']] = 'sample-'.$i; 
       $slide->url[$language['id_lang']] = 'http://www.prestashop.com/?utm_source=back-office&utm_medium=v16_homeslider' 
        .'&utm_campaign=back-office-'.Tools::strtoupper($this->context->language->iso_code) 
        .'&utm_content='.(defined('_PS_HOST_MODE_') ? 'ondemand' : 'download'); 
       $slide->image[$language['id_lang']] = 'sample-'.$i.'.jpg'; 
      } 
      $slide->add(); 
     } 
    } 

我試圖改變幻燈片標題,而是把產品的名稱,我得到:arrayName中的

同樣的事情說明,而不是把產品的說明,我得到:ArrayDescription

謝謝!

+0

你改變'homeslider.tpl'代碼嗎? –

+0

爲什麼我需要更改homeslider.tpl文件,因爲我沒有更改模塊的設計? – Omar6995

+0

只是問,因爲它可能是你的問題的原因。你的代碼接縫好了,應該工作。你可以調試你的代碼:寫'var_dump($ product_set);死亡;'並重置模塊。您將通過'$ product_set'數據查看空白頁面。 'Name'和'description'是多語言字段,所以它們是具有'id_lang'鍵的數組。 –

回答

0

prestashop基於語言ID保存文本信息,所以名稱和說明字段以數組形式返回。

您可以通過在數組中傳入語言ID來獲得產品的名稱,您將獲得名稱和說明。

您將通過下面的代碼獲得語言ID: $lang_id = $this->context->language->id;

相關問題