Настройка страницы профайла

admin друпал drupal

Поля профайла

Наш контент профиля остается практически пустой. Давайте добавим основные информационные поля, которые я буду называть "Поля профайла". Этот шаг действительно требует некоторого размышления, чтобы найти необходимые поля. Некоторые обычные: обо мне, пол, хобби, работа. Чтобы определить дополнительные поля, мы должны использовать модуль Profile2. Я обычно ставлю все поля вместе в fieldset. Вы можете добавить группы полей. Просто заполните поле, перетащите его и все готово. Помните, что профиль будет создан при регистрации. Что означает: сведите обязательные поля к минимуму. Пользователи должны иметь возможность зарегистрироваться быстро. Кроме того, мы не хотим утомить их текстовыми полями, даже если они не являются обязательными. Вы можете сохранить страницу профиля аккуратно для определенных групп полей.

Аватар

Ваши пользователи нуждаются в лице. Пользовательские аватары играют важную роль в новом мире Интернета. Они позволяют значительно улучшить общее ощущение, "личный контакт" между пользователями. Необходимые инструменты для создания сказочных фотографий пользователя уже есть в Друпале.

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Приветствую, у меня не

Приветствую, у меня не получается объединить эти две страницы профилей- в настройках profile 2 в пункте изменить тип профайла данного чекбокса нет вообще, есть только "отображать в процессе регистрации". При этом профайл и юзер это две разные вкладки профиля.

Подскажите пожалуйста- как же все таки объединить их в одну?

Извиняюсь-  с ютим

Извиняюсь-  с ютим разобрался, однако не совсем удобно то, что для того чтобы редактировать данные профайла и профиля юзера надо использовать разные вкладки, можно ли как то объединить их теперь в одну?

Продолжение

Урок посмотрели, а продолжение то когда, всё очень интересно.

вот только дальше непонятно.

Огромное Вам спасибо за

Огромное Вам спасибо за уроки! Из тех, что я видел они понравились мне больше остальных.

Продолжения данного урока очень не хватает. Очень хотелось бы увидеть возможность организации взаимодействия между пользователями в рамках данного сайта. Например оценка фотографий, отправка сообщений, организация групп.

Добрый день,    Уроки у вас

Добрый день, 

 

Уроки у вас получаются очень приличными. По поводу profile2 - скажите, а чем он отличается от стандартного, встроенного profile? Там тоже можно создавать поля... в чем смысл и выгода, дополнительные возможности...

Profile 2 работает с

Profile 2 работает с сущностью profile, а profile просто добавляет поля к пользователю, даже не пользователю, а просто создает еще одну таблицу с полями.

Спасибо за ваши

Спасибо за ваши ингструкции.Из всех инструкций по drupal именно ваша наиболее понятная и интересная!

а как сделать что бы можно

а как сделать что бы можно было редактировать данные профайла и учетной записи вместе, то есть объединить их как то можно ?
еще как убрать надпись main profile в личном профиле ?

Ссылку можно убрать с помощь

Ссылку можно убрать с помощь CSS добавив соответствующему классу:

.class{
  display: none;
}

А вот с учетной записью уже сложнее. Разделение формы редактирования учетной записи и профайла сделано разными модулями, поэтому и страницы разные. Если это критично, то вам придется дописывать через hook_form_alter() добавление полей изменения учетной записи в форму профайла (пароль, имя пользователя) и добавлять вручную проверку этих полей (проверку можно взять с уже написанного модуля user).

 

то есть если я добавлю + еще

то есть если я добавлю + еще какие то поля, то мне обратно прейдется лезть в hook_form_alter() и добавлять новые поля которые я добавил. Я правильно Вас понял ?

Не совсем, поля будут

Не совсем, поля будут добавляться как обычно через админку, а вот поле пароля для редактирования на страницы профайла, а не на странице учетной записи (как было задумано), нужно будет добавлять отдельно через hook_form_alter().

 

Во-первых установите модули

Во-первых установите модули author pane и advanced forum, думаю они уже у вас установлены. В шаблонах найдите модуль который отвечает за вывод информации о пользователе в сообщение форума, в моей теме форума это файл:

advanced_forum/styles/naked/advanced_forum.naked.author-pane.tpl.php

Посмотрите какая у вас тема форума, в ней должен быть этот шаблон. Так вот править нужно в этом шаблоне.

Во-вторых установите модуль devel, он даст возможность использовать функцию dsm(), чтобы просмотреть содержание массивов и объектов.

В-третьих идем в файл модуля author pane:

author_pane/author-pane.tpl.php

И смотрим список доступных переменных:

 

* Available variables (core modules):
 * - $account: The entire user object for the author.
 * - $picture: Themed user picture for the author.
 *   See author-pane-user-picture.tpl.php.
 * - $account_name: Themed user name for the author.
 * - $account_id: User ID number for the author.
 *
 * - $joined: Date the post author joined the site. (Uses shortdate format)
 * - $joined_ago: Time since the author registered in the format "TIME ago"
 *
 * - $online_status_class: "author-offline" or "author-online".
 * - $online_status: Translated text "Online" or "Offline"
 * - $last_active: Time since author was last active. eg: "5 days 3 hours"
 *
 * - $contact: Linked translated text "Contact user".
 *
 * - $profile - Profile object from core Profile module.
 *     Usage: $profile['category']['field_name']['#value']
 *     Example: <?php print $profile['Personal info']['profile_name']['#value']; ?>

Можете попробовать вывести массив $account и посмотреть его содержимое, например так:

<?php
  dsm($account);
?>

Если поля присоеденены непосредственно к пользователю, тогда можно сделать так:

<?php
  $author = user_load($account_id);
  dsm($author);
?>

Думаю или в массиве account или в объекте $author должно быть нужное вам поле.

 

Большое спасибо за очень

Большое спасибо за очень развернутый ответ, не зря я здесь попросил вас о помощи.В кодах я пока не разбираюсь, но вроде как функция $account выводит поля из стандартного профиля(конечно я могу ошибаться)но вот с помощью такого кода

<?php if (isset($account->field_gorod['und'])) print render(field_view_value('user', $account, 'field_gorod', $account->field_gorod['und'][0])); ?>выводятся поля без проблем как раз из стандартного профиля, а вот после установки profile2 в код для вывода из него меняется, вроде как должно получиться, что то типа этого

(взял с другого форума)-

Для примера вывода полей Фамилия и Имя на странице пользователя. $profile['prof_a'] - вот это указатель на машинное имя именно того профиля, из которого необходимо выводить поля.

<?php
$profile = profile2_load_by_user($user->uid) ; 
render(field_view_field( 'profile2' , $profile [ 'prof_a' ] , 'field_name',  array( 'label'=>'hidden', )) ) ;
 render(field_view_field( 'profile2' , $profile [ 'prof_a' ] , 'field_surname',  array( 'label'=>'hidden', )) ) ;
?>
Этот код служит для вывода полей на страницу стандартного профиля, а вот для вывода в autor pane не подходит.К сожалению моего разума не хватает, что бы работать с кодом, изменять его или создавать свой код.Поэтому прошу помощи.

 

Вам нужно использовать

Вам нужно использовать функцию dsm(), чтобы посмотреть что у вас из доступных переменных. Почитайте о массивах в php, думаю найдете нужное вам поле, оно или к пользователю прикреплено или к аккаунту.

Это опять Олег. Спасибо.Буду

Это опять Олег.

Спасибо.Буду изучать потихоньку.Сайт делаю неспешно, больше для своего удовольствия, чем для других целей.Не совсем понятно, как принцип работы профилей сделан, многим нужны на сайте разные прфили, для этого устанавливаем profile2, если мы говорим про друпал7, но после установки модулей таких как - взаимосвязи- они автоматически прицепляются к стандартному аккаунту, а не к созданному типу профиля, например я совсем хотел убрать стандартный аккаунт, путем убирания ссылки на него, но тогда и дополнительные модули также скрываются вместе с аккаунотом, не знаете как переопределить, что бы модули прицеплялись к типу профиля, как это делают люди, с помощью кодов или все таки в настройках модулей, там я поискал, не нашел.

Стандартный аккаунт это имя

Стандартный аккаунт это имя пользователя, аватар и данные пользователя, когда создан и когда на сайт заходил. Думаю это основная информация остальное в 7ке полями можно добавить, если нужны отдельные вкладки на странице пользователя, используйте модуль Profile2.

 

Забылеще в предыдущем

Забылеще в предыдущем сообщении представится, меня зовут Олег.

Порпробовал воспользоваться вашими кодами

<?php  dsm($account);?>

 

?1234<?php  $author = user_load($account_id);  dsm($author);?>

 

Но выдало ошибку Fatal error: Call to undefined function dsm() -Фатальная ошибка: Вызов неопределенной функции DSM ()

видимо надо еще, что то к этому добавлять

Fatal error: Call to

Fatal error: Call to undefined function dsm() -Фатальная ошибка: Вызов неопределенной функции DSM ()

Это выводит потому что не включен модуь devel

Вопрос, а можно как то к

Вопрос, а можно как то к ссылке автора матерьяла добавить какое нибудь поле из профайла пользователя, что бы рядом с добавленой статьёй была надпись например: "Опубликовано: 21.11.2012 автор: Вася Пупкин. Програист. стаж 3 года." Или просто вывести какието поля отдельно, просто: "Програист. стаж 3 года"

Вы можете использовать uid в

Вы можете использовать uid в объекте ноды ($node->nid), для этого нужно загрузить объект пользователя, вот так например:

<?php
  $author = user_load($node->uid);
  dsm($author);
?>

И уже из вывода поймете, что вам нужно вывести. Для того чтобы функция dsm() работала нужно установить модуль devel.

А если я использую

А если я использую стандартный профайл друпала 7 и хочу что бы на страницах пользователей была ссылка "Вернутся назад", можно такую ссылку кудата встаить? Если да, то в какой файл, и в каком месте этого файла?