Может кто подскажет, есть ли такой модуль, который позволяет создавать меню пользователя в виде отдельного блока. При большом меню пользователя базовый вывод в виде кнопок (tabs) не очень удобен.
1. в файле page.tpl.php вашей темы, к выводу $tabs добавляете условие if (arg(0) != 'user') для скрытия табов на страницах начинающихся на user - т.е. страницах пользователя.
2. Создаете новый блок, включаете формат ввода php и пишем примерно следующее:
это решение наиболее простое и наименее затратное. Любой модуль - это доп.нагрузка на сервер, здесь же все быстро, просто и понятно даже начинающему сайтостроителю, а если Вам нужен модуль, то проблем нет - 2 дня работы и он будет, только не за бесплатно конечно...
это решение наиболее простое и наименее затратное. Любой модуль - это доп.нагрузка на сервер, здесь же все быстро, просто и понятно даже начинающему сайтостроителю
А вот тут не соглашусь! Если не выводить переменную на экран, это не означает, что не будут тратиться ресурсы на ее создание. Что на счет написание модуля, это меня не пугает, больше напрягает то, что придется тратить на это время, его не так уж и много... Ну а заказывать разработку на стороно - для меня это пока что не вариант, я еще бы подумал над javascropt, но не для для php/sql!
этот код из ядра. Модифицируйте на свой вкус. Например "tabs primary" и "tabs secondary" в данном коде заменяете своими классами, можно стандартным "menu", можно попробовать вложить одно в другое;
в шаблоне темы естественно убиваете $tabs;
Комментарии
1. в файле page.tpl.php вашей темы, к выводу $tabs добавляете условие if (arg(0) != 'user') для скрытия табов на страницах начинающихся на user - т.е. страницах пользователя.
2. Создаете новый блок, включаете формат ввода php и пишем примерно следующее:
<?php
global $user;
if ($user->uid>0 && is_numeric(arg(1)) && arg(1) == $user->uid){
$output = '<ul class="menu">';'
$output .= <li><a href = "/user/'.$user->uid.'/edit" title="Редактировать">Редактировать</a></li>';
$output .= '<li><a href = "/user/'.$user->uid.'/openid" title="OpenID">OpenID</a></li>';
$output .= '<li><a href = "/user/'.$user->uid.'/track" title="Материалы пользователя">Материалы пользователя</a></li>';
$output .= '</ul>';
print $output;
}
?>
Ну вот как-то так, вариации по ссылкам и условиям могут быть различными, но общий метод такой..
Не очень красивое решение. Хотелось бы, чтобы больше автоматики было, а то каждый раз да ручками править...
В целом все то же самое можно реализовать и модулем, вопрос в том, есть ли готовое решение или надо писать с нуля?
это решение наиболее простое и наименее затратное. Любой модуль - это доп.нагрузка на сервер, здесь же все быстро, просто и понятно даже начинающему сайтостроителю, а если Вам нужен модуль, то проблем нет - 2 дня работы и он будет, только не за бесплатно конечно...
А вот тут не соглашусь! Если не выводить переменную на экран, это не означает, что не будут тратиться ресурсы на ее создание. Что на счет написание модуля, это меня не пугает, больше напрягает то, что придется тратить на это время, его не так уж и много... Ну а заказывать разработку на стороно - для меня это пока что не вариант, я еще бы подумал над javascropt, но не для для php/sql!
Ну так, как говориться, флаг Вам в руки и т.д. и т.п.... В общем - удачи...
создаете блок с кодом:
if ($primary = menu_primary_local_tasks()) {
$output .= "<ul class=\"tabs primary\">\n". $primary ."</ul>\n";
}
if ($secondary = menu_secondary_local_tasks()) {
$output .= "<ul class=\"tabs secondary\">\n". $secondary ."</ul>\n";
}
return $output;
этот код из ядра. Модифицируйте на свой вкус. Например "tabs primary" и "tabs secondary" в данном коде заменяете своими классами, можно стандартным "menu", можно попробовать вложить одно в другое;
в шаблоне темы естественно убиваете $tabs;
в случае с menu_local_tasks в недрах ядра используется static кэш, ресуры особо не пострадают, можете не беспокоиться.
2kosilko: Это решение мне нравится больше, чем просто менять ручками html. Спасибо за подсказку! Надо будет покумекать над задачей.
фактически тему надо поменять - выводить табсы в другом месте и в другом виде
буду рад, если кому то пригодится) блок пользователя с регистрацией, авторизацией и аватаркой.
пример исползования.