Темизация Профиля

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

Аватар пользователя sergera-sakh sergera-sakh 17 мая 2012 в 9:51

Генерация страницы профиля без Content Profile, как реализовал это я.
Изначальная задача предусматривала создание профиля на базе 3-х колоночного макета, слева - аватар, рейтинг и список друзей, в центре закладки с базовой информацией о пользователе, включающей в себя информацию о дате регистрации, дне рождения, интересы и т.п., а также несколько последних фотографий, загруженых пользователем, несколько последних записей в блог, в также последние коллекции пользователя (аналог обычных папок в ПК).
Изначально решил отказаться от вывода любой информации через шаблон user-profile, поэтому в нем убрал вывод вообще. В левом регионе создал через views блок, отображающий элементы типа "Пользователь", добавил вывод полей Пользователь: Изображение и Userpoints: Баллы, стиль вывода: без форматирования, поля, затем через шаблон сделал свою обертку вокруг полей, для темизации этих элементов.
Самое инетерсное началось в центральном регионе, куда должна была выводиться составная информация на первой закладке и более расширенное отображение этой инфы на каждой отдельной закладке. В кратце объясню как я решил выводить такую инфрмацию (ниже будет схема, где все описано доступнее): для начала естественно берем QuickTabs (для создания закладок как таковых), в первую закладку ставим блок (который предварительно создадим), в моем случае это был block/24, сответственно для него создадим шаблон block-block-24.tpl.php и пока его отложим. Теперь нам потребуется настроить views для вывода полей профиля и последних материалов, опубликовынных юзером.
Когда я перебирал различные варианты выода полей профиля, включая дополнително созданные поля "О себе", "Интересы" и .т.п., я сначала пытался использовать для вывода Views тип материала "Пользователь", но в силу того, что не смог получить все необходимые переменные (не разобрался в выводом views), решил работать с типом "Материал", но с отсутствующими фильтрами. Как показала проверка, даже в случае, если у пользователя нет ни одного опубликованого материала, его даные выводятся корректно. Затем настраиваем еще несколько Views для отображения последних фотографий пользователя, записей в блог и т.д., набор у каждого свой. Общее у всех Views - аргумент. Пользователь: UID -> подставляем аргумент по-умолчанию -> ID пользователя из URL. Работает корректно, даже если у вас выводится имя пользователя в виде "admin". Настроили все Views? Тогда следующим шагом нам необходимо встроить их в блок, который по совместительству является дефолтной закладкой для профиля, тот самый block/24 (в моем случае), в шаблон (block-block-24.tpl.php) прописываем:

" class="">

Последние записи

Последние фотографии

Коллекции

Обертка в виде <div class="userinfo"> пригодится, если вы захотите темизаровать этот блок в индивидуальном прядке. Теперь немного пояснений по
'about_user' - имя вашего представления, 'block_1' - id конкретного блока в этом представлении.
Теперь к заголовкам блоков:

Последние записи

- к сожалению не придумал, каким образом выдернуть название блока из views, вставляемого в блок, потому прописал ручками, в дальнейшем возмжно переделаю, но пока есть так.
Затем вам остается вывести блок, созданный через QuickTab в необходимый регион и настроить его отображение на соответствующих страницах, как правило это будет users/*
Для генерации остальных закладок лично я использовал те же Views, что вставлял в блок главной, только клонировал их и поставил в вывод 20 материалов, вместо 5, ну и добавил ссылку на "Еще". Также рекомендую в параметр "Пустой подвал" прописть что-то вроде "Пользователь пока не загружал фотографи" или что-то подобное, чтоб у вас не висели пустые заголовки блоков.
Схема вывода профиля:

Итоговый результат:

ЗЫ если есть какие-то пожелания по оптимизации или дополнительным фичам, то обязательно пишите!

Комментарии