diff --git a/backup/moodle2/backup_customcert_stepslib.php b/backup/moodle2/backup_customcert_stepslib.php index dfac81c..5c54561 100644 --- a/backup/moodle2/backup_customcert_stepslib.php +++ b/backup/moodle2/backup_customcert_stepslib.php @@ -50,7 +50,7 @@ class backup_customcert_activity_structure_step extends backup_activity_structur $pages = new backup_nested_element('pages'); $page = new backup_nested_element('page', array('id'), array( 'customcertid', 'width', 'height', 'leftmargin', 'rightmargin', - 'pagenumber', 'timecreated', 'timemodified')); + 'sequence', 'timecreated', 'timemodified')); // The elements. $element = new backup_nested_element('element', array('id'), array( diff --git a/classes/edit_form.php b/classes/edit_form.php index 7578a97..50cbf42 100644 --- a/classes/edit_form.php +++ b/classes/edit_form.php @@ -58,7 +58,7 @@ class edit_form extends \moodleform { // Get the number of pages for this module. if (isset($this->_customdata['tid'])) { $this->tid = $this->_customdata['tid']; - if ($pages = $DB->get_records('customcert_pages', array('templateid' => $this->tid), 'pagenumber')) { + if ($pages = $DB->get_records('customcert_pages', array('templateid' => $this->tid), 'sequence')) { $this->numpages = count($pages); foreach ($pages as $p) { $this->add_customcert_page_elements($p); @@ -68,7 +68,7 @@ class edit_form extends \moodleform { // Create a 'fake' page to display the elements on - not yet saved in the DB. $page = new \stdClass(); $page->id = 1; - $page->pagenumber = 1; + $page->sequence = 1; $this->add_customcert_page_elements($page); } @@ -186,7 +186,7 @@ class edit_form extends \moodleform { $mform =& $this->_form; if ($this->numpages > 1) { - $mform->addElement('header', 'page_' . $page->id, get_string('page', 'customcert', $page->pagenumber)); + $mform->addElement('header', 'page_' . $page->id, get_string('page', 'customcert', $page->sequence)); } $editlink = '/mod/customcert/edit.php'; @@ -196,12 +196,12 @@ class edit_form extends \moodleform { // Place the ordering arrows. // Only display the move up arrow if it is not the first. - if ($page->pagenumber > 1) { + if ($page->sequence > 1) { $url = new \moodle_url($editlink, $editlinkparams + array('action' => 'pmoveup', 'aid' => $page->id)); $mform->addElement('html', $OUTPUT->action_icon($url, new \pix_icon('t/up', get_string('moveup')))); } // Only display the move down arrow if it is not the last. - if ($page->pagenumber < $this->numpages) { + if ($page->sequence < $this->numpages) { $url = new \moodle_url($editlink, $editlinkparams + array('action' => 'pmovedown', 'aid' => $page->id)); $mform->addElement('html', $OUTPUT->action_icon($url, new \pix_icon('t/down', get_string('movedown')))); } diff --git a/classes/template.php b/classes/template.php index 8081bb5..e0add1a 100644 --- a/classes/template.php +++ b/classes/template.php @@ -84,13 +84,13 @@ class template { global $DB; // Set the page number to 1 to begin with. - $pagenumber = 1; + $sequence = 1; // Get the max page number. - $sql = "SELECT MAX(pagenumber) as maxpage + $sql = "SELECT MAX(sequence) as maxpage FROM {customcert_pages} cp WHERE cp.templateid = :templateid"; if ($maxpage = $DB->get_record_sql($sql, array('templateid' => $this->id))) { - $pagenumber = $maxpage->maxpage + 1; + $sequence = $maxpage->maxpage + 1; } // New page creation. @@ -98,7 +98,7 @@ class template { $page->templateid = $this->id; $page->width = '210'; $page->height = '297'; - $page->pagenumber = $pagenumber; + $page->sequence = $sequence; $page->timecreated = time(); $page->timemodified = $page->timecreated; @@ -209,10 +209,10 @@ class template { // Now we want to decrease the page number values of // the pages that are greater than the page we deleted. $sql = "UPDATE {customcert_pages} - SET pagenumber = pagenumber - 1 + SET sequence = sequence - 1 WHERE templateid = :templateid - AND pagenumber > :pagenumber"; - $DB->execute($sql, array('templateid' => $this->id, 'pagenumber' => $page->pagenumber)); + AND sequence > :sequence"; + $DB->execute($sql, array('templateid' => $this->id, 'sequence' => $page->sequence)); } /** @@ -254,7 +254,7 @@ class template { require_once($CFG->libdir . '/pdflib.php'); // Get the pages for the template, there should always be at least one page for each template. - if ($pages = $DB->get_records('customcert_pages', array('templateid' => $this->id), 'pagenumber ASC')) { + if ($pages = $DB->get_records('customcert_pages', array('templateid' => $this->id), 'sequence ASC')) { // Create the pdf object. $pdf = new \pdf(); @@ -299,78 +299,37 @@ class template { } /** - * Handles moving the certificate page up. + * Handles moving an item on a template. * - * @param int $pageid + * @param string $itemname the item we are moving + * @param int $itemid the id of the item + * @param string $direction the direction */ - public function move_page_up($pageid) { + public function move_item($itemname, $itemid, $direction) { global $DB; - if ($movecertpage = $DB->get_record('customcert_pages', array('id' => $pageid))) { - $swapcertpage = $DB->get_record('customcert_pages', array('pagenumber' => $movecertpage->pagenumber - 1)); + $table = 'customcert_'; + if ($itemname == 'page') { + $table .= 'pages'; + } else { // Must be an element. + $table .= 'elements'; } - // Check that there is a page to move, and a page to swap it with. - if (isset($swapcertpage) && $movecertpage) { - $DB->set_field('customcert_pages', 'pagenumber', $swapcertpage->pagenumber, array('id' => $movecertpage->id)); - $DB->set_field('customcert_pages', 'pagenumber', $movecertpage->pagenumber, array('id' => $swapcertpage->id)); - } - } - - /** - * Handles moving the certificate page down. - * - * @param int $pageid - */ - public function move_page_down($pageid) { - global $DB; - - if ($movecertpage = $DB->get_record('customcert_pages', array('id' => $pageid))) { - $swapcertpage = $DB->get_record('customcert_pages', array('pagenumber' => $movecertpage->pagenumber + 1)); + if ($moveitem = $DB->get_record($table, array('id' => $itemid))) { + // Check which direction we are going. + if ($direction == 'up') { + $sequence = $moveitem->sequence - 1; + } else { // Must be down. + $sequence = $moveitem->sequence + 1; + } + // Get the item we will be swapping with it. + $swapitem = $DB->get_record($table, array('sequence' => $sequence)); } - // Check that there is a page to move, and a page to swap it with. - if (isset($swapcertpage) && $movecertpage) { - $DB->set_field('customcert_pages', 'pagenumber', $swapcertpage->pagenumber, array('id' => $movecertpage->id)); - $DB->set_field('customcert_pages', 'pagenumber', $movecertpage->pagenumber, array('id' => $swapcertpage->id)); - } - } - - /** - * Handles moving the certificate element up. - * - * @param int $elementid - */ - public function move_element_up($elementid) { - global $DB; - - if ($movecertelement = $DB->get_record('customcert_elements', array('id' => $elementid))) { - $swapcertelement = $DB->get_record('customcert_elements', array('sequence' => $movecertelement->sequence - 1)); - } - - // Check that there is an element to move, and an element to swap it with. - if (isset($swapcertelement) && $movecertelement) { - $DB->set_field('customcert_elements', 'sequence', $swapcertelement->sequence, array('id' => $movecertelement->id)); - $DB->set_field('customcert_elements', 'sequence', $movecertelement->sequence, array('id' => $swapcertelement->id)); - } - } - - /** - * Handles moving the certificate element down. - * - * @param int $elementid - */ - public function move_element_down($elementid) { - global $DB; - - if ($movecertelement = $DB->get_record('customcert_elements', array('id' => $elementid))) { - $swapcertelement = $DB->get_record('customcert_elements', array('sequence' => $movecertelement->sequence + 1)); - } - - // Check that there is an element to move, and an element to swap it with. - if (isset($swapcertelement) && $movecertelement) { - $DB->set_field('customcert_elements', 'sequence', $swapcertelement->sequence, array('id' => $movecertelement->id)); - $DB->set_field('customcert_elements', 'sequence', $movecertelement->sequence, array('id' => $swapcertelement->id)); + // Check that there is an item to move, and an item to swap it with. + if ($moveitem && isset($swapitem)) { + $DB->set_field($table, 'sequence', $swapitem->sequence, array('id' => $moveitem->id)); + $DB->set_field($table, 'sequence', $moveitem->sequence, array('id' => $swapitem->id)); } } diff --git a/db/install.xml b/db/install.xml index f252c25..c25af67 100644 --- a/db/install.xml +++ b/db/install.xml @@ -56,7 +56,7 @@ - + diff --git a/edit.php b/edit.php index 134675f..a05d05c 100644 --- a/edit.php +++ b/edit.php @@ -78,16 +78,16 @@ $deleting = false; if ($tid) { switch ($action) { case 'pmoveup' : - $template->move_page_up($actionid); + $template->move_item('page', $actionid, 'up'); break; case 'pmovedown' : - $template->move_page_down($actionid); + $template->move_item('page', $actionid, 'down'); break; case 'emoveup' : - $template->move_element_up($actionid); + $template->move_item('element', $actionid, 'up'); break; case 'emovedown' : - $template->move_element_down($actionid); + $template->move_item('element', $actionid, 'down'); break; case 'deletepage' : if (!empty($confirm)) { // Check they have confirmed the deletion.