Блог музицирующего веб-девелопера

Syndicate content
Обновлено: 1 дн 9 ч назад

Drupal: Вывести на одной карте несколько точек по данным из Geolocation Field

2012.05.15 — 17:35

Пример, как с помощью OpenLayers и Views можно вывести на одной карте несколько точек из Geolocation Field.

Необходимые модули: Geolocation Field, OpenLayers, OpenLayers UI, OpenLayers Views, Views, Views UI.

1. Добавляем представление с именем My Map по нужному типу контента (у меня это Place), без сортировки и без дисплеев:

Форма создания представления

Читать дальше →

Похожие записи:


Drupal: Курс видео уроков по основам Drupal 7 на русском языке

2012.05.14 — 15:33

Видео уроки по основам Drupal 7 — podrupalim.com. Все уроки на русском. Записано достаточно грамотно. Советую к просмотру.

На этом сайте вы найдете статьи и видео по изучению Друпал 7 и выше (в будущем) как для начинающих, так и для продвинутых пользователей. Идея сайта - создать библиотеку знаний по Друпал на русском языке от самых азов до серьезных проектов, таких как: интернет-магазины и порталы для корпораций/СМИ.

Комментарии

Похожие записи:


Drupal: Модуль Domain Access — несколько связанных сайтов на одной установке Drupal

2012.05.11 — 14:38
Описание

Domain Access это набор модулей, позволяющих создать нескольких связанных сайтов (affiliated sites) на одной установке друпала с одной общей БД.

Например можно создать по сайту на каждое представительство вашей фирмы:

  • moscow.myfirm.ru
  • spb.myfirm.ru
  • kirov.myfirm.ru

которые будут иметь общие настройки (тема, пользователи, блоки, вьюсы и т.д.), но разный контент.

Читать дальше →

Похожие записи:


Drupal: Подкаст о Drupal — 9 лет в России, достижения и перспективы

2012.05.10 — 10:35

Артем Паньков в гостях у WebProfessionals.ru:

— место Drupal на рынке веб-разработки
— особенности русскоязычного сообщества
— доля Drupal среди других CMS
— квалификация Drupal разработчиков
— бюджеты на разработку и зарплаты разработчиков
— примеры крупных и удачных проектов на Drupal
— Drupal на IIS и Asure
— где искать Drupal разработчиков
— Ubercart и Commerce

Читать дальше →

Похожие записи:


Drupal: Небольшой твик интерфейса CKEditor

2012.05.06 — 02:51

Небольшой CSS твик интерфейса CKEditor:

.text-format-wrapper { position: relative; }   .text-format-wrapper .ckeditor_links { position: absolute; top: 10px; right: 2px; }   .text-format-wrapper .cke_skin_kama { border-bottom: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 0; }   .text-format-wrapper .cke_top, .text-format-wrapper .cke_bottom { border: 0; }

Читать дальше →

Похожие записи:


Drupal: Поиск с помощью Views

2012.05.05 — 02:58

Стандартный поиск достаточно уныл и плохо поддаётся изменению. Немного скрашивает ситуацию модуль Custom Search, но например изменить количество результатов на страницу не способен даже он.

Выход — оставить модулю Search функцию индексирования, а поиск по индексу и вывод результатов возложить на Views:

  1. Создаём представление по содержимому.
  2. Добавляем дисплей Page.
  3. Меняем путь страницы на search2, чтобы не было конфликтов с модулем Search.
  4. Добавляем раскрытый фильтр по Search: Search Terms
  5. Удаляем сортировку по дате.

Читать дальше →

Похожие записи:


Drupal: Модуль Views UI Tabs — выводим контент в вкладках

2012.05.04 — 04:18
Описание

Модуль Views UI Tabs это style plugin для Views 3, позволяющий выводить контент в вкладках, используя для этого jQuery UI Tabs:

jQuery UI Tabs

Модуль можно использовать например для создания контент-слайдера как на сайте ntv.ru:

Контент-слайдер

Читать дальше →

Похожие записи:


Drupal: Вышел Drupal 7.14

2012.05.03 — 03:39

