Эксклюзивное собрание кода, облегчающего жизнь разработчику и делающего последнего Мастером.
vTXT.blogspot.com - Интересные статьи и ресурсы интернета о php, CMS Drupal, социальных сетях и многом другом.
понедельник, 10 октября 2011 г.
Написать табы (закладки) собственноручно? Легко!
Одним из лучших способов экономить место на сайте являются табы. Это простой переключатель контента, который одновременно нетруден в создании - и удобен в использовании. Для этой возможности можно использовать связку модулей views + quick tabs. Однако некоторых этот результать может не устроить из-за того, что вьюзы нагружает сайт. Да и лишний код, как всегда, не потворствует SEO оптимизации.
Настройка Denwer-а для мультисайтинга
Например есть мультисайтовая установка друпала:
home/
drupal/
www/
sites/
site1.ru/
site2.ru/
Чтобы научить денвер при открытии site1.ru и site2.ru использовать файлы изhome/drupal/www, нужно в самое начало home/drupal/www/.htaccess добавить:
#dnwr_host site1.ru site2.ru
И перезагрузить денвер.
воскресенье, 9 октября 2011 г.
Баг в модуле Auto Assign Role 6.x-1.2
Суть бага:
При связке с Content Profile невозможно приаттачить поля из дополнительного профиля к форме регистрации.
Симптомы:
Когда создаем в модуле Auto Assign Role альтернативную форму регистрации для определенной роли (назначив ей путь), и пытаемся поставить галочку Use on Auto Assign Role paths в настройках соответствующего профиля в Content Profile, ничего не сохраняется. Как следствие - дополнительные поля из Content Profile не отображаются в альтернативной форме регистрации.
Описание бага:
Модуль Content Profile использует хук hook_content_profile_settings() для того, чтобы сторонние модули могли расширить настройки профиля. Причина бага кроется в неправильной реализации хука в модуле Auto Assign Role.
четверг, 6 октября 2011 г.
Шпаргалка по хукам для drupal 6
Здесь собраны и описаны основные хуки для внедрения в модули Drupal версии 6.x.
понедельник, 2 мая 2011 г.
понедельник, 13 декабря 2010 г.
Сниппеты
- Taxonomy и views: "разные" виды для разных словарей
- Views? А зачем?
- [Решено] Зеленый способ вывода информации о node
- Администрирование сайта
- Анонимус или нет?
- Внешние ссылки в новом окне, средствами Друпала и jQuery.
- Вывести развернутое содержание книг в модуле Book в Друпал 6
- Вывод последних нодов в модуле Taxonomy List
- Вывод списка модулем views в блоке, с учётом термина. Сниппет
- Выводим количество новых материалов разных типов за сутки (месяц, год, столетие).
- Выводим термины документа в блоке
- Да я нуб, и непонятно почему фтп клиент не хочет удалять settings.php Обясните пожалуйста
- Делаем 2 последних слова анонса ссылкой на статью (А ля "Читать дальше...")
- Делаем блок с кодом для вставки аннотации статьи на другом сайте.
- Защита текста от copy-paste
- Ищу сниппет (php, sql) для удаления нод определенного вида
- Как вывести 10 последних нод определенного вида
- Как подгрузить AJAXом блок
- Курс валют
- Мелкие радости (сниппеты)
- Многостраничная форма
- Модернизация сниппета (для знатоков PHP+MySQL)
- Небольшой сниппет вместо модуля tagadelic (Облако тэгов)
- Новости в блоке
- Парочка самописных функций, которые могут оказаться полезными.
- Подскажите, как организовать разделы на сайте?
- Построение дерева терминов и отображение привязанного к ним материала
- Сводка публикаций (месяц, неделя, сутки)
- Снипет "Ответы мне"
- Снипет для вывода таксономии
- Снипет табов создания материалов
- Сниппет "Рейтинг тэгов"
- Сниппет "Список документов определенного термина" как сделать по алфавиту
- Сниппет: выводим все пункты подменю "Создать" в отдельном блоке
- Список по алфавиту без Views
- Список терминов определённого словаря с иерархией (+ количество документов)
- Страница с профилями пользователей с определенной ролью
- Функция для генерации меню primary_links
- Хитрый вывод последних новостей в новостной ленте
- как сделать top-новость раздела
- подскажите как вывести прямой линк редактору на табличку "содержание->состояние->не опубликовано"?
воскресенье, 12 декабря 2010 г.
Сборник полезных рецептов. Сниплеты.
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
Модуль галереи с поддержкой views2, lightbox2, token и, разумеется, таксономии. Модуль находится в альфе, но, на мой взгляд, имеет неплохие перспективы.
11. quant
Модуль аналитики, который позволяет вам смотреть, каковы были активные действия на сайте в течение определённого периода времени (сколько создано нод, оставлено комментариев и так далее). Модуль может быть расширен вами самостоятельно, так как имеет понятный API. Зависит от chart, описанного чуть выше.
суббота, 11 декабря 2010 г.
Темизация: добавление собственных регионов в макет главной страницы
Вначале статьи заметим, что этот материал имеет отношение только к темам, созданным на основе PHPTemplate (по умолчанию движок для тем в Drupal). Добиться отображения на главной странице сайта только нужных регионов можно несколькими способами.
Создание новой темы оформления для CMS Drupal – это легко!
Темизация макета, создание новой темы с нуля для сайта на Drupal не так сложно, как может показаться на первый взгляд. Тема оформления в CMS Drupal – это не более, чем просто стандартный html макет, содержащий немного PHP кода, добавленного в нужные места макета. Этот PHP код является стандартным и Вы можете просто скопировать его и вставить в нужное место Вашего макета.
Добавление «хлебных крошек» в макет материалов (node.tpl.php)
Если по какой-то причине, хлебные крошки вам не нужны, нигде кроме как в самых материалах, или в материалах только определенного типа, то Вы смело можете удалить из файла page.tpl.php строку:
Tagadelic: общее облако тегов для всех словарей
Модуль Tagadelic позволяет создавать отдельное облако тегов для каждого словаря таксономии. Но иногда возникает задача, например на главной странице сайта, вывести общее облако тегов, которое бы объединяло термины из всех существующих словарей (или только из нескольких).
Отдельный файл page.tpl.php для каждого типа материала
Основной файл любой темы оформления – это page.tpl.php. Именно в нем размещается макет сайта, общая структура, которая отображается на всех страницах сайта.