예제 #1
0
 /**
  * Wrap each element of a page that is being rendered, with a block-level HTML-element to highlight it in VDE
  *
  * Subscriber to event 'core_layout_render_element'
  *
  * @param Varien_Event_Observer $observer
  */
 public function wrapPageElement(Varien_Event_Observer $observer)
 {
     if (!$this->_getSession()->isDesignEditorActive()) {
         return;
     }
     if (!$this->_wrappingRenderer) {
         $this->_wrappingRenderer = Mage::getModel('Mage_DesignEditor_Block_Template', array('template' => 'wrapping.phtml'));
     }
     $event = $observer->getEvent();
     /** @var $layout Mage_Core_Model_Layout */
     $layout = $event->getData('layout');
     $elementName = $event->getData('element_name');
     /** @var $transport Varien_Object */
     $transport = $event->getData('transport');
     $block = $layout->getBlock($elementName);
     $isVde = $block && 0 === strpos(get_class($block), 'Mage_DesignEditor_Block_');
     $manipulationAllowed = $layout->isManipulationAllowed($elementName) && !$isVde;
     $isContainer = $layout->isContainer($elementName);
     if ($manipulationAllowed || $isContainer) {
         $elementId = 'vde_element_' . rtrim(strtr(base64_encode($elementName), '+/', '-_'), '=');
         $this->_wrappingRenderer->setData(array('element_id' => $elementId, 'element_title' => $layout->getElementProperty($elementName, 'label') ?: $elementName, 'element_html' => $transport->getData('output'), 'is_manipulation_allowed' => $manipulationAllowed, 'is_container' => $isContainer, 'element_name' => $elementName));
         $transport->setData('output', $this->_wrappingRenderer->toHtml());
     }
     /* Inject toolbar at the very beginning of the page */
     if ($elementName == 'after_body_start') {
         $elementHtml = $transport->getData('output');
         $toolbarHtml = $layout->renderElement('design_editor_toolbar');
         $transport->setData('output', $toolbarHtml . $elementHtml);
     }
 }
예제 #2
0
 public function manejandobloquesAction()
 {
     $block_1 = new Mage_Core_Block_Text();
     $block_1->setText('Original Text');
     $block_2 = new Mage_Core_Block_Text();
     $block_2->setText('The second sentence.');
     $main_block = new Mage_Core_Block_Template();
     $main_block->setTemplate('nofrills/manejandobloques.phtml');
     $main_block->setChild('the_first', $block_1);
     $main_block->setChild('the_second', $block_2);
     $block_1->setText('Wait , I want this text instead .');
     echo $main_block->toHtml();
 }
 public function searchConfigAction()
 {
     if ($this->getRequest()->isPost()) {
         $result['error'] = 0;
         $query = $this->getRequest()->getPost('query');
         if (!empty($query)) {
             $configs = Mage::app()->getConfig()->getNode($query);
             $items = array();
             Magneto_Debug_Block_Config::xml2array($configs, $items, $query);
             $block = new Mage_Core_Block_Template();
             //Is this the correct way?
             $block->setTemplate('debug/configsearch.phtml');
             $block->assign('items', $items);
             echo $block->toHtml();
         } else {
             $result['error'] = 1;
             $result['message'] = 'Search query cannot be empty.';
         }
     }
 }
예제 #4
0
 /**
  * Return last 100 lines of log file
  *
  * @return string
  */
 public function viewLogAction()
 {
     $file = $this->getRequest()->getParam('file');
     if (!empty($file)) {
         $result = Mage::helper('debug')->getLastRows(Mage::getBaseDir() . '/var/log/' . $file, 10);
         if (!is_array($result)) {
             $result = array($result);
         }
         $block = new Mage_Core_Block_Template();
         //Is this the correct way?
         $block->setTemplate('debug/logdetails.phtml');
         $block->assign('title', 'Log details : ' . $file);
         $block->assign('items', $result);
         echo $block->toHtml();
     }
 }
예제 #5
0
 /**
  * @covers Mage_Core_Block_Template::_toHtml
  * @covers Mage_Core_Block_Abstract::toHtml
  * @see testAssign()
  */
 public function testToHtml()
 {
     $this->assertEmpty($this->_block->toHtml());
     $this->_block->setTemplate(uniqid('invalid_filename.phtml'));
     $this->assertEmpty($this->_block->toHtml());
 }