Основные изменения:

  • Закрыта уязвимость в модуле Filter, позволяющая вызвать отказ в обслуживании.
  • Закрыта уязвимость в модуле Forum, позволяющая смотреть неопубликованные посты.
  • Закрыта уязвимость в модуле Image, позволяющая просматривать приватные картинки.
  • #states теперь поддерживает OR и XOR.
  • Javascript виджет автоматического создания machine-name теперь появляется при вводе любых символов (в том числе и кириллицы).
  • Исправлена ошибка, появляющаяся в модуле Search, при обновлении PCRE до версии 8.30.
  • Многочисленные улучшения производительности Javascript.
  • При назначении блоку региона с помощью select, блок перемещается в самый низ.
  • При удалении юзера удаляется и его картинка.

Читать дальше →

Похожие записи:


Drupal: Модуль Field validation — продвинутая валидация полей

2012.04.29 — 02:35
Описание

Модуль Field validation позволяет из админки навешивать на поля произвольное количество собственных правил валидации.

Из коробки доступно:

  • Проверка на соответствие регулярному выражению.
  • Является ли значение числом и соответствует ли оно определённому интервалу (опционально).
  • Проверка на длину.
  • Проверка на количество слов.
  • Проверка на присутствие HTML тегов.
  • Проверка на присутствие слов из чёрного списка.
  • Проверка на количество выбранных значений.
  • Проверка на уникальность.
  • Проверка на соответствие другим полям и свойствам.
  • Проверка на соответствие определённым значениям.

Читать дальше →

Похожие записи:


Drupal: Программно вывести термины словаря в виде дерева с подсчётом количества материалов

2012.04.28 — 03:04

Ранее писал, как программно вывести термины словаря с подсчётом количества материалов и как программно вывести термины словаря в виде дерева. Теперь очередь объединить эти два способа и программно вывести термины словаря в виде дерева с подсчётом количества материалов:

Термины словаря в виде дерева

Код:

