*/ class Mage_Adminhtml_Block_Cms_Page_Edit extends Mage_Adminhtml_Block_Widget_Form_Container { /** * Initialize cms page edit block * * @return void */ public function __construct() { $this->_objectId = 'page_id'; $this->_controller = 'cms_page'; parent::__construct(); if ($this->_isAllowedAction('save')) { $this->_updateButton('save', 'label', Mage::helper('cms')->__('Save Page')); $this->_addButton('saveandcontinue', array( 'label' => Mage::helper('adminhtml')->__('Save and Continue Edit'), 'onclick' => 'saveAndContinueEdit(\''.$this->_getSaveAndContinueUrl().'\')', 'class' => 'save', ), -100); } else { $this->_removeButton('save'); } if ($this->_isAllowedAction('delete')) { $this->_updateButton('delete', 'label', Mage::helper('cms')->__('Delete Page')); } else { $this->_removeButton('delete'); } } /** * Retrieve text for header element depending on loaded page * * @return string */ public function getHeaderText() { if (Mage::registry('cms_page')->getId()) { return Mage::helper('cms')->__("Edit Page '%s'", $this->htmlEscape(Mage::registry('cms_page')->getTitle())); } else { return Mage::helper('cms')->__('New Page'); } } /** * Check permission for passed action * * @param string $action * @return bool */ protected function _isAllowedAction($action) { return Mage::getSingleton('admin/session')->isAllowed('cms/page/' . $action); } /** * Getter of url for "Save and Continue" button * tab_id will be replaced by desired by JS later * * @return string */ protected function _getSaveAndContinueUrl() { return $this->getUrl('*/*/save', array( '_current' => true, 'back' => 'edit', 'active_tab' => '{{tab_id}}' )); } /** * Prepare layout * * @return Mage_Core_Block_Abstract */ protected function _prepareLayout() { $tabsBlock = $this->getLayout()->getBlock('cms_page_edit_tabs'); if ($tabsBlock) { $tabsBlockJsObject = $tabsBlock->getJsObjectName(); $tabsBlockPrefix = $tabsBlock->getId() . '_'; } else { $tabsBlockJsObject = 'page_tabsJsTabs'; $tabsBlockPrefix = 'page_tabs_'; } $this->_formScripts[] = " function toggleEditor() { if (tinyMCE.getInstanceById('page_content') == null) { tinyMCE.execCommand('mceAddControl', false, 'page_content'); } else { tinyMCE.execCommand('mceRemoveControl', false, 'page_content'); } } function saveAndContinueEdit(urlTemplate) { var tabsIdValue = " . $tabsBlockJsObject . ".activeTab.id; var tabsBlockPrefix = '" . $tabsBlockPrefix . "'; if (tabsIdValue.startsWith(tabsBlockPrefix)) { tabsIdValue = tabsIdValue.substr(tabsBlockPrefix.length) } var template = new Template(urlTemplate, /(^|.|\\r|\\n)({{(\w+)}})/); var url = template.evaluate({tab_id:tabsIdValue}); editForm.submit(url); } "; return parent::_prepareLayout(); } }