AutorÃa | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// 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// 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 <http://www.gnu.org/licenses/>./*** The table that displays the templates in a given context.** @package mod_customcert* @copyright 2017 Mark Nelson <markn@moodle.com>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/namespace mod_customcert;defined('MOODLE_INTERNAL') || die;global $CFG;require_once($CFG->libdir . '/tablelib.php');/*** Class for the table that displays the templates in a given context.** @package mod_customcert* @copyright 2017 Mark Nelson <markn@moodle.com>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/class manage_templates_table extends \table_sql {/*** @var \context $context*/protected $context;/*** Sets up the table.** @param \context $context*/public function __construct($context) {parent::__construct('mod_customcert_manage_templates_table');$columns = ['name','actions',];$headers = [get_string('name'),'',];$this->define_columns($columns);$this->define_headers($headers);$this->collapsible(false);$this->sortable(true);$this->context = $context;}/*** Generate the name column.** @param \stdClass $template* @return string*/public function col_name($template) {return format_string($template->name, true, ['context' => $this->context]);}/*** Generate the actions column.** @param \stdClass $template* @return string*/public function col_actions($template) {global $OUTPUT;// Link to edit the template.$editlink = new \moodle_url('/mod/customcert/edit.php', ['tid' => $template->id]);$editicon = $OUTPUT->action_icon($editlink, new \pix_icon('t/edit', get_string('edit')));// Link to duplicate the template.$duplicatelink = new \moodle_url('/mod/customcert/manage_templates.php',['tid' => $template->id,'action' => 'duplicate','sesskey' => sesskey(),]);$duplicateicon = $OUTPUT->action_icon($duplicatelink, new \pix_icon('t/copy', get_string('duplicate')), null,['class' => 'action-icon duplicate-icon']);// Link to delete the template.$deletelink = new \moodle_url('/mod/customcert/manage_templates.php',['tid' => $template->id,'action' => 'delete','sesskey' => sesskey(),]);$deleteicon = $OUTPUT->action_icon($deletelink, new \pix_icon('t/delete', get_string('delete')), null,['class' => 'action-icon delete-icon']);return $editicon . $duplicateicon . $deleteicon;}/*** Query the reader.** @param int $pagesize size of page for paginated displayed table.* @param bool $useinitialsbar do you want to use the initials bar.*/public function query_db($pagesize, $useinitialsbar = true) {global $DB;$total = $DB->count_records('customcert_templates', ['contextid' => $this->context->id]);$this->pagesize($pagesize, $total);$this->rawdata = $DB->get_records('customcert_templates', ['contextid' => $this->context->id],$this->get_sql_sort(), '*', $this->get_page_start(), $this->get_page_size());// Set initial bars.if ($useinitialsbar) {$this->initialbars($total > $pagesize);}}}