/** * Return rendered taxonomy tree */ function mymodule_taxonomy_tree($vid) { $terms = db_query(" SELECT td.tid, td.name, th.parent, ( SELECT COUNT(*) FROM {taxonomy_index} ti LEFT JOIN {node} n ON ti.nid = n.nid WHERE ti.tid = td.tid AND n.status = 1 ) node_count FROM {taxonomy_term_data} td

Читать дальше →

Похожие записи:


Drupal: Тонкая настройка прав материалов с помощью hook_node_access()

2012.04.27 — 01:14

Хук hook_node_access() предназначен для тонкой настройки прав пользователей при работе с материалами. Например с помощью него можно дать одному из пользователей права на редактирование определённого типа материалов (в то время, как другие пользователи такого права не имеют):

function mymodule_node_access($node, $op, $account) { $type = is_string($node) ? $node : $node->type; if ($type == 'page' && $op == 'update' && $account->uid == 123) { return NODE_ACCESS_ALLOW; } }

Читать дальше →

Похожие записи:


Drupal: Parser 2 и инлайновые картинки в body

2012.04.23 — 23:28

В последнем коммите Parser 2 появилась функция parser_download_images(), которая на вход принимает html код, находит в этом коде картинки (теги img), выкачивает найденные картинки на локальный сервер, исправляет src картинок и возвращает изменённый html.

Пользоваться так — в поле пост-обработка сущности пишем:

$entity->body['und'][0]['value'] = parser_download_images( $entity->body['und'][0]['value'], $page_url, 'public://images', $context['results'] );

Экспорт изменённого дефолтного задания.

Комментарии

Похожие записи:


Drupal: Как программно создать пользователя

2012.04.17 — 17:23

Пример программного создания пользователя с именем Username:

user_save(NULL, array( 'name' => 'Username', 'pass' => 'password', 'mail' => 'email@example.com', 'init' => 'email@example.com', 'status' => 1, 'roles' => array(DRUPAL_AUTHENTICATED_RID => TRUE), ));

Комментарии

Похожие записи:


Drupal: Использование hook_update_N()

2012.04.16 — 14:13

Хук hook_update_N() производит единоразовое выполнение кода, необходимое для обновления модуля на более новую версию.

В основном в этом хуке изменяют схему бд, но ничто не мешает выполнить в нём любой другой код.

N в имени функции должно быть четырёхзначным числом, сформированным по следующему правилу:

  • Первая цифра — номер мажорной версии Drupal. Например для Drupal 6.x это будет цифра 6, для Drupal 7.x соответственно цифра 7

Читать дальше →

Похожие записи:


Drupal: Уведомление пользователя об удалении его материала с указанием причины

2012.04.11 — 02:22

Задача — при удалении материала, указать причину удаления и уведомить об этом автора.

Решение:

/** * Implements hook_form_FORM_ID_alter() */ function mymodule_form_node_delete_confirm_alter(&$form) { $form['reason'] = array( '#type' => 'textfield', '#title' => 'Причина удаления', );   array_unshift($form['#submit'], 'mymodule_form_node_delete_confirm_submit'); }   /** * Custom submit callback for node_delete_confirm form */ function mymodule_form_node_delete_confirm_submit($form, &$form_state) { if ($form_state['values']['confirm']) { $node_author = user_load($form['#node']->uid); drupal_mail('system', 'mail', $node_author->mail, language_default(), array( 'context' => array(

Читать дальше →

Похожие записи:


Drupal: Модуль Commentsblock — перемещаем комментарии в блок

2012.04.09 — 05:04
Описание

Модуль Commentsblock позволяет вывести в отдельном блоке комментарии и форму добавления комментариев.

Такой функционал нужен, например, если охота вывести между нодой и комментариями какой-то контент.

Читать дальше →

Похожие записи:


Drupal: Как получить размер файла по его URL

2012.04.06 — 22:22

Ф-я, которая получает размер удалённого (находящегося на другом сервере) файла, не скачивая его на сервер:

function get_remote_filesize($url) { $result = drupal_http_request($url, array('method' => 'HEAD')); if (empty($result->error) && isset($result->headers['content-length'])) { return $result->headers['content-length']; } }

Пример использования:

echo get_remote_filesize('http://img.yandex.net/i/www/logo.png') . ' bytes' // 3729 bytes

Комментарии

Похожие записи:


Drupal: Как с помощью AJAX обновить ВСЮ форму

2012.04.06 — 00:47

В ajax callback можно возвращать не только отдельные элементы, но и всю форму:

/** * Form builder */ function mymodule_test_form() { // ...   $form['#prefix'] = '<div id="test-form-wrapper">'; $form['#suffix'] = '</div>';   $form['refresh_button'] = array( '#type' => 'button', '#value' => 'Refresh', '#ajax' => array( 'callback' => 'mymodule_test_form_refresh', 'wrapper' => 'test-form-wrapper', ), );   return $form; }   /** * Ajax callback */ function mymodule_test_form_refresh($form, $form_state) { return $form; }

Комментарии

Похожие записи:


Drupal: Parser 2

2012.04.04 — 05:50

Допилил до более-менее рабочего состояния вторую версию парсера. Основные отличия:

  • Парсить можно в любые сущности, зарегистрированные на сайте — ноды, термины, пользователи, комментарии, товары и т.д.
  • Работа с сущностями ведётся с помощью Entity metadata wrappers.
  • Поддержка всех, доступных для записи, свойств сущности — автор, статус и т.п.
  • Все файлы, скачанные парсером, сохраняются в кэше (public://parser_cache) и при повторном парсинге берутся из него.

Модуль не совместим с первой версией, поэтому перед установкой анинсталим её, удаляем папку с модулем и устанавливаем вторую версию.

Читать дальше →

Похожие записи:


Drupal: Выводим ссылки на похожие материалы с помощью Views

2012.03.27 — 21:44

Я уже писал, как вывести ссылки на похожие материалы с помощью сниппета в template.php. Теперь покажу как тоже самое можно сделать с помощью Views 3:

1. Создаём представление по материалам, без сортировки и с дисплеем Block:

Читать дальше →

Похожие записи: