我正在尝试将home的文本更改为导航栏(Moodle 2.7)的面包屑中的fontAwesome图标。
我使用Shoelace主题中的文件覆盖了core_render.php。
我在初始化breadcrumbs数组后添加了一行以更改$breadcrumbs[0]
;那只做了一半的工作。图标替换了文字,但href
标记的<a>
属性并不符合我的预期;它遵循导航,而不是家庭的URL。
我不明白这个链接的位置。如何在保留主页URL的同时使用fontAwesome图标?
以下是代码:
class theme_ubo_core_renderer extends theme_bootstrapbase_core_renderer {
/*
* This renders the navbar.
* Uses bootstrap compatible html.
*/
public function navbar() {
$items = $this->page->navbar->get_items();
if (right_to_left()) {
$dividericon = 'fa-angle-left';
} else {
$dividericon = 'fa-angle-right';
}
$divider = html_writer::tag('span', html_writer::start_tag('i', array('class' => 'fa '. $dividericon .' fa-lg')) .
html_writer::end_tag('i'), array('class' => 'divider'));
$breadcrumbs = array();
foreach ($items as $item) {
$item->hideicon = true;
$breadcrumbs[] = $this->render($item);
}
//Change the first entry
$breadcrumbs[0]='<a href=""><i class="fa fa-home fa-2x"></i></a>';
$list_items = html_writer::start_tag('li') . implode("$divider" . html_writer::end_tag('li') .
html_writer::start_tag('li'), $breadcrumbs) . html_writer::end_tag('li');
$title = html_writer::tag('span', get_string('pagepath'), array('class' => 'accesshide'));
return $title . html_writer::tag('ul', "$list_items", array('class' => 'breadcrumb'));
}
}
答案 0 :(得分:1)
该行:
$breadcrumbs[] = $this->render($item);
将调用函数render_navigation_node($item)(我认为 - 我没有经过双重检查)
该函数接收面包屑中的每个项目,并将其从navigation_node实例转换为字符串。
如果你只想强迫第一项成为“家”的链接,使用你选择的图标,你可能会逃脱:
$breadcrumbs[0] = html_writer::link(new moodle_url('/'), html_writer::tag('i', '', array('class' => 'fa fa-home fa-2x')));
另一种方法是看看您是否可以更改内容&#39; $ items数组中的第一个$项目是你想要的图标,然后循环并在每个项目上调用render()。