2016-03-04 3 views
2

Я программно выгрузкой блока внутри Magento контроллера администратора как этогоОпределение пути шаблона Magento

`$block = $this->getLayout()->createBlock('core/text')->setText('<script type="text/javascript" ></script>');` 

Теперь, вместо SetText, я хотел бы использовать setTemplate метод. Я создал файл temlplate в этом каталоге design/adminhtml/default/default/product/productcrop.phtml

Как его загрузить, т. Е. Что будет аргументом внутри метода setTemplate?

Я пробовал этот путь: -> setTemplate ('adminhtml/product_productcrop.phtml'). Но, похоже, это не работает.

Весь код контроллера:

<?php 
class Homeliv_Leadsadmin_Adminhtml_ProductController extends Mage_Adminhtml_Controller_Action { 
    public function indexAction() { 
     $this->loadLayout()->_setActiveMenu('leadsadmin/product'); 
     $this->_addContent($this->getLayout()->createBlock('leadsadmin/adminhtml_product')); 
     $this->renderLayout(); 
    } 

    public function editAction() { 

     $product_id = $this->getRequest()->getParam('id'); 
     $full_product = Mage::getModel('catalog/product')->load($product_id); 
     $productMediaConfig = Mage::getModel('catalog/product_media_config'); 
     //$baseImageUrl = $productMediaConfig->getMediaUrl($full_product->getImage()); 
     //$thumbImageUrl = $productMediaConfig->getMediaUrl($full_product->getThumbnail()); 
     $smallImage = $productMediaConfig->getMediaUrl($full_product->getSmallImage()); 


     $this->loadLayout(); 
     //$this->_title($this->__("Product")); 
     /* $block = $this->getLayout()->createBlock('core/text')->setText('<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).'media/leadsadmin/product_crop.js'.'"></script>'); 
     $this->_addJs($block); 

     $this->_addLeft($this->getLayout() 
     ->createBlock('core/text') 
     ->setText('<h1>Image</h1><img src="'.$smallImage.'"/>')); 



     $block = $this->getLayout() 
     ->createBlock('core/text') 
     ->setText('<h1>Main Block</h1>');   
     $this->_addContent($block);*/ 


     $block = $this->getLayout()->createBlock('core/template')-> setTemplate('product/productcrop.phtml')->toHtml(); 
     $this->_addContent($block); 

     //$this->getLayout()->createBlock('leadsadmin/adminhtml_product')->setTemplate('product/productcrop.phtml')->toHtml(); 
     //$this->getLayout()->createBlock('core/text')->setText('<div>ssxsxsx</div>'); 
     $this->renderLayout(); 

     //var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles()); 
     //die(); 

     //$this->loadLayout()->_setActiveMenu('leadsadmin/product'); 
     //$this->_addContent($this->getLayout()->createBlock('leadsadmin/adminhtml_product')); 
     //$this->renderLayout(); 
    } 


} 

ответ

0

для шаблона у вас есть. вы шаблон пути будет набор шаблонов product/productcrop.phtml

$block = $this->getLayout() 
    ->createBlock('core/template') 
    ->setTemplate('product/productcrop.phtml'); 

$this->getLayout()->getBlock('content')->append($block); 
+0

я использовал это, чтобы добавить блок: $ это -> _ addContent ($ блок); Он выдает ошибку: Recoverable Error: аргумент 1, переданный в Mage_Adminhtml_Controller_Action :: _ addContent() должен быть экземпляром Mage_Core_Block_Abstract – androider

+0

, можете ли вы объяснить, что вы пытаетесь достичь, поэтому я могу помочь. –

+0

Я добавил код контроллера в вопрос. Я просто хочу загрузить файл phtml программно – androider

Смежные вопросы