Example #1
0
 public function gears($action = 'index') {
     d('Admin Gears');
     $cogear = getInstance();
     $all_gears = $cogear->getAllGears();
     $active_gears = $cogear->getActiveGears();
     $inactive_gears = array_diff($all_gears, $active_gears);
     $all_count = sizeof($all_gears);
     $active_count = sizeof($active_gears);
     $inactive_count = sizeof($inactive_gears);
     $top_menu = Template::getGlobal('top_menu');
     $root = Url::gear('admin');
     $top_menu->{$root . 'gears'} = t('Active');
     $top_menu->{$root . 'gears'}->count = $active_count;
     $top_menu->{$root . 'gears/all'} = t('All');
     $top_menu->{$root . 'gears/all'}->count = $all_count;
     $top_menu->{$root . 'gears/inactive'} = t('Inactive');
     $top_menu->{$root . 'gears/inactive'}->count = $inactive_count;
     $top_menu->{$root . 'gears/new'} = t('New');
     $top_menu->{$root . 'gears/updates'} = t('Updates');
     $top_menu->{$root . 'gears/add'} = t('Add');
     $doaction = NULL;
     if (!empty($_REQUEST['action-top']))
         $doaction = $_REQUEST['action-top'];
     if (!empty($_REQUEST['action-bottom']))
         $doaction = $_REQUEST['action-bottom'];
     if (!empty($_REQUEST['action']))
         $doaction = $_REQUEST['action'];
     if ($doaction && isset($_REQUEST['gears'])) {
         $gears = $this->filter_gears($_REQUEST['gears']);
         switch ($doaction) {
             case 'activate':
                 $this->activate_gears($gears);
                 break;
             case 'deactivate':
                 $this->deactivate_gears($gears);
                 break;
             case 'update':
                 $this->update_gears($_REQUEST['gears']);
                 break;
         }
         back();
     }
     switch ($action) {
         case 'index':
             $gears = array();
             foreach ($active_gears as $gear => $class) {
                 $object = new $class;
                 $object->active = TRUE;
                 $gears[$object->package][$gear] = $object;
             }
             $tpl = new Template('Admin_Theme.gears');
             $tpl->packages = $gears;
             $tpl->link = Url::gear('admin') . '/gears';
             append('content', $tpl->render());
             break;
         case 'all':
             $gears = array();
             foreach ($all_gears as $gear => $class) {
                 $object = new $class;
                 $object->active = ($object->package == 'Core' OR $object->type == Gear::CORE OR in_array($gear, array_keys($active_gears)));
                 $gears[$object->package][$gear] = $object;
             }
             $tpl = new Template('Admin_Theme.gears');
             $tpl->packages = $gears;
             $tpl->link = Url::gear('admin') . '/gears';
             append('content', $tpl->render());
             break;
         case 'inactive':
             $gears = array();
             foreach ($inactive_gears as $gear => $class) {
                 $object = new $class;
                 $object->active = ($object->package == 'Core' OR $object->type == Gear::CORE OR in_array($gear, array_keys($active_gears)));
                 $gears[$object->package][$gear] = $object;
             }
             $tpl = new Template('Admin_Theme.gears');
             $tpl->packages = $gears;
             $tpl->link = Url::gear('admin') . '/gears';
             append('content', $tpl->render());
             break;
         case 'new':
             $gears = array();
             $new_period = 60 * 60 * 7; // Gears that has been updated last week are to be new
             foreach ($all_gears as $gear => $class) {
                 $object = new $class;
                 if (time() - $object->file->getMTime() <= $new_period) {
                     if (!$object->active = ($object->package == 'Core' OR $object->type == Gear::CORE OR in_array($gear, array_keys($active_gears)))) {
                         $gears[$object->package][$gear] = $object;
                     }
                 }
             }
             $tpl = new Template('Admin_Theme.gears');
             $tpl->packages = $gears;
             $tpl->link = Url::gear('admin') . '/gears';
             append('content', $tpl->render());
             break;
     }
 }
Example #2
0
 /**
  * 
  */
 public function render(){
     $menu = Template::getGlobal('top_menu');
     $output = $menu->render('Admin_Menu.top_menu');
     Template::bindGlobal('top_menu',$output);
 }