Add custom HTML field which takes precedence over template pages
This commit is contained in:
parent
311e243ca5
commit
b9c5e95f7a
4 changed files with 45 additions and 17 deletions
|
@ -50,6 +50,8 @@ class template {
|
||||||
*/
|
*/
|
||||||
protected $contextid;
|
protected $contextid;
|
||||||
|
|
||||||
|
protected $html;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The constructor.
|
* The constructor.
|
||||||
*
|
*
|
||||||
|
@ -59,6 +61,7 @@ class template {
|
||||||
$this->id = $template->id;
|
$this->id = $template->id;
|
||||||
$this->name = $template->name;
|
$this->name = $template->name;
|
||||||
$this->contextid = $template->contextid;
|
$this->contextid = $template->contextid;
|
||||||
|
$this->html = $template->html;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -310,17 +313,22 @@ class template {
|
||||||
$orientation = 'P';
|
$orientation = 'P';
|
||||||
}
|
}
|
||||||
$pdf->AddPage($orientation, array($page->width, $page->height));
|
$pdf->AddPage($orientation, array($page->width, $page->height));
|
||||||
$pdf->SetMargins($page->leftmargin, 0, $page->rightmargin);
|
|
||||||
// Get the elements for the page.
|
if ($this->html) {
|
||||||
if ($elements = $DB->get_records('customcert_elements', array('pageid' => $page->id), 'sequence ASC')) {
|
$pdf->WriteHTML($this->html);
|
||||||
// Loop through and display.
|
} else {
|
||||||
foreach ($elements as $element) {
|
$pdf->SetMargins($page->leftmargin, 0, $page->rightmargin);
|
||||||
// Get an instance of the element class.
|
// Get the elements for the page.
|
||||||
if ($e = \mod_customcert\element_factory::get_element_instance($element)) {
|
if ($elements = $DB->get_records('customcert_elements', array('pageid' => $page->id), 'sequence ASC')) {
|
||||||
$e->render($pdf, $preview, $user);
|
// Loop through and display.
|
||||||
}
|
foreach ($elements as $element) {
|
||||||
}
|
// Get an instance of the element class.
|
||||||
}
|
if ($e = \mod_customcert\element_factory::get_element_instance($element)) {
|
||||||
|
$e->render($pdf, $preview, $user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($return) {
|
if ($return) {
|
||||||
|
@ -339,6 +347,9 @@ class template {
|
||||||
public function copy_to_template($copytotemplateid) {
|
public function copy_to_template($copytotemplateid) {
|
||||||
global $DB;
|
global $DB;
|
||||||
|
|
||||||
|
$copytotemplate = $DB->get_records('customcert_templates', array('id' => $copytotemplateid));
|
||||||
|
$copytotemplate->html = $this->html;
|
||||||
|
|
||||||
// Get the pages for the template, there should always be at least one page for each template.
|
// Get the pages for the template, there should always be at least one page for each template.
|
||||||
if ($templatepages = $DB->get_records('customcert_pages', array('templateid' => $this->id))) {
|
if ($templatepages = $DB->get_records('customcert_pages', array('templateid' => $this->id))) {
|
||||||
// Loop through the pages.
|
// Loop through the pages.
|
||||||
|
@ -431,6 +442,10 @@ class template {
|
||||||
return $this->name;
|
return $this->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function get_html() {
|
||||||
|
return $this->html;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the context id.
|
* Returns the context id.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<XMLDB PATH="mod/customcert/db" VERSION="20170530" COMMENT="XMLDB file for Moodle mod/customcert"
|
<XMLDB PATH="mod/customcert/db" VERSION="20211105" COMMENT="XMLDB file for Moodle mod/customcert"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
|
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
|
||||||
>
|
>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
<FIELD NAME="course" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
<FIELD NAME="course" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||||
<FIELD NAME="templateid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
<FIELD NAME="templateid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||||
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false"/>
|
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false"/>
|
||||||
<FIELD NAME="intro" TYPE="text" LENGTH="small" NOTNULL="false" SEQUENCE="false"/>
|
<FIELD NAME="intro" TYPE="text" NOTNULL="false" SEQUENCE="false"/>
|
||||||
<FIELD NAME="introformat" TYPE="int" LENGTH="4" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
<FIELD NAME="introformat" TYPE="int" LENGTH="4" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||||
<FIELD NAME="requiredtime" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
<FIELD NAME="requiredtime" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||||
<FIELD NAME="verifyany" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
<FIELD NAME="verifyany" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
<FIELD NAME="contextid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false" COMMENT="References contextid."/>
|
<FIELD NAME="contextid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false" COMMENT="References contextid."/>
|
||||||
<FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" 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"/>
|
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||||
|
<FIELD NAME="html" TYPE="text" NOTNULL="false" SEQUENCE="false"/>
|
||||||
</FIELDS>
|
</FIELDS>
|
||||||
<KEYS>
|
<KEYS>
|
||||||
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for customcert_template"/>
|
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for customcert_template"/>
|
||||||
|
@ -77,7 +78,7 @@
|
||||||
<FIELD NAME="pageid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
<FIELD NAME="pageid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
|
||||||
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false"/>
|
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false"/>
|
||||||
<FIELD NAME="element" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false"/>
|
<FIELD NAME="element" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false"/>
|
||||||
<FIELD NAME="data" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false"/>
|
<FIELD NAME="data" TYPE="text" NOTNULL="false" SEQUENCE="false"/>
|
||||||
<FIELD NAME="font" TYPE="char" LENGTH="255" NOTNULL="false" SEQUENCE="false"/>
|
<FIELD NAME="font" TYPE="char" LENGTH="255" NOTNULL="false" SEQUENCE="false"/>
|
||||||
<FIELD NAME="fontsize" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/>
|
<FIELD NAME="fontsize" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false"/>
|
||||||
<FIELD NAME="colour" TYPE="char" LENGTH="50" NOTNULL="false" SEQUENCE="false"/>
|
<FIELD NAME="colour" TYPE="char" LENGTH="50" NOTNULL="false" SEQUENCE="false"/>
|
||||||
|
|
|
@ -184,7 +184,19 @@ function xmldb_customcert_upgrade($oldversion) {
|
||||||
|
|
||||||
$dbman->add_field($table, $field);
|
$dbman->add_field($table, $field);
|
||||||
|
|
||||||
upgrade_mod_savepoint(true, 2021051702, 'customcert'); // Replace with the actual version number.
|
upgrade_mod_savepoint(true, 2021051702, 'customcert');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($oldversion < 2021110501) {
|
||||||
|
$table = new xmldb_table('customcert_templates');
|
||||||
|
$field = new xmldb_field('html', XMLDB_TYPE_TEXT, null, null, null, null, null, 'timemodified');
|
||||||
|
|
||||||
|
// Conditionally launch add field html.
|
||||||
|
if (!$dbman->field_exists($table, $field)) {
|
||||||
|
$dbman->add_field($table, $field);
|
||||||
|
}
|
||||||
|
|
||||||
|
upgrade_mod_savepoint(true, 2021110501, 'customcert');
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -24,10 +24,10 @@
|
||||||
|
|
||||||
defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.');
|
defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.');
|
||||||
|
|
||||||
$plugin->version = 2021051702; // The current module version (Date: YYYYMMDDXX).
|
$plugin->version = 2021110501; // The current module version (Date: YYYYMMDDXX).
|
||||||
$plugin->requires = 2021051700; // Requires this Moodle version (3.11).
|
$plugin->requires = 2021051700; // Requires this Moodle version (3.11).
|
||||||
$plugin->cron = 0; // Period for cron to check this module (secs).
|
$plugin->cron = 0; // Period for cron to check this module (secs).
|
||||||
$plugin->component = 'mod_customcert';
|
$plugin->component = 'mod_customcert';
|
||||||
|
|
||||||
$plugin->maturity = MATURITY_STABLE;
|
$plugin->maturity = MATURITY_STABLE;
|
||||||
$plugin->release = "3.11.1"; // User-friendly version number.
|
$plugin->release = "3.11.1-seachefs"; // User-friendly version number.
|
||||||
|
|
Loading…
Reference in a new issue