16

ヘルパー、そのメソッド、および製品の属性に慣れるための助けが必要です。具体的には:$_helper->productAttribute($product, $attributeHtml, $attributeName)

私が使用/レビューしているファイルは次のとおりです。

app\code\core\Mage\catalog\helper\output.php  
app\design\frontend\[theme name]\template\catalog\product\view\media.phtml

次のコード行は、製品画像の html を生成します。

echo $_helper->productAttribute($_product, $_img, 'image');

ヘルパー クラス コードは、次のコード部分でメソッドを記述します。テンプレート ファイルの前の行に記述されている img html を単純にエコーする代わりに、なぜこのメソッドを使用する必要があるのでしょうか。

public function getHandlers($method)
{
    $method = strtolower($method);
    return isset($this->_handlers[$method]) ? $this->_handlers[$method] : array();
}

public function process($method, $result, $params)
{
    foreach ($this->getHandlers($method) as $handler) {
        if (method_exists($handler, $method)) {
            $result = $handler->$method($this, $result, $params);
        }
    }
    return $result;
}

public function productAttribute($product, $attributeHtml, $attributeName)
{
    /* Code that is not relevant to this example */

    $attributeHtml = $this->process('productAttribute', $attributeHtml, array(
        'product'   => $product,
        'attribute' => $attributeName
    ));

    return $attributeHtml;
}

どんな助けでも大歓迎です。

4

1 に答える 1