本文整理汇总了PHP中E::ModuleMenu方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleMenu方法的具体用法?PHP E::ModuleMenu怎么用?PHP E::ModuleMenu使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleMenu方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Deactivate
/**
* Деактивация плагина
* @return bool
*/
public function Deactivate()
{
$oMenu = E::ModuleMenu()->GetMenu('user');
$oMenu->RemoveItemById('plugin.menutest.my_menu', true);
E::ModuleMenu()->SaveMenu($oMenu);
return true;
}
示例2: _addMenuItem
/**
* @param ModuleMenu_EntityMenu $oMenu
*/
protected function _addMenuItem($oMenu)
{
// Создадим элемент меню
$oMenuItem = E::ModuleMenu()->CreateMenuItem('plugin.sandbox.topics', array('text' => array('{{plugin.sandbox.menu_text}}', 'hook:new_sandbox_count' => array('red')), 'link' => R::GetPath('index/sandbox'), 'active' => array('topic_kind' => array('sandbox')), 'options' => array('class' => '', 'link_title' => '{{plugin.sandbox.menu_text}}')));
// Добавим в меню
$oMenu->AddItem($oMenuItem);
// Сохраним
E::ModuleMenu()->SaveMenu($oMenu);
}
示例3: Deactivate
/**
* Деактивация плагина
*
* @return bool
*/
public function Deactivate()
{
/** @var ModuleMenu_EntityMenu $oMenu */
$oMenu = E::ModuleMenu()->GetMenu('topics');
$oMenu->RemoveItemById(array('plugin.sandbox.topics', 'plugin_sandbox_topics'), true);
E::ModuleMenu()->SaveMenu($oMenu);
//E::ModuleMenu()->ClearMenuCache('topics');
//Config::ResetCustomConfig('plugin.sandbox');
return true;
}
示例4: RenderInitDone
public function RenderInitDone()
{
$aMenus = Config::Get('menu.data');
$bChanged = false;
if ($aMenus && is_array($aMenus)) {
foreach ($aMenus as $sMenuId => $aMenu) {
if (isset($aMenu['init']['fill'])) {
$aMenus[$sMenuId] = E::ModuleMenu()->Prepare($sMenuId, $aMenu);
$bChanged = true;
}
}
if ($bChanged) {
Config::Set('menu.data', null);
Config::Set('menu.data', $aMenus);
}
}
}
示例5: CodeHook
public function CodeHook()
{
// Если пользоватль авторизован и у него не заполнено поле о себе, то
if (E::IsUser() && trim(E::User()->getProfileAbout()) == '') {
// Получим меню пользователя
/** @var ModuleMenu_EntityMenu $oMenu */
$oMenu = E::ModuleMenu()->GetMenu('user');
// Проверим, может в этой теме меню не объектное
if ($oMenu && !$oMenu->GetItemById('plugin_menutest_my_menu')) {
// Создадим элемент меню
$oMenuItem = E::ModuleMenu()->CreateMenuItem('plugin_menutest_my_menu', array('text' => '{{plugin.menutest.empty_about}}', 'link' => E::User()->getProfileUrl() . 'settings/', 'display' => array('not_event' => array('settings')), 'options' => array('class' => 'btn right create')));
// Добавим в меню
$oMenu->AddItem('first', $oMenuItem);
// Сохраним
E::ModuleMenu()->SaveMenu($oMenu);
}
}
}
示例6: CodeHook
/**
* Метод, который вызывается после создания меню
*/
public function CodeHook()
{
// Получим результат выполнения метода-источника хука
/** @var ModuleMenu_EntityMenu $oMenu */
$oMenu = $this->GetSourceResult();
// Убеждаемся, что было создано нужное нам меню - меню пользователя
if ($oMenu && $oMenu->getId() == 'user') {
// Если пользователь авторизован и у него не заполнено поле о себе, то
if (E::IsUser() && trim(E::User()->getProfileAbout()) == '') {
// Проверим, есть ли в меню нужный элемент
if (!$oMenu->GetItemById('plugin.menutest.my_menu')) {
// Создадим элемент меню
$oMenuItem = E::ModuleMenu()->CreateMenuItem('plugin.menutest.my_menu', array('text' => '{{plugin.menutest.empty_about}}', 'link' => E::User()->getProfileUrl() . 'settings/', 'display' => array('not_event' => array('settings')), 'options' => array('class' => 'btn right create')));
// Добавим в меню
$oMenu->AddItem($oMenuItem, 'first');
// Сохраним
E::ModuleMenu()->SaveMenu($oMenu);
}
}
}
}
示例7: EventMenuManager
/**
* Обработчик экшена менеджера меню
*
* @return bool|null|string
*/
protected function EventMenuManager()
{
// Активная вкладка главного меню
$this->sMainMenuItem = 'settings';
$this->_prepareMenus();
// Получим страницу, на которой находится пользователь
$sMode = $this->getParam(0);
// В зависимости от страницы запускаем нужный обработчик
if ($sMode == 'edit') {
return $this->_eventMenuEdit();
} else {
if ($sMode == 'reset') {
return $this->_eventMenuReset();
} else {
// Получим те меню, которые можно редактировать ползователю.
$aMenu = E::ModuleMenu()->GetMenusByArrayId(Config::Get('module.menu.admin'));
// Заполним вьювер
E::ModuleViewer()->Assign(array('aMenu' => $aMenu, 'sMode' => $sMode));
// Установим заголовок страницы
$this->_setTitle(E::ModuleLang()->Get('action.admin.menu_manager'));
// Установми страницу вывода
$this->SetTemplateAction('settings/menu_manager');
}
}
}
示例8: RemoveItemById
/**
* Удаляет элемент меню по его ID
*
* @param string|array|object $xItem
* @param bool $bClearCache
*/
public function RemoveItemById($xItem, $bClearCache = false)
{
if (is_array($xItem)) {
/** @var string|object $xItemId */
foreach ($xItem as $xItemId) {
if (is_object($xItemId)) {
$sItemId = $xItemId->getId();
} else {
$sItemId = (string) $xItemId;
}
if (isset($this->_aItems[$sItemId])) {
unset($this->_aItems[$sItemId]);
}
}
} else {
if (is_object($xItem)) {
$sItemId = $xItem->getId();
} else {
$sItemId = (string) $xItem;
}
if (isset($this->_aItems[$sItemId])) {
unset($this->_aItems[$sItemId]);
}
}
if ($bClearCache) {
Config::ResetCustomConfig('menu.data.' . $this->getId() . '.list');
E::ModuleMenu()->SaveMenu($this);
}
}
示例9: ProcessBlogsMode
/**
* Обработчик формирования меню в режиме blogs
*
* @param string[] $aFillSet Набор элементов меню
* @param array $aMenu Само меню
*
* @return array
*/
public function ProcessBlogsMode($aFillSet, $aMenu = NULL)
{
/** @var ModuleMenu_EntityItem[] $aItems */
$aItems = array();
/** @var ModuleBlog_EntityBlog[] $aBlogs */
$aBlogs = array();
if ($aFillSet) {
$aBlogs = E::ModuleBlog()->GetBlogsByUrl($aFillSet['items']);
} else {
if ($aResult = E::ModuleBlog()->GetBlogsRating(1, $aFillSet['limit'])) {
$aBlogs = $aResult['collection'];
}
}
if ($aBlogs) {
foreach ($aBlogs as $oBlog) {
$aItems[$oBlog->getUrl()] = E::ModuleMenu()->CreateMenuItem($oBlog->getUrl(), array('title' => $oBlog->getTitle(), 'link' => $oBlog->getUrlFull(), 'active' => (Config::Get('router.rewrite.blog') ? Config::Get('router.rewrite.blog') : 'blog') . '.' . $oBlog->getUrl(), 'submenu' => array(), 'on' => array('{*}'), 'off' => NULL, 'display' => TRUE, 'options' => array('image_url' => $oBlog->getAvatarUrl(Config::Get('module.menu.blog_logo_size')))));
}
}
return $aItems;
}
示例10: smarty_function_menu
/**
* Формирует меню
*
* @param $aParams
* @param $oSmarty
*
* @internal param $sMenuId
* @internal param bool $sMenuClass
* @internal param string $sActiveClass
*
* @return string
*/
function smarty_function_menu($aParams, &$oSmarty = NULL)
{
// Меню нет - уходим
if (!isset($aParams['id']) || !($aMenu = E::ModuleMenu()->GetPreparedMenu($aParams['id']))) {
return '';
}
if (!isset($aMenu['items'])) {
return '';
}
/** @var ModuleMenu_EntityItem[] $aMenuItems Элементы меню */
$aMenuItems = $aMenu['items'];
/** @var string $sMenu Запрашиваемое меню */
$sMenu = '';
// Установим класс меню, если он задан
/** @var string $sMenuClass Класс меню */
$sMenuClass = isset($aParams['class']) ? 'class="' . $aParams['class'] . '"' : '';
if (!$sMenuClass) {
$sMenuClass = isset($aMenu['class']) ? 'class="' . $aMenu['class'] . '"' : '';
}
// Открываем меню
if (!isset($aParams['hideul'])) {
$sMenu .= "<ul {$sMenuClass}>";
}
// Меню пустое
$bEmpty = TRUE;
// Заполним меню его элементами
foreach ($aMenuItems as $sItemMenuName => $oMenuItem) {
// Вызовем хук
if (is_string($oMenuItem)) {
$sMenu .= smarty_function_hook(array_merge(array('run' => $sItemMenuName), isset($aParams[$oMenuItem]) ? $aParams[$oMenuItem] : array()), $oSmarty);
continue;
}
if (!$oMenuItem->isEnabled(isset($aParams['type']) ? $aParams['type'] : false)) {
continue;
}
// Сформируем подменю если нужно
$oMenuItem->setMenuId($aParams['id']);
if (strpos($oMenuItemHtml = $oMenuItem->getHtml(), "[[submenu_") !== FALSE) {
$oMenuItemHtml = preg_replace_callback('~\\[\\[submenu_(\\S*)\\]\\]~', function ($sSubmenuId) {
if (isset($sSubmenuId[1])) {
$sSubmenuId = $sSubmenuId[1];
} else {
return '';
}
$aSettings = array('id' => $sSubmenuId);
if (preg_match('~[a-f0-9]{10}~', $sSubmenuId)) {
$aSettings = array_merge($aSettings, array('class' => Config::Get('menu.submenu.class')));
}
if (!is_null($sSubmenuHtml = smarty_function_menu($aSettings))) {
return $sSubmenuHtml;
}
return '';
}, $oMenuItemHtml);
}
// Добавим html в вывод
$sMenu .= $oMenuItemHtml;
$bEmpty = FALSE;
}
// Закрываем меню
if (!isset($aParams['hideul'])) {
$sMenu .= '</ul>';
}
// Пустое меню не показываем, если не указано другое
if (!isset($aParams['show_empty'])) {
$aParams['show_empty'] = FALSE;
}
// Если меню не пустое, то покажем
if (!($bEmpty && $aParams['show_empty'])) {
return $sMenu;
}
return '';
}
示例11: RenderInitDone
public function RenderInitDone()
{
E::ModuleMenu()->PrepareMenus();
}