MDL-86095 mod_book: Let screenreader know print book opens in new window
This commit is contained in:
+32
-10
@@ -22,8 +22,6 @@
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die;
|
||||
|
||||
/**
|
||||
* Adds module specific settings to the settings block
|
||||
*
|
||||
@@ -31,21 +29,45 @@ defined('MOODLE_INTERNAL') || die;
|
||||
* @param navigation_node $node The node to add module settings to
|
||||
*/
|
||||
function booktool_print_extend_settings_navigation(settings_navigation $settings, navigation_node $node) {
|
||||
global $OUTPUT;
|
||||
|
||||
$params = $settings->get_page()->url->params();
|
||||
if (empty($params['id']) or empty($params['chapterid'])) {
|
||||
if (empty($params['id']) || empty($params['chapterid'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (has_capability('booktool/print:print', $settings->get_page()->cm->context)) {
|
||||
$url1 = new moodle_url('/mod/book/tool/print/index.php', array('id'=>$params['id']));
|
||||
$url2 = new moodle_url('/mod/book/tool/print/index.php', array('id'=>$params['id'], 'chapterid'=>$params['chapterid']));
|
||||
$url1 = new moodle_url('/mod/book/tool/print/index.php', ['id' => $params['id']]);
|
||||
$url2 = new moodle_url('/mod/book/tool/print/index.php', ['id' => $params['id'], 'chapterid' => $params['chapterid']]);
|
||||
$action = new action_link($url1, get_string('printbook', 'booktool_print'), new popup_action('click', $url1));
|
||||
$booknode = $node->add(get_string('printbook', 'booktool_print'), $action, navigation_node::TYPE_SETTING, null, 'printbook',
|
||||
new pix_icon('book', '', 'booktool_print', array('class' => 'icon')));
|
||||
$newwindowtext = html_writer::span(' (' . get_string('opensinnewwindow') . ')', 'visually-hidden');
|
||||
$externalicon = $OUTPUT->pix_icon('i/externallink', '', attributes: [
|
||||
'title' => get_string('opensinnewwindow'),
|
||||
'class' => 'ms-1',
|
||||
]);
|
||||
|
||||
$booknode = $node->add(
|
||||
// Add both an icon and visualy hidden text to indicate link opens in a new window
|
||||
// because Clean theme strips out the icon html.
|
||||
get_string('printbook', 'booktool_print') . $externalicon . $newwindowtext,
|
||||
$action,
|
||||
navigation_node::TYPE_SETTING,
|
||||
null,
|
||||
'printbook',
|
||||
new pix_icon('book', '', 'booktool_print', ['class' => 'icon'])
|
||||
);
|
||||
$booknode->set_force_into_more_menu(true);
|
||||
$action = new action_link($url2, get_string('printchapter', 'booktool_print'), new popup_action('click', $url2));
|
||||
$chapternode = $node->add(get_string('printchapter', 'booktool_print'), $action, navigation_node::TYPE_SETTING, null,
|
||||
'printchapter', new pix_icon('chapter', '', 'booktool_print', array('class' => 'icon')));
|
||||
$chapternode = $node->add(
|
||||
// Add both an icon and visualy hidden text to indicate link opens in a new window
|
||||
// because Clean theme strips out the icon html.
|
||||
get_string('printchapter', 'booktool_print') . $externalicon . $newwindowtext,
|
||||
$action,
|
||||
navigation_node::TYPE_SETTING,
|
||||
null,
|
||||
'printchapter',
|
||||
new pix_icon('chapter', '', 'booktool_print', ['class' => 'icon'])
|
||||
);
|
||||
$chapternode->set_force_into_more_menu(true);
|
||||
}
|
||||
}
|
||||
@@ -60,5 +82,5 @@ function booktool_print_extend_settings_navigation(settings_navigation $settings
|
||||
* @return array
|
||||
*/
|
||||
function booktool_print_get_view_actions() {
|
||||
return array('print');
|
||||
return ['print'];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user