Название в значительной степени говорит обо всем. Я пытаюсь вывести статический блок с тем же идентификатором, что и значение атрибута, однако мой код выводит только значение атрибута FIRST.
Следующий код находится в файле view.phtml и выводит первый статический блок из 5 выбранных значений множественного выбора.
Любая помощь с благодарностью!
<?php
$cmsstatic = $_product->getResource()->getAttribute('collection1')->getFrontend()->getValue($_product);
$blockids = explode(",", $cmsstatic);
foreach($blockids as $kry=>$value)
{
echo $this->getLayout()->createBlock('cms/block')->setBlockID($value)->tohtml();
}
?>
Проблема в том, что ваш $value
неправильные идентификаторы блоков Посмотрите на вывод из $_product->getResource()->getAttribute('collection1')->getFrontend()->getValue($_product)
и вы, вероятно, заметите, что на самом деле это выглядит примерно так: collection3, collection6
, Обратите внимание на пробелы после запятых. Когда ты бежишь explode(",", $cmsstatic)
вы получаете пробелы в полученном массиве. Поскольку первый идентификатор блока не содержит лишних пробелов, он действителен, но ни один из следующих не будет.
explode(", ", $cmsstatic)
$this->getLayout()->createBlock('cms/block')->setBlockId(trim($value))->toHtml()
Других решений пока нет …