Файловый менеджер - Редактировать - /home/harasnat/www/learning/lib/classes/output/local/dropdown/status.php
Назад
<?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/>. namespace core\output\local\dropdown; use core\output\choicelist; /** * Class to render a dropdown dialog element. * * A dropdown dialog allows to render any arbitrary HTML into a dropdown elements triggered * by a button. * * @package core * @category output * @copyright 2023 Ferran Recio <ferran@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class status extends dialog { /** * @var choicelist content of dialog. */ protected $choices = null; /** * Constructor. * * The definition object could contain the following keys: * - classes: component CSS classes. * - buttonclasses: the button CSS classes. * - dialogwidth: the dropdown width. * - extras: extra HTML attributes (attribute => value). * - buttonsync: if the button should be synced with the selected value. * - updatestatus: if component must update the status and trigger a change event when clicked. * * @param string $buttoncontent the button content * @param choicelist $choices the choice object * @param array $definition an optional array of the element definition */ public function __construct(string $buttoncontent, choicelist $choices, array $definition = []) { parent::__construct($buttoncontent, '', $definition); $this->set_choice($choices); if ($definition['buttonsync'] ?? false) { $this->extras['data-button-sync'] = 'true'; } if ($definition['updatestatus'] ?? false) { $this->extras['data-update-status'] = 'true'; } } /** * Set the dialog contents. * * @param choicelist $choices */ public function set_choice(choicelist $choices) { $this->choices = $choices; $description = $choices->get_description(); if (!empty($description)) { $this->set_content($description); } } /** * Export this data so it can be used as the context for a mustache template (core/inplace_editable). * * @param \renderer_base $output typically, the renderer that's calling this function * @return array data context for a mustache template */ public function export_for_template(\renderer_base $output): array { $data = parent::export_for_template($output); if ($this->choices !== null) { $data['choices'] = $this->choices->export_for_template($output); } $selectedvalue = $this->choices->get_selected_value(); if ($selectedvalue !== null) { $data['extras'][] = (object)[ 'attribute' => 'data-value', 'value' => $selectedvalue, ]; } return $data; } /** * Get the name of the template to use for this templatable. * * @param \renderer_base $renderer The renderer requesting the template name * @return string the template name */ public function get_template_name(\renderer_base $renderer): string { return 'core/local/dropdown/status'; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0.02 |
proxy
|
phpinfo
|
Настройка