표시 할 속성을 알려주는 속성을 작성해보십시오.
속성 코드 문자열 인 그룹화 된 제품에 대해 두 개의 텍스트 속성 값을로드하는 모듈을 만들었습니다. 기본적으로 해당 속성 목록 문자열을 분해하고이를 반복하여 관련 제품 속성 데이터를로드하는 도우미입니다.
내가 호출 한 속성을 작성하십시오.
grouped_attr_array
관리자에서 그룹화 된 제품의 디자인 속성 세트에 속성을 추가 한 다음 제품 데이터에서 세미콜론으로 구분 된 필드로 속성을 추가하십시오.
torque_range;torque_increments;torque_accuracy
모듈에서이 코드를 가져 왔습니다. 속성 값을 기반으로 기본 속성을 더로드하거나 숨기고 모듈이 조금 더 복잡합니다. 그러나 표에 표시된 데이터를 얻으려면 핵심 기능 중 일부입니다. 잘하면 그것은 당신에게 구축 할 아이디어를 제공합니다. 이것은 magento 1.9.2를 사용하고 있습니다
모듈 도우미 :
public function findAttributes($product, $attributes)
{
//determined by attribute with id to add additional attributes to the table
//string needs to be ; separated in ADMIN
$strattributes = $product->getResource()->getAttribute('grouped_attr_array')->getFrontend()->getValue($product);
if ($strattributes) {
$strattributes = explode(';', $strattributes, 5);
foreach ($strattributes as $additionAttribute) {
//make sure these are valid attributes
if ($product->getResource()->getAttribute($additionAttribute)) {
array_push($attributes, $additionAttribute);
}
}
}
}
public function groupedAttrDump($groupedProduct, $attributes)
{
$cells = [];
foreach ($attributes as $attrCode) {
$attrText = $groupedProduct->getResource()->getAttribute($attrCode);
if($attrText){
array_push($cells, $attrText->getFrontend()->getValue($groupedProduct));
}
}
return $cells;
}
public function groupedAttrHeaders($currentProduct, $attributes)
{
$theads = [];
foreach ($attributes as $attrCode) {
$headerText = $currentProduct->getResource()->getAttribute($attrCode);
if($headerText){
$headerText = $headerText->getStoreLabel();
array_push($theads,$headerText);
}
}
return $theads;
}
groupedproduct.phtml의 도우미에서 데이터 가져 오기
$attrrSetName = Mage::getModel("eav/entity_attribute_set")->load($_product->getAttributeSetId())->getAttributeSetName();
$tableAttributes = Mage::helper('groupedtable')->findAttributes($_product, $attrrSetName);
TH
<?php foreach (Mage::helper('groupedtable')->groupedAttrHeaders($_product, $tableAttributes) as $attrLabel ): ?>
<th><?php echo $attrLabel ?> </th>
<?php endforeach; ?>
TD는 테이블
<?php foreach (Mage::helper('groupedtable')->groupedAttrDump($_associatedProduct, $tableAttributes) as $attr ):?>
<td><?php if($attr != 'No'){ echo $attr; } ?></td>
<?php endforeach; ?>
상점의 사용 가능한 속성을 기반으로 해당 속성을 선택하는 방법을 만들고 싶습니다. 이 작업을 수행하는 더 좋은 방법이있을 수 있습니다. 아직 얻지 못했습니다.