2009-06-17 102 views
5

屬性我需要找到一種方式來顯示替代「產品名稱」下面的圖片中顯示的自定義屬性的值。Magento的 - 顯示自定義分組中的產品表

Grouped products table http://www.magentocommerce.com/images/uploads/grouped_prod_front.gif

我與/app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

下面的代碼不起作用工作(自定義屬性爲年份):

<?php if (count($_associatedProducts)): ?> 
<?php foreach ($_associatedProducts as $_item): ?> 
    <tr> 
     <td><?php echo $this->htmlEscape($_item->getYearmade()) ?></td> 

任何幫助,將不勝感激。

編輯:因此,答案原來是相當簡單。你明白我的失敗上面提到的是,有確實輸出......但是,這只是一個號碼(例如:52)。原來,這是該自定義屬性值的ID(這是自定義屬性的下拉類型)。

因此,在總結
這適用於文本類型的自定義屬性:

echo $this->htmlEscape($_item->getYearmade()) 

但對於所有其他類型的自定義屬性(我認爲),以下應使用:

echo $this->htmlEscape($_item->getAttributeText('yearmade')) 

如果沒有Alan Storm提供的最佳答案,我不會發現這一點。謝謝你,先生。

+0

對於那些仍在提供答案的人,請注意,這個問題在3年前發佈。自那時起,Magento代碼庫已經發展,顯然你的結果會有所不同。 – 2012-02-10 11:02:42

回答

3

所有Magento模型有一個「的getData」方法可用,這將返回鍵/值對的PHP的陣列。在你grouped.phtml文件的頂部試試這個($ _產品定義後)

print('<pre>');print_r($_product->getData());print('</pre>'); 

你應該看到的輸出看起來像下面這樣。

Array 
(
    [store_id] => 1 
    [entity_id] => 3437 
    [entity_type_id] => 4 
    [attribute_set_id] => 27 
    [type_id] => grouped 
    [sku] => 
    [category_ids] => 
    [created_at] => 2009-04-16 03:37:51 
...  

所以,你可以抓住一個屬性數組,然後把這個鍵拉出來。你也可以使用Magento的方便/神奇的getX和setX方法。在所有的Magento模型,您可以通過調用基於名稱的大小寫混合版本的方法訪問數據陣列中的任何財產,

$created_at = $_product->getCreatedAt(); 
$_product->setCreatedAt($date); 

因此,無論您的自定義屬性名稱,你應該能夠得到在它上面,如果你不確定只是print_r或var_dump由getData()返回的數組的內容。

最後,如果自定義屬性是對相關產品的一個簡單的產品,你會想要更多的東西一樣

$_associatedProducts[0]->getCreatedAt(); 
+0

我似乎無法使用上面的代碼獲取自定義屬性。我是我做錯了什麼?我有一個名爲「product_type」的自定義類別,我想在grouped.phtml頁面上顯示它的值。 – Landitus 2010-08-25 05:18:45

0

從版本。 1.3。和1.4也必須使用$ _item沒有$ _產品,對於我這種工作在可分組表也沒關係。

例子:

<?php echo $_item->getAttributeText('your attribute'); ?> 
1

我有同樣的問題。

  1. 您必須找到grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. 獲取的項目,例如 $_item[units]

  3. 添加單元格到表並粘貼回聲$_item['units'];

  4. 這就是所有: )

相關問題