MDL-46116 mod_imscp: Fix codechecker issues, some moodlecheck issues.
authorDavid Balch <david.balch@conted.ox.ac.uk>
Mon, 18 Aug 2014 13:48:02 +0000 (14:48 +0100)
committerDavid Balch <david.balch@conted.ox.ac.uk>
Wed, 12 Nov 2014 09:41:13 +0000 (09:41 +0000)
18 files changed:
mod/imscp/backup/moodle1/lib.php
mod/imscp/backup/moodle2/backup_imscp_activity_task.class.php
mod/imscp/backup/moodle2/backup_imscp_stepslib.php
mod/imscp/backup/moodle2/restore_imscp_activity_task.class.php
mod/imscp/backup/moodle2/restore_imscp_stepslib.php
mod/imscp/db/install.php
mod/imscp/db/log.php
mod/imscp/db/upgrade.php
mod/imscp/index.php
mod/imscp/lang/en/imscp.php
mod/imscp/lib.php
mod/imscp/locallib.php
mod/imscp/mod_form.php
mod/imscp/module.js
mod/imscp/settings.php
mod/imscp/tests/generator_test.php
mod/imscp/version.php
mod/imscp/view.php

index 7014367..969e332 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -27,6 +26,9 @@ defined('MOODLE_INTERNAL') || die();
 
 /**
  * imscp conversion handler. This resource handler is called by moodle1_mod_resource_handler
+ *
+ * @copyright  2011 Andrew Davis <andrew@moodle.com>
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class moodle1_mod_imscp_handler extends moodle1_resource_successor_handler {
 
@@ -44,7 +46,7 @@ class moodle1_mod_imscp_handler extends moodle1_resource_successor_handler {
         $moduleid      = $currentcminfo['id'];
         $contextid     = $this->converter->get_contextid(CONTEXT_MODULE, $moduleid);
 
-        // prepare the new imscp instance record
+        // Prepare the new imscp instance record.
         $imscp                  = array();
         $imscp['id']            = $data['id'];
         $imscp['name']          = $data['name'];
@@ -55,15 +57,15 @@ class moodle1_mod_imscp_handler extends moodle1_resource_successor_handler {
         $imscp['structure']     = null;
         $imscp['timemodified']  = $data['timemodified'];
 
-        // prepare a fresh new file manager for this instance
+        // Prepare a fresh new file manager for this instance.
         $this->fileman = $this->converter->get_file_manager($contextid, 'mod_imscp');
 
-        // convert course files embedded into the intro
+        // Convert course files embedded into the intro.
         $this->fileman->filearea = 'intro';
         $this->fileman->itemid   = 0;
         $imscp['intro'] = moodle1_converter::migrate_referenced_files($imscp['intro'], $this->fileman);
 
-        // migrate package backup file
+        // Migrate package backup file.
         if ($data['reference']) {
             $packagename = basename($data['reference']);
             $packagepath = $this->converter->get_tempdir_path().'/moddata/resource/'.$data['id'].'/'.$packagename;
@@ -76,16 +78,17 @@ class moodle1_mod_imscp_handler extends moodle1_resource_successor_handler {
             }
         }
 
-        // migrate extracted package data
+        // Migrate extracted package data.
         $this->fileman->filearea = 'content';
         $this->fileman->itemid   = 1;
         $this->fileman->migrate_directory('moddata/resource/'.$data['id']);
 
-        // parse manifest
-        $structure = $this->parse_structure($this->converter->get_tempdir_path().'/moddata/resource/'.$data['id'].'/imsmanifest.xml', $imscp, $contextid);
+        // Parse manifest.
+        $structure = $this->parse_structure($this->converter->get_tempdir_path().
+                    '/moddata/resource/'.$data['id'].'/imsmanifest.xml', $imscp, $contextid);
         $imscp['structure'] = is_array($structure) ? serialize($structure) : null;
 
-        // write imscp.xml
+        // Write imscp.xml.
         $this->open_xml_writer("activities/imscp_{$moduleid}/imscp.xml");
         $this->xmlwriter->begin_tag('activity', array('id' => $instanceid, 'moduleid' => $moduleid,
             'modulename' => 'imscp', 'contextid' => $contextid));
@@ -93,7 +96,7 @@ class moodle1_mod_imscp_handler extends moodle1_resource_successor_handler {
         $this->xmlwriter->end_tag('activity');
         $this->close_xml_writer();
 
-        // write inforef.xml
+        // Write inforef.xml.
         $this->open_xml_writer("activities/imscp_{$moduleid}/inforef.xml");
         $this->xmlwriter->begin_tag('inforef');
         $this->xmlwriter->begin_tag('fileref');
@@ -105,7 +108,7 @@ class moodle1_mod_imscp_handler extends moodle1_resource_successor_handler {
         $this->close_xml_writer();
     }
 
-    /// internal implementation details follow /////////////////////////////////
+    // Internal implementation details follow.
 
     /**
      * Parse the IMS package structure for the $imscp->structure field
index a19fc0a..72c1ac5 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -30,6 +29,9 @@ require_once($CFG->dirroot . '/mod/imscp/backup/moodle2/backup_imscp_stepslib.ph
 
 /**
  * Provides the steps to perform one complete backup of the IMSCP instance
+ *
+ * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
+ * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class backup_imscp_activity_task extends backup_activity_task {
 
@@ -55,15 +57,15 @@ class backup_imscp_activity_task extends backup_activity_task {
     static public function encode_content_links($content) {
         global $CFG;
 
-        $base = preg_quote($CFG->wwwroot,"/");
+        $base = preg_quote($CFG->wwwroot, "/");
 
-        // Link to the list of imscps
-        $search="/(".$base."\/mod\/imscp\/index.php\?id\=)([0-9]+)/";
-        $content= preg_replace($search, '$@IMSCPINDEX*$2@$', $content);
+        // Link to the list of imscps.
+        $search = "/(" . $base . "\/mod\/imscp\/index.php\?id\=)([0-9]+)/";
+        $content = preg_replace($search, '$@IMSCPINDEX*$2@$', $content);
 
-        // Link to imscp view by moduleid
-        $search="/(".$base."\/mod\/imscp\/view.php\?id\=)([0-9]+)/";
-        $content= preg_replace($search, '$@IMSCPVIEWBYID*$2@$', $content);
+        // Link to imscp view by moduleid.
+        $search = "/(" . $base . "\/mod\/imscp\/view.php\?id\=)([0-9]+)/";
+        $content = preg_replace($search, '$@IMSCPVIEWBYID*$2@$', $content);
 
         return $content;
     }
index 38326ad..acf495a 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -27,39 +26,36 @@ defined('MOODLE_INTERNAL') || die();
 
 /**
  * Define the complete imscp structure for backup, with file and id annotations
+ *
+ * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
+ * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class backup_imscp_activity_structure_step extends backup_activity_structure_step {
 
     protected function define_structure() {
 
-        // To know if we are including userinfo
+        // To know if we are including userinfo.
         $userinfo = $this->get_setting_value('userinfo');
 
-        // Define each element separated
+        // Define each element separated.
         $imscp = new backup_nested_element('imscp', array('id'), array(
             'name', 'intro', 'introformat', 'revision',
             'keepold', 'structure', 'timemodified'));
 
-        // Build the tree
-        // (love this)
+        // Build the tree.
 
-        // Define sources
+        // Define sources.
         $imscp->set_source_table('imscp', array('id' => backup::VAR_ACTIVITYID));
 
-        // Define id annotations
-        // (none)
+        // Define id annotations - (none).
 
         // Define file annotations
-        $imscp->annotate_files('mod_imscp', 'intro', null); // This file area hasn't itemid
-        $imscp->annotate_files('mod_imscp', 'backup', null); // This file area hasn't itemid
-        /**
-         * I don't like itemid used for "imaginative" things like "revisions"!
-         * I don't like itemid used for "imaginative" things like "revisions"!
-         * I don't like itemid used for "imaginative" things like "revisions"!
-         */
-        $imscp->annotate_files('mod_imscp', 'content', null); // Horrible use of itemid here. Ignoring for backup/restore purposes
+        $imscp->annotate_files('mod_imscp', 'intro', null); // This file area hasn't itemid.
+        $imscp->annotate_files('mod_imscp', 'backup', null); // This file area hasn't itemid.
+        // Eloy Lafuente: I don't like itemid used for "imaginative" things like "revisions"!
+        $imscp->annotate_files('mod_imscp', 'content', null); // Horrible use of itemid here. Ignoring for backup/restore purposes.
 
