From: Jeremy Laine Date: Wed, 7 Jun 2006 06:53:44 +0000 (+0000) Subject: move 'events' handling into Barrel/Events.php X-Git-Url: http://git.polytechnique.org/?p=diogenes.git;a=commitdiff_plain;h=f7e5cab55dd28251c1792f168b28f66ec97db411 move 'events' handling into Barrel/Events.php --- diff --git a/include/Barrel/Events.php b/include/Barrel/Events.php new file mode 100644 index 0000000..70343f7 --- /dev/null +++ b/include/Barrel/Events.php @@ -0,0 +1,151 @@ +barrel = $barrel; + } + + + /** Filename transformations. + */ + function makeFileLoc($log_file, &$caller) + { + $homepage = $this->barrel->getPID(''); + if (stristr($log_file, '/') == FALSE ) { + // this is a directory + $mydir = $log_file; + $myfile = ''; + } else { + $myfile = basename($log_file); + $mydir = dirname($log_file); + } + + $myloc = $this->barrel->getLocation($mydir); + if ($myloc or ($mydir == $homepage)) + { + $log_file = $myloc ? "$myloc/$myfile" : $myfile; + $url_loc = $myloc ? "$myloc/" : ''; + $link = $caller->urlBarrel($this->barrel->alias, $this->barrel->vhost, $url_loc); + } else { + $link = ''; + } + + return array($log_file, $mydir, $myfile, $link); + } + + /** Retrieve recent events. + */ + function getEvents($caller) + { + global $globals; + $events = array(); + $res = $globals->db->query("select e.action,e.stamp,e.data,a.text,s.auth,s.uid " + ."from {$globals->table_log_events} as e " + ."left join {$globals->table_log_actions} as a on e.action=a.id " + ."left join {$globals->table_log_sessions} as s on e.session=s.id " + ."where e.data like '{$this->barrel->alias}:%' " + ."order by stamp desc limit 0,10"); + while ($myarr = mysql_fetch_array($res)) { + $myarr['author'] = call_user_func(array($globals->session,'getUsername'),$myarr['auth'],$myarr['uid']); + $myarr['flags'] |= EVENT_FLAG_NONE; + list($op_alias, $op_file) = split(":",$myarr['data']); + + switch($myarr['text']) { + case "barrel_create": + $myarr['title'] = __("site created"); + $myarr['icon'] = $globals->icons->get_action_icon('add'); + break; + + case "barrel_options": + $myarr['title'] = __("barrel options"); + $myarr['icon'] = $globals->icons->get_action_icon('properties'); + break; + + case "barrel_plugins": + $myarr['title'] = __("barrel plugins"); + $myarr['icon'] = $globals->icons->get_action_icon('plugins'); + $myarr['link_admin'] = "plugins"; + break; + + case "page_create": + $myarr['title'] = __("page created"); + $myarr['icon'] = $globals->icons->get_action_icon('add'); + list($op_file, $myarr['dir'], $myarr['file']) = $this->makeFileLoc($op_file, $caller); + $myarr['link_admin'] = "pages?dir={$myarr['dir']}"; + break; + + case "page_delete": + $myarr['title'] = __("page removed"); + $myarr['icon'] = $globals->icons->get_action_icon('remove'); + break; + + case "page_props": + $myarr['title'] = __("page properties"); + $myarr['icon'] = $globals->icons->get_action_icon('properties'); + list($op_file, $myarr['dir'], $myarr['file']) = $this->makeFileLoc($op_file, $caller); + $myarr['link_admin'] = "pages?dir={$myarr['dir']}"; + break; + + case "page_plugins": + $myarr['title'] = __("page plugins"); + $myarr['icon'] = $globals->icons->get_action_icon('plugins'); + list($op_file, $myarr['dir'], $myarr['file']) = $this->makeFileLoc($op_file, $caller); + $myarr['link_admin'] = "plugins?plug_page={$myarr['dir']}"; + break; + + case "rcs_commit": + $myarr['title'] = __("file updated"); + $myarr['icon'] = $globals->icons->get_action_icon('update'); + list($op_file, $myarr['dir'], $myarr['file'], $myarr['link']) = $this->makeFileLoc($op_file, $caller); + $myarr['flags'] = EVENT_FLAG_PUBLIC; + $myarr['link_admin'] = "files?action=revs&dir={$myarr['dir']}&target={$myarr['file']}"; + + break; + + case "rcs_delete": + $myarr['title'] = __("file deleted"); + $myarr['icon'] = $globals->icons->get_action_icon('delete'); + list($op_file, $myarr['dir'], $myarr['file']) = $this->makeFileLoc($op_file, $caller); + break; + } + $myarr['opfile'] = $op_file; + + if (isset($myarr['title'])) + array_push($events, $myarr); + } + mysql_free_result($res); + return $events; + } +} + +?> diff --git a/include/admin/index.php b/include/admin/index.php index 4604049..64b5df2 100644 --- a/include/admin/index.php +++ b/include/admin/index.php @@ -2,104 +2,15 @@ require_once 'diogenes.common.inc.php'; require_once 'diogenes.admin.inc.php'; require_once 'diogenes.icons.inc.php'; +require_once 'Barrel/Events.php'; $page = new DiogenesAdmin; $bbarrel =& $page->barrel; -$homepage = $bbarrel->getPID(''); - -// filename transformations -function makeFileLoc($log_file) { - global $homepage, $bbarrel; - - if (stristr($log_file, '/') == FALSE ) { - // this is a directory - $mydir = $log_file; - $myfile = ''; - } else { - $myfile = basename($log_file); - $mydir = dirname($log_file); - } - - $myloc = $bbarrel->getLocation($mydir); - if ($myloc or ($mydir == $homepage)) - { - $log_file = $myloc ? "$myloc/$myfile" : $myfile; - } - - return array($log_file, $mydir, $myfile); -} - +$events = new Diogenes_Barrel_Events($bbarrel); // retrieve recent events -$res = $globals->db->query("select e.action,e.stamp,e.data,a.text,s.auth,s.uid " - ."from {$globals->table_log_events} as e " - ."left join {$globals->table_log_actions} as a on e.action=a.id " - ."left join {$globals->table_log_sessions} as s on e.session=s.id " - ."where e.data like '{$bbarrel->alias}:%' " - ."order by stamp desc limit 0,10"); -while ($myarr = mysql_fetch_array($res)) { - $myarr['username'] = call_user_func(array($globals->session,'getUsername'),$myarr['auth'],$myarr['uid']); - list($op_alias, $op_file) = split(":",$myarr['data']); - - switch($myarr['text']) { - case "barrel_create": - $myarr['icon'] = $globals->icons->get_action_icon('add'); - $myarr['desc'] = __("site created"); - break; - - case "barrel_options": - $myarr['icon'] = $globals->icons->get_action_icon('properties'); - $myarr['desc'] = array(__("barrel options"), "options"); - break; - - case "barrel_plugins": - $myarr['icon'] = $globals->icons->get_action_icon('plugins'); - $myarr['desc'] = array(__("barrel plugins"), "plugins"); - break; - - case "page_create": - $myarr['icon'] = $globals->icons->get_action_icon('add'); - list($op_file, $mydir, $myfile) = makeFileLoc($op_file); - $myarr['desc'] = array(__("page created"), "pages?dir=$mydir"); - break; - - case "page_delete": - $myarr['icon'] = $globals->icons->get_action_icon('remove'); - $myarr['desc'] = __("page removed"); - break; - - case "page_props": - $myarr['icon'] = $globals->icons->get_action_icon('properties'); - list($op_file, $mydir, $myfile) = makeFileLoc($op_file); - $myarr['desc'] = array(__("page properties"), "pages?dir=$mydir"); - break; - - case "page_plugins": - $myarr['icon'] = $globals->icons->get_action_icon('plugins'); - list($op_file, $mydir, $myfile) = makeFileLoc($op_file); - $myarr['desc'] = array(__("page plugins"), "plugins?plug_page=$mydir"); - break; - - case "rcs_commit": - $myarr['icon'] = $globals->icons->get_action_icon('update'); - list($op_file, $mydir, $myfile) = makeFileLoc($op_file); - $myarr['desc'] = array(__("file updated"), "files?action=revs&dir=$mydir&target=$myfile"); - break; - - case "rcs_delete": - $myarr['icon'] = $globals->icons->get_action_icon('delete'); - list($op_file, $mydir, $myfile) = makeFileLoc($op_file); - $myarr['desc'] = __("file deleted"); - break; - - } - - $myarr['file'] = $op_file; - - if (isset($myarr['desc'])) - $page->append('events',$myarr); -} -mysql_free_result($res); +$event_arr = $events->getEvents($page); +$page->assign('events', $event_arr); // do display $page->assign('greeting',__("Welcome to the Diogenes backoffice"));