public static function renderMenuTemplate($pages, $template, $parentCategoryPage = null) { $entityParser = new Tools_Content_EntityParser(); $website = Zend_Controller_Action_HelperBroker::getStaticHelper('website'); $dictionary = array(); if ($parentCategoryPage === null) { $menuHtml = '<ul class="main_menu" >'; } else { $menuHtml = '<ul>'; } $i = 1; foreach ($pages as $k => $page) { $menuItemTemplate = $template; $dictionary['$page:preview'] = '<img class="page-teaser-image" src="' . Tools_Page_Tools::getPreview(intval($page['id'])) . '" alt="index">'; if ($parentCategoryPage === true) { $dictionary['$page:category:name'] = $parentCategoryPage['h1']; } foreach ($page as $prop => $item) { if ($prop === 'url') { $item = $website->getUrl() . $item; } $dictionary['$page:' . $prop] = $item; } if (!empty($page['subPages'])) { $menuItemTemplate = preg_replace_callback('~{submenu}(.*){/submenu}~siuU', function ($match) use($page) { return Widgets_Menu_Menu::renderMenuTemplate($page['subPages'], $match[1], $page); }, $template); $menuItemTemplate = preg_replace('~{ifpages}(.*){/ifpages}~siuU', '$1', $menuItemTemplate); } else { $menuItemTemplate = preg_replace('~{(submenu|ifpages)}.*{/(submenu|ifpages)}~siuU', '', $template); } $menuHtml .= '<li class="' . ($parentCategoryPage === null ? 'category cat-' . $i++ : 'page') . '">'; $menuHtml .= $entityParser->setDictionary($dictionary)->parse($menuItemTemplate); $menuHtml .= '</li>'; } $menuHtml .= '</ul>'; return $menuHtml; }
/** * Sets the name of the mail template to use * * If secont parameter set to true then instance of template object * Will be created and mailer body will be filled with template content. * * @param string $bodyTemplateName * @param boolean $initBody * @return Tools_Mail_Mailer */ public function setMailTemplateName($bodyTemplateName, $initBody = false) { $this->_mailTemplateName = $bodyTemplateName; if ($initBody) { $entityParser = new Tools_Content_EntityParser(); $entityParser->setDictionary($this->_dictonary); $bodyTemplate = Application_Model_Mappers_TemplateMapper::getInstance()->find($this->_mailTemplateName); $this->_body = $entityParser->parse($bodyTemplate->getContent()); } return $this; }