-        // Return the root element (imscp), wrapped into standard activity structure
+        // Return the root element (imscp), wrapped into standard activity structure.
         return $this->prepare_activity_structure($imscp);
     }
 }
index d4547b9..03aa178 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * @package mod_imscp
+ * Defines restore_imscp_activity_task class
+ *
+ * @package    mod_imscp
  * @subpackage backup-moodle2
- * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
- * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ * @copyright  2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
 defined('MOODLE_INTERNAL') || die();
 
-require_once($CFG->dirroot . '/mod/imscp/backup/moodle2/restore_imscp_stepslib.php'); // Because it exists (must)
+require_once($CFG->dirroot . '/mod/imscp/backup/moodle2/restore_imscp_stepslib.php');
 
 /**
- * imscp restore task that provides all the settings and steps to perform one
- * complete restore of the activity
+ * Provides the settings and steps to perform one complete restore of the activity
+ *
+ * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
+ * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class restore_imscp_activity_task extends restore_activity_task {
 
@@ -36,14 +39,14 @@ class restore_imscp_activity_task extends restore_activity_task {
      * Define (add) particular settings this activity can have
      */
     protected function define_my_settings() {
-        // No particular settings for this activity
+        // No particular settings for this activity.
     }
 
     /**
      * Define (add) particular steps this activity can have
      */
     protected function define_my_steps() {
-        // imscp only has one structure step
+        // Module imscp only has one structure step.
         $this->add_step(new restore_imscp_activity_structure_step('imscp_structure', 'imscp.xml'));
     }
 
