2015-03-03 4 views
0

Я работаю над настройкой сайта Xcart-5. И я создал свой собственный модуль и работаю над этим. Я просто создал поле глобальных атрибутов («Как обычный текст») и присвоил эти атрибуты некоторому продукту. Теперь я хочу получить доступ к этим значениям полей в программировании на странице сведений о продукте для назначения некоторого другого значения программно во время выполнения.XCART-5 Получить атрибуты Значения в программировании и присвоение некоторых других значений progmatically

Как я могу достичь этой задачи. Пожалуйста, предоставьте мне решение.

ответ

1

В вашем модуле вы должны decorate в \ Xlite \ Model \ Атрибут класса и расширить getAttributeValue() метод там.

Например, если я использую модуль с разработчиком ID Тони и модуля ID AttributesDemo, то я должен был бы создать XCartDirectory/классы/Xlite/модуль/Tony/AttributesDemo/Модель/Attribute.php файл со следующим содержимым:

<?php 
// vim: set ts=4 sw=4 sts=4 et: 

namespace XLite\Module\Tony\AttributesDemo\Model; 

/** 
* Attribute 
* @MappedSuperClass 
*/ 
abstract class Attribute extends \XLite\Model\AttributeAbstract implements \XLite\Base\IDecorator 
{ 
    public function getAttributeValue(\XLite\Model\Product $product, $asString = false) 
    { 
     $result = parent::getAttributeValue($product, $asString); 

     if (!$asString) { 
      foreach ($result as $obj) { 
       if ($obj->asString() == 'Mac') { 
        $obj->getAttributeOption()->setName('Windows'); 
       } 
      } 
     } 

     return $result; 
    } 
} 

Такая реализация изменится Mac значения для Windows те во всех атрибутов.