1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Moodle Component Library 19 * 20 * A sample page with dropdowns. 21 * 22 * @package tool_componentlibrary 23 * @copyright 2023 Ferran Recio <ferran@moodle.com> 24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 */ 26 27 declare(strict_types=1); 28 29 require_once(__DIR__ . '/../../../../config.php'); 30 31 require_login(); 32 require_capability('moodle/site:configview', context_system::instance()); 33 34 global $PAGE, $OUTPUT; 35 $PAGE->set_url(new moodle_url('/admin/tool/componentlibrary/examples/dropdowns.php')); 36 $PAGE->set_context(context_system::instance()); 37 $PAGE->set_pagelayout('embedded'); 38 39 $PAGE->set_heading('Moodle dropdowns'); 40 $PAGE->set_title('Moodle dropdowns'); 41 42 /** @var core_renderer $output*/ 43 $output = $PAGE->get_renderer('core'); 44 45 echo $output->header(); 46 47 echo $output->paragraph( 48 '<strong>Important note:</strong> dropdowns are not prepared 49 to be displayed inside iframes. You may need to scroll to see the 50 the dropdown content.' 51 ); 52 53 echo $output->heading("Dropdown dialog example", 3); 54 echo '<div class="p-3">'; 55 56 $dialog = new core\output\local\dropdown\dialog( 57 'Open dialog', 58 '<p>Some rich content <b>element</b>.</p> 59 <ul> 60 <li>Item 1 <a href="#">Link 1</a></li> 61 <li>Item 2 <a href="#">Link 2</a></li> 62 </ul>' 63 ); 64 echo $OUTPUT->render($dialog); 65 echo "</div>"; 66 67 68 echo $output->heading("Dropdown status example", 3); 69 echo '<div class="p-3">'; 70 71 $choice = new core\output\choicelist('Choice description text'); 72 73 // Option one is a link. 74 $choice->add_option('option1', 'Option 1', [ 75 'icon' => new pix_icon('t/show', 'Eye icon 1'), 76 'url' => new moodle_url('/admin/tool/componentlibrary/examples/dropdowns.php'), 77 ]); 78 // Option two has an icon and description. 79 $choice->add_option('option2', 'Option 2', [ 80 'description' => 'Option 2 description', 81 'icon' => new pix_icon('t/hide', 'Eye icon 2'), 82 ]); 83 // Option three is disabled. 84 $choice->add_option('option3', 'Option 3', [ 85 'description' => 'Option 3 description', 86 'icon' => new pix_icon('t/stealth', 'Eye icon 3'), 87 'disabled' => true, 88 ]); 89 90 $choice->set_selected_value('option2'); 91 92 $dialog = new core\output\local\dropdown\status('Open dialog button', $choice); 93 echo $OUTPUT->render($dialog); 94 echo "</div>"; 95 96 echo $output->heading("Dropdown status in update mode example", 3); 97 echo '<div class="p-3">'; 98 99 $choice = new core\output\choicelist('Choice description text'); 100 101 $choice->add_option('option1', 'Option 1', [ 102 'description' => 'Option 1 description', 103 'icon' => new pix_icon('t/show', 'Eye icon 1'), 104 ]); 105 $choice->add_option('option2', 'Option 2', [ 106 'description' => 'Option 2 description', 107 'icon' => new pix_icon('t/hide', 'Eye icon 2'), 108 ]); 109 110 $choice->set_selected_value('option2'); 111 112 $dialog = new core\output\local\dropdown\status( 113 'Open dialog button', 114 $choice, 115 [ 116 'buttonsync' => true, 117 'updatestatus' => true, 118 'dialogwidth' => core\output\local\dropdown\status::WIDTH['big'] 119 ] 120 ); 121 echo $OUTPUT->render($dialog); 122 echo "</div>"; 123 124 echo $output->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body