index c1d278a..2f9cd58 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
+ * Define all the restore steps that will be used by the restore_imscp_activity_task
+ *
  * @package mod_imscp
  * @subpackage backup-moodle2
  * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-/**
- * Define all the restore steps that will be used by the restore_imscp_activity_task
- */
-
 /**
  * Structure step to restore one imscp activity
+ *
+ * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
+ * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class restore_imscp_activity_structure_step extends restore_activity_structure_step {
 
@@ -36,7 +36,7 @@ class restore_imscp_activity_structure_step extends restore_activity_structure_s
         $paths = array();
         $paths[] = new restore_path_element('imscp', '/activity/imscp');
 
-        // Return the paths wrapped into standard activity structure
+        // Return the paths wrapped into standard activity structure.
         return $this->prepare_activity_structure($paths);
     }
 
@@ -48,19 +48,15 @@ class restore_imscp_activity_structure_step extends restore_activity_structure_s
         $data->course = $this->get_courseid();
         $data->timemodified = $this->apply_date_offset($data->timemodified);
 
-        // insert the imscp record
+        // Insert the imscp record.
         $newitemid = $DB->insert_record('imscp', $data);
-        // immediately after inserting "activity" record, call this
+        // Immediately after inserting "activity" record, call this.
         $this->apply_activity_instance($newitemid);
     }
 
     protected function after_execute() {
-        // Add imscp related files, no need to match by itemname (just internally handled context)
-        /**
-         * I don't like itemid used for "imaginative" things like "revisions"!
-         * I don't like itemid used for "imaginative" things like "revisions"!
-         * I don't like itemid used for "imaginative" things like "revisions"!
-         */
+        // Add imscp related files, no need to match by itemname (just internally handled context).
+        // Eloy Lafuente: I don't like itemid used for "imaginative" things like "revisions"!
         $this->add_related_files('mod_imscp', 'intro', null);
         $this->add_related_files('mod_imscp', 'backup', null);
         $this->add_related_files('mod_imscp', 'content', null);
index ec0df5b..0762ca2 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -30,6 +29,9 @@
 
 defined('MOODLE_INTERNAL') || die();
 
+/**
+ * Stub for database installation.
+ */
 function xmldb_imscp_install() {
     global $CFG;
 
index 5c37279..2af0412 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -27,8 +26,8 @@
 defined('MOODLE_INTERNAL') || die();
 
 $logs = array(
-    array('module'=>'imscp', 'action'=>'view', 'mtable'=>'imscp', 'field'=>'name'),
-    array('module'=>'imscp', 'action'=>'view all', 'mtable'=>'imscp', 'field'=>'name'),
-    array('module'=>'imscp', 'action'=>'update', 'mtable'=>'imscp', 'field'=>'name'),
-    array('module'=>'imscp', 'action'=>'add', 'mtable'=>'imscp', 'field'=>'name'),
-);
\ No newline at end of file
+    array('module' => 'imscp', 'action' => 'view', 'mtable' => 'imscp', 'field' => 'name'),
+    array('module' => 'imscp', 'action' => 'view all', 'mtable' => 'imscp', 'field' => 'name'),
+    array('module' => 'imscp', 'action' => 'update', 'mtable' => 'imscp', 'field' => 'name'),
+    array('module' => 'imscp', 'action' => 'add', 'mtable' => 'imscp', 'field' => 'name'),
+);
index 55c9856..8160cb9 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
 
 defined('MOODLE_INTERNAL') || die();
 
+/**
+ * Stub for database upgrade.
+ * @param int $oldversion
+ */
 function xmldb_imscp_upgrade($oldversion) {
     global $CFG, $DB;
 
     $dbman = $DB->get_manager();
 
+    // Moodle v2.2.0 release upgrade line.
+    // Put any upgrade step following this.
 
-    // Moodle v2.2.0 release upgrade line
-    // Put any upgrade step following this
-
-    // Moodle v2.3.0 release upgrade line
-    // Put any upgrade step following this
-
-
-    // Moodle v2.4.0 release upgrade line
-    // Put any upgrade step following this
+    // Moodle v2.3.0 release upgrade line.
+    // Put any upgrade step following this.
 
+    // Moodle v2.4.0 release upgrade line.
+    // Put any upgrade step following this.
 
     // Moodle v2.5.0 release upgrade line.
     // Put any upgrade step following this.
 
-
     // Moodle v2.6.0 release upgrade line.
     // Put any upgrade step following this.
 
index 2b6ed50..f2c7257 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -25,9 +24,9 @@
 
 require('../../config.php');
 
-$id = required_param('id', PARAM_INT); // course id
+$id = required_param('id', PARAM_INT); // Course id.
 
-$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
+$course = $DB->get_record('course', array('id' => $id), '*', MUST_EXIST);
 
 require_course_login($course, true);
 $PAGE->set_pagelayout('incourse');
@@ -89,10 +88,10 @@ foreach ($imscps as $imscp) {
         $printsection = '<span class="smallinfo">'.userdate($imscp->timemodified)."</span>";
     }
 
-    $class = $imscp->visible ? '' : 'class="dimmed"'; // hidden modules are dimmed
+    $class = $imscp->visible ? '' : 'class="dimmed"'; // Hidden modules are dimmed.
     $table->data[] = array (
         $printsection,
-        "<a $class href=\"view.php?id=$cm->id\">".format_string($imscp->name)."</a>",
+        "<a $class href=\"view.php?id=$cm->id\">" . format_string($imscp->name)."</a>",
         format_module_intro('imscp', $imscp, $cm->id));
 }
 
