diff --git a/mod/book/tool/print/lib.php b/mod/book/tool/print/lib.php index eecdb7bb89e..81b33f6c522 100644 --- a/mod/book/tool/print/lib.php +++ b/mod/book/tool/print/lib.php @@ -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']; }