From 82c7463e4a2249065d85e7834ef3c11a06917a2a Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Tue, 19 Dec 2017 14:15:07 +0400 Subject: A class was added to display the table --- classes/webhooks_table.php | 132 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 classes/webhooks_table.php (limited to 'classes') diff --git a/classes/webhooks_table.php b/classes/webhooks_table.php new file mode 100644 index 0000000..cf00790 --- /dev/null +++ b/classes/webhooks_table.php @@ -0,0 +1,132 @@ +. + +/** + * Describes the plugin tables. + * + * @package local_webhooks + * @copyright 2017 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined("MOODLE_INTERNAL") || die(); + +require_once($CFG->libdir . "/tablelib.php"); + +/** + * Describes the main table of the plugin. + * + * @copyright 2017 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class local_webhooks_table extends table_sql { + /** + * Manager address. + * + * @var string $manager + */ + protected static $manager = "/local/webhooks/index.php"; + + /** + * Editor's address. + * + * @var string $editor + */ + protected static $editor = "/local/webhooks/editservice.php"; + + /** + * Constructor. + * + * @param string $uniqueid The unique identifier of the table. + */ + public function __construct($uniqueid) { + parent::__construct($uniqueid); + $this->define_table_columns(); + $this->define_table_configs(); + } + + /** + * Defines the basic settings of the table. + */ + public function define_table_configs() { + $this->set_sql("*", "{local_webhooks_service}", "1"); + $this->collapsible(false); + $this->is_downloadable(false); + $this->no_sorting("actions"); + $this->pageable(true); + } + + /** + * Defines the main columns and table headers. + */ + public function define_table_columns() { + $columns = array( + "title", + "url", + "actions" + ); + + $headers = array( + new lang_string("name", "moodle"), + new lang_string("url", "moodle"), + new lang_string("actions", "moodle") + ); + + $this->define_columns($columns); + $this->define_headers($headers); + } + + /** + * Specifies the display of a column with actions. + * + * @param object $row Data from the database. + * @return string Displayed data. + */ + public function col_actions($row) { + global $OUTPUT; + + $hideshowicon = "t/show"; + $hideshowstring = new lang_string("enable", "moodle"); + if (boolval($row->enable)) { + $hideshowicon = "t/hide"; + $hideshowstring = new lang_string("disable", "moodle"); + } + + $hideshowlink = new moodle_url(self::$manager, array("hideshowid" => $row->id, "sesskey" => sesskey())); + $hideshowitem = $OUTPUT->action_icon($hideshowlink, new pix_icon($hideshowicon, $hideshowstring)); + + $editlink = new moodle_url(self::$editor, array("serviceid" => $row->id)); + $edititem = $OUTPUT->action_icon($editlink, new pix_icon("t/edit", new lang_string("edit", "moodle"))); + + $deletelink = new moodle_url(self::$manager, array("deleteid" => $row->id, "sesskey" => sesskey())); + $deleteitem = $OUTPUT->action_icon($deletelink, new pix_icon("t/delete", new lang_string("delete", "moodle"))); + + $html = $hideshowitem . $edititem . $deleteitem; + return $html; + } + + /** + * Specifies the display of the column with the service name. + * + * @param object $row Data from the database. + * @return string Displayed data. + */ + public function col_title($row) { + $link = new moodle_url(self::$editor, array("serviceid" => $row->id)); + $html = html_writer::link($link, $row->title); + return $html; + } +} \ No newline at end of file -- cgit v1.2.3