Модуль погоды. Текущая, 3/7/10 дней и маленький инлайн блок.

Делюсь модулем погоды.

Показывает текущую погоду, на 3/7/10 дней и имеет в комплекте маленький инлайн блок для встраивания в панели.

Технически:

Забирает погоду с Яндекс. Кэширует на 1 час. Выводит через шаблон.

Исходник: github.com/vital-fadeev/weather

Живая демка: tyumenn.ru/weather

Источник: http://www.drupal.ru/node/115498

Список блоггеров в блоке.

Доброго времени суток, уважаемые! Хочу поделиться проблемой решением проблемы:
Стала задача – вывести в блок список самых активных блоггеров. Вывести имя пользователя и количество нод типа Blog post, оставленных им. Сортировка по убыванию по количеству постов. И имя каждого пользователя в добавок ко всему должно было выводиться ссылкой на его блог.

В итоге получилось следующее:

Как получилось? Под катом.

Итак, по порядку. Что я имел для достижения цели:
Drupal 7.x
Views 3.0-beta3

Рецепт получения блока:

Делаем новую вьюшку и делаем дисплей Block.
Мы будем выводить поля. По сему ставим Show:Fields
Фильтр: по типу содержимого Blog entry. Ставим Content: Type (= Blog entry)

Какие мы выводим поля:
- User: Name (ставим галку на Exclude from display, так как нам нужно просто взять из базы данных значение, но фактически не показывать его в данном поле. Почему – опишу ниже.)
- User: Uid (ставим галку на Exclude from display по той же причине)
- Content:Nid. При добавлении поля Views спросит о группировке, укажите Count. Таким образом мы получаем количество постов в блоге от определённого пользователя. После указания группировки Count, поле Content:Nid будет содержать только количество записей блога на каждого пользователя.
Вот тут и начинается самое интересное: нужно вывести имя блоггера, рядом показать счётчик постов, и это поле сделать ссылкой на блог пользователя. Я долго ломал голову как это реализовать, но Dealancer подсказал отличное решение: переписать поле. Действительно: у нас есть имя пользователя, его uid и количество его постов. Почему бы не вывести это в таком порядке, в каком нам это необходимо?
Есть замечательная опция у большинства полей: REWRITE RESULTS. Это свойство поля заменять свой текст по определённым правилам, которые описаны в разделе Replacement patterns, если раскрыть свойство REWRITE RESULTS.
В свойствах поля Content:Nid раскроем REWRITE RESULTS:

Поставим галочки на
[x] Rewrite the output of this field
[x] Output this field as a link
Что даст нам возможность изменять содержание поля и ссылку поля.

После расстановки галочек появятся дополнительные опции Text и Link path. Эти поля определяют текст поля и его ссылку соответственно. Они-то нам и нужны.
Нам необходимо вывести в следующем порядке: Автор (кол_во_постов постов), если сказать по-человечески: Admin (25 постов)
Мы помним, что количество постов у нас хранит поле Content:Nid. По этому дадим имя нашему полю:
[name] ([nid] постов)

Чтобы попасть на страницу блога пользователя, нужно перейти по адресу example.com/blog/user_id
А значит ссылка у нас будет вида blog/[uid]

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

Для этого поставим сортировку по убыванию значения поля Content:nid. Напоминаю, Content:nid хранит количество постов.
COUNT(Content: Nid) (desc)

В конечном итоге вьюшка преобретает следующий вид

Надеюсь мой опыт будет кому нибудь полезен
Спасибо пользователю Dealancer за неоценимую помощь!

Источник: http://www.drupal.ru/node/62109

© 2009 Обзор CMS