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.