Thanks, Matt. I had looked at those pages, but was struggling to understand them. So I took your linking to them as a prod to try harder :)
Not sure if what I've done is the best way to go about it, but below is my default theme extension's start.php. Right or wrong, it has the effect I'm after.
Cheers for the prod.
<?php
elgg_register_event_handler('init', 'system', 'cop_init');
function cop_init() {
elgg_register_plugin_hook_handler('register', 'menu:extras', 'modify_extras_menu');
elgg_register_plugin_hook_handler('register', 'menu:entity', 'modify_wire_entity_menu');
elgg_register_plugin_hook_handler('register', 'menu:river', 'modify_river_menu');
elgg_register_plugin_hook_handler('register', 'menu:widget', 'modify_widget_menu');
elgg_register_plugin_hook_handler('register', 'menu:annotation', 'modify_annotation_menu');
elgg_register_plugin_hook_handler('register', 'menu:topbar', 'modify_topbar_menu');
}
function modify_extras_menu($hook, $type, $value, $params) {
foreach ($value as $k => $v) {
if ($v->getName() == 'bookmark') {
$v->setText('<span class="visually-hidden">' . elgg_echo('bookmarks:this') . '</span>' . elgg_view_icon('push-pin-alt'));
}
if ($v->getName() == 'rss') {
$v->setText('<span class="visually-hidden">' . elgg_echo('feed:rss') . '</span>' . elgg_view_icon('rss'));
}
}
return $value;
}
function modify_wire_entity_menu($hook, $type, $value, $params) {
foreach ($value as $k => $v) {
if ($v->getName() == 'delete') {
$v->setText('<span class="visually-hidden">' . elgg_echo('delete') . '</span>' . elgg_view_icon('delete'));
}
}
return $value;
}
function modify_river_menu($hook, $type, $value, $params) {
foreach ($value as $k => $v) {
if ($v->getName() == 'delete') {
$v->setText('<span class="visually-hidden">' . elgg_echo('delete') . '</span>' . elgg_view_icon('delete'));
}
}
return $value;
}
function modify_widget_menu($hook, $type, $value, $params) {
foreach ($value as $k => $v) {
if ($v->getName() == 'collapse') {
$v->setText('<span class="visually-hidden">Toggle collapsed</span>');
}
if ($v->getName() == 'delete') {
$v->setText('<span class="visually-hidden">' . elgg_echo('widget:delete', array($params['entity']->getTitle())) . '</span>' . elgg_view_icon('delete-alt'));
}
if ($v->getName() == 'settings') {
$v->setText('<span class="visually-hidden">' . elgg_echo('widget:edit') . '</span>' . elgg_view_icon('settings-alt'));
}
}
return $value;
}
function modify_annotation_menu($hook, $type, $value, $params) {
foreach ($value as $k => $v) {
if ($v->getName() == 'delete') {
$v->setText('<span class="visually-hidden">' . elgg_echo('delete') . '</span><span class="elgg-icon elgg-icon-delete"></span>');
}
}
return $value;
}
function modify_topbar_menu($hook, $type, $value, $params) {
foreach ($value as $k => $v) {
if ($v->getName() == 'elgg_logo') {
$logo_url = elgg_get_site_url() . "_graphics/elgg_toolbar_logo.gif";
$v->setText('<img src="'.$logo_url.'" alt="Elgg" width="38" height="20">');
}
if ($v->getName() == 'profile') {
$viewer = elgg_get_logged_in_user_entity();
$v->setText(elgg_view('output/img', array(
'src' => $viewer->getIconURL('topbar'),
'alt' => 'My profile',
'title' => 'My profile',
'class' => 'elgg-border-plain elgg-transition',
)));
}
if ($v->getName() == 'friends') {
$v->setText('<span class="visually-hidden">My friends</span>' . elgg_view_icon('users'));
$v->setTooltip('My friends');
}
if ($v->getName() == 'messages') {
$v->setText('<span class="visually-hidden">My messages</span>' . elgg_view_icon('mail'));
$v->setTooltip('My messages');
}
}
return $value;
}
?>
Oh, man, I feel like crying!
I wish everyone would take prods as well as you :)
For the record, that's exactly the answer. Well done!
Yay! Prods and props :)
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by Raül Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.