. /** * Moodle Component Library * * A sample page with dropdowns. * * @package tool_componentlibrary * @copyright 2023 Ferran Recio * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ declare(strict_types=1); require_once(__DIR__ . '/../../../../config.php'); require_login(); require_capability('moodle/site:configview', context_system::instance()); global $PAGE, $OUTPUT; $PAGE->set_url(new moodle_url('/admin/tool/componentlibrary/examples/dropdowns.php')); $PAGE->set_context(context_system::instance()); $PAGE->set_pagelayout('embedded'); $PAGE->set_heading('Moodle dropdowns'); $PAGE->set_title('Moodle dropdowns'); /** @var core_renderer $output*/ $output = $PAGE->get_renderer('core'); echo $output->header(); echo $output->paragraph( 'Important note: dropdowns are not prepared to be displayed inside iframes. You may need to scroll to see the the dropdown content.' ); echo $output->heading("Dropdown dialog example", 3); echo '
'; $dialog = new core\output\local\dropdown\dialog( 'Open dialog', '

Some rich content element.

' ); echo $OUTPUT->render($dialog); echo "
"; echo $output->heading("Dropdown status example", 3); echo '
'; $choice = new core\output\choicelist('Choice description text'); // Option one is a link. $choice->add_option('option1', 'Option 1', [ 'icon' => new pix_icon('t/show', 'Eye icon 1'), 'url' => new moodle_url('/admin/tool/componentlibrary/examples/dropdowns.php'), ]); // Option two has an icon and description. $choice->add_option('option2', 'Option 2', [ 'description' => 'Option 2 description', 'icon' => new pix_icon('t/hide', 'Eye icon 2'), ]); // Option three is disabled. $choice->add_option('option3', 'Option 3', [ 'description' => 'Option 3 description', 'icon' => new pix_icon('t/stealth', 'Eye icon 3'), 'disabled' => true, ]); $choice->set_selected_value('option2'); $dialog = new core\output\local\dropdown\status('Open dialog button', $choice); echo $OUTPUT->render($dialog); echo "
"; echo $output->heading("Dropdown status in update mode example", 3); echo '
'; $choice = new core\output\choicelist('Choice description text'); $choice->add_option('option1', 'Option 1', [ 'description' => 'Option 1 description', 'icon' => new pix_icon('t/show', 'Eye icon 1'), ]); $choice->add_option('option2', 'Option 2', [ 'description' => 'Option 2 description', 'icon' => new pix_icon('t/hide', 'Eye icon 2'), ]); $choice->set_selected_value('option2'); $dialog = new core\output\local\dropdown\status( 'Open dialog button', $choice, [ 'buttonsync' => true, 'updatestatus' => true, 'dialogwidth' => core\output\local\dropdown\status::WIDTH['big'] ] ); echo $OUTPUT->render($dialog); echo "
"; echo $output->footer();