本文整理汇总了PHP中MenuItem::getAvailableItems方法的典型用法代码示例。如果您正苦于以下问题:PHP MenuItem::getAvailableItems方法的具体用法?PHP MenuItem::getAvailableItems怎么用?PHP MenuItem::getAvailableItems使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MenuItem
的用法示例。
在下文中一共展示了MenuItem::getAvailableItems方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: settings
/**
* Display and treat application settings
*/
public function settings()
{
$languages = array_map(function ($language) {
return $language->label;
}, Language::getAll('tag'));
$roleObjects = Role::getListByExample(new DBExample(array('id' => array('$ne' => 0))), 'id');
$roles = array();
foreach ($roleObjects as $role) {
$roles[$role->id] = Lang::get("roles.role-{$role->id}-label");
}
$items = MenuItem::getAvailableItems();
$menuItems = array();
foreach ($items as $item) {
if ($item->action && !preg_match('/^(javascript\\:|#)/', $item->action) && (!$item->target || $item->target == 'newtab')) {
if ($item->label === 'user.username') {
$item->label = App::session()->getUser()->username;
}
$menuItems[$item->action] = $item->label;
} else {
foreach ($item->visibleItems as $subitem) {
if ($item->label === 'user.username') {
$item->label = App::session()->getUser()->username;
}
if (!preg_match('/^(javascript\\:|#)/', $subitem->action) && (!$subitem->target || $subitem->target == 'newtab')) {
$menuItems[$subitem->action] = $item->label . " > " . $subitem->label;
}
}
}
}
$api = new HawkApi();
try {
$updates = $api->getCoreAvailableUpdates();
} catch (\Hawk\HawkApiException $e) {
$updates = array();
}
$param = array('id' => 'settings-form', 'upload' => true, 'fieldsets' => array('main' => array(new TextInput(array('name' => 'main_sitename', 'required' => true, 'default' => Option::get('main.sitename'), 'label' => Lang::get('admin.settings-sitename-label'))), new SelectInput(array('name' => 'main_language', 'required' => true, 'options' => $languages, 'default' => Option::get('main.language'), 'label' => Lang::get('admin.settings-language-label'))), new SelectInput(array('name' => 'main_timezone', 'required' => true, 'options' => array_combine(\DateTimeZone::listIdentifiers(), \DateTimeZone::listIdentifiers()), 'default' => Option::get('main.timezone'), 'label' => Lang::get('admin.settings-timezone-label'))), new SelectInput(array('name' => 'main_currency', 'required' => true, 'options' => array('EUR' => 'Euro (€)', 'USD' => 'US Dollar ($)'), 'default' => Option::get('main.currency'), 'label' => Lang::get('admin.settings-currency-label'))), new FileInput(array('name' => 'logo', 'label' => Lang::get('admin.settings-logo-label'), 'after' => Option::get('main.logo') ? '<img src="' . Plugin::get('main')->getUserfilesUrl(Option::get('main.logo')) . '" class="settings-logo-preview" />' : '', 'maxSize' => 200000, 'extensions' => array('gif', 'png', 'jpg', 'jpeg'))), new FileInput(array('name' => 'favicon', 'label' => Lang::get('admin.settings-favicon-label'), 'after' => Option::get('main.favicon') ? '<img src="' . Plugin::get('main')->getUserfilesUrl(Option::get('main.favicon')) . '" class="settings-favicon-preview" />' : '', 'maxSize' => 20000, 'extensions' => array('gif', 'png', 'jpg', 'jpeg', 'ico')))), 'referencing' => call_user_func(function () use($languages) {
$inputs = array();
foreach ($languages as $tag => $language) {
$inputs[] = new TextInput(array('name' => 'main_page-title-' . $tag, 'default' => Option::get('main.page-title-' . $tag)));
$inputs[] = new TextareaInput(array('name' => 'main_page-description-' . $tag, 'default' => Option::get('main.page-description-' . $tag)));
$inputs[] = new TextInput(array('name' => 'main_page-keywords-' . $tag, 'default' => Option::get('main.page-keywords-' . $tag)));
}
return $inputs;
}), 'home' => array(new RadioInput(array('name' => 'main_home-page-type', 'options' => array('default' => Lang::get('admin.settings-home-page-type-default'), 'custom' => Lang::get('admin.settings-home-page-type-custom'), 'page' => Lang::get('admin.settings-home-page-type-page')), 'default' => Option::get('main.home-page-type') ? Option::get('main.home-page-type') : 'default', 'label' => Lang::get('admin.settings-home-page-type-label'), 'layout' => 'vertical', 'attributes' => array('e-value' => 'homePage.type'))), new WysiwygInput(array('name' => 'main_home-page-html', 'id' => 'home-page-html', 'label' => Lang::get('admin.settings-home-page-html-label'), 'default' => Option::get('main.home-page-html'))), new SelectInput(array('name' => 'main_home-page-item', 'id' => 'home-page-item', 'label' => Lang::get('admin.settings-home-page-item-label'), 'options' => $menuItems, 'value' => Option::get('main.home-page-item'))), new CheckboxInput(array('name' => 'main_open-last-tabs', 'label' => Lang::get('admin.settings-open-last-tabs'), 'default' => Option::get('main.open-last-tabs'), 'dataType' => 'int'))), 'users' => array(new RadioInput(array('name' => 'main_allow-guest', 'options' => array(0 => Lang::get('main.no-txt'), 1 => Lang::get('main.yes-txt')), 'default' => Option::get('main.allow-guest') ? Option::get('main.allow-guest') : 0, 'label' => Lang::get('admin.settings-allow-guest-label'))), new RadioInput(array('name' => 'main_open-register', 'options' => array(0 => Lang::get('admin.settings-open-register-off'), 1 => Lang::get('admin.settings-open-register-on')), 'layout' => 'vertical', 'label' => Lang::get('admin.settings-open-registers-label'), 'default' => Option::get('main.open-register') ? Option::get('main.open-register') : 0, 'attributes' => array('e-value' => 'register.open'))), new CheckboxInput(array('name' => 'main_confirm-register-email', 'label' => Lang::get('admin.settings-confirm-email-label'), 'default' => Option::get('main.confirm-register-email'), 'dataType' => 'int', 'attributes' => array('e-value' => 'register.checkEmail'))), new WysiwygInput(array('name' => 'main_confirm-email-content', 'id' => 'settings-confirm-email-content-input', 'default' => Option::get('main.confirm-email-content'), 'label' => Lang::get('admin.settings-confirm-email-content-label'), 'labelWidth' => 'auto')), new CheckboxInput(array('name' => 'main_confirm-register-terms', 'label' => Lang::get('admin.settings-confirm-terms-label'), 'default' => Option::get('main.confirm-register-terms'), 'dataType' => 'int', 'labelWidth' => 'auto', 'attributes' => array('e-value' => 'register.checkTerms'))), new WysiwygInput(array('name' => 'main_terms', 'id' => 'settings-terms-input', 'label' => Lang::get('admin.settings-terms-label'), 'labelWidth' => 'auto', 'default' => Option::get('main.terms'))), new SelectInput(array('name' => 'roles_default-role', 'label' => Lang::get('admin.settings-default-role-label'), 'options' => $roles, 'default' => Option::get('roles.default-role')))), 'email' => array(new EmailInput(array('name' => 'main_mailer-from', 'default' => Option::get('main.mailer-from') ? Option::get('main.mailer-from') : App::session()->getUser()->email, 'label' => Lang::get('admin.settings-mailer-from-label'))), new TextInput(array('name' => 'main_mailer-from-name', 'default' => Option::get('main.mailer-from-name') ? Option::get('main.mailer-from-name') : App::session()->getUser()->getDisplayName(), 'label' => Lang::get('admin.settings-mailer-from-name-label'))), new SelectInput(array('name' => 'main_mailer-type', 'default' => Option::get('main.mailer-type'), 'options' => array('mail' => Lang::get('admin.settings-mailer-type-mail-value'), 'smtp' => Lang::get('admin.settings-mailer-type-smtp-value'), 'pop3' => Lang::get('admin.settings-mailer-type-pop3-value')), 'label' => Lang::get('admin.settings-mailer-type-label'), 'attributes' => array('e-value' => 'mail.type'))), new TextInput(array('name' => 'main_mailer-host', 'default' => Option::get('main.mailer-host'), 'label' => Lang::get('admin.settings-mailer-host-label'))), new IntegerInput(array('name' => 'main_mailer-port', 'default' => Option::get('main.mailer-port'), 'label' => Lang::get('admin.settings-mailer-port-label'), 'size' => 4)), new TextInput(array('name' => 'main_mailer-username', 'default' => Option::get('main.mailer-username'), 'label' => Lang::get('admin.settings-mailer-username-label'))), new PasswordInput(array('name' => 'main_mailer-password', 'encrypt' => 'Crypto::aes256Encode', 'decrypt' => 'Crypto::aes256Decode', 'default' => Option::get('main.mailer-password'), 'label' => Lang::get('admin.settings-mailer-password-label'))), new SelectInput(array('name' => 'main_smtp-secured', 'options' => array('' => Lang::get('main.no-txt'), 'ssl' => 'SSL', 'tsl' => 'TSL'), 'label' => Lang::get('admin.settings-smtp-secured-label')))), '_submits' => array(empty($updates) ? new HtmlInput(array('value' => '<span class="btn btn-success">' . Lang::get('admin.hawk-version-up-to-date', array('version' => HAWK_VERSION)) . '</span>')) : new ButtonInput(array('name' => 'update-hawk', 'value' => Lang::get('admin.update-page-update-hawk-btn', array('version' => end($updates)['version'])), 'icon' => 'refresh', 'id' => 'update-hawk-btn', 'attributes' => array('e-click' => 'function(){ updateHawk("' . end($updates)['version'] . '"); }'), 'class' => 'btn-warning')), new SubmitInput(array('name' => 'save', 'value' => Lang::get('main.valid-button'), 'class' => 'pull-right')))));
$form = new Form($param);
if (!$form->submitted()) {
// Display the form
$this->addCss(Plugin::current()->getCssUrl('settings.less'));
$page = View::make(Plugin::current()->getView('settings.tpl'), array('form' => $form, 'languages' => $languages));
$this->addKeysToJavaScript('admin.update-page-confirm-update-hawk');
$this->addJavaScript(Plugin::current()->getJsUrl('settings.js'));
return NoSidebarTab::make(array('icon' => 'cogs', 'title' => Lang::get('admin.settings-page-name'), 'description' => Lang::get('admin.settings-page-description'), 'page' => $page));
} else {
// treat the form
try {
if ($form->check()) {
// register scalar values
foreach ($form->inputs as $name => $field) {
if (!$field instanceof \Hawk\FileInput && !$field instanceof \Hawk\ButtonInput && !$field instanceof \Hawk\HtmlInput) {
$value = $field->dbvalue();
if ($value === null) {
$value = '0';
}
$optionName = str_replace('_', '.', $name);
App::logger()->error("Option name =" . $optionName . 'X');
App::logger()->error("basename=" . $value . 'X');
Option::set($optionName, $value);
} elseif ($field instanceof \Hawk\FileInput) {
$upload = Upload::getInstance($name);
if ($upload) {
try {
$file = $upload->getFile();
$dir = Plugin::get('main')->getPublicUserfilesDir();
if (!is_dir($dir)) {
mkdir($dir, 0755);
}
if ($name == 'favicon') {
$basename = uniqid() . '.ico';
$generator = new \PHPICO($file->tmpFile, array(array(16, 16), array(32, 32), array(48, 48), array(64, 64)));
$generator->save_ico($dir . $basename);
} else {
$basename = uniqid() . '.' . $file->extension;
$upload->move($file, $dir, $basename);
}
// remove the old image
@unlink($dir . Option::get("main.{$name}"));
App::logger()->error("Option name = " . $name);
App::logger()->error("main.{$name}");
App::logger()->error("basename=" . $basename);
Option::set("main.{$name}", $basename);
} catch (ImageException $e) {
$form->error($name, Lang::get('form.image-format'));
throw $e;
}
}
}
}
//.........这里部分代码省略.........
示例2: getMainMenu
/**
* Get the main menu items
* @return array The main menu items
*/
public function getMainMenu()
{
if (!App::isInstalled()) {
return array();
}
$user = App::session()->getUser();
$menus = array('applications' => array(), 'settings' => array());
// Get the menus
$items = MenuItem::getAvailableItems($user);
// Filter the menus that have no action and no item
$items = array_filter($items, function ($item) {
return $item->action || count($item->visibleItems) > 0;
});
foreach ($items as $id => $item) {
if ($item->labelKey === 'user.username') {
$item->label = $user->getUsername();
}
if (in_array($item->plugin, PLugin::$mainPlugins)) {
$menus['settings'][] = $item;
} else {
$menus['applications'][] = $item;
}
}
// Trigger an event to add or remove menus from plugins
$event = new Event(self::EVENT_AFTER_GET_MENUS, array('menus' => $menus));
$event->trigger();
$menus = $event->getData('menus');
App::response()->setContentType('json');
return $menus;
return View::make(Theme::getSelected()->getView('main-menu.tpl'), array('menus' => $menus, 'logo' => Option::get('main.logo') ? Plugin::current()->getUserfilesUrl(Option::get('main.logo')) : ''));
}