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; } }
/** * */ public function render(){ $menu = Template::getGlobal('top_menu'); $output = $menu->render('Admin_Menu.top_menu'); Template::bindGlobal('top_menu',$output); }