1

このコードを使用して、Magentoで製品に割り当てられているすべての属性を(フロントエンドに)表示しています。

<?php if ($_product->getData('metal')): ?>  
    <?php echo nl2br($_product->getResource()->getAttribute('metal')->getFrontend()->getValue($_product )) ?>  
<?php endif; ?>

各項目を箇条書きと区切りで区切る必要があり&#149;ます<br/>。これらの変更を反映するために、このコードをどのように編集しますか?前もって感謝します。

_サム

4

3 に答える 3

1

出力をより細かく制御したい場合(おそらく個々の値のスタイルを設定したい場合)は、explode();を使用します。

<?php $attr = explode("," ,  $_helper->productAttribute($_product, $_data['value'], $_data['code'])); 
echo "<ul>";
?>
<?php foreach ($attr as $attrValue) {
    echo "<li>" . $attrValue . "</li>";
} 
echo "</ul>";
?>
于 2015-08-04T08:39:26.383 に答える
0

上記のコードが「機能している」と仮定して...次の変更を行います。

<?php echo "&#149;".nl2br($_product->getResource()->getAttribute('metal')->getFrontend()->getValue($_product ))."<br/>" ?>

これ.は文字列連結演算子です。

または、上記が製品のリストのHTMLである場合、それを行う方法を尋ねていますか?その後、これは機能するはずです...

<?php 
$somehtml=nl2br($_product->getResource()->getAttribute('metal')->getFrontend()->getValue($_product ));
$somehtml=explode("<br />",$somehtml);  // This ASSumes nl2br inserts <br /> between each line and this 
                                        // would lead to the behaviour you want.
                                        // see: http://php.net/manual/en/function.nl2br.php
$somehtml=implode("<br/>\n&#149;",$somehtml);
$somehtml="&#149;".$somehtml."<br/>\n";
echo $somehtml;
unset($somehtml);
?>

explodeを介して文字列を切り刻むことにより、文字列から配列を作成します"<br />"。次に、各要素の間に配置implodeして文字列を再結合します。<br/>\n&#149;そして最後に、前に箇条書きを追加し、最後にbrを追加します。内破するときは、文字列の「外側」を考慮する必要があります。

于 2012-05-11T17:14:38.270 に答える
0

解決しました。簡単です。デフォルトのパッケージにattributes.phtmlがない場合は、ベースからattributes.phtmlをコピーします。

app / design / frontend / default / default / template / catalog / product /view/フォルダーに配置します

行46を次のように変更します。

<td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>

個別の製品属性を表示するには:

<td class="data"><?php echo $_helper->productAttribute($_product, str_replace(",", "<br />", $_data['value']), $_data['code']) ?></td> 
于 2013-09-02T13:09:09.273 に答える