diff options
Diffstat (limited to 'mod/logbrowser')
| -rw-r--r-- | mod/logbrowser/index.php | 66 | ||||
| -rw-r--r-- | mod/logbrowser/languages/en.php | 56 | ||||
| -rw-r--r-- | mod/logbrowser/manifest.xml | 25 | ||||
| -rw-r--r-- | mod/logbrowser/start.php | 87 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/admin/administer_utilities/logbrowser.php | 81 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/forms/logbrowser/refine.php | 54 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/logbrowser/adminlinks.php | 4 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/logbrowser/css.php | 49 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/logbrowser/form.php | 66 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/logbrowser/refine.php | 40 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/logbrowser/table.php | 90 | ||||
| -rw-r--r-- | mod/logbrowser/views/default/object/logwrapper.php | 50 |
12 files changed, 337 insertions, 331 deletions
diff --git a/mod/logbrowser/index.php b/mod/logbrowser/index.php deleted file mode 100644 index 7ed84fdda..000000000 --- a/mod/logbrowser/index.php +++ /dev/null @@ -1,66 +0,0 @@ -<?php
- /**
- * Elgg log browser.
- *
- * @package ElggLogBrowser
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2009
- * @link http://elgg.com/
- */
-
- require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
- admin_gatekeeper();
- set_context('admin');
- // Set admin user for user block
- set_page_owner($_SESSION['guid']);
-
-
- $limit = get_input('limit', 40);
- $offset = get_input('offset');
-
- $search_username = get_input('search_username');
- if ($search_username) {
- if ($user = get_user_by_username($search_username)) {
- $user = $user->guid;
- }
- } else {
- $user_guid = get_input('user_guid',0);
- if ($user_guid) {
- $user = (int) $user_guid;
- } else {
- $user = "";
- }
- }
-
- $timelower = get_input('timelower');
- if ($timelower) $timelower = strtotime($timelower);
- $timeupper = get_input('timeupper');
- if ($timeupper) $timeupper = strtotime($timeupper);
-
- $title = elgg_view_title(elgg_echo('logbrowser'));
-
- // Get log entries
- $log = get_system_log($user, "", "", "","", $limit, $offset, false, $timeupper, $timelower);
- $count = get_system_log($user, "", "", "","", $limit, $offset, true, $timeupper, $timelower);
- $log_entries = array();
-
- foreach ($log as $l)
- {
- $tmp = new ElggObject();
- $tmp->subtype = 'logwrapper';
- $tmp->entry = $l;
- $log_entries[] = $tmp;
- }
-
- $form = elgg_view('logbrowser/form',array('user_guid' => $user, 'timeupper' => $timeupper, 'timelower' => $timelower));
-
- set_context('search');
- $result = elgg_view_entity_list($log_entries, $count, $offset, $limit, false, false);
- set_context('admin');
-
-// Display main admin menu
- page_draw(elgg_echo('logbrowser'),elgg_view_layout("two_column_left_sidebar", '', $title . $form . $result));
-
-?>
\ No newline at end of file diff --git a/mod/logbrowser/languages/en.php b/mod/logbrowser/languages/en.php index c703707b3..b1d2681dd 100644 --- a/mod/logbrowser/languages/en.php +++ b/mod/logbrowser/languages/en.php @@ -1,30 +1,30 @@ <?php - /** - * Elgg log browser plugin language pack - * - * @package ElggLogBrowser - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2009 - * @link http://elgg.com/ - */ +/** + * Elgg log browser plugin language pack + * + * @package ElggLogBrowser + */ - $english = array( - - /** - * Menu items and titles - */ - - 'logbrowser' => 'Log browser', - 'logbrowser:browse' => 'Browse system log',
- 'logbrowser:search' => 'Refine results',
- 'logbrowser:user' => 'Username to search by',
- 'logbrowser:starttime' => 'Beginning time (for example "last monday", "1 hour ago")',
- 'logbrowser:endtime' => 'End time',
-
- 'logbrowser:explore' => 'Explore log',
- - ); - - add_translation("en",$english); -?>
\ No newline at end of file +$english = array( + 'admin:administer_utilities:logbrowser' => 'Log browser', + 'logbrowser' => 'Log browser', + 'logbrowser:browse' => 'Browse system log', + 'logbrowser:search' => 'Refine results', + 'logbrowser:user' => 'Username to search by', + 'logbrowser:starttime' => 'Beginning time (for example "last monday", "1 hour ago")', + 'logbrowser:endtime' => 'End time', + + 'logbrowser:explore' => 'Explore log', + + 'logbrowser:date' => 'Date and time', + 'logbrowser:ip_address' => 'IP address', + 'logbrowser:user:name' => 'User', + 'logbrowser:user:guid' => 'User GUID', + 'logbrowser:object' => 'Object type', + 'logbrowser:object:guid' => 'Object GUID', + 'logbrowser:action' => 'Action', + + 'logbrowser:no_result' => 'No results', +); + +add_translation("en", $english);
\ No newline at end of file diff --git a/mod/logbrowser/manifest.xml b/mod/logbrowser/manifest.xml index 02505fd29..4527e2cbb 100644 --- a/mod/logbrowser/manifest.xml +++ b/mod/logbrowser/manifest.xml @@ -1,10 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> -<plugin_manifest> - <field key="author" value="Curverider Ltd" /> - <field key="version" value="1.0" /> - <field key="description" value="Browse the system event log" /> - <field key="website" value="http://www.elgg.org/" /> - <field key="copyright" value="(C) Curverider 2008-2009" /> - <field key="licence" value="GNU Public License version 2" /> - <field key="elgg_version" value="2009021901" /> -</plugin_manifest>
\ No newline at end of file +<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8"> + <name>Log Browser</name> + <author>Core developers</author> + <version>1.8</version> + <category>bundled</category> + <category>admin</category> + <description>Browse the system event log</description> + <website>http://www.elgg.org/</website> + <copyright>See COPYRIGHT.txt</copyright> + <license>GNU General Public License version 2</license> + <requires> + <type>elgg_release</type> + <version>1.8</version> + </requires> + <activate_on_install>true</activate_on_install> +</plugin_manifest> diff --git a/mod/logbrowser/start.php b/mod/logbrowser/start.php index 59450241f..22659877b 100644 --- a/mod/logbrowser/start.php +++ b/mod/logbrowser/start.php @@ -1,63 +1,32 @@ <?php - /** - * Elgg log browser. - * - * @package ElggLogBrowser - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2009 - * @link http://elgg.com/ - */ +/** + * Elgg log browser. + * + * @package ElggLogBrowser + */ - /** - * Initialise the log browser and set up the menus. - * - */ - function logbrowser_init() - { - global $CONFIG; - - // Register a page handler, so we can have nice URLs - register_page_handler('logbrowser','logbrowser_page_handler');
-
- // Extend CSS
- extend_view('css','logbrowser/css');
-
- // Extend context menu with admin logbrowsre link
- if (isadminloggedin())
- {
- extend_view('profile/menu/adminlinks','logbrowser/adminlinks',10000);
- } - }
-
- /**
- * Adding the log browser to the admin menu
- *
- */
- function logbrowser_pagesetup()
- {
- if (get_context() == 'admin' && isadminloggedin()) {
- global $CONFIG;
- add_submenu_item(elgg_echo('logbrowser'), $CONFIG->wwwroot . 'pg/logbrowser/');
- }
- } - - /** - * Log browser page handler - * - * @param array $page Array of page elements, forwarded by the page handling mechanism - */ - function logbrowser_page_handler($page) - { - global $CONFIG; - - // only interested in one page for now - include($CONFIG->pluginspath . "logbrowser/index.php"); - } - +elgg_register_event_handler('init', 'system', 'logbrowser_init'); + +/** + * Initialize the log browser plugin. + */ +function logbrowser_init() { + elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'logbrowser_user_hover_menu'); - // Initialise log browser - register_elgg_event_handler('init','system','logbrowser_init');
- register_elgg_event_handler('pagesetup','system','logbrowser_pagesetup'); -?>
\ No newline at end of file + elgg_register_admin_menu_item('administer', 'logbrowser', 'administer_utilities'); +} + +/** + * Add to the user hover menu + */ +function logbrowser_user_hover_menu($hook, $type, $return, $params) { + $user = $params['entity']; + + $url = "admin/administer_utilities/logbrowser?user_guid={$user->guid}"; + $item = new ElggMenuItem('logbrowser', elgg_echo('logbrowser:explore'), $url); + $item->setSection('admin'); + $return[] = $item; + + return $return; +} diff --git a/mod/logbrowser/views/default/admin/administer_utilities/logbrowser.php b/mod/logbrowser/views/default/admin/administer_utilities/logbrowser.php new file mode 100644 index 000000000..9506c9d9f --- /dev/null +++ b/mod/logbrowser/views/default/admin/administer_utilities/logbrowser.php @@ -0,0 +1,81 @@ +<?php +/** + * Elgg log browser admin page + * + * @note The ElggObject this creates for each entry is temporary + * + * @package ElggLogBrowser + */ + +$limit = get_input('limit', 20); +$offset = get_input('offset'); + +$search_username = get_input('search_username'); +if ($search_username) { + $user = get_user_by_username($search_username); + if ($user) { + $user_guid = $user->guid; + } else { + $user_guid = null; + } +} else { + $user_guid = get_input('user_guid', null); + if ($user_guid) { + $user_guid = (int) $user_guid; + $user = get_entity($user_guid); + if ($user) { + $search_username = $user->username; + } + } else { + $user_guid = null; + } +} + +$timelower = get_input('timelower'); +if ($timelower) { + $timelower = strtotime($timelower); +} + +$timeupper = get_input('timeupper'); +if ($timeupper) { + $timeupper = strtotime($timeupper); +} + +$ip_address = get_input('ip_address'); + +$refine = elgg_view('logbrowser/refine', array( + 'timeupper' => $timeupper, + 'timelower' => $timelower, + 'ip_address' => $ip_address, + 'username' => $search_username, +)); + +// Get log entries +$log = get_system_log($user_guid, "", "", "","", $limit, $offset, false, $timeupper, $timelower, + 0, $ip_address); +$count = get_system_log($user_guid, "", "", "","", $limit, $offset, true, $timeupper, $timelower, + 0, $ip_address); + +// if user does not exist, we have no results +if ($search_username && is_null($user_guid)) { + $log = false; + $count = 0; +} + +$table = elgg_view('logbrowser/table', array('log_entries' => $log)); + +$nav = elgg_view('navigation/pagination',array( + 'offset' => $offset, + 'count' => $count, + 'limit' => $limit, +)); + +// display admin body +$body = <<<__HTML +$refine +$nav +$table +$nav +__HTML; + +echo $body; diff --git a/mod/logbrowser/views/default/forms/logbrowser/refine.php b/mod/logbrowser/views/default/forms/logbrowser/refine.php new file mode 100644 index 000000000..3d081c9c2 --- /dev/null +++ b/mod/logbrowser/views/default/forms/logbrowser/refine.php @@ -0,0 +1,54 @@ +<?php +/** + * Form body for refining the log browser search. + * Look for a particular person or in a time window. + * + * @uses $vars['username'] + * @uses $vars['ip_address'] + * @uses $vars['timelower'] + * @uses $vars['timeupper'] + */ + +if (isset($vars['timelower']) && $vars['timelower']) { + $lowerval = date('r', $vars['timelower']); +} else { + $lowerval = ""; +} +if (isset($vars['timeupper']) && $vars['timeupper']) { + $upperval = date('r', $vars['timeupper']); +} else { + $upperval = ""; +} +$ip_address = elgg_extract('ip_address', $vars); +$username = elgg_extract('username', $vars); + +$form = "<div>" . elgg_echo('logbrowser:user'); +$form .= elgg_view('input/text', array( + 'name' => 'search_username', + 'value' => $username, +)) . "</div>"; + +$form .= "<div>" . elgg_echo('logbrowser:ip_address'); +$form .= elgg_view('input/text', array( + 'name' => 'ip_address', + 'value' => $ip_address, +)) . "</div>"; + +$form .= "<div>" . elgg_echo('logbrowser:starttime'); +$form .= elgg_view('input/text', array( + 'name' => 'timelower', + 'value' => $lowerval, +)) . "</div>"; + +$form .= "<div>" . elgg_echo('logbrowser:endtime'); +$form .= elgg_view('input/text', array( + 'name' => 'timeupper', + 'value' => $upperval, +)) . "</div>"; +$form .= '<div class="elgg-foot">'; +$form .= elgg_view('input/submit', array( + 'value' => elgg_echo('search'), +)); +$form .= '</div>'; + +echo $form; diff --git a/mod/logbrowser/views/default/logbrowser/adminlinks.php b/mod/logbrowser/views/default/logbrowser/adminlinks.php deleted file mode 100644 index abe83707d..000000000 --- a/mod/logbrowser/views/default/logbrowser/adminlinks.php +++ /dev/null @@ -1,4 +0,0 @@ -<?php
-
-?>
-<a href="<?php echo $vars['url']; ?>mod/logbrowser/?user_guid=<?php echo $vars['entity']->guid; ?>"><?php echo elgg_echo("logbrowser:explore"); ?></a>
\ No newline at end of file diff --git a/mod/logbrowser/views/default/logbrowser/css.php b/mod/logbrowser/views/default/logbrowser/css.php deleted file mode 100644 index ad821d9be..000000000 --- a/mod/logbrowser/views/default/logbrowser/css.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php - - /** - * Elgg logbrowser CSS - * - * @package logbrowser - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider <info@elgg.com> - * @copyright Curverider Ltd 2008-2009 - * @link http://elgg.org/ - */ - -?> - -#logbrowserSearchform { - padding: 10px; - background-color: #dedede; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; -} - -.log_entry { - width: 699px; - font-size: 80%; - background:white; - margin:0 10px 5px 10px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border:1px solid white; -} -.log_entry td { -} - -.log_entry_user { - width: 120px; -} - -.log_entry_time { - width: 210px; - padding:2px; -} - -.log_entry_item { - -} - -.log_entry_action { - width: 75px; -}
\ No newline at end of file diff --git a/mod/logbrowser/views/default/logbrowser/form.php b/mod/logbrowser/views/default/logbrowser/form.php deleted file mode 100644 index 2b0c78720..000000000 --- a/mod/logbrowser/views/default/logbrowser/form.php +++ /dev/null @@ -1,66 +0,0 @@ -
-<div id="logbrowser_search_area">
-<?php
-
- // Time lower limit
-
- if ($vars['timelower']) {
- $lowerval = date('r',$vars['timelower']);
- } else {
- $lowerval = "";
- }
- if ($vars['timeupper']) {
- $upperval = date('r',$vars['timeupper']);
- } else {
- $upperval = "";
- }
- if ($vars['user_guid']) {
- if ($user = get_entity($vars['user_guid']))
- $userval = $user->username;
- } else {
- $userval = "";
- }
-
-
- $form = "";
-
- $form .= "<p>" . elgg_echo('logbrowser:user');
- $form .= elgg_view('input/text',array(
- 'internalname' => 'search_username',
- 'value' => $userval
- )) . "</p>";
-
- $form .= "<p>" . elgg_echo('logbrowser:starttime');
- $form .= elgg_view('input/text',array(
- 'internalname' => 'timelower',
- 'value' => $lowerval
- )) . "</p>";
-
- $form .= "<p>" . elgg_echo('logbrowser:endtime');
- $form .= elgg_view('input/text',array(
- 'internalname' => 'timeupper',
- 'value' => $upperval
- )) . "</p>";
- $form .= elgg_view('input/submit',array(
- 'value' => elgg_echo('search')
- ));
-
- $wrappedform = elgg_view('input/form',array(
- 'body' => $form,
- 'method' => 'get',
- 'action' => $vars['url'] . "mod/logbrowser/"
- ));
-
- if ($upperval || $lowerval || $userval) {
- $hidden = "";
- } else {
- $hidden = "style=\"display:none\"";
- }
-
-?>
-
- <div id="logbrowserSearchform" <?php echo $hidden; ?>><?php echo $wrappedform; ?></div>
- <p>
- <a href="#" onclick="$('#logbrowserSearchform').toggle()"><?php echo elgg_echo('logbrowser:search'); ?></a>
- </p>
- </div>
\ No newline at end of file diff --git a/mod/logbrowser/views/default/logbrowser/refine.php b/mod/logbrowser/views/default/logbrowser/refine.php new file mode 100644 index 000000000..b40f23fa3 --- /dev/null +++ b/mod/logbrowser/views/default/logbrowser/refine.php @@ -0,0 +1,40 @@ +<?php +/** + * Log browser search form + * + * @package ElggLogBrowser + */ + +$form_vars = array( + 'method' => 'get', + 'action' => 'admin/administer_utilities/logbrowser', + 'disable_security' => true, +); +$form = elgg_view_form('logbrowser/refine', $form_vars, $vars); + +$toggle_link = elgg_view('output/url', array( + 'href' => '#log-browser-search-form', + 'text' => elgg_echo('logbrowser:search'), + 'rel' => 'toggle', +)); + +$form_class = 'elgg-module elgg-module-inline'; +if (!isset($vars['user_guid']) && !isset($vars['username'])) { + $form_class .= ' hidden'; +} + +?> + +<div id="logbrowser-search-area" class="mbm"> + <div> + <?php echo $toggle_link; ?> + </div> + <div id="log-browser-search-form" class="<?php echo $form_class; ?>"> + <div class="elgg-head"> + <h3><?php echo elgg_echo('logbrowser:search'); ?></h3> + </div> + <div class="elgg-body"> + <?php echo $form; ?> + </div> + </div> +</div>
\ No newline at end of file diff --git a/mod/logbrowser/views/default/logbrowser/table.php b/mod/logbrowser/views/default/logbrowser/table.php new file mode 100644 index 000000000..b08a0c428 --- /dev/null +++ b/mod/logbrowser/views/default/logbrowser/table.php @@ -0,0 +1,90 @@ +<?php +/** + * Log browser table + * + * @package ElggLogBrowser + */ + +$log_entries = $vars['log_entries']; +?> + +<table class="elgg-table"> + <tr> + <th><?php echo elgg_echo('logbrowser:date'); ?></th> + <th><?php echo elgg_echo('logbrowser:ip_address'); ?></th> + <th><?php echo elgg_echo('logbrowser:user:name'); ?></th> + <th><?php echo elgg_echo('logbrowser:user:guid'); ?></th> + <th><?php echo elgg_echo('logbrowser:object'); ?></th> + <th><?php echo elgg_echo('logbrowser:object:guid'); ?></th> + <th><?php echo elgg_echo('logbrowser:action'); ?></th> + </tr> +<?php + $alt = ''; + foreach ($log_entries as $entry) { + if ($entry->ip_address) { + $ip_address = $entry->ip_address; + } else { + $ip_address = ' '; + } + + $user = get_entity($entry->performed_by_guid); + if ($user) { + $user_link = elgg_view('output/url', array( + 'href' => $user->getURL(), + 'text' => $user->name, + 'is_trusted' => true, + )); + $user_guid_link = elgg_view('output/url', array( + 'href' => "admin/administer_utilities/logbrowser?user_guid={$user->guid}", + 'text' => $user->getGUID(), + 'is_trusted' => true, + )); + } else { + $user_guid_link = $user_link = ' '; + } + + $object = get_object_from_log_entry($entry->id); + if (is_callable(array($object, 'getURL'))) { + $object_link = elgg_view('output/url', array( + 'href' => $object->getURL(), + 'text' => $entry->object_class, + 'is_trusted' => true, + )); + } else { + $object_link = $entry->object_class; + } +?> + <tr <?php echo $alt; ?>> + <td class="log-entry-time"> + <?php echo date('r', $entry->time_created); ?> + </td> + <td class="log-entry-ip-address"> + <?php echo $ip_address; ?> + </td> + <td class="log-entry-user"> + <?php echo $user_link; ?> + </td> + <td class="log-entry-guid"> + <?php echo $user_guid_link; ?> + </td> + <td class="log-entry-object"> + <?php echo $object_link; ?> + </td> + <td class="log-entry-guid"> + <?php echo $entry->object_id; ?> + </td> + <td class="log-entry-action"> + <?php echo elgg_echo($entry->event); ?> + </td> + </tr> +<?php + + $alt = $alt ? '' : 'class="alt"'; + } +?> +</table> +<?php +if (!$log_entries) { + echo elgg_echo('logbrowser:no_result'); + return true; +} diff --git a/mod/logbrowser/views/default/object/logwrapper.php b/mod/logbrowser/views/default/object/logwrapper.php deleted file mode 100644 index 416296473..000000000 --- a/mod/logbrowser/views/default/object/logwrapper.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php
- /**
- * Elgg log browser.
- *
- * @package ElggLogBrowser
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2009
- * @link http://elgg.com/
- */
-
- $entry = $vars['entity']->entry;
-
- $by = get_entity($entry->performed_by_guid);
- $object = get_object_from_log_entry($entry->id);
-
- if (is_callable(array($object, 'getURL')))
- $obj_url = $object->getURL();
-
- //echo elgg_view_listing($icon, $info);
-?>
- <table class="log_entry">
- <tr>
- <td class="log_entry_time">
- <?php echo date('r', $entry->time_created ); ?>
- </td>
- <td class="log_entry_user">
- <?php if ($by) {
- echo "<a href=\"".$by->getURL()."\">{$by->name}</a>";
- echo " <a href=\"?user_guid={$by->guid}\">" . $by->guid . "</a>";
- }
- else echo " "; ?>
- <td>
- <td class="log_entry_item">
- <?php
- if ($obj_url) echo "<a href=\"$obj_url\">";
- echo "{$entry->object_class}";
- if ($obj_url) echo "</a>";
- echo " " . $entry->object_id;
-
- ?>
- </td>
- <td class="log_entry_action">
- <div class="log_entry_action_<?php echo $entry->event; ?>">
- <?php echo elgg_echo($entry->event); ?>
- </div>
- </td>
- </tr>
- </table>
-
\ No newline at end of file |
