1

グループ化された製品の場合、それを構成する単純な製品へのリンクを表示したいと考えています。たとえば、お皿、ナイフ、フォークなどで構成されるダイニング セットというグループ化された製品があるとします。各サブ製品にそのサブ製品へのリンクを設定したいと思います (プレートをクリックすると、プレートのシンプルな製品に移動します)。

<?php foreach ($_associatedProducts as $_item): ?>
    <tr>
        <td><?php echo $this->htmlEscape($_item->getName()) ?></td>
        <td class="a-right">
            <?php echo $this->getPriceHtml($_item, true) ?>
        </td>
        <?php if ($_product->isSaleable()): ?>
        <td class="a-center">
        <?php if ($_item->isSaleable()) : ?>
            <a href="<?php $_item->getProductUrl() ?>">View</a>
        <?php else: ?>
            <p class="availability"><span class="out-of-stock"><?php echo $this->__('Out of stock.') ?></span></p>
        <?php endif; ?>
        </td>
        <?php endif; ?>
    </tr>
<?php endforeach; ?>

これは、grouped.phtml ファイルのコード スニペットです。

app/design/frontend/blank/default/template/catalog/product/view/type/grouped.phtml

特に$_item->getProductUrl()、これは機能しません。また、この関連付けられた製品項目の URL を取得するために必要なコードがわかりません。誰かがここで助けることができれば、それは大歓迎です。

また、製品やカテゴリなどで使用できるメソッド (およびその使用方法) はどこで見つけることができます$_itemか?

4

3 に答える 3

8

すべてのメソッドと関数を簡単に見つけることができます。/app/code/core/Mage/Catalog/Model/Product.phpそのフォルダ内の Core またはその他のファイルを常に追跡します。

あなたのコードは完璧です。使うだけ

$_item->getUrlPath() ;

の代わりにproductURL

于 2009-12-23T02:43:38.773 に答える
4

利用可能なメソッド/データの取得に関するいくつかの注意事項:

まず、実際にクラスにコード化されたすべてのメソッドを取得するには、次のように使用可能なすべてのメソッドを取得できます。

$array = get_class_methods($_item); //yields an array of the methods in the class
var_dump($array); // to see the methods

すべてのデータ関連メソッドを取得するには、まずクラス内のデータ メンバーを見つけます。これは、Magento のほとんどのオブジェクトで機能します。

$data = $_item->getData(); // $key => $value array

次に、次の 2 つの方法で必要なデータを取得できます。

// assuming I want 'my_data'
$data = $_item->getMyData();
$data = $_item->getData('my_data');
于 2009-12-23T14:30:54.740 に答える
2
<?php echo $this->htmlEscape($_item->getProductUrl()) ?>

または、A HREF 全体を次に示します。

<a href="<?php echo $this->htmlEscape($_item->getProductUrl()) ?>">
            <?php echo $this->htmlEscape($_item->getName()) ?>
</a>
于 2011-03-11T20:35:19.920 に答える