我有一個自定義的銷售點管理員Magento擴展。我試圖在POS頁面上的管理產品網格中添加一個縮略圖。當每個產品都有縮略圖時,它可以100%正常工作。但是當產品沒有圖像時,代碼完全被打破。如何趕上這個PHP/Magento錯誤:當沒有縮略圖,代碼中斷
如何修改此代碼以檢查是否存在縮略圖,如果沒有,則顯示佔位符(任何替代html都可以)?
<?php
class MDN_PointOfSales_Block_Widget_Grid_Column_Renderer_Thumbnail
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
$cProduct = Mage::getModel("catalog/product");
$cProductId = $row->getId();
$cProduct->load($cProductId); // works for product IDs w/ a thumbnail. Breaks if no thumbnail set.
// For example, the following line works, loading the thumbnail for the 5533 product for all rows in the grid:
// $cProduct->load(5533);
$cMyUrl = $cProduct->getThumbnailUrl();
$html = '<img ';
$html .= 'src="' . $cMyUrl . '"';
$html .= 'class="grid-image ' . $cProductId . '"/>';
return $html;
}
}
?>
整頁導致一個錯誤,如果沒有縮略圖: http://www.screencast.com/t/zk6jVChiAC
是至少一些!這工作。拋棄我的是,我把所有這些佔位符圖像放在上面列出的適當目錄中,所以我認爲這個錯誤在別處。但問題是,我的佔位符縮略圖在管理員中以某種方式未設置(顯示丟失的圖像)。在從1.4升級到1.6時可能會丟失。因此,在管理>配置>目錄>產品圖片佔位符中,我重新上傳了佔位符圖片,特別是縮略圖,並且它工作正常。佔位符圖片在前端顯示得很好,但在管理員配置中沒有。 –
所以,你的佔位符圖像解決方案工作...但由於Magento可以取消設置這些圖像(無論出於什麼原因和任何情況),我也會使用錯誤捕獲代碼,因爲這樣做也可以,以防這些縮略圖在未來。 –