понедельник, 13 декабря 2010 г.

Сниппеты

воскресенье, 12 декабря 2010 г.

Начинаем работать с Drupal: полное практическое руководство

Сборник полезных рецептов. Сниплеты.

1. «Сейчас на сайте»
Сниппет для пятого и шестого друпала, отображающий блок с пользователями, которые сейчас находятся на сайте.

2. Копипаст тизера и ссылки
Блок, появляющийся на странице материала определённого типа и предоставляющий тизер и ссылку на материал Вашего сайта для копирования на другие ресурсы.

Сборник полезных рецептов. Решение проблем.

1. Решение проблем с IE<7 + тут
Избавление от «падения» правой колонки в IE младших версий (из-за кривой работы этого броузера с css).

2. Права на загружаемые изображения
Решение проблемы в ядре Друпала — невыполнения chmod при закачке файла на сервер.

3. Относительные пути
Решение небольшой проблемы с относительными путями (не надо забывать ставить слеш ;)

4. «Пропажа» полей
Решение проблемы с «пропажей» некоторых полей после обновления (отключить/включить модуль и запустить update.php)

5. Пропажа альта и описания картинки во views и в нодах
Исправление через патчи глюка с заменой альта в картинках, созданных через Imagefield на «a» во views и полным исчезновением его в нодах.

6. Локализация заголовка prvatemsg
Исправление локализации заголовка privatemsg таким образом, чтобы не терять количество новых сообщений.

7. Создание модулем таблицы в БД
Решение проблемы с «нежеланием» Друпала использовать ваш модуль для создания таблицы в БД (выборочная чистка записей в таблице system).

8. Исправление настроек темы
Простое решение проблемы с «невосстанавливаемыми» настройками темы.

А также:
1. example.net->www.example.net + решение с параллельными логинами пользователя
Как с помощью .htaccess сделать редирект с одного доменного имени на другое и как избавиться от отображения параллельного логина одного и того же пользователя на сайте через разные броузеры.

2. Кое-что об AHAH
Здесь, здесь, здесь, здесь и здесь.

3. Русский морфологический поиск
Решения для пятого и шестого Друпала.

4. Запуск хронометра (cron) из Сети
Бесплатный русскоязычный (если кому-то важно ;) сервис, автоматически запускающий крон сайта.

5. Обновление между минорными версиями
Что именно можно не делать при обновлении между минорными версиями (6.8->6.9, 6.3->6.9 и т.п.) и почему.

Сборник полезных рецептов. cck + views

1. Глубина погружения в таксономию во views
Как глубоко должен залезать views при выводе нод, принадлежащих родительскому термину.

2. Интервал в фильтре во views
Использование интервала при создании фильтра во views.

3. Ссылки на другие материалы
Работа с Node reference.

4. Аргументы во views by penexe
Подробный рассказ о том, как работать с аргументами во views.

5. Pathauto + views
Скринкаст решения (на английском!), которое позволяет использовать плюсы views и pathauto и сделать урлы новостей не только удобочитаемыми, но и способными показывать архивы.

6. Галерея с помощью cck+views (Части 1 и 2)
Довольно изящное решение по созданию галерей на сайтах с уже установленными модулями cck и views на основе скринкаста. Альтернативный вариант — использование модуля  Views Gallery, созданного по мотивам того же скринкаста.

7. Хендлеры Views API.
Вопросы и примеры по работе с хендлерами views.

Сборник полезных рецептов. Темизация.

1. Theme Guide (на английском языке!)
Руководство по темизации с официального сайта Друпал.

2. Имя и фамилия вместо ника
Как указывать в качестве имени автора новости (статьи) не ник пользователя, а указанные им фамилию и имя.

3. Темизация пояснений
Решение по темизации пояснений о форматировании и прочем — весьма и весьма полезно.

4. Темизация ноды, имеющей разные синонимы
Рассказ о том, как правильно по-разному темизировать одну и ту же ноду, к которой могут обращаться через разные синонимы.

5. Темизация ноды by HIgor1968
Пример того, как реализовать темизацию ноды с CCK и таксономией без использования views.

6. Темизация блока с опросом
Чистка некрасивостей и создание красивостей -)

7. Темизация вывода таксономии
Красивый вывод терминов таксономии по словарям, а не кучей. Можно ещё вот так это делать (так даже лучше). Плюс в довесок модуль Term Display, занимающийся, по сути, тем же самым. И пример модуля, вообще убирающего термины при выводе ноды.

8. Темизация конкретной ноды
Как определить адрес ноды, которую нужно темизировать.

9. Таксономия
Ряд ссылок с указанием того, как работает таксономия.

10. Ссылки на материал
Постоянные ссылки на материал + вставка в конце статьи «ссылки для копирования».

11. «Не проверено» в комментарии
Простой способ убрать фразу «(не проверено)» из подписи анонима в комментарии.

