我试图在prestashop中修改homeslider模块,以便它可以显示最新的产品。
我创建了这个方法,它返回了最新产品的数组:
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 :(得分:0)
prestashop在语言ID的基础上保存文本信息,因此名称和描述字段以数组形式返回。
您可以通过在数组中传递语言ID来获取产品名称,您将获得名称和说明。
您将通过以下代码获得语言ID:
$lang_id = $this->context->language->id;
答案 1 :(得分:0)
要从产品使用中获取所有字段:
$product = new Product($id_product);
var_dump ($product->name);
/*
Resulut is an array with available languages:
["name"]=>
array(3) {
[1]=> string(23) "PHP book"
[2]=> string(23) "PHP Buch"
[3]=> string(23) "PHP livre"
}
*/
这提供了所有语言的所有信息。 在这种情况下,name,description,...是一个数组。
要获得特定语言,您需要语言ID:
$langID = $this->context->language->id;
$product = new Product($id_product, false, $langID);
var_dump ($product->name);
/*
Now the output is a string with the product name by the current language.
["name"]=> string(23) "PHP book"
*/