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
謝謝!
你改變'homeslider.tpl'代碼嗎? –
爲什麼我需要更改homeslider.tpl文件,因爲我沒有更改模塊的設計? – Omar6995
只是問,因爲它可能是你的問題的原因。你的代碼接縫好了,應該工作。你可以調試你的代碼:寫'var_dump($ product_set);死亡;'並重置模塊。您將通過'$ product_set'數據查看空白頁面。 'Name'和'description'是多語言字段,所以它們是具有'id_lang'鍵的數組。 –