У меня есть потребность в Magento для предоставления атрибута пользовательского продукта массива, который выводит все его значения в качестве элементов списка. Основная предпосылка – это список ингредиентов продуктов … на основе каждого продукта мы должны вводить (например) воду, соль, красители – и для тех, которые будут отображаться в виде списка на лицевой стороне.
Моя логика до сих пор заключалась в том, чтобы использовать атрибут стандартного текстового поля, вводя значения, разделенные запятыми, в конец, а затем попытаться использовать эту строку в качестве массива, из которого я могу использовать foreach для создания неупорядоченного списка.
До сих пор я мог бы отследить всю строку как только один элемент списка, но показывая, что строка в виде массива его индивидуальных значений до сих пор меня озадачила! Смотри ниже…
Атрибут текстового поля «Ингредиенты» имеет значение «вода», «соль», «раскраска». – добавление кавычек и запятых – это только предположение, что это предварительно подготовит список, готовый быть массивом.
<?php $ingredientsArrayContent = $this->getProduct()->getSpa_productingredients(); $ingredientsArray = array($ingredientsArrayContent); ?> <ul> <?php reset($ingredientsArray); foreach ($ingredientsArray as $ingredientsValue) { echo "<li>$ingredientsValue</li>\n"; } ?> </ul>
Итак, на переднем конце это выводит:
<ul> <li>"water", "salt", "colourings"</li> </ul>
Я, конечно, хочу добиться:
<ul> <li>water</li> <li>salt</li> <li>colourings</li> </ul>
Неужели я слишком усложняю это и пропущу что-то действительно очевидное даже в Magento? Любые указатели очень оценили !!
Возможно, вместо:
$ componentsArray = массив ($ componentsArrayContent);
попробуйте использовать:
$ componentsArray = array (explode (",", $ componentsArrayContent));
В зависимости от того, установлен ли ваш атрибут: «вода, соль, окраска» или «вода, соль, расцветки», вам может потребоваться изменить разделитель, или как вы можете изменить свои значения атрибутов.