Пример #1
0
function s_menu_replace(array $matches)
{
    if (isset($matches[1])) {
        $dD = new DataStore();
        $o_Menu = new Menu($dD->get_menu_data_from_name($matches[1]));
        return $o_Menu->render();
    }
}
Пример #2
0
 /**
  * Prepare menues
  */
 public function prepare(){
     $cogear = getInstance();
     $menu = new Menu('admin.sidebar');
     $root = Url::gear('admin');
     $menu->{$root} = icon('dashboard','fugue').t('Dashboard');
     $menu->{$root.'gears'} = icon('gear','fugue').t('Gears');
     $menu->{$root.'theme'} = icon('layout').t('Theme');
     $menu->{$root.'site'} = icon('toolbox','fugue').t('Site');
     $menu->{$root.'site/clear_cache'} = icon('bin').t('Clear cache');
     prepend('sidebar',$menu->render('Admin_Menu.sidebar_menu'));
     css($this->folder.'/css/menu.css');
     $menu = new Menu('admin.top');
     Template::bindGlobal('top_menu',$menu);
 }
Пример #3
0
 public function testCorrectLinkIsAutomaticallyMarkedAsActive()
 {
     // Make a dummy request to populate Request::current()
     Request::$current = Request::factory('tasks', array(), FALSE);
     $menu_config = self::_get_test_config();
     $menu_config['guess_active_item'] = TRUE;
     $menu = new Menu($menu_config);
     $menu->render();
     // Check that an item was marked as active
     $menu_items = $menu->get_items();
     foreach ($menu_items as $item) {
         if ($item->url === 'tasks') {
             $this->assertTrue(in_array('active', $item->classes));
         }
     }
 }
Пример #4
0
$item1 = new Item('#link-item1', 'Item 1');
$item2 = new Item('#link-item2', 'Item 2');
$item3 = new Item('#link-item3', 'Item 3');
$item4 = new Item('#link-item4', 'Item 4');
$menu->addChild($item1);
$menu->addChild($item2);
$menu->addChild($item3);
$menu->addChild($item4);
$subMenu2->addChild($item1);
$subMenu2->addChild($item2);
$subMenu2->addChild($item3);
$subMenu2->addChild($item4);
$subMenu->addChild($item1);
$subMenu->addChild($item2);
$subMenu->addChild($subMenu2);
$subMenu->addChild($item3);
$menu->addChild($subMenu);
?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Design Patterns Composit</title>
</head>
<body>
	<?php 
echo $menu->render();
?>
	
</body>
</html>
 function test_menu_components()
 {
     $theme = new Theme("", "");
     $heading = new MenuItemHeading("hoho", 3);
     $this->assertIdentical($heading->getType(), MENU_ITEM_HEADING);
     $this->assertIdentical($heading->getDisplayName(), "hoho");
     //			$comp->render($theme);
     $comp = new MenuItemLink("Google", "http://www.google.com", true, 1, "_BLANK", "g", "Go to the Google search page");
     $this->assertIdentical($comp->getDisplayName(), "Google");
     $this->assertIdentical($comp->getURL(), "http://www.google.com");
     $this->assertTrue($comp->isSelected());
     $this->assertIdentical($comp->getTarget(), "_BLANK");
     $this->assertIdentical($comp->getAccessKey(), "g");
     $this->assertIdentical($comp->getToolTip(), "Go to the Google search page");
     $this->assertIdentical($comp->getType(), MENU_ITEM_LINK_SELECTED);
     $comp->setDisplayName("1");
     $comp->setURL("2");
     $comp->setSelected(false);
     $comp->setTarget("4");
     $comp->setAccessKey("5");
     $comp->setToolTip("6");
     $this->assertIdentical($comp->getDisplayName(), "1");
     $this->assertIdentical($comp->getURL(), "2");
     $this->assertFalse($comp->isSelected());
     $this->assertIdentical($comp->getTarget(), "4");
     $this->assertIdentical($comp->getAccessKey(), "5");
     $this->assertIdentical($comp->getToolTip(), "6");
     $this->assertIdentical($comp->getType(), MENU_ITEM_LINK_UNSELECTED);
     $comp = new MenuItemLink("Google", "http://www.google.com", true, 1, "_BLANK", "g", "Go to the Google search page");
     $comp->addAttribute("name", "haha");
     //			$comp->render($theme);
     $menuStyle = new StyleCollection("*.menu", "menu", "Menu Style", "Style for the menu.");
     $menuStyle->addSP(new BackgroundColorSP("#997755"));
     $menuStyle->addSP(new BorderSP("1px", "solid", "#FFFFFF"));
     $menu = new Menu(new XLayout(), 4, $menuStyle);
     $this->assertTrue(!isset($comp->_selectedId));
     $menu->add($comp, "100px", null, CENTER);
     $this->assertIdentical($menu->_selectedId, 1);
     $this->assertIdentical($comp->isSelected(), true);
     $this->assertReference($menu->getSelected(), $comp);
     $comp1 = $comp;
     $menu->add($comp1, "100px", null, CENTER);
     $this->assertIdentical($menu->_selectedId, 2);
     $this->assertIdentical($comp1->isSelected(), true);
     $this->assertIdentical($comp->isSelected(), false);
     $this->assertReference($menu->getSelected(), $comp1);
     $comp2 = $comp;
     $comp2->setSelected(false);
     $menu->add($comp2, "100px", null, CENTER);
     $this->assertIdentical($menu->_selectedId, 2);
     $this->assertIdentical($comp->isSelected(), false);
     $this->assertIdentical($comp1->isSelected(), true);
     $this->assertIdentical($comp2->isSelected(), false);
     $this->assertReference($menu->getSelected(), $comp1);
     $menu->select(3);
     $this->assertIdentical($comp->isSelected(), false);
     $this->assertIdentical($comp1->isSelected(), false);
     $this->assertIdentical($comp2->isSelected(), true);
     $this->assertReference($menu->getSelected(), $comp2);
     $menu->add($heading, "100px", null, CENTER);
     echo "<style>";
     echo $menuStyle->getCSS();
     echo "</style>";
     $menu->render($theme);
 }
Пример #6
0
 /**
  * @group m1
  */
 public function testAdditionalAttributeCanBeAddedToMenuItemsFromConfig()
 {
     $config['items'][0] = ['attributes' => ['data-id' => '5'], 'url' => 'test'];
     $menu = new Menu($config);
     $this->assertContains('data-id="5"', $menu->render());
 }
Пример #7
0
 public function generateMenu()
 {
     $menu = new Menu();
     /******************************************
      * Horux menu
      */
     $horux = new MenuItem('null', 'Horux', '#');
     $horux->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-controlPanel.png\" />'", Prado::localize('Control Panel', array(), "messages"), $this->Service->constructUrl('controlPanel.ControlPanel'), 1));
     $horux->addSplit();
     $horux->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-superUser.png\" />'", Prado::localize('Super User', array(), "messages"), $this->Service->constructUrl('superuser.userList'), $this->isAccess('superuser.userList')));
     $horux->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-superGroupUser.png\" />'", Prado::localize('Super User Group', array(), "messages"), $this->Service->constructUrl('superuser.userGroupList'), $this->isAccess('superuser.userGroupList')));
     $horux->addSplit();
     $horux->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-configure.png\" />'", Prado::localize('Configuration', array(), "messages"), $this->Service->constructUrl('configuration.config'), $this->isAccess('configuration.config')));
     /******************************************
      * System menu
      */
     $system = new MenuItem('null', Prado::localize('System', array(), "messages"), '#');
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-site.png\" />'", Prado::localize('Site', array(), "messages"), $this->Service->constructUrl('site.Site'), $this->isAccess('site.Site')));
     if ($this->isAccess('site.Site')) {
         $this->systemMenuCount++;
     }
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-department.png\" />'", Prado::localize('Department', array(), "messages"), $this->Service->constructUrl('site.department'), $this->isAccess('site.department')));
     if ($this->isAccess('site.department')) {
         $this->systemMenuCount++;
     }
     $system->addSplit();
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-horuxcontroller.png\" />'", Prado::localize('Horux Controller', array(), "messages"), $this->Service->constructUrl('horuxController.horuxController'), $this->isAccess('horuxController.horuxController')));
     if ($this->isAccess('horuxController.horuxController')) {
         $this->systemMenuCount++;
     }
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-hardware.png\" />'", Prado::localize('Hardware', array(), "messages"), $this->Service->constructUrl('hardware.HardwareList'), $this->isAccess('hardware.HardwareList')));
     if ($this->isAccess('hardware.HardwareList')) {
         $this->systemMenuCount++;
     }
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-openLevel.png\" />'", Prado::localize('Open time', array(), "messages"), $this->Service->constructUrl('openTime.openTimeList'), $this->isAccess('openTime.openTimeList')));
     if ($this->isAccess('openTime.openTimeList')) {
         $this->systemMenuCount++;
     }
     $system->addSplit();
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-notification.png\" />'", Prado::localize('Notification', array(), "messages"), $this->Service->constructUrl('system.Notification'), $this->isAccess('system.Notification')));
     if ($this->isAccess('system.Notification')) {
         $this->systemMenuCount++;
     }
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-alarm.png\" />'", Prado::localize('Alarms', array(), "messages"), $this->Service->constructUrl('system.Alarms'), $this->isAccess('system.Alarms')));
     if ($this->isAccess('system.Alarms')) {
         $this->systemMenuCount++;
     }
     $system->addSplit();
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-service.png\" />'", Prado::localize('Horux Service', array(), "messages"), $this->Service->constructUrl('system.Service'), $this->isAccess('system.Service')));
     if ($this->isAccess('system.Service')) {
         $this->systemMenuCount++;
     }
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-standalone.png\" />'", Prado::localize('Standalone', array(), "messages"), $this->Service->constructUrl('system.Standalone'), $this->isAccess('system.Standalone')));
     if ($this->isAccess('system.Standalone')) {
         $this->systemMenuCount++;
     }
     $system->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-systemStatus.png\" />'", Prado::localize('System Status', array(), "messages"), $this->Service->constructUrl('system.Status'), $this->isAccess('system.Status')));
     if ($this->isAccess('system.Status')) {
         $this->systemMenuCount++;
     }
     /******************************************
      * access menu
      */
     $access = new MenuItem('null', Prado::localize('Access', array(), "messages"), '#');
     $access->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-user2.png\" />'", Prado::localize('User', array(), "messages"), $this->Service->constructUrl('user.UserList'), $this->isAccess('user.UserList')));
     if ($this->isAccess('user.UserList')) {
         $this->accessMenuCount++;
     }
     $access->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-userGroup.png\" />'", Prado::localize('User group', array(), "messages"), $this->Service->constructUrl('userGroup.UserGroupList'), $this->isAccess('userGroup.UserGroupList')));
     if ($this->isAccess('userGroup.UserGroupList')) {
         $this->accessMenuCount++;
     }
     $access->addSplit();
     $access->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-key.png\" />'", Prado::localize('Key', array(), "messages"), $this->Service->constructUrl('key.KeyList'), $this->isAccess('key.KeyList')));
     if ($this->isAccess('key.KeyList')) {
         $this->accessMenuCount++;
     }
     $access->addSplit();
     $access->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-accessLevel.png\" />'", Prado::localize('Access Level', array(), "messages"), $this->Service->constructUrl('accessLevel.accessLevelList'), $this->isAccess('accessLevel.accessLevelList')));
     if ($this->isAccess('accessLevel.accessLevelList')) {
         $this->accessMenuCount++;
     }
     $access->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-nonWorkingDay.png\" />'", Prado::localize('Non Working Days', array(), "messages"), $this->Service->constructUrl('nonWorkingDay.nonWorkingDay'), $this->isAccess('nonWorkingDay.nonWorkingDay')));
     if ($this->isAccess('nonWorkingDay.nonWorkingDay')) {
         $this->accessMenuCount++;
     }
     /******************************************
      * Component menu
      */
     $componnents = new MenuItem('null', Prado::localize('Components', array(), "messages"), '#');
     $db = $this->Application->getModule('horuxDb')->DbConnection;
     if (!$db) {
         return $menu->render();
     }
     $db->Active = true;
     $cmd = $db->createCommand("SELECT * FROM hr_install WHERE type='component'");
     $data = $cmd->query();
     $data = $data->readAll();
     foreach ($data as $d) {
         $cmd = $db->createCommand("SELECT * FROM hr_install AS i LEFT JOIN hr_component as c ON c.id_install=i.id WHERE i.type='component' AND c.parentmenu=0 AND i.id=" . $d['id']);
         $data2 = $cmd->query();
         $data2 = $data2->read();
         $asset = $this->Application->getAssetManager();
         $url = $asset->publishFilePath('./protected/pages/components/' . $d['name'] . '/assets/' . $data2['iconmenu']);
         $item = new MenuItem("'<img src=\"" . $url . "\" />'", Prado::localize($data2['menuname'], array(), $d['name']), $this->Service->constructUrl($data2['page']), $this->isAccess($data2['page']));
         if ($this->isAccess($data2['page'])) {
             $this->componentMenuCount++;
         }
         $cmd = $db->createCommand("SELECT * FROM hr_install AS i LEFT JOIN hr_component as c ON c.id_install=i.id WHERE i.type='component' AND c.parentmenu=" . $data2['id'] . " AND c.parentmenu>0 AND i.id=" . $d['id']);
         $data2 = $cmd->query();
         $data2 = $data2->readAll();
         foreach ($data2 as $d2) {
             $asset = $this->Application->getAssetManager();
             $url = $asset->publishFilePath('./protected/pages/components/' . $d2['name'] . '/assets/' . $d2['iconmenu']);
             $item->addMenuItem(new MenuItem("'<img src=\"" . $url . "\" />'", Prado::localize($d2['menuname'], array(), $d['name']), $this->Service->constructUrl($d2['page']), $this->isAccess($d2['page'])));
         }
         $componnents->addMenuItem($item);
     }
     /******************************************
      * Extension menu
      */
     $extensions = new MenuItem('null', Prado::localize('Extensions', array(), "messages"), '#');
     $extensions->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-install.png\" />'", Prado::localize('Install/Uninstal', array(), "messages"), $this->Service->constructUrl('installation.extensions'), $this->isAccess('installation.extensions')));
     if ($this->isAccess('installation.extensions')) {
         $this->extensionMenuCount++;
         $extensions->addSplit();
     }
     $extensions->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-hardware.png\" />'", Prado::localize('Devices Manager', array(), "messages"), $this->Service->constructUrl('installation.devices'), $this->isAccess('installation.devices')));
     if ($this->isAccess('installation.devices')) {
         $this->extensionMenuCount++;
     }
     $extensions->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-component.png\" />'", Prado::localize('Component Manager', array(), "messages"), $this->Service->constructUrl('installation.components'), $this->isAccess('installation.components')));
     if ($this->isAccess('installation.components')) {
         $this->extensionMenuCount++;
     }
     $extensions->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-themes.png\" />'", Prado::localize('Template Manager', array(), "messages"), $this->Service->constructUrl('installation.template'), $this->isAccess('installation.template')));
     if ($this->isAccess('installation.template')) {
         $this->extensionMenuCount++;
     }
     $extensions->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-language.png\" />'", Prado::localize('Language Manager', array(), "messages"), $this->Service->constructUrl('installation.language'), $this->isAccess('installation.language')));
     if ($this->isAccess('installation.language')) {
         $this->extensionMenuCount++;
     }
     /******************************************
      * Tools menu
      */
     $tools = new MenuItem('null', Prado::localize('Tools', array(), "messages"), '#');
     $tools->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-globalCheckin.png\" />'", Prado::localize('Gloal Check-in', array(), "messages"), $this->Service->constructUrl('tool.GlobalCheckin'), $this->isAccess('tool.GlobalCheckin')));
     if ($this->isAccess('tool.GlobalCheckin')) {
         $this->toolMenuCount++;
     }
     $tools->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-guilog.png\" />'", Prado::localize('Horux Gui log', array(), "messages"), $this->Service->constructUrl('tool.GuiLog'), $this->isAccess('tool.GuiLog')));
     $tools->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-update.png\" />'", Prado::localize('Horux Update', array(), "messages"), $this->Service->constructUrl('update.Update'), $this->isAccess('update.Update')));
     if ($this->isAccess('tool.GuiLog')) {
         $this->toolMenuCount++;
     }
     $tools->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-recycling.png\" />'", Prado::localize('Recycling a Key', array(), "messages"), $this->Service->constructUrl('key.recycling'), $this->isAccess('key.recycling')));
     if ($this->isAccess('key.recycling')) {
         $this->toolMenuCount++;
     }
     /******************************************
      * Help menu
      */
     $help = new MenuItem('null', Prado::localize('Info', array(), "messages"), '#');
     $help->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-help.png\" />'", Prado::localize('Horux About', array(), "messages"), $this->Service->constructUrl('help.About'), 1));
     $help->addSplit();
     $help->addMenuItem(new MenuItem("'<img src=\"./themes/letux/images/menu/icon-16-systemInfo.png\" />'", Prado::localize('System Info', array(), "messages"), $this->Service->constructUrl('help.SystemInfo'), $this->isAccess('help.SystemInfo')));
     $menu->addMenuItem($horux);
     $menu->addMenuItem($system);
     $menu->addMenuItem($access);
     $menu->addMenuItem($componnents);
     $menu->addMenuItem($extensions);
     $menu->addMenuItem($tools);
     $menu->addMenuItem($help);
     return $menu->render();
 }