index c20ea67..8358146 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
index 0721c83..cfd8a17 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -56,7 +55,8 @@ function imscp_get_extra_capabilities() {
 
 /**
  * This function is used by the reset_course_userdata function in moodlelib.
- * @param $data the data submitted from the reset course.
+ *
+ * @param stdClass $data the data submitted from the reset course.
  * @return array status array
  */
 function imscp_reset_userdata($data) {
@@ -109,10 +109,10 @@ function imscp_add_instance($data, $mform) {
 
     $data->id = $DB->insert_record('imscp', $data);
 
-    // we need to use context now, so we need to make sure all needed info is already in db
-    $DB->set_field('course_modules', 'instance', $data->id, array('id'=>$cmid));
+    // We need to use context now, so we need to make sure all needed info is already in db.
+    $DB->set_field('course_modules', 'instance', $data->id, array('id' => $cmid));
     $context = context_module::instance($cmid);
-    $imscp = $DB->get_record('imscp', array('id'=>$data->id), '*', MUST_EXIST);
+    $imscp = $DB->get_record('imscp', array('id' => $data->id), '*', MUST_EXIST);
 
     if (!empty($data->package)) {
         // Save uploaded files to 'backup' filearea.
@@ -150,12 +150,12 @@ function imscp_update_instance($data, $mform) {
 
     $data->timemodified = time();
     $data->id           = $data->instance;
-    $data->structure   = null; // better reparse structure after each update
+    $data->structure   = null; // Better reparse structure after each update.
 
     $DB->update_record('imscp', $data);
 
     $context = context_module::instance($cmid);
-    $imscp = $DB->get_record('imscp', array('id'=>$data->id), '*', MUST_EXIST);
+    $imscp = $DB->get_record('imscp', array('id' => $data->id), '*', MUST_EXIST);
 
     if (!empty($data->package) && ($draftareainfo = file_get_draft_area_info($data->package)) &&
             $draftareainfo['filecount']) {
@@ -164,7 +164,7 @@ function imscp_update_instance($data, $mform) {
         $imscp->revision++;
         $DB->update_record('imscp', $imscp);
 
-        // get a list of existing packages before adding new package
+        // Get a list of existing packages before adding new package.
         if ($imscp->keepold > -1) {
             $packages = $fs->get_area_files($context->id, 'mod_imscp', 'backup', false, "itemid ASC", false);
         } else {
@@ -176,16 +176,16 @@ function imscp_update_instance($data, $mform) {
         $files = $fs->get_area_files($context->id, 'mod_imscp', 'backup', $imscp->revision, '', false);
         $package = reset($files);
 
-        // purge all extracted content
+        // Purge all extracted content.
         $fs->delete_area_files($context->id, 'mod_imscp', 'content');
 
-        // extract package content
+        // Extract package content.
         if ($package) {
             $packer = get_file_packer('application/zip');
             $package->extract_to_storage($packer, $context->id, 'mod_imscp', 'content', $imscp->revision, '/');
         }
 
-        // cleanup old package files, keep current + keepold
+        // Cleanup old package files, keep current + keep old.
         while ($packages and (count($packages) > $imscp->keepold)) {
             $package = array_shift($packages);
             $fs->delete_area_files($context->id, 'mod_imscp', 'backup', $package->get_itemid());
@@ -207,13 +207,13 @@ function imscp_update_instance($data, $mform) {
 function imscp_delete_instance($id) {
     global $DB;
 
-    if (!$imscp = $DB->get_record('imscp', array('id'=>$id))) {
+    if (!$imscp = $DB->get_record('imscp', array('id' => $id))) {
         return false;
     }
 
-    // note: all context files are deleted automatically
+    // Note: all context files are deleted automatically.
 
-    $DB->delete_records('imscp', array('id'=>$imscp->id));
+    $DB->delete_records('imscp', array('id' => $imscp->id));
 
     return true;
 }
@@ -256,10 +256,10 @@ function imscp_get_file_areas($course, $cm, $context) {
 function imscp_get_file_info($browser, $areas, $course, $cm, $context, $filearea, $itemid, $filepath, $filename) {
     global $CFG, $DB;
 
-    // note: imscp_intro handled in file_browser automatically
+    // Note: imscp_intro handled in file_browser automatically.
 
     if (!has_capability('moodle/course:managefiles', $context)) {
-        // no peaking here for students!!
+        // No peeking here for students!
         return null;
     }
 
@@ -280,9 +280,9 @@ function imscp_get_file_info($browser, $areas, $course, $cm, $context, $filearea
         return null;
     }
 
-    // do not allow manual modification of any files!
+    // Do not allow manual modification of any files!
     $urlbase = $CFG->wwwroot.'/pluginfile.php';
-    return new file_info_stored($browser, $context, $storedfile, $urlbase, $itemid, true, true, false, false); //no writing here!
+    return new file_info_stored($browser, $context, $storedfile, $urlbase, $itemid, true, true, false, false); // No writing here!
 }
 
 /**
@@ -317,7 +317,7 @@ function imscp_pluginfile($course, $cm, $context, $filearea, $args, $forcedownlo
         $relativepath = implode('/', $args);
         if ($relativepath === 'imsmanifest.xml') {
             if (!has_capability('moodle/course:managefiles', $context)) {
-                // no stealing of detailed package info ;-)
+                // No stealing of detailed package info.
                 return false;
             }
         }
@@ -326,12 +326,12 @@ function imscp_pluginfile($course, $cm, $context, $filearea, $args, $forcedownlo
             return false;
         }
 
-        // finally send the file
+        // Finally send the file.
         send_stored_file($file, null, 0, $forcedownload, $options);
 
     } else if ($filearea === 'backup') {
         if (!has_capability('moodle/course:managefiles', $context)) {
-            // no stealing of package backups
+            // No stealing of package backups.
             return false;
         }
         $revision = array_shift($args);
@@ -342,7 +342,7 @@ function imscp_pluginfile($course, $cm, $context, $filearea, $args, $forcedownlo
             return false;
         }
 
-        // finally send the file
+        // Finally send the file.
         send_stored_file($file, null, 0, $forcedownload, $options);
 
     } else {
@@ -355,8 +355,9 @@ function imscp_pluginfile($course, $cm, $context, $filearea, $args, $forcedownlo
  * @param string $pagetype current page type
  * @param stdClass $parentcontext Block's parent context
  * @param stdClass $currentcontext Current context of block
+ * @return array $modulepagetype list
  */
 function imscp_page_type_list($pagetype, $parentcontext, $currentcontext) {
-    $module_pagetype = array('mod-imscp-*'=>get_string('page-mod-imscp-x', 'imscp'));
-    return $module_pagetype;
+    $modulepagetype = array('mod-imscp-*' => get_string('page-mod-imscp-x', 'imscp'));
+    return $modulepagetype;
 }
index 2604bc0..03e727f 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -29,6 +28,13 @@ require_once("$CFG->dirroot/mod/imscp/lib.php");
 require_once("$CFG->libdir/filelib.php");
 require_once("$CFG->libdir/resourcelib.php");
 
+/**
+ * Print IMSCP content to page.
+ *
+ * @param stdClass $imscp module instance.
+ * @param stdClass $cm course module.
+ * @param stdClass $course record.
+ */
 function imscp_print_content($imscp, $cm, $course) {
     global $PAGE, $CFG;
 
@@ -46,7 +52,10 @@ function imscp_print_content($imscp, $cm, $course) {
         echo imscp_htmllize_item($item, $imscp, $cm);
     }
     echo '</ul></div>';
-    echo '<div id="imscp_nav" style="display:none"><button id="nav_skipprev">&lt;&lt;</button><button id="nav_prev">&lt;</button><button id="nav_up">^</button><button id="nav_next">&gt;</button><button id="nav_skipnext">&gt;&gt;</button></div>';
+    echo '<div id="imscp_nav" style="display:none">';
+    echo '<button id="nav_skipprev">&lt;&lt;</button><button id="nav_prev">&lt;</button><button id="nav_up">^</button>';
+    echo '<button id="nav_next">&gt;</button><button id="nav_skipnext">&gt;&gt;</button>';
+    echo '</div>';
     echo '</div>';
     echo '</div>';
 
@@ -102,7 +111,7 @@ function imscp_parse_structure($imscp, $context) {
 }
 
 /**
- * Parse the contents of a IMS package's manifest file
+ * Parse the contents of a IMS package's manifest file.
  * @param string $manifestfilecontents the contents of the manifest file
  * @return array
  */
@@ -114,7 +123,7 @@ function imscp_parse_manifestfile($manifestfilecontents, $imscp, $context) {
     }
     libxml_disable_entity_loader($oldentities);
 
-    // we put this fake URL as base in order to detect path changes caused by xml:base attributes
+    // We put this fake URL as base in order to detect path changes caused by xml:base attributes.
     $doc->documentURI = 'http://grrr/';
 
     $xmlorganizations = $doc->getElementsByTagName('organizations');
@@ -132,20 +141,20 @@ function imscp_parse_manifestfile($manifestfilecontents, $imscp, $context) {
     $organization = null;
     foreach ($xmlorganization as $org) {
         if (is_null($organization)) {
-            // use first if default nor found
+            // Use first if default nor found.
             $organization = $org;
         }
         if (!$org->attributes->getNamedItem('identifier')) {
             continue;
         }
         if ($default === $org->attributes->getNamedItem('identifier')->nodeValue) {
-            // found default - use it
+            // Found default - use it.
             $organization = $org;
             break;
         }
     }
 
-    // load all resources
+    // Load all resources.
     $resources = array();
 
     $xmlresources = $doc->getElementsByTagName('resource');
@@ -155,14 +164,14 @@ function imscp_parse_manifestfile($manifestfilecontents, $imscp, $context) {
         }
         $identifier = $identifier->nodeValue;
         if ($xmlbase = $res->baseURI) {
-            // undo the fake URL, we are interested in relative links only
+            // Undo the fake URL, we are interested in relative links only.
             $xmlbase = str_replace('http://grrr/', '/', $xmlbase);
             $xmlbase = rtrim($xmlbase, '/').'/';
         } else {
             $xmlbase = '';
         }
         if (!$href = $res->attributes->getNamedItem('href')) {
-            // If href not found look for <file href="help.htm"/>
+            // If href not found look for <file href="help.htm"/>.
             $fileresources = $res->getElementsByTagName('file');
             foreach ($fileresources as $file) {
                 $href = $file->getAttribute('href');
@@ -179,7 +188,7 @@ function imscp_parse_manifestfile($manifestfilecontents, $imscp, $context) {
         if (strpos($href, 'http://') !== 0) {
             $href = $xmlbase.$href;
         }
-        // href cleanup - Some packages are poorly done and use \ in urls
+        // Item href cleanup - Some packages are poorly done and use \ in urls.
         $href = ltrim(strtr($href, "\\", '/'), '/');
         $resources[$identifier] = $href;
     }
@@ -252,7 +261,7 @@ function imscp_recursive_item($xmlitem, $level, $resources) {
             $title = $child->textContent;
 
         } else if ($child->nodeName === 'item') {
-            if ($subitem = imscp_recursive_item($child, $level+1, $resources)) {
+            if ($subitem = imscp_recursive_item($child, $level + 1, $resources)) {
                 $subitems[] = $subitem;
             }
         }
@@ -267,6 +276,9 @@ function imscp_recursive_item($xmlitem, $level, $resources) {
 
 /**
  * File browsing support class
+ *
+ * @copyright  2009 Petr Skoda  {@link http://skodak.org}
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class imscp_file_info extends file_info {
     protected $course;
@@ -289,12 +301,12 @@ class imscp_file_info extends file_info {
      * @return array with keys contextid, filearea, itemid, filepath and filename
      */
     public function get_params() {
-        return array('contextid'=>$this->context->id,
-                     'component'=>'mod_imscp',
-                     'filearea' =>$this->filearea,
-                     'itemid'   =>null,
-                     'filepath' =>null,
-                     'filename' =>null);
+        return array('contextid' => $this->context->id,
+                     'component' => 'mod_imscp',
+                     'filearea'  => $this->filearea,
+                     'itemid'    => null,
+                     'filepath'  => null,
+                     'filename'  => null);
     }
 
     /**
index 417877c..8823cdb 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -16,7 +15,7 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * IMS CP configuration form
+ * This file contains the forms to create and edit an instance of this module
  *
  * @package mod_imscp
  * @copyright  2009 Petr Skoda  {@link http://skodak.org}
 
 defined('MOODLE_INTERNAL') || die();
 
-require_once ($CFG->dirroot.'/course/moodleform_mod.php');
+require_once($CFG->dirroot.'/course/moodleform_mod.php');
 require_once($CFG->libdir.'/filelib.php');
 
+/**
+ * IMS CP configuration form
+ *
+ * @package mod_imscp
+ * @copyright  2009 Petr Skoda  {@link http://skodak.org}
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
 class mod_imscp_mod_form extends moodleform_mod {
-    function definition() {
+    /**
+     * Define the form - called by parent constructor
+     */
+    public function definition() {
         global $CFG, $DB;
         $mform = $this->_form;
 
         $config = get_config('imscp');
 
-        //-------------------------------------------------------
+        // Title and description.
         $mform->addElement('header', 'general', get_string('general', 'form'));
-        $mform->addElement('text', 'name', get_string('name'), array('size'=>'48'));
+        $mform->addElement('text', 'name', get_string('name'), array('size' => '48'));
         if (!empty($CFG->formatstringstriptags)) {
             $mform->setType('name', PARAM_TEXT);
         } else {
@@ -47,24 +56,28 @@ class mod_imscp_mod_form extends moodleform_mod {
         $mform->addRule('name', get_string('maximumchars', '', 255), 'maxlength', 255, 'client');
         $this->add_intro_editor($config->requiremodintro);
 
-        //-------------------------------------------------------
+        // IMS-CP file upload.
         $mform->addElement('header', 'content', get_string('contentheader', 'imscp'));
         $mform->setExpanded('content', true);
         $mform->addElement('filepicker', 'package', get_string('packagefile', 'imscp'));
 
-        $options = array('-1'=>get_string('all'), '0'=>get_string('no'), '1'=>'1', '2'=>'2', '5'=>'5', '10'=>'10', '20'=>'20');
+        $options = array('-1' => get_string('all'), '0' => get_string('no'),
+                         '1' => '1', '2' => '2', '5' => '5', '10' => '10', '20' => '20');
         $mform->addElement('select', 'keepold', get_string('keepold', 'imscp'), $options);
         $mform->setDefault('keepold', $config->keepold);
         $mform->setAdvanced('keepold', $config->keepold_adv);
 
-        //-------------------------------------------------------
         $this->standard_coursemodule_elements();
 
-        //-------------------------------------------------------
         $this->add_action_buttons();
     }
 
-    function validation($data, $files) {
+    /**
+     * Perform minimal validation on the settings form
+     * @param array $data
+     * @param array $files
+     */
+    public function validation($data, $files) {
         global $USER;
 
         if ($errors = parent::validation($data, $files)) {
@@ -83,7 +96,7 @@ class mod_imscp_mod_form extends moodleform_mod {
             $file = reset($files);
             if ($file->get_mimetype() != 'application/zip') {
                 $errors['package'] = get_string('invalidfiletype', 'error', '', $file);
-                // better delete current file, it is not usable anyway
+                // Better delete current file, it is not usable anyway.
                 $fs->delete_area_files($usercontext->id, 'user', 'draft', $data['package']);
             }
         }
index e5a482f..5b072f7 100644 (file)
@@ -110,17 +110,16 @@ M.mod_imscp.init = function(Y) {
             imscp_buttons[4].set('disabled', (imscp_skipnext(imscp_current_node) == null));
         };
 
-
         var imscp_resize_layout = function(alsowidth) {
             if (alsowidth) {
                 var layout = Y.YUI2.util.Dom.get('imscp_layout');
                 var newwidth = imscp_get_htmlelement_size('maincontent', 'width');
                 layout.style.width = '600px';
                 if (newwidth > 600) {
-                    layout.style.width = newwidth+'px';
+                    layout.style.width = newwidth + 'px';
                 }
             }
-            // make sure that the max width of the TOC doesn't go to far
+            // Make sure that the max width of the TOC doesn't go to far.
 
             var left = imscp_layout_widget.getUnitByPosition('left');
             var maxwidth = parseInt(Y.YUI2.util.Dom.getStyle('imscp_layout', 'width'));
@@ -136,7 +135,7 @@ M.mod_imscp.init = function(Y) {
             if (newheight < 400) {
                 newheight = 400;
             }
-            imscp_layout_widget.setStyle('height', newheight+'px');
+            imscp_layout_widget.setStyle('height', newheight + 'px');
 
             imscp_layout_widget.render();
             imscp_resize_frame();
@@ -146,7 +145,7 @@ M.mod_imscp.init = function(Y) {
             var val = Y.YUI2.util.Dom.getStyle(el, prop);
             if (val == 'auto') {
                 if (el.get) {
-                    el = el.get('element'); // get real HTMLElement from YUI element
+                    el = el.get('element'); // Get real HTMLElement from YUI element.
                 }
                 val = Y.YUI2.util.Dom.getComputedStyle(Y.YUI2.util.Dom.get(el), prop);
             }
@@ -157,25 +156,25 @@ M.mod_imscp.init = function(Y) {
             var obj = Y.YUI2.util.Dom.get('imscp_object');
             if (obj) {
                 var content = imscp_layout_widget.getUnitByPosition('center').get('wrap');
-                // basically trap IE6 and 7
+                // Basically trap IE6 and 7.
                 if (Y.YUI2.env.ua.ie > 5 && Y.YUI2.env.ua.ie < 8) {
                     if( obj.style.setAttribute ) {
-                        obj.style.setAttribute("cssText", 'width: ' +(content.offsetWidth - 6)+'px; height: ' + (content.offsetHeight - 10)+'px;');
+                        obj.style.setAttribute("cssText", 'width: ' + (content.offsetWidth - 6) + 'px; height: ' + (content.offsetHeight - 10) + 'px;');
                     }
                     else {
-                        obj.style.setAttribute('width', (content.offsetWidth - 6)+'px', 0);
-                        obj.style.setAttribute('height', (content.offsetHeight - 10)+'px', 0);
+                        obj.style.setAttribute('width', (content.offsetWidth - 6) + 'px', 0);
+                        obj.style.setAttribute('height', (content.offsetHeight - 10) + 'px', 0);
                     }
                 }
                 else {
-                    obj.style.width = (content.offsetWidth - 6)+'px';
-                    obj.style.height = (content.offsetHeight - 10)+'px';
+                    obj.style.width = (content.offsetWidth - 6) + 'px';
+                    obj.style.height = (content.offsetHeight - 10) + 'px';
                 }
             }
         };
 
         var imscp_firstlinked = function(node) {
-            // Return first item with an href
+            // Return first item with an href.
             if (node.href) {
                 return node;
             } else if (node.children) {
@@ -194,7 +193,7 @@ M.mod_imscp.init = function(Y) {
 
         var imscp_lastchild = function(node) {
             if (node.children.length) {
-                return imscp_lastchild(node.children[node.children.length-1]);
+                return imscp_lastchild(node.children[node.children.length - 1]);
             } else {
                 return node;
             }
@@ -232,8 +231,7 @@ M.mod_imscp.init = function(Y) {
             return null;
         };
 
-
-        // layout
+        // Layout.
         Y.YUI2.widget.LayoutUnit.prototype.STR_COLLAPSE = M.str.moodle.hide;
         Y.YUI2.widget.LayoutUnit.prototype.STR_EXPAND = M.str.moodle.show;
 
@@ -254,7 +252,7 @@ M.mod_imscp.init = function(Y) {
             imscp_resize_frame();
         });
 
-        // ugly resizing hack that works around problems with resizing of iframes and objects
+        // Ugly resizing hack that works around problems with resizing of iframes and objects.
         left._resize.on('startResize', function() {
             var obj = Y.YUI2.util.Dom.get('imscp_object');
             obj.style.display = 'none';
@@ -265,7 +263,7 @@ M.mod_imscp.init = function(Y) {
             imscp_resize_frame();
         });
 
-        // TOC tree
+        // TOC tree.
         var tree = new Y.YUI2.widget.TreeView('imscp_tree');
         tree.singleNodeHighlight = true;
         tree.subscribe('clickEvent', function(oArgs) {
@@ -294,7 +292,7 @@ M.mod_imscp.init = function(Y) {
         var navbar = Y.YUI2.util.Dom.get('imscp_nav');
         navbar.style.display = 'block';
 
-        // navigation
+        // Navigation.
         imscp_buttons[0] = new Y.YUI2.widget.Button('nav_skipprev');
         imscp_buttons[1] = new Y.YUI2.widget.Button('nav_prev');
         imscp_buttons[2] = new Y.YUI2.widget.Button('nav_up');
@@ -316,13 +314,13 @@ M.mod_imscp.init = function(Y) {
             imscp_activate_item(imscp_skipnext(imscp_current_node));
         });
 
-        // finally activate the first item
+        // Finally activate the first item.
         imscp_activate_item(imscp_firstlinked(tree.getRoot().children[0]));
 
-        // resizing
+        // Resizing.
         imscp_resize_layout(false);
 
-        // fix layout if window resized
+        // Fix layout if window resized.
         window.onresize = function() {
             imscp_resize_layout(true);
         };
index eec0bdc..d235ae9 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -27,14 +26,17 @@ defined('MOODLE_INTERNAL') || die;
 
 if ($ADMIN->fulltree) {
 
-    //--- general settings -----------------------------------------------------------------------------------
+    // General settings.
     $settings->add(new admin_setting_configcheckbox('imscp/requiremodintro', get_string('requiremodintro', 'admin'),
                                         get_string('configrequiremodintro', 'admin'), 1));
 
-    //--- modedit defaults -----------------------------------------------------------------------------------
-    $settings->add(new admin_setting_heading('imscpmodeditdefaults', get_string('modeditdefaults', 'admin'), get_string('condifmodeditdefaults', 'admin')));
-    $options = array('-1'=>get_string('all'), '0'=>get_string('no'), '1'=>'1', '2'=>'2', '5'=>'5', '10'=>'10', '20'=>'20');
+    // Modedit defaults.
+    $settings->add(new admin_setting_heading('imscpmodeditdefaults',
+                                             get_string('modeditdefaults', 'admin'),
+                                             get_string('condifmodeditdefaults', 'admin')));
+    $options = array('-1' => get_string('all'), '0' => get_string('no'),
+                     '1' => '1', '2' => '2', '5' => '5', '10' => '10', '20' => '20');
     $settings->add(new admin_setting_configselect_with_advanced('imscp/keepold',
         get_string('keepold', 'imscp'), get_string('keepoldexplain', 'imscp'),
-        array('value'=>1, 'adv'=>false), $options));
+        array('value' => 1, 'adv' => false), $options));
 }
index fe1e8ca..77c2138 100644 (file)
@@ -53,14 +53,14 @@ class mod_imscp_generator_testcase extends advanced_testcase {
         $this->assertEquals('Another imscp', $records[$imscp->id]->name);
 
         // Examples of specifying the package file (do not validate anything, just check for exceptions).
-        // 1. As path to the file in filesystem:
+        // 1. As path to the file in filesystem...
         $params = array(
             'course' => $course->id,
             'packagepath' => $CFG->dirroot.'/mod/imscp/tests/packages/singlescobasic.zip'
         );
         $imscp = $this->getDataGenerator()->create_module('imscp', $params);
 
-        // 2. As file draft area id:
+        // 2. As file draft area id...
         $fs = get_file_storage();
         $params = array(
             'course' => $course->id,
index c7423e3..95b63ba 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;       // The current module version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;    // Requires this Moodle version
-$plugin->component = 'mod_imscp';      // Full name of the plugin (used for diagnostics)
+$plugin->version   = 2014111000;  // The current module version (Date: YYYYMMDDXX).
+$plugin->requires  = 2014110400;  // Requires this Moodle version.
+$plugin->component = 'mod_imscp'; // Full name of the plugin (used for diagnostics).
 $plugin->cron      = 0;
index 6a11b58..eacf10f 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 // This file is part of Moodle - http://moodle.org/
 //
 // Moodle is free software: you can redistribute it and/or modify
@@ -27,19 +26,19 @@ require('../../config.php');
 require_once("$CFG->dirroot/mod/imscp/locallib.php");
 require_once($CFG->libdir . '/completionlib.php');
 
-$id = optional_param('id', 0, PARAM_INT);  // Course module ID
-$i  = optional_param('i', 0, PARAM_INT);   // IMS CP instance id
+$id = optional_param('id', 0, PARAM_INT);  // Course module id.
+$i  = optional_param('i', 0, PARAM_INT);   // IMS CP instance id.
 
-if ($i) {  // Two ways to specify the module
-    $imscp = $DB->get_record('imscp', array('id'=>$i), '*', MUST_EXIST);
+if ($i) {  // Two ways to specify the module.
+    $imscp = $DB->get_record('imscp', array('id' => $i), '*', MUST_EXIST);
     $cm = get_coursemodule_from_instance('imscp', $imscp->id, $imscp->course, false, MUST_EXIST);
 
 } else {
     $cm = get_coursemodule_from_id('imscp', $id, 0, false, MUST_EXIST);
-    $imscp = $DB->get_record('imscp', array('id'=>$cm->instance), '*', MUST_EXIST);
+    $imscp = $DB->get_record('imscp', array('id' => $cm->instance), '*', MUST_EXIST);
 }
 
-$course = $DB->get_record('course', array('id'=>$cm->course), '*', MUST_EXIST);
+$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
 
 require_course_login($course, true, $cm);
 $context = context_module::instance($cm->id);
@@ -53,7 +52,7 @@ $event = \mod_imscp\event\course_module_viewed::create($params);
 $event->add_record_snapshot('imscp', $imscp);
 $event->trigger();
 
-// Update 'viewed' state if required by completion system
+// Update 'viewed' state if required by completion system.
 $completion = new completion_info($course);
 $completion->set_module_viewed($cm);
 
@@ -65,8 +64,8 @@ $PAGE->requires->string_for_js('toc', 'imscp');
 $PAGE->requires->string_for_js('hide', 'moodle');
 $PAGE->requires->string_for_js('show', 'moodle');
 
-//TODO: find some better way to disable blocks and minimise footer - pagetype just for this does not seem like a good solution
-//$PAGE->set_pagelayout('maxcontent');
+// TODO: find some better way to disable blocks and minimise footer - pagetype just for this does not seem like a good solution.
+// $PAGE->set_pagelayout('maxcontent'); ?
 
 $PAGE->set_title($course->shortname.': '.$imscp->name);
 $PAGE->set_heading($course->fullname);
@@ -74,7 +73,7 @@ $PAGE->set_activity_record($imscp);
 echo $OUTPUT->header();
 echo $OUTPUT->heading(format_string($imscp->name));
 
-// verify imsmanifest was parsed properly
+// Verify imsmanifest was parsed properly.
 if (!$imscp->structure) {
     echo $OUTPUT->notification(get_string('deploymenterror', 'imscp'), 'notifyproblem');
     echo $OUTPUT->footer();