XCART5在编程中获取属性值并以编程方式分配其他一些值

时间:2015-03-03 13:22:01

标签: x-cart

我正在开展Xcart-5网站定制。我创建了自己的模块并开始工作。我刚创建了一些全局属性(“作为纯文本”)字段,并将这些属性分配给某个产品。现在,我想在产品详细信息页面中的编程中访问这些字段值,以便在运行时以编程方式分配一些其他值。

我该如何完成这项任务。请给我解决方案。

1 个答案:

答案 0 :(得分:0)

在您的模块中,您应该decorate \ XLite \ Model \ Attribute 类,并在那里扩展 getAttributeValue()方法。

例如,如果我使用的开发者ID为 Tony 且模块ID AttributesDemo 的模块,那么我需要创建 XCartDirectory / classes / XLite / Module / Tony / AttributesDemo / Model / 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