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/>.
defined('MOODLE_INTERNAL') || die();
/**
* Class for glossary display formats management.
*
* @package mod_glossary
* @copyright 2021 Andrew Davis
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_glossary_admin_setting_display_formats extends admin_setting {
/**
* Calls parent::__construct with specific arguments
*/
public function __construct() {
$this->nosave = true;
parent::__construct('glossarydisplayformats', get_string('displayformatssetup', 'glossary'), '', '');
}
/**
* Always returns true, does nothing
*
* @return true
*/
public function get_setting() {
return true;
}
/**
* Always returns true, does nothing
*
* @return true
*/
public function get_defaultsetting() {
return true;
}
/**
* Always returns '', does not write anything
*
* @param string $data Unused
* @return string Always returns ''
*/
public function write_setting($data) {
// Do not write any setting.
return '';
}
/**
* Checks if $query is one of the available display formats
*
* @param string $query The string to search for
* @return bool Returns true if found, false if not
*/
public function is_related($query) {
global $DB;
if (parent::is_related($query)) {
return true;
}
$query = core_text::strtolower($query);
$formats = $DB->get_records("glossary_formats");
foreach ($formats as $format) {
if (strpos(core_text::strtolower($format->name), $query) !== false) {
return true;
}
$localised = get_string("displayformat$format->name", "glossary");
if (strpos(core_text::strtolower($localised), $query) !== false) {
return true;
}
}
return false;
}
/**
* Builds the XHTML to display the control
*
* @param string $data Unused
* @param string $query
* @return string
*/
public function output_html($data, $query='') {
global $CFG, $OUTPUT, $DB;
$stredit = get_string("edit");
$strhide = get_string("hide");
$strshow = get_string("show");
$str = $OUTPUT->heading(get_string('displayformatssetup', 'glossary'), 3, 'main', true);
$recformats = $DB->get_records("glossary_formats");
$formats = array();
// Build alphabetized list of formats.
foreach ($recformats as $format) {
$formats[get_string("displayformat$format->name", "glossary")] = $format;
}
ksort($formats);
$table = new html_table();
$table->align = array('left', 'center');
foreach ($formats as $formatname => $format) {
$editicon = html_writer::link(
new moodle_url(
'/mod/glossary/formats.php',
array('id' => $format->id, 'mode' => 'edit')
),
$OUTPUT->pix_icon('t/edit', $stredit),
array('title' => $stredit));
if ( $format->visible ) {
$vtitle = $strhide;
$vicon = "t/hide";
} else {
$vtitle = $strshow;
$vicon = "t/show";
}
$visibleicon = html_writer::link(
new moodle_url(
'/mod/glossary/formats.php',
array('id' => $format->id, 'mode' => 'visible', 'sesskey' => sesskey())
),
$OUTPUT->pix_icon($vicon, $vtitle),
array('title' => $vtitle)
);
$table->data[] = array(
$formatname,
$editicon . ' ' . $visibleicon
);
}
$str .= html_writer::table($table);
return highlight($query, $str);
}
}