Как отображать индивидуальные параметры Magento индивидуально - PullRequest
0 голосов
/ 25 ноября 2011

Мой сайт Magento имеет продукт, который имеет несколько пользовательских параметров, один текст, один файл для загрузки и четыре раскрывающихся списка.

Дизайн сайта требует, чтобы мне нужно было показывать эти опции по всей странице просмотра продукта, а не все в одной группе.

Есть ли функция, которую я могу вызвать, чтобы вернуть HTML-код одной пользовательской опции?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Я не правильно понял о группе. Если вы имеете в виду категорию, то

создать новый набор атрибутов, который должен содержать атрибуты, которые вы хотите показать. После этого при создании продукта выберите этот набор атрибутов вместо значения по умолчанию. Таким образом, только указанные атрибуты будут доступны в указанных продуктах.

Попробуйте следующие фрагменты кода (не забудьте изменить "attribute_code")

Допустим, вы хотите показать список множественного выбора на странице вашего продукта, в этом случае:

$selectArray = $this->getProduct()->getAttributeText('YOUR_ATTRIBUTE_CODE');  
$endOfArray = end($selectArray);

echo "<ul class='set-some-class'>";
foreach($selectArray as $selectionItem) {  
  echo "<li> . $selectionItem";
  if($selectionItem != $endOfArray) {  
    echo "</li>\n";
  } else {
    echo "</ul>";
  }
}  

Для страницы, отличной от страницы просмотра продукта, в этом случае:

$attribute = Mage::getModel('catalog/product')->getAttribute('catalog_product', 'YOUR_ATTRIBUTE_CODE');  
$options = $attribute->getSource()->getAllOptions(true, true);  
$lastOption = end($options);  

echo "<ul class='set-some-class'";
foreach($options as $option) {  
  echo $option['label'];  
  if($option != $lastOption) {  
    echo "<li>\n";
  } else {  
    echo "</ul>";
  }
}
0 голосов
/ 25 ноября 2011

Есть способы сделать это, которые равносильны мошенничеству.

Для работы вашего магазина требуется JavaScript, и вы можете многое сделать с Prototype перед рендерингом страницы, используя событие on dom :loaded,Вы можете прикрепить свои пользовательские параметры к тому месту, где вы хотите в DOM, или вы можете скрыть их и поместить что-то еще, где вы хотите, на страницу, которая обновляет элемент формы.Возможно, вы захотите сделать это, если вам нужно захватить название цвета, но вы не хотите добавлять множество цветов на каждый продукт - текстовое поле может перейти на продукт, а ваш элемент управления может записать в него.

Преимущество некоторого $$ («мошенничества») в том, что вам не нужно слишком углубляться в код Magento, что является «соображением дизайна».

...