2010-07-09 116 views
3

我已經添加了名稱和標籤的圖片屬性,例如新圖片,new_image。Magento自定義圖像屬性。我如何進入前端?

如何從例如view.phtml?我認爲它會像

<?php 
    echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150); 
?> 

但是,這是拋出一個錯誤。

有沒有人知道這樣做的正確方法?

非常感謝。

+0

請選擇最正確的答案,我的意思是你的問題也有點靠不住。根據我的理解,自定義圖像屬性將是另一個模型中未鏈接到產品的圖像。 – surfer190 2016-11-07 08:34:44

回答

1

Schonkton,我可以驗證你的代碼在catalog/product/view.phtml中工作得很好。我認爲你將圖像屬性添加到了屬性組...附帶說明的是,回聲的輸出將傳遞一個圖像鏈接,因此需要將其包含在圖像標籤中。

echo $this->helper('catalog/image')->init($_product, 'new_image')->resize(150, 150); 
0

該初始化調用只有幾個有效的字符串值:image,small_imagethumbnail,對應於這些圖像的產品屬性。如果您想以這種方式調用圖像,則需要將new_image設置爲管理面板中的這三個圖像之一。

否則,請在產品上尋找「圖庫」方法,因爲這些方法會爲您提供所有圖像以供迭代。

謝謝, 喬

+0

你好,謝謝你的回覆。 那麼,你只能以這種方式調用圖像,small_image和縮略圖? 我添加了屬性new_image作爲類型媒體圖像。 什麼是在view.phtml中獲取圖像的最佳方式? 此外,我將如何從更多的視圖/畫廊排除圖像?具體來說,new_image? 非常感謝, 亞當 – Schonkton 2010-07-12 08:47:55

3

我在列表中顯示了同樣的問題,但終於找到了一種方法來解決它。 我發現該屬性僅在產品視圖頁面中顯示,不在列表頁面中。 所以我所做的就是再次加載產品爲:

$product=Mage::getModel('catalog/product')->load($_product->getId()); 

當我用$product而不是顯示圖像中$_product,即

helper('catalog/image')->init($product, 'new_image')->resize(150, 150); ?> 

它的工作。

我知道這不是一個好辦法,但我不知道其他任何方式。也許我們可以做一些選擇列表中的屬性。

3

對你來說答案太晚了,但它可能對別人有幫助。以下回答適用於產品查看頁面。

首先檢查該屬性是否具有某種價值。

$isNewImage =$_product->getResource()->getAttribute('new_image')->getFrontend()->getValue($_product); 

如果它已經從後端選擇了一些值

<?php if ($isNewImage != 'no_selection'):?> 

$_newImg ='<img id="your-id" src="'.$this->helper('catalog/image')->init($_product, 'new_image')->resize(300,300).'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />'; 

echo $_helper->productAttribute($_product, $_newImg , 'new_image'); 

<?php endif; ?> 
0

Farrukhs代碼是接近最好的答案,

雖然他假設我們總是在默認情況下有一個$ _helper對象,如果不是這種情況,只需調用echo $ _newImg屬性被鑄造

其次,我顯示我的圖像在一個jQuery的scriptoluscious彈出窗口中,此代碼導致wi ndow在彈出窗口中打開網站本身,而不是在第三層顯示我的圖像屬性...它幾乎感覺就像電影開始時,當你不斷彈出框架內的彈出框,直到你得到圖像...只是想分享這種混亂!

3

你需要添加自定義圖像佔位符,你的皮膚文件夾:images/catalog/product/placeholder/custom_image.jpg

+0

其中「custom_image」是您的屬性的名稱。 OP正在使用「new_image」,因此您需要在skin文件夾中有一個名爲「new_image.jpg」的圖像。 – Tisch 2016-09-29 15:03:28