addItem( __('Activity report'), $core->adminurl->get('admin.plugin.activityReport'), dcPage::getPF('activityReport/icon.png'), preg_match( '/' . preg_quote($core->adminurl->get('admin.plugin.activityReport')) . '(&.*)?$/', $_SERVER['REQUEST_URI'] ), $core->auth->check('admin',$core->blog->id) ); if ($core->activityReport->getSetting('active')) { $core->addBehavior('adminDashboardContents', ['activityReportAdmin', 'adminDashboardContents']); $core->addBehavior('adminDashboardOptionsForm', ['activityReportAdmin', 'adminDashboardOptionsForm']); $core->addBehavior('adminAfterDashboardOptionsUpdate', ['activityReportAdmin', 'adminAfterDashboardOptionsUpdate']); } class activityReportAdmin { public static function adminDashboardContents(dcCore $core, $items) { $core->auth->user_prefs->addWorkspace('activityReport'); $limit = abs((integer) $core->auth->user_prefs->activityReport->dashboard_item); if (!$limit) { return null; } $p = [ 'limit' => $limit, 'order' => 'activity_dt DESC', 'sql' => $core->activityReport->requests2params($core->activityReport->getSetting('requests')) ]; $lines = []; $rs = $core->activityReport->getLogs($p); if ($rs->isEmpty()) { return null; } $groups = $core->activityReport->getGroups(); while($rs->fetch()) { $group = $rs->activity_group; if (!isset($groups[$group])) { continue; } $lines[] = '
' . '' . __($groups[$group]['actions'][$rs->activity_action]['title']) . '' . '
' . dt::str( $core->blog->settings->system->date_format . ', ' . $core->blog->settings->system->time_format, strtotime($rs->activity_dt), $core->auth->getInfo('user_tz') ) . '
' . '

' . '' .vsprintf( __($groups[$group]['actions'][$rs->activity_action]['msg']), $core->activityReport->decode($rs->activity_logs) ) . '

'; } if (empty($lines)) { return null; } $items[] = new ArrayObject([ '
' . '

' . __('Activity report') . '

' . '
' . implode('', $lines) . '
' . '

' . __('View all logs') . ' - ' . __('Configure plugin') . '

' . '
' ]); } public static function adminDashboardOptionsForm(dcCore $core) { $core->auth->user_prefs->addWorkspace('activityReport'); echo '
' . '

' . __('Activity report') . '

' . '

' . form::combo( 'activityReport_dashboard_item', self::comboList(), self::comboList($core->auth->user_prefs->activityReport->dashboard_item) ) . '

' . '
'; } public static function adminAfterDashboardOptionsUpdate($user_id = null) { global $core; if (is_null($user_id)) { return; } $core->auth->user_prefs->addWorkspace('activityReport'); $core->auth->user_prefs->activityReport->put( 'dashboard_item', self::comboList(@$_POST['activityReport_dashboard_item']), 'integer' ); } private static function comboList($q = true) { $l = [ __('Do not show activity report') => 0, 5 => 5, 10 => 10, 15 => 15, 20 => 20, 50 => 50, 100 => 100 ]; if (true === $q) { return $l; } return in_array($q, $l) ? $l[$q] : 0; } }