diff --git a/admin/report/configlog/settings.php b/admin/report/configlog/settings.php deleted file mode 100644 index 21fe2f816fe..00000000000 --- a/admin/report/configlog/settings.php +++ /dev/null @@ -1,5 +0,0 @@ -add('reports', new admin_externalpage('reportconfiglog', get_string('configlog', 'report_configlog'), "$CFG->wwwroot/$CFG->admin/report/configlog/index.php")); diff --git a/admin/report/security/settings.php b/admin/report/security/settings.php deleted file mode 100644 index 8ea8b238eba..00000000000 --- a/admin/report/security/settings.php +++ /dev/null @@ -1,5 +0,0 @@ -add('reports', new admin_externalpage('reportsecurity', get_string('pluginname', 'report_security'), "$CFG->wwwroot/$CFG->admin/report/security/index.php",'report/security:view')); diff --git a/admin/settings/plugins.php b/admin/settings/plugins.php index e05d3e40e4e..6875bff7826 100644 --- a/admin/settings/plugins.php +++ b/admin/settings/plugins.php @@ -454,25 +454,29 @@ if ($hassiteconfig) { $ADMIN->add('coursereports', $page); } } + unset($pages); } // Now add reports +$pages = array(); foreach (get_plugin_list('report') as $plugin => $plugindir) { $settings_path = "$plugindir/settings.php"; if (file_exists($settings_path)) { + $settings = new admin_settingpage('report' . $report, + get_string('pluginname', 'report_' . $report), 'moodle/site:config'); include($settings_path); - continue; + if ($settings) { + $pages[] = $settings; + } } - - $index_path = "$plugindir/index.php"; - if (!file_exists($index_path)) { - continue; - } - // old style 3rd party plugin without settings.php - $www_path = "$CFG->wwwroot/$CFG->admin/report/$plugin/index.php"; - $reportname = get_string($plugin, 'report_' . $plugin); - $ADMIN->add('reports', new admin_externalpage('report'.$plugin, $reportname, $www_path, 'moodle/site:viewreports')); } +if (!empty($pages)) { + $ADMIN->add('modules', new admin_category('reports', get_string('reports'))); + foreach ($pages as $page) { + $ADMIN->add('reports', $page); + } +} +unset($pages); // Now add various admin tools foreach (get_plugin_list('tool') as $plugin => $plugindir) { diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 7780f7ffcbe..39665f3d23a 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -7348,7 +7348,7 @@ function get_plugin_types($fullpaths=true) { 'editor' => 'lib/editor', 'format' => 'course/format', 'profilefield' => 'user/profile/field', - 'report' => $CFG->admin.'/report', + 'report' => 'report', 'coursereport' => 'course/report', // must be after system reports 'gradeexport' => 'grade/export', 'gradeimport' => 'grade/import', diff --git a/admin/report/backups/index.php b/report/backups/index.php similarity index 99% rename from admin/report/backups/index.php rename to report/backups/index.php index 6a370e51ec8..f127277e4a0 100644 --- a/admin/report/backups/index.php +++ b/report/backups/index.php @@ -23,7 +23,7 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -require_once('../../../config.php'); +require_once('../../config.php'); require_once($CFG->libdir.'/adminlib.php'); require_once($CFG->dirroot.'/backup/lib.php'); diff --git a/report/backups/lang/en/report_backups.php b/report/backups/lang/en/report_backups.php new file mode 100644 index 00000000000..0942bf2a195 --- /dev/null +++ b/report/backups/lang/en/report_backups.php @@ -0,0 +1,26 @@ +. + +/** + * Strings for component 'report_backups' + * + * @package report + * @subpackage backups + * @copyright 2011 Petr Skoda (http://skodak.org) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['pluginname'] = 'Backups report'; diff --git a/admin/report/backups/settings.php b/report/backups/settings.php similarity index 87% rename from admin/report/backups/settings.php rename to report/backups/settings.php index 38e4053f1da..e1428962111 100644 --- a/admin/report/backups/settings.php +++ b/report/backups/settings.php @@ -25,4 +25,7 @@ defined('MOODLE_INTERNAL') || die; -$ADMIN->add('reports', new admin_externalpage('reportbackups', get_string('backups', 'admin'), "$CFG->wwwroot/$CFG->admin/report/backups/index.php",'moodle/backup:backupcourse')); +$ADMIN->add('reports', new admin_externalpage('reportbackups', get_string('backups', 'admin'), "$CFG->wwwroot/report/backups/index.php",'moodle/backup:backupcourse')); + +// no report settings +$settings = null; \ No newline at end of file diff --git a/admin/report/configlog/index.php b/report/configlog/index.php similarity index 98% rename from admin/report/configlog/index.php rename to report/configlog/index.php index 26d032661a5..4ba337edd33 100644 --- a/admin/report/configlog/index.php +++ b/report/configlog/index.php @@ -1,6 +1,6 @@ libdir.'/adminlib.php'); // page parameters diff --git a/admin/report/configlog/lang/en/report_configlog.php b/report/configlog/lang/en/report_configlog.php similarity index 96% rename from admin/report/configlog/lang/en/report_configlog.php rename to report/configlog/lang/en/report_configlog.php index 0de8dbd2457..881ff4bb71d 100644 --- a/admin/report/configlog/lang/en/report_configlog.php +++ b/report/configlog/lang/en/report_configlog.php @@ -1,5 +1,4 @@ add('reports', new admin_externalpage('reportconfiglog', get_string('configlog', 'report_configlog'), "$CFG->wwwroot/report/configlog/index.php")); + +// no report settings +$settings = null; diff --git a/admin/report/courseoverview/db/access.php b/report/courseoverview/db/access.php similarity index 100% rename from admin/report/courseoverview/db/access.php rename to report/courseoverview/db/access.php diff --git a/admin/report/courseoverview/index.php b/report/courseoverview/index.php similarity index 95% rename from admin/report/courseoverview/index.php rename to report/courseoverview/index.php index 1eb216710f2..78203b43dd5 100644 --- a/admin/report/courseoverview/index.php +++ b/report/courseoverview/index.php @@ -1,6 +1,6 @@ dirroot.'/lib/statslib.php'); require_once($CFG->libdir.'/adminlib.php'); @@ -90,7 +90,7 @@ if (empty($CFG->gdversion)) { echo '
(' . get_string("gdneed") .')
'; } else { - echo '
'.get_string('courseoverviewgraph').'
'; + echo '
'.get_string('courseoverviewgraph').'
'; } $table = new html_table(); diff --git a/admin/report/courseoverview/lang/en/report_courseoverview.php b/report/courseoverview/lang/en/report_courseoverview.php similarity index 100% rename from admin/report/courseoverview/lang/en/report_courseoverview.php rename to report/courseoverview/lang/en/report_courseoverview.php diff --git a/admin/report/courseoverview/reportsgraph.php b/report/courseoverview/reportsgraph.php similarity index 94% rename from admin/report/courseoverview/reportsgraph.php rename to report/courseoverview/reportsgraph.php index 45ea7d8b6b8..519322eacf9 100644 --- a/admin/report/courseoverview/reportsgraph.php +++ b/report/courseoverview/reportsgraph.php @@ -1,6 +1,6 @@ dirroot.'/lib/statslib.php'); require_once($CFG->dirroot.'/lib/graphlib.php'); @@ -30,7 +30,7 @@ $courses = $DB->get_records_sql($sql, $param->params, 0, $numcourses); if (empty($courses)) { - $PAGE->set_url('/admin/report/courseoverview/index.php'); + $PAGE->set_url('/report/courseoverview/index.php'); print_error('statsnodata', 'error', $PAGE->url->out()); } diff --git a/admin/report/courseoverview/settings.php b/report/courseoverview/settings.php similarity index 60% rename from admin/report/courseoverview/settings.php rename to report/courseoverview/settings.php index c6a0589c45a..81ff9715432 100644 --- a/admin/report/courseoverview/settings.php +++ b/report/courseoverview/settings.php @@ -2,4 +2,7 @@ defined('MOODLE_INTERNAL') || die; -$ADMIN->add('reports', new admin_externalpage('reportcourseoverview', get_string('pluginname', 'report_courseoverview'), "$CFG->wwwroot/$CFG->admin/report/courseoverview/index.php",'report/courseoverview:view')); +$ADMIN->add('reports', new admin_externalpage('reportcourseoverview', get_string('pluginname', 'report_courseoverview'), "$CFG->wwwroot/report/courseoverview/index.php",'report/courseoverview:view')); + +// no report settings +$settings = null; diff --git a/admin/report/courseoverview/version.php b/report/courseoverview/version.php similarity index 100% rename from admin/report/courseoverview/version.php rename to report/courseoverview/version.php diff --git a/report/log/lang/en/report_log.php b/report/log/lang/en/report_log.php new file mode 100644 index 00000000000..9a447d9202c --- /dev/null +++ b/report/log/lang/en/report_log.php @@ -0,0 +1,26 @@ +. + +/** + * Strings for component 'report_log' + * + * @package report + * @subpackage log + * @copyright 2011 Petr Skoda (http://skodak.org) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['pluginname'] = 'Logs'; diff --git a/admin/report/log/settings.php b/report/log/settings.php similarity index 91% rename from admin/report/log/settings.php rename to report/log/settings.php index ecaae3b92f3..d879feb10f3 100644 --- a/admin/report/log/settings.php +++ b/report/log/settings.php @@ -5,3 +5,6 @@ defined('MOODLE_INTERNAL') || die; // just a link to course report $ADMIN->add('reports', new admin_externalpage('reportlog', get_string('log', 'admin'), "$CFG->wwwroot/course/report/log/index.php?id=".SITEID, 'coursereport/log:view')); $ADMIN->add('reports', new admin_externalpage('reportloglive', get_string('loglive', 'coursereport_log'), "$CFG->wwwroot/course/report/log/indexlive.php?id=".SITEID, 'coursereport/log:viewlive')); + +// no report settings +$settings = null; diff --git a/admin/report/questioninstances/db/access.php b/report/questioninstances/db/access.php similarity index 100% rename from admin/report/questioninstances/db/access.php rename to report/questioninstances/db/access.php diff --git a/admin/report/questioninstances/index.php b/report/questioninstances/index.php similarity index 98% rename from admin/report/questioninstances/index.php rename to report/questioninstances/index.php index 3719baf229d..910a65443d1 100644 --- a/admin/report/questioninstances/index.php +++ b/report/questioninstances/index.php @@ -7,7 +7,7 @@ */ /** */ -require_once(dirname(__FILE__).'/../../../config.php'); +require_once(dirname(__FILE__).'/../../config.php'); require_once($CFG->libdir.'/adminlib.php'); require_once($CFG->libdir.'/questionlib.php'); diff --git a/admin/report/questioninstances/lang/en/report_questioninstances.php b/report/questioninstances/lang/en/report_questioninstances.php similarity index 100% rename from admin/report/questioninstances/lang/en/report_questioninstances.php rename to report/questioninstances/lang/en/report_questioninstances.php diff --git a/admin/report/questioninstances/settings.php b/report/questioninstances/settings.php similarity index 57% rename from admin/report/questioninstances/settings.php rename to report/questioninstances/settings.php index 263d39d745c..3e784f9aeb9 100644 --- a/admin/report/questioninstances/settings.php +++ b/report/questioninstances/settings.php @@ -2,4 +2,7 @@ defined('MOODLE_INTERNAL') || die; -$ADMIN->add('reports', new admin_externalpage('reportquestioninstances', get_string('pluginname', 'report_questioninstances'), "$CFG->wwwroot/$CFG->admin/report/questioninstances/index.php", 'report/questioninstances:view')); +$ADMIN->add('reports', new admin_externalpage('reportquestioninstances', get_string('pluginname', 'report_questioninstances'), "$CFG->wwwroot/report/questioninstances/index.php", 'report/questioninstances:view')); + +// no report settings +$settings = null; diff --git a/admin/report/questioninstances/version.php b/report/questioninstances/version.php similarity index 100% rename from admin/report/questioninstances/version.php rename to report/questioninstances/version.php diff --git a/admin/report/security/db/access.php b/report/security/db/access.php similarity index 100% rename from admin/report/security/db/access.php rename to report/security/db/access.php diff --git a/admin/report/security/index.php b/report/security/index.php similarity index 95% rename from admin/report/security/index.php rename to report/security/index.php index 9b7cfbe1780..51828026dbb 100644 --- a/admin/report/security/index.php +++ b/report/security/index.php @@ -25,8 +25,8 @@ define('NO_OUTPUT_BUFFERING', true); -require_once('../../../config.php'); -require_once($CFG->dirroot.'/'.$CFG->admin.'/report/security/lib.php'); +require_once('../../config.php'); +require_once($CFG->dirroot.'/report/security/lib.php'); require_once($CFG->libdir.'/adminlib.php'); require_login(); @@ -69,7 +69,7 @@ $statusarr = array(REPORT_SECURITY_OK => $strok, REPORT_SECURITY_SERIOUS => $strserious, REPORT_SECURITY_CRITICAL => $strcritical); -$url = "$CFG->wwwroot/$CFG->admin/report/security/index.php"; +$url = "$CFG->wwwroot/report/security/index.php"; if ($issue and ($result = $issue(true))) { report_security_hide_timearning(); @@ -88,7 +88,7 @@ if ($issue and ($result = $issue(true))) { $row[2] = $result->info; $row[3] = is_null($result->link) ? ' ' : $result->link; - $PAGE->set_docs_path('admin/report/security/' . $issue); + $PAGE->set_docs_path('report/security/' . $issue); $table->data[] = $row; diff --git a/admin/report/security/lang/en/report_security.php b/report/security/lang/en/report_security.php similarity index 100% rename from admin/report/security/lang/en/report_security.php rename to report/security/lang/en/report_security.php diff --git a/admin/report/security/lib.php b/report/security/lib.php similarity index 99% rename from admin/report/security/lib.php rename to report/security/lib.php index 3a455b9bbdc..d8684c86be6 100644 --- a/admin/report/security/lib.php +++ b/report/security/lib.php @@ -752,7 +752,7 @@ function report_security_check_riskadmin($detailed=false) { $url = "$CFG->wwwroot/user/view.php?id=$user->id"; $admins[$uid] = '
  • '.fullname($user).' ('.$user->email.')
  • '; } - $admins = ''; + $admins = ''; } $result->status = REPORT_SECURITY_OK; @@ -856,7 +856,7 @@ function report_security_check_riskbackup($detailed=false) { $role->url = "$CFG->wwwroot/$CFG->admin/roles/override.php?contextid=$role->contextid&roleid=$role->id"; $links[] = '
  • '.get_string('check_riskbackup_editoverride', 'report_security', $role).'
  • '; } - $links = ''; + $links = ''; $result->details .= get_string('check_riskbackup_details_overriddenroles', 'report_security', $links); } @@ -874,7 +874,7 @@ function report_security_check_riskbackup($detailed=false) { $users[] = '
  • '.get_string('check_riskbackup_unassign', 'report_security', $a).'
  • '; } if (!empty($users)) { - $users = ''; + $users = ''; $result->details .= get_string('check_riskbackup_details_users', 'report_security', $users); } } diff --git a/report/security/settings.php b/report/security/settings.php new file mode 100644 index 00000000000..14da6ddc1ec --- /dev/null +++ b/report/security/settings.php @@ -0,0 +1,8 @@ +add('reports', new admin_externalpage('reportsecurity', get_string('pluginname', 'report_security'), "$CFG->wwwroot/report/security/index.php",'report/security:view')); + +// no report settings +$settings = null; diff --git a/admin/report/security/version.php b/report/security/version.php similarity index 100% rename from admin/report/security/version.php rename to report/security/version.php diff --git a/report/stats/lang/en/report_stats.php b/report/stats/lang/en/report_stats.php new file mode 100644 index 00000000000..5b8841bb5a8 --- /dev/null +++ b/report/stats/lang/en/report_stats.php @@ -0,0 +1,26 @@ +. + +/** + * Strings for component 'report_stats' + * + * @package report + * @subpackage stats + * @copyright 2011 Petr Skoda (http://skodak.org) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['pluginname'] = 'Statistics'; diff --git a/admin/report/stats/settings.php b/report/stats/settings.php similarity index 85% rename from admin/report/stats/settings.php rename to report/stats/settings.php index 0283339b0ab..9f19d21713e 100644 --- a/admin/report/stats/settings.php +++ b/report/stats/settings.php @@ -4,3 +4,6 @@ defined('MOODLE_INTERNAL') || die; // just a link to course report $ADMIN->add('reports', new admin_externalpage('reportstats', get_string('stats', 'admin'), "$CFG->wwwroot/course/report/stats/index.php", 'coursereport/stats:view')); + +// no report settings +$settings = null; diff --git a/report/upgrade.txt b/report/upgrade.txt new file mode 100644 index 00000000000..6f9abb057cf --- /dev/null +++ b/report/upgrade.txt @@ -0,0 +1,19 @@ +This files describes API changes in /report/* - plugins, +information provided here is intended especially for developers. + + +=== 2.2 === + +API changes: +* reports were moved from /admin/report/ to /report/ +* new support for report settings + + +How to migrate old admin reports: +# copy all files to new /report/yourplugin/ location +# if settings.php exists add $settings=null; +# if settings.php does not exist create it and link the report, index.php is not linked automatically any more +# update require('../../config.php'); - remove one ../ +# update all links to report pages by removing /admin/ or /$CFG->admin/ +# add language pack with at least pluginname string +