(предлагаю решение) Комментарии в профиле в D7.

Главные вкладки

Аватар пользователя k_dmitry k_dmitry 4 января 2013 в 2:08

Вступление:
Для D6 существует модуль "Content Profile", который создает тип материала Profile, в котором выводиться инфа юзера и комменты настраиваются как в обычной ноде, но для D7 его нету и везде написано что на замену Content Profile был написан Profile2, но как добавить комменты я так и не нашел. В ходе "гугления" видел разные модули добавляющие комменты в профиль, но их работа не устроила т.к. нужно было сделать страницу профиля "как в контакте". Поэтому был "придуман" следующий алгоритм:

шаг 1:
- Создаем тип материала "profile"

шаг 2:
- Устанавливаем Pathauto, Token
- В синонимах-> шаблоны (admin/config/search/path/patterns) для типа материала "profile" ставим токен "profile/[node:title]"

шаг 3:
- устанавливаем Rulez
- создаем первое правило:
-- событие: После сохранения новой учетной записи пользователя
-- действие: Создать новую сущность, значение- материал,тип- profile, Заголовок материала- [account:name], Автор- account

- создаем второе правило:
-- событие: Страница учетной записи пользователя была просмотрена
-- действие: значение- profile/[account:name]

шаг 4:
- в настройках учетной записи (admin/config/people/accounts/fields) добавляем поля.

шаг 5:
- устанавливаем Views и создаем представление типа "Пользователь" вид- блок.
- в полях указываем поля из шага 4
- в отношениях добавляем Пользователь: Uid-> Задать значение по умолчанию - включить чекбокс "Если есть материал, то использовать его автора"

шаг 6:
- в настройках блоков (admin/structure/block)созданный блок вывести в Content выше "содержимое"
- в настройках блока: Показывать блок на определенных страницах- Только на перечисленных страницах- profile/*

шаг 7:
- устанавливаем модуль custom_username_validation
- В настройках модуля указываем паттерн: /^[a-z-_]+$/
* данный шаг, нужен для валидации логина юзера, чтобы юзеры могли регистрироваться только латиницей и только в нижнем регистре, чтобы не возникло проблем с транслитерацией url.

Заключение:
- Данный "алгоритм" опробован на локальном сайте, проблемы не замечены.
- Возможно существует решение лучше, но я не видел.
- Просьба, гуру друпала, прокомментировать кошерность выше написанного.
- Для реализации на рабочем сайте в шаге 3 в первом правиле, сделать условие например "просмотрена главная страница", "действие выполняется 1 раз".

Комментарии

Аватар пользователя k_dmitry k_dmitry 4 января 2013 в 12:53

"MainVisor" wrote:
ещё бы увидеть

Скоро доделаю, тогда дам ссылку на пример...
Забыл написать: для страницы админа создать пустую ноду типа Profile,в заголовок написать логин админа.

Аватар пользователя henzel henzel 10 января 2013 в 19:05

"k_dmitry" wrote:
- создаем второе правило:
-- событие: Страница учетной записи пользователя была просмотрена
-- действие: значение- profile/[account:name]

Не указано само действие здесь. Где указывается значение?

Аватар пользователя k_dmitry k_dmitry 10 января 2013 в 20:21

Забыл написать Smile
действие- Переадресация страницы

дополнение:
т.к. табов на редактирование профиля нету, надо установить menu_token и в меню пользователя добавить ссылку "редактировать профиль" путь: user/[current-user:uid]/edit

Аватар пользователя k_dmitry k_dmitry 13 января 2013 в 14:05

"MainVisor" wrote:
Работающий пример?

Да, попробуйте сами, вся настройка займет меньше 10 минут.

"henzel" wrote:
Спасибо, Дмитрий, что поделились. Отличное решение

enjoy

"iNFerNo" wrote:
а с модулем Profile2 как связать?

c Profile2 не пробовал, но наверно все отличия будут в настройках вьюс

Аватар пользователя MainVisor MainVisor 13 января 2013 в 15:05

"k_dmitry" wrote:
Да, попробуйте сами, вся настройка займет меньше 10 минут.

Обещалкин, шучу. Спасибо за подробную инструкцию.

Аватар пользователя k_dmitry k_dmitry 13 января 2013 в 17:18

"iNFerNo" wrote:

а в каком виде коментарии то будет... такие же как ноде???


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

Аватар пользователя annalis annalis 26 февраля 2013 в 14:32

Добрый день. Делаю все по вашему алгоритму, но почему-то На странице пользователя выводит "страница "/profile/" не найдена."
В чем может быть ошибка? Спасибо.

Аватар пользователя k_dmitry k_dmitry 26 февраля 2013 в 15:13

Страницы /profile/ не должно быть, должно быть например /profile/admin
прочитайте все комменты, наверно пропустили вот это:

"k_dmitry" wrote:
для страницы админа создать пустую ноду типа Profile,в заголовок написать логин админа.

Аватар пользователя k_dmitry k_dmitry 26 февраля 2013 в 14:55

"annalis" wrote:
Ошибка "Страница "/%20profile/admin" не найдена"

это при клике на логин? если ввести урл имя.сайта/profile/admin тоже ошибка? проверьте токены при перенаправлении.

Аватар пользователя medvedekot medvedekot 26 февраля 2013 в 22:42

Добрый вечер. Делаю все по вашему алгоритму, но мне надо чтобы юзер-автор не мог комментировать свой профиль.
Как это реализовать? Спасибо.

Аватар пользователя k_dmitry k_dmitry 27 февраля 2013 в 10:46

"medvedekot" wrote:

Добрый вечер. Делаю все по вашему алгоритму, но мне надо чтобы юзер-автор не мог комментировать свой профиль.
Как это реализовать? Спасибо.

Вам уже ответили тут

"toshic" wrote:

Здесь есть кастомный модуль, типа стены пользователя,только без добавления картинок.

Стандартные комментарии гибче, можно хотя бы поставить SKE... а так да, как вариант...

Аватар пользователя medvedekot medvedekot 27 февраля 2013 в 14:48

"k_dmitry" wrote:

Вам уже ответили тут

Вставил тот код, который там был написан в файл mymodule.module, сверху поставил тег <?php, создал файл mymodule.info и вписал информацию о модуле, включил модуль и появился белый экран. С чем это связано? Если это в коде что-то не так, то напишите, пожалуйста, правильный код. Заранее спасибо.

Аватар пользователя medvedekot medvedekot 27 февраля 2013 в 14:51

Вставил тот код, который там был написан в файл mymodule.module, создал файл mymodule.info и вписал информацию о модуле, включил модуль и появился белый экран. С чем это связано? Если это в коде что-то не так, то напишите, пожалуйста, правильный код. Заранее спасибо.

Аватар пользователя Pilotsamoleta Pilotsamoleta 29 сентября 2013 в 19:54

идеальное решение, пробовал провернуть подобное через панели, но не получилось. Хотелось сделать немного иначе а именно панелью вывести ноду в профиле, но не вышло.

Аватар пользователя Pilotsamoleta Pilotsamoleta 29 сентября 2013 в 20:22

да, лучше ноду в профиле чем наоборот.еще бы как-то эти комменты сделать более красиво, например в колорбоксе или под катом.

Аватар пользователя Pilotsamoleta Pilotsamoleta 30 сентября 2013 в 22:17

если выводить ноды в профиль вьюсом, используя аргумент, то ненужны custom_username_validation, Pathauto, Token, комент делается через ссылку, главное потом сделать редирект после добавления коммента, например через рулез. почти идеально. Не использовал модуль user comment так как у меня 2 вида профиля и под каждый свой тип материала.