From 8de82ae5ab93d84525625deb510f398d73d41c3b Mon Sep 17 00:00:00 2001 From: Dan Marsden Date: Fri, 1 Dec 2017 12:11:40 +1300 Subject: [PATCH] Add output buffering level for progress bar. Set var before use. fix some coding guideline issues. --- .travis.yml | 2 +- classes/event/sessions_imported.php | 22 ++++------ classes/form/import/sessions.php | 19 ++++----- classes/form/import/sessions_confirm.php | 12 +++--- classes/import/sessions.php | 53 +++++++++++------------- import/sessions.php | 15 ++++--- 6 files changed, 56 insertions(+), 67 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4d71671..41e5991 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: php -sudo: false +sudo: true addons: firefox: "47.0.1" diff --git a/classes/event/sessions_imported.php b/classes/event/sessions_imported.php index e33ecd4..79ba3c5 100644 --- a/classes/event/sessions_imported.php +++ b/classes/event/sessions_imported.php @@ -8,11 +8,11 @@ // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with Moodle. If not, see . +// along with Moodle. If not, see . /** * This file contains an event for when an attendance sessions is imported. @@ -40,14 +40,12 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2017 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class sessions_imported extends \core\event\base -{ +class sessions_imported extends \core\event\base { /** * Init method. */ - protected function init() - { + protected function init() { $this->data['crud'] = 'c'; $this->data['edulevel'] = self::LEVEL_OTHER; $this->data['objecttable'] = 'attendance_sessions'; @@ -58,8 +56,7 @@ class sessions_imported extends \core\event\base * * @return string */ - public function get_description() - { + public function get_description() { return 'User with id ' . $this->userid . ' imported ' . $this->other['count'] . ' sessions'; } @@ -68,8 +65,7 @@ class sessions_imported extends \core\event\base * * @return string */ - public static function get_name() - { + public static function get_name() { return get_string('eventsessionsimported', 'mod_attendance'); } @@ -78,8 +74,7 @@ class sessions_imported extends \core\event\base * * @return \moodle_url */ - public function get_url() - { + public function get_url() { return new \moodle_url('/mod/attendance/import/sessions.php'); } @@ -88,8 +83,7 @@ class sessions_imported extends \core\event\base * * @return array of parameters for object mapping. */ - public static function get_objectid_mapping() - { + public static function get_objectid_mapping() { return array( 'db' => 'attendance', 'restore' => 'attendance' diff --git a/classes/form/import/sessions.php b/classes/form/import/sessions.php index 37935de..a9c47bf 100644 --- a/classes/form/import/sessions.php +++ b/classes/form/import/sessions.php @@ -8,11 +8,11 @@ // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with Moodle. If not, see . +// along with Moodle. If not, see . /** * This file contains the form for importing sessions from a file. @@ -24,11 +24,13 @@ */ namespace mod_attendance\form\import; +defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.'); + use core_text; use csv_import_reader; use moodleform; -require_once ($CFG->libdir . '/formslib.php'); -require_once ($CFG->libdir . '/csvlib.class.php'); +require_once($CFG->libdir . '/formslib.php'); +require_once($CFG->libdir . '/csvlib.class.php'); /** * Import attendance sessions. @@ -38,14 +40,12 @@ require_once ($CFG->libdir . '/csvlib.class.php'); * @copyright 2017 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class sessions extends moodleform -{ +class sessions extends moodleform { /** * Define the form - called by parent constructor */ - public function definition() - { + public function definition() { global $CFG; $mform = $this->_form; @@ -78,8 +78,7 @@ class sessions extends moodleform * * @param string $msg */ - public function set_import_error($msg) - { + public function set_import_error($msg) { $mform = $this->_form; $mform->setElementError('importfile', $msg); diff --git a/classes/form/import/sessions_confirm.php b/classes/form/import/sessions_confirm.php index ff67e4c..513bfd3 100644 --- a/classes/form/import/sessions_confirm.php +++ b/classes/form/import/sessions_confirm.php @@ -8,11 +8,11 @@ // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with Moodle. If not, see . +// along with Moodle. If not, see . /** * Import attendance sessions. @@ -27,7 +27,7 @@ namespace mod_attendance\form\import; defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.'); use moodleform; -require_once ($CFG->libdir . '/formslib.php'); +require_once($CFG->libdir . '/formslib.php'); /** * Import attendance sessions. @@ -37,14 +37,12 @@ require_once ($CFG->libdir . '/formslib.php'); * @copyright 2017 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class sessions_confirm extends moodleform -{ +class sessions_confirm extends moodleform { /** * Define the form - called by parent constructor */ - public function definition() - { + public function definition() { $importer = $this->_customdata; $mform = $this->_form; diff --git a/classes/import/sessions.php b/classes/import/sessions.php index 799454a..24ff0d2 100644 --- a/classes/import/sessions.php +++ b/classes/import/sessions.php @@ -8,13 +8,16 @@ // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with Moodle. If not, see . +// along with Moodle. If not, see . + namespace mod_attendance\import; +defined('MOODLE_INTERNAL') || die(); + use csv_import_reader; use mod_attendance_notifyqueue; use mod_attendance_structure; @@ -28,8 +31,7 @@ use stdClass; * @copyright 2017 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class sessions -{ +class sessions { /** @var string $error The errors message from reading the xml */ protected $error = ''; @@ -56,8 +58,7 @@ class sessions * * @param string $msg */ - public function fail($msg) - { + public function fail($msg) { $this->error = $msg; return false; } @@ -67,8 +68,7 @@ class sessions * * @return string The import id. */ - public function get_importid() - { + public function get_importid() { return $this->importid; } @@ -77,8 +77,7 @@ class sessions * * @return array The headers (lang strings) */ - public static function list_required_headers() - { + public static function list_required_headers() { return array( get_string('course', 'attendance'), get_string('groups', 'attendance'), @@ -101,8 +100,7 @@ class sessions * * @return array The found headers (names from import) */ - public function list_found_headers() - { + public function list_found_headers() { return $this->foundheaders; } @@ -112,8 +110,7 @@ class sessions * @param * data array The mapping data. */ - protected function read_mapping_data($data) - { + protected function read_mapping_data($data) { if ($data) { return array( 'course' => $data->header0, @@ -158,8 +155,7 @@ class sessions * index The column index we want * @return string The column data. */ - protected function get_column_data($row, $index) - { + protected function get_column_data($row, $index) { if ($index < 0) { return ''; } @@ -182,11 +178,11 @@ class sessions * @param bool $useprogressbar * Whether progress bar should be displayed, to avoid html output on CLI. */ - public function __construct($text = null, $encoding = null, $delimiter = null, $importid = 0, $mappingdata = null, $useprogressbar = false) - { + public function __construct($text = null, $encoding = null, $delimiter = null, $importid = 0, + $mappingdata = null, $useprogressbar = false) { global $CFG; - require_once ($CFG->libdir . '/csvlib.class.php'); + require_once($CFG->libdir . '/csvlib.class.php'); $type = 'sessions'; @@ -318,8 +314,7 @@ class sessions * * @return array of errors from parsing the xml. */ - public function get_error() - { + public function get_error() { return $this->error; } @@ -328,12 +323,12 @@ class sessions * * @return void */ - public function import() - { + public function import() { global $DB; // Count of sessions added. $okcount = 0; + $groupids = array(); foreach ($this->sessions as $session) { // Check course shortname matches. @@ -354,7 +349,8 @@ class sessions foreach ($session->groups as $groupname) { $gid = groups_get_group_by_name($course->id, $groupname); if ($gid === false) { - \mod_attendance_notifyqueue::notify_problem(get_string('sessionunknowngroup', 'attendance', $groupname)); + \mod_attendance_notifyqueue::notify_problem(get_string('sessionunknowngroup', + 'attendance', $groupname)); } else { $groupids[] = $gid; } @@ -368,7 +364,7 @@ class sessions ), 'id', 'id'); foreach ($activities as $activity) { - // Build the session data + // Build the session data. $cm = get_coursemodule_from_instance('attendance', $activity->id, $course->id); $att = new mod_attendance_structure($activity, $cm, $course); $sessions = attendance_construct_sessions_data_for_add($session, $att); @@ -391,7 +387,8 @@ class sessions } $activities->close(); } else { - mod_attendance_notifyqueue::notify_problem(get_string('error:coursehasnoattendance', 'attendance', $session->course)); + mod_attendance_notifyqueue::notify_problem(get_string('error:coursehasnoattendance', + 'attendance', $session->course)); } } else { mod_attendance_notifyqueue::notify_problem(get_string('error:coursenotfound', 'attendance', $session->course)); @@ -423,8 +420,7 @@ class sessions * @param stdClass $session * @return boolean */ - private function session_exists(stdClass $session) - { + private function session_exists(stdClass $session) { global $DB; $check = clone $session; @@ -441,4 +437,3 @@ class sessions return false; } } - diff --git a/import/sessions.php b/import/sessions.php index 1fa9f1a..c231fd8 100644 --- a/import/sessions.php +++ b/import/sessions.php @@ -8,11 +8,11 @@ // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with Moodle. If not, see . +// along with Moodle. If not, see . /** * Import attendance sessions. @@ -22,10 +22,13 @@ * @copyright 2017 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -require_once (__DIR__ . '/../../../config.php'); -require_once ($CFG->libdir . '/adminlib.php'); -require_once ($CFG->dirroot . '/mod/attendance/lib.php'); -require_once ($CFG->dirroot . '/mod/attendance/locallib.php'); + +define('NO_OUTPUT_BUFFERING', true); + +require_once(__DIR__ . '/../../../config.php'); +require_once($CFG->libdir . '/adminlib.php'); +require_once($CFG->dirroot . '/mod/attendance/lib.php'); +require_once($CFG->dirroot . '/mod/attendance/locallib.php'); admin_externalpage_setup('managemodules'); $pagetitle = get_string('importsessions', 'attendance');