12. Темизация страницы «на обслуживании»
Простой способ с помощью небольшого хака темизировать страницу «на обслуживании».

13. Темизация регистрационной формы
«Склейка» филдсетов регистрационной формы и темизация её вывода (для пятёрки и для шестёрки).

14. Настройка темы
Простое и понятное объяснение того, как решить некоторые вопросы темизации.

Сборник полезных рецептов. Таксономия.

1. БД по странам/регионам/городам + по маркам и моделям авто by penexe
БД в виде словарей таксономии + скрипт для того, чтобы добавить их к себе на сайт, с подробным описанием того, что нужно делать.

Сборник полезных рецептов. Модули.

1. Модуль AJAX-комментариев by neochief
Модуль, который позволяет пользователям добавлять комментарии без обновления страницы. Должно быть жутко удобная штука, но и её я ещё не пробовал.

2. Заголовки комментариев
Модуль comment_subject для изменения автозаполнения заголовков, которое часто раздражает пользователей.

3. Модуль «Я пойду!» by nleo
Модуль, добавляющий пользователя в список участников того или иного события. Я пока не тестировал, поскольку ещё не успел добраться до создания нужного типа контента.

4. Модуль «Conditional Fields»
Пока что модуль в стадии снэпшота. Принцип работы в чём-то аналогичен hierarchical select, только без таксономии. Но на самом деле модули совершенно разные:

"gorr" написал(а):

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

5. Личные сообщения
Модуль, позволяющий посетителям обмениваться личными сообщениями на сайте.

6. Модуль «Photomarks» by nleo
Отметить себя (не только себя) на фотографии (аналогично фкантагду и проч.)

7. Google maps
Вывод карт и маркеров на определённых страницах. Полезно также это и это.
+ Модуль Simple Gmap by bodro — более лёгкий, но реализующий только основной функционал.
+Модуль Yandex Maps by bohart — аналог для карт Яндекса.

8. Графики и диаграммы
Построение графиков и диаграмм через Chart API, причём для рендеринга используются мощности Гугла, а не Вашего сайта!

9. Переброс залогиненного пользователя
Два модуля, которые позволяют перемещать только что залогинившегося пользователя на определённую страницу.

10.  Node Gallery
Модуль галереи с поддержкой  views2lightbox2token и, разумеется, таксономии. Модуль находится в альфе, но, на мой взгляд, имеет неплохие перспективы.

11.  quant
Модуль аналитики, который позволяет вам смотреть, каковы были активные действия на сайте в течение определённого периода времени (сколько создано нод, оставлено комментариев и так далее). Модуль может быть расширен вами самостоятельно, так как имеет понятный API. Зависит от  chart, описанного чуть выше.

суббота, 11 декабря 2010 г.

Темизация: добавление собственных регионов в макет главной страницы

Вначале статьи заметим, что этот материал имеет отношение только к темам, созданным на основе PHPTemplate (по умолчанию движок для тем в Drupal). Добиться отображения на главной странице сайта только нужных регионов можно несколькими способами.

Создание новой темы оформления для CMS Drupal – это легко!

Темизация макета, создание новой темы с нуля для сайта на Drupal не так сложно, как может показаться на первый взгляд. Тема оформления в CMS Drupal – это не более, чем просто стандартный html макет, содержащий немного PHP кода, добавленного в нужные места макета. Этот PHP код является стандартным и Вы можете просто скопировать его и вставить в нужное место Вашего макета.

Добавление дополнительного пейджера (pager)

Добавление «хлебных крошек» в макет материалов (node.tpl.php)

Если по какой-то причине, хлебные крошки вам не нужны, нигде кроме как в самых материалах, или в материалах только определенного типа, то Вы смело можете удалить из файла page.tpl.php строку:

Tagadelic: общее облако тегов для всех словарей

Модуль Tagadelic позволяет создавать отдельное облако тегов для каждого словаря таксономии. Но иногда возникает задача, например на главной странице сайта, вывести общее облако тегов, которое бы объединяло термины из всех существующих словарей (или только из нескольких).

Отдельный файл page.tpl.php для каждого типа материала

Основной файл любой темы оформления – это page.tpl.php. Именно в нем размещается макет сайта, общая структура, которая отображается на всех страницах сайта.

Специальный page.tpl.php в зависимости от url адреса материала

Для того чтобы изменить макет определенного материала (например example.com/music), надо использовать первоначальный адрес – node/xx, где xx – идентификатор материала. Но что делать, если мы используем модуль Path и в придачу желаем чтобы не только сам материал example.com/music, но и материалы типа example.com/music/1, example.com/music/2 и т.д. имели уникальный одинаковый макет page.tpl.php.

Убираем закладку "File browser" модуля IMCE

Одним из самых интересных и важных модулей является IMCE. Этот модуль позволяет добавить на сайт полноценный файловый менеджер (в том числе с закачкой и изображений) и интеграцией с большинством визуальных редакторов.

Количество непрочитанных сообщений пользователя - Privatemsg

Модуль Privatemsg позволяет создавать систему обмена личными сообщениями между пользователями сайта. Это просто необходимо при создании крупных интернет-порталов или социальных сетей.

Отображение регионов на странице ошибки "Страница не найдена"

CMS Drupal имеет собственную систему обработки ошибки "Страница не найдена". В Drupal для этого используется простая функция - drupal_not_found. Но как результат, попадая на страницу ошибки "Страница не найдена", мы видим практически голую страницу, имеющую из всего дизайна только шапку.

Удаление сообщений о безопасности при изменении пароля - Drupal

Когда вы впервые задаете пароль, или изменяете пароль на новый, CMS Drupal автоматически проверяет пароль на безопасность. Пользователям не рекомендуется создавать пароль из не менее 6 знаков.

CMS Drupal: Улучшаем страницу пользователя. Часть 1

При создании сайта – коллективного блога, аналогичного хабру, важная роль будет отведена правильной организации системы рейтинга пользователей. Из всех ныне существующих модулей для CMS Drupal, реализующих данный функционал, на мой взгляд, для создании полноценной системы рейтинга пользователей, наиболее подходит модуль Userpoints.

CMS Drupal: Улучшаем страницу пользователя. Часть 2

snippet_1_0

Очень важно указывать статус пользователя в сети на данный момент. Это очень важный момент особенно для сайтов с системой внутренних личных сообщений.

CMS Drupal: Улучшаем страницу пользователя. Часть 3

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

CMS Drupal: Улучшаем страницу пользователя. Часть 4

Многих очень удручает вид стандартного профиля пользователя на сайте на основе CMS Drupal. Часть профиля, которая очень часто подвергается удалению – это раздел «История». Тем не менее, информация о дате регистрации пользователя и о том сколько времени прошло с того момента, является важной и довольно интересной информацией.

Но эту информацию можно добавить на страницу пользователя и иным способом. Для этого необходимо в файл user-profile.tpl.php (необходимо этот файл добавить в папку темы оформления Вашего сайта) вставить следующий код:

Дата регистрации:

CMS Drupal: Темизация названия материала

На сайте habrahabr всегда рядом с названием материала слева отображается название блога, к которому относится данный материал. В нашем случае, нужно сделать так, чтобы слева стало отображаться название группы (модуля og), к которой будет приписан наш материал.

Модуль Insert

Insert это механизм, который позволяет вставлять изображения и ссылки на файлы в текстовой области или WYSIWYGs редактор гораздо проще и быстрее.

Сustom404

При переносе статического сайта на CMS Drupal, практически все сталкиваются с со проблемой - ошибкой 404. Модуль Сustom404 предназначен для исправления вышеупомянутой проблемы. С помощью данного модуля можно настроить поиск похожего (по адресу) материала, или вывод соответствующей и нужной информации при возникновении ошибки 404.

Социальная сеть на CMS Drupal: создаем стену пользователя в его профайле

dfgdg_0

Важных антуражем социальной сети в последнее время стала так называемая стена в профайле пользователя.

Социальная сеть на CMS Drupal - добавляем поле "Возраст" в профайл пользователей

eryeryery

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

Создаем изображение пользователя через imagefield

При создании расширенного профиля пользователя, большинство разработчиков для организации фотоальбома использует связку модулей cck, imagefield,filefield, imagecache. При этом было бы логично использовать в качестве картинки пользователя, которая отображается в комментариях или в материалах пользователя, использовать одно из изображений, которые загрузили пользователи при создании своего профиля. По молчанию в CMS Drupal для этих целей пользователь должен идти в раздел редактирования аккаунта и в отдельном блоке загружать специальное изображение.

Обрезаем названия материалов в видах

snippet_1_0

Обрезаем названия материалов в списках views

Советы по темизации. Чистим темы от ненужного мусора

Данный материал относится к 6 версии CMS Drupal 6, хотя данные советы применимы и к другим версиям Drupal. В материале представлены советы по структурированию темы Вашего сайта.

Согласно логики Drupal в темах имеется четкое разделение между разметкой шаблона сайта и функциями. Файлы типа .tpl.php должны использоваться специально для разметки шаблона, включая переменные и функции только по мере необходимости. Ниже представлено ряд советов по улучшению темы сайта на CMS Drupal на примере темы garland.

Социальная сеть на CMS Drupal: создаем стену пользователя в его профайле

Важных антуражем социальной сети в последнее время стала так называемая стена в профайле пользователя. Это, по сути, место, где любой желающий может оставить комментарий профайлу пользователя. На данный момент лучшим модулем для настройки профайла пользователей является модуль Content Profile (http://drupal.org/project/content_profile). Он позволяет настроить отображение профайла пользователей практически на 100% так, ка Вы пожелаете. Поэтому мы рекомендуем использовать именно этот модуль при создании любой социальной сети на основе CMS Drupal (речь идет о 6 версии Drupal).