Drupal начало

21 Январь 2011

Да, новый проект - новая CMS или даже CMF. В общем, трудный друпал. С первого захода я понял, что попал. Документации на эту систему очень много, но вся она написана как-то специализированно и непонятно новичку. Я наставил столько много модулей в первый раз, что система еле начала ворочаться. Пришлось срочно поотключать как можно больше модулей. И еще: если что-то не работает, приходится постоянно бегать по ссылке "Разрешения" для установки галочки для группы администраторов. Модулей для системы большая куча, и в них легко заблудиться. Не буду оригинальным и скажу так: пожалуй, один из самых полезных модулей - это CCK.

А сейчас про модуль realname. Все дело в том, что во всех местах отображается логин, а хотелось бы для красоты отображать какое-нибудь другое поле из профиля пользователя. Например, Имя. Первым делом идем во вкладку Администрирование->Модули и включаем модуль Profile (Поддерживает настраиваемые анкетные данные (профили) пользователей). Возможно, стоит тут включить сразу модуль PHP filter (Позволяет внедрение кода PHP на страницах) и если уже установлен модуль Realname, то включите и его. Теперь необходимо пойти во вкладку "Разрешения" и установить галочки, дающие право использовать эти модули. После этих действий в "Управление пользователями" появится ссылка Профили (Создание дополнительных полей информации о пользователе.) и Реальное имя (Выберите поля для создания Реального имени пользователя.). Первым делом заходим в профили и создаем дополнительное текстовое поле, ну к примеру Имя. Ядро хорошо переведено на русский язык, поэтому все понятно и ясно, как день. Сохраняем и идем Администрирование->Управление пользователями->Реальное Имя. Нажимаем кнопочку "Module" и выбираем "Core Profile" сохраняемся и опять заходим туда же, но в этот раз нажимаем кнопочку "Поля" и выбираем наше поле "Имя", созданное ранее. Все, полдела сделали. Во многих местах, где система автоматически подставляла вывод логина, будет выводится это поле "Имя". Но все-таки не везде. В одном месте для испытаний я решил вывести имя сам, вот там и выводится логин, а хотелось бы, чтобы выводилось именно то поле, которое зарегистрировано в Realname. Долго расписывать не буду. Получайте получившийся код.

<?php
global $user;

$user_id = $user->uid;
if (!isset($user_id)) {
$user_id = -1;
} // if

$user_name = $user->name;
if ((0 >= $user_id) || !isset($user_name)) {
print '<a href="/user">Вход</a>';
}
else {
$username2 = theme('username', $user);
print (!isset($username2))? $user_name: $username2;
print '<a href="/logout">  Выход</a>';
}
?>

Как видно код простенький, но добится его работоспасобности мне стоило целых 4 часа интернета. А все потому что я сначало решил попробовать вывести поле "Имя". Так и не нашел я информацию как это сдлелать. Все мои старания вывести $user->profile_name или через $profile не к чему хорошему не приводили. В принципе можно попробовать вставить этот код как сниппет в код страницы предворительно выбрав Формат ввода - PHP Code. (Помните мы включили галочку PHP filter). Я же сделал одну из тем программой для автоматического создания тем для друпала и там заменил код одного из блоков на этот. Еще конечно можно было бы создать свой модуль (Начитался всего я тут, некоторые советуют что правильней было бы все таки создать модуль для вывода своего блока), но это слишком грамоздко и сложно для такого маленького кода, да и мне новичку в системе друпал сложновато.

P.S. Нашел Как получить доступ к доп. полям профиля пользователя

global $user;
profile_load_profile($user);
echo
$user->profile_name;

И все равно Drupal мне показался значительно сложней для осваивания.

Андрей Лебедев

,

, , , ,

Комментарий

  1. Какой Drupal ?

    — Slava21 · 9 Май 2011, 23:14 · #

  2. Друпал 6.20, Прошло достаточно много времени и теперь я строгаю модули как пирожки. В drupal мне понравилось работать с формами.

    — Redduck · 10 Май 2011, 18:25 · #

Комментировать: