Created one function to handle move_* actions
This changes the name of a column in a DB table. No upgrade script has been written as this activity has not been officially released.
This commit is contained in:
parent
d848bc73e8
commit
6889b04df0
5 changed files with 42 additions and 83 deletions
|
@ -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(
|
||||
|
|
|
@ -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'))));
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<FIELD NAME="height" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="leftmargin" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="rightmargin" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="pagenumber" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/>
|
||||
<FIELD NAME="sequence" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/>
|
||||
<FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||
</FIELDS>
|
||||
|
|
8
edit.php
8
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.
|
||||
|
|
Loading…
Reference in a new issue