Exemplo n.º 1
0
 function run()
 {
     if ($this->um->getParam('user', 'load_all_nodes')) {
         $this->loadOpenNodesOnly = false;
     }
     $this->expandedNodes = $this->getExpandedNodes('SB3NODES');
     if (SB_safeVal($_REQUEST, 'reload') == 'all') {
         // Temporarily disable hiding of folders
         $this->um->hiddenFolders = array();
         $this->loadOpenNodesOnly = false;
     } else {
         // Collapsed nodes will not load child nodes
         if ($this->loadOpenNodesOnly) {
             $this->tree->expandedNodes =& $this->expandedNodes;
         }
     }
     $useNiceUrl = $this->um->getParam('config', 'use_nice_url');
     $this->nodeMenu = array(array('name' => 'Add Bookmark', 'acl' => '*i'), array('name' => 'Add Folder', 'acl' => '*i'), array('name' => 'Browse Folder', 'acl' => '*', 'href' => ($useNiceUrl ? 'dir/' : 'index.php?w=dir&root=') . 'cookie'), array('name' => 'Mark as Default', 'acl' => '*i', 'callback' => 'SB_markDefault', 'optional' => true), array('name' => 'All Bookmarks', 'acl' => '*', 'href' => ($useNiceUrl ? 'dir/' : 'index.php?w=dir&flat=1&root=') . 'cookie' . ($useNiceUrl ? '/flat' : ''), 'optional' => true), array('name' => 'Bookmark News', 'acl' => '*', 'href' => ($useNiceUrl ? 'news/' : 'news.php?root=') . 'cookie', 'optional' => true), null, array('name' => 'Hide Folder', 'acl' => '*', 'callback' => 'SB_nodeHide', 'optional' => true), array('name' => 'Unhide Subfolders', 'acl' => '*', 'optional' => true), array('name' => 'Folder Properties', 'acl' => '*u'), array('name' => 'Folder Sharing', 'acl' => '*'), array('name' => 'Delete Folder', 'acl' => '*d'), array('name' => 'Purge Folder', 'acl' => 'd', 'optional' => true), array('name' => 'Undelete', 'acl' => 'i', 'optional' => true), null, array('name' => 'Copy', 'acl' => '*', 'callback' => 'SB_nodeCopy'), array('name' => 'Paste', 'acl' => '*i_c'), null, array('name' => 'Import Bookmarks', 'acl' => '*i'), array('name' => 'Export Bookmarks', 'acl' => '*'));
     $this->linkMenu = array(array('name' => 'Email Bookmark'), array('name' => 'Copy Bookmark', 'callback' => 'SB_linkCopy'), array('name' => 'Delete Bookmark', 'acl' => 'd'), null, array('name' => 'Properties', 'acl' => 'u'));
     /* TODO
             $this->nodeDragMenu = array
             (
                 array('name'=>'Move Into','acl'=>'*i_c'),
                 array('name'=>'Move Contents Into','acl'=>'*i_c'),
                 array('name'=>'Copy Into','acl'=>'*i_c'),
                 array('name'=>'Copy Contents Into','acl'=>'*i_c'),
                 null,
                 array('name'=>'Move Before','acl'=>'*Z'),
                 array('name'=>'Move After','acl'=>'*Z')
             );
     
             $this->linkDragMenu = array
             (
                 array('name'=>'Move Into'),
                 array('name'=>'Copy Into'),
                 null,
                 array('name'=>'Move Before'),
                 array('name'=>'Move After')
             );
     */
     if ($this->um->setupDone) {
         $this->userMenu = array(array('name' => 'Log In'), array('name' => 'Sign Up'), array('name' => 'User Settings'), array('name' => 'Session Settings'), array('name' => 'Private Messages', 'href' => 'messenger.php'), array('name' => 'Verify Email'), null, array('name' => 'SiteBar Settings'), array('name' => 'Maintain Trees'), array('name' => 'Maintain Users'), array('name' => 'Maintain Groups'), null, array('name' => 'Open Integrator', 'href' => 'integrator.php'), array('name' => 'Bookmark News', 'href' => 'news.php'), null, array('name' => 'Contact Admin'), array('name' => 'Help'), array('name' => 'Log Out'));
     } else {
         $this->userMenu = array(array('name' => 'Set Up'), array('name' => 'Help'));
     }
     // Check if we have additional commands
     foreach ($this->um->plugins as $plugin) {
         if (isset($plugin['context']) && $plugin['context']) {
             $execute = $plugin['prefix'] . 'Context';
             $execute($this->nodeMenu, $this->linkMenu, $this->userMenu);
         }
     }
     $this->iconnect = SB_Skin::img('connect');
     $this->iempty = SB_Skin::img('empty');
     $this->ijoin = SB_Skin::img('join');
     $this->ijoinl = SB_Skin::img('join_last');
     $this->ilink = SB_Skin::img('link');
     $this->ilinkp = SB_Skin::img('link_private');
     $this->ifeed = SB_Skin::img('feed');
     if ($this->um->getParam('user', 'menu_icon')) {
         $this->lmenu = '<img class="menu" src="' . SB_Skin::imgsrc('menu') . '" onclick="return SB_menuOn(event,this.parentNode);" alt="">';
         $this->nmenu = '<img class="menu" src="' . SB_Skin::imgsrc('menu') . '" onclick="return SB_menuOn(event,this.parentNode.parentNode.parentNode);" alt="">';
     }
     $this->sortMode = $this->um->getParam('user', 'link_sort_mode');
     $this->useHitCounter = $this->um->getParam('config', 'use_hit_counter');
     $this->useToolTips = $this->um->getParam('user', 'use_tooltips') && !SB_Page::isIPHONE();
     $this->showACL = $this->um->getParam('user', 'show_acl');
     if ($this->um->getParam('user', 'use_new_window')) {
         SB_Page::target('_blank');
     }
     if (!$this->useHitCounter) {
         if (!in_array($this->sortMode, array('abc', 'changed'))) {
             $this->sortMode = 'abc';
         }
     }
     $this->setOutputHandler();
     parent::run();
 }