Как сделать теги в профиле пользователя и группировку пользователей по тегам

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

Аватар пользователя kakawajazz kakawajazz 22 декабря 2011 в 19:12

Потратив на чтение в интернете статей, вопросов и ответов на тему профилей пользователей, тегов в них (типа Город или Страна) в виде ссылок на страницы, которые отображают всех, указавших в профиле такой тег (или город), я так и не нашел конкретной инструкции или алгоритма. Затем потратил ещё день на исследования методом тыка. Как ни странно, в итоге у меня всё получилось. Ниже расскажу о том, что и как именно.

В деле участвовали Drupal 7 и связка модулей
Views, CtoolsTaxonomy, Field, Content taxonomy
Вроде бы ничего не забыл, но не гарантирую. И сразу прошу прощения за локализованный друпал на скриншотах. Может быть вам будет трудновато найти соответствия названий с вашей локализацией или оригиналом.

Задача была такой: сделать в профиле пользователя несколько чекбоксов, которые он мог бы отметить. Что-то вроде "Чем вы можете помочь проекту?". Например, пользователь отмечает чекбокс Транспорт - это значит, что он может предоставить проекту транспорт. В заполненном профиле этот Транспорт должен выглядеть как ссылка на страницу, на которой будут перечислены простым списком все пользователи, готовые предоставить транспорт. Каждый пункт списка - ссылка на профиль.

1. Начал я с создания по адресу /admin/structure/taxonomy/ словаря с адресом user_tags и названием "Метки пользователей"
Image #1325202, 30 KB

2. и добавления в него нескольких терминов с урлами типа /user-tags/clothes:
Image #1325204, 23.2 KB

3. Затем во views (/admin/structure/views) добавил новое представление page, которое назвал Вещи. Настроил его таким образом:
Image #1325207, 99.6 KB

Обратите внимание, критерий фильтрации "(term from field_tag) Термин таксономии: Название (= Вещи)" я смог добавить только после того, как включил взаимосвязь "Пользователь: Метки пользователя".

4. Готовое представление я клонировал 4 раза, меняя соответственно настройки:
Image #1325216, 95.9 KB

5. Далее отправляемся настраивать сам профиль (/admin/config/people/accounts/fields). Здесь я создаю поле "Метки пользователя" с весом 10 (чтобы отображались в самом низу), машинным именем field_tag, типом "Ссылка на термин" (это стало возможно благодаря Content taxonomy) и типом виджета "Флажки/переключатели". При создании в настройках поля количество значений поставил "не ограничено" - этот параметр определил, что тип виджета будет именно "флажки". Там же определил словарь таксономии "Метки пользователя", созданный в п. 1. Сохранил.
Image #1325238, 52.2 KB

Промежуточный итог: словарь у нас есть, термины в нем есть, флажки для заполнения в профиле есть - это ссылки на термины, представления для терминов тоже есть.

6. Настраиваем профиль пользователя, сохраняем:
Image #1325219, 23 KB

7. Проверяем, как получилось показать это в готовом профиле...
Image #1325226, 15.8 KB

... и что мы увидим, кликнув по ссылке, например, Вещи:
Image #1325229, 11.1 KB