Предлагаю решение

Обновление сайта Drupal с 6 до 7 на мультисайтинге

4 июля 2011 в 18:08

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

Drupal + КЛАДР

3 июля 2011 в 18:08

Всем привет,

была нужда сделать в таксономии базу всех регионов и городов.

Взял Классификатор адресов России (КЛАДР) здесь и сделал.

Выглядит примерно так - [img]

Использование:

  1. Устанавливаем
  2. Выбираем куда заливать /admin/settings/kladr
  3. Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз

Если решили заливать в другой vocablary:

  1. Создаем или Выбираем куда заливать /admin/settings/kladr
  2. Нажимаем кнопку "Начать загрузку сначала"
  3. Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз

Теперь подробнее:

  • Требуется "extension=dbase.so"
  • Вставляет два уровня терминов, первый - level1 из KLADR.DBF, второй населенные пункты от туда же.
  • Использует Batch API (Загрузку базы можно прерывать)

Версия 0.1
Возможны планы развития: интеграция с http://drupal.org/project/location , http://drupal.org/project/addresses и т.п.

Ну, и как обычно, disclaimer, используйте только на Ваш страх и риск.

Убираем вывод блока дополнительных картинок из uc_product, если он пустой

3 июля 2011 в 4:42

Возникла в проекте необходимость не выводить через модуль ubercart product (uc_product.module) открывающий и закрывающий блоки <div class="more-product-images"> дополнительные картинки здесь </div> на конечную страницу при отсутствии в этом блоке картинок. Блок темизирован и без картинок получается не в тему.

Постил запрос о решении на drupal.org, но там все на морозе - не ответили. Пришлось думать самому. Т.к. PHP я только начал осваивать придумал только приведённое ниже решение, наверное не элегантно и говнокод страшный, но по-другому пока не умею. Буду благодарен за подсказки если где накосячил, ну и для развития.

+ была необходимость засунуть clearfix, тоже там есть.

<?phpfunction theme_uc_product_image($variables) {
  static $rel_count = 0;
  $images = $variables['images'];

  // Get the current product image widget.
  $image_widget = uc_product_get_image_widget();

  $first = array_shift($images);

  $output = '<div class="product-image"><div class="main-product-image">';
  $output .= '<a href="' . image_style_url('uc_product_full', $first['uri']) . '" title="' . $first['title'] . '"';
  if ($image_widget) {
    $image_widget_func = $image_widget['callback'];
    $output .= $image_widget_func($rel_count);
  }
  $output .= '>';
  $output .= theme('image_style', array(
    'style_name' => 'uc_product',
    'path' => $first['uri'],
    'alt' => $first['alt'],
    'title' => $first['title'],
  ));
  $output .= '</a></div>';
  foreach ($images as $thumbnail) {?>

Stack Exchange сделал подраздерение для Друпал

1 июля 2011 в 15:12

Для тех кто знает английский или умеет пользоваться переводчиком наверняка будет интересен http://drupal.stackexchange.com/ — это один из подразделений сайта, на котором собираются друпалмонстры.

Тут можно задать вопрос и получить в морду ответ. Естественно вопросы не типа "белый экран. помогите! аа!!".

Все в лучших жанрах кармы.

Главная страница исключена из индекса

30 июня 2011 в 23:26

Сайт на друпал 7. В настройках главная страница '/node/1', страница имеет алиас '/main'. На главной ('/') и '/node/1' в башке появляются ссылки на страницу '/main', т.к. он считается основным документом (каноническим):

Результат в яндексе "Внимание! Главная страница сайта исключена из индекса: Документ не является каноническим." - помечено красным, наверно это не очень хорошо.
Исправляем заменой '/main' на '/' через hook_html_head_alter:


<?php
function mythemename_html_head_alter(&$head_elements) {
  
$fronturl url(variable_get('site_frontpage'));

  foreach (

$head_elements as &$element) {
    if (isset(
$element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical' && $element['#attributes']['href'] == $fronturl) {
      
$element['#attributes']["href"] = url();
    } 
  }
}
?>

Обратиться напрямую к элементу с сcылкой ($head_elements["drupal_add_html_head_link:canonical:;"]) не получается (М.б. кто знает почему?), отсюда цикл.

[РЕШЕНО] Рецепт по созданию Календаря с заданиями. Или Views Calendar что где когда (OR, AND, WHERE)

29 июня 2011 в 13:27

Привет всем!
Изначально вопрос был такой:
Как сделать в Вьювс фильтрацию, чтобы выводились документы при совпадении одного из условий?

Например Вывести ноду, где указан юзер через юзерреференс или роль через ролереференс. Как сделать ИЛИ? а то у меня в выводе получается И, если добавить в фильтр юзера и роль

Но с его решением я закончил важную часть проекта и решил поделиться решением
----------------------------------------------
Задача: Сделать задания с периодом действия, чтобы эти задания отображались в календаре. Задания даются определенным пользователям или группам пользователей. Соответственно видят Задания только те люди, которым они предназначены.

Приступим.

Ставим модули CCK, Rolereference, Views, Calendar.
В поставку cck входит модуль userreference, для выбора пользователя, а rolereference будет служить для выбора группы.

Создаем тип материала "Задание", создаем поля для этого типа: "Дата"(field_date с настройками От и До, то есть дата начала и дата окончания) "Кому задание" (поле Ссылка на пользователя) и "Группа" (ссылка на роли).

Создаем роли, допустим филиалы Москвы, Курска, Воронежа.

Создаем несколько тестовых заданий, чтобы видеть результаты нашей работы.

Теперь идем в "Views", настраиваем календарь. Вот тут я секас делал очень долго.

Значит в Аргументах удаляем все нафик.
В полях добавляем отдельно срок ОТ, срок ДО. В фильтрах тоже.
В фильтре:

Группа по умолчанию
Оператор группы: И
Материал: Опубликовано Да
Содержимое: Срок (field_date) - Дата начала Содержимое: Срок (field_date) - Дата начала >=

Проблема с аватарками

28 июня 2011 в 12:58

Здравствуйте!
Столкнулся следующей проблемой:
Установил себе Advanced Forum, Imagecache Profiles и Author Pane, НО не работает масштабирование изображения, хотя презеты созданы и активированы. В профиле не работает, масштабирование, и на форуме: картинки перекрывают часть материала, вылазят за рамки. А когда Author Pane подключил, то картинки перестали отображаться вовсе, и имеют такой интересный путь: /sites/default/files/styles/forum_avatar/public//sites/default/files/pictures/no-avatar.jpg

UPD: Кэш обновлял, не помогает. Сайт находиться не на сервере, а на моём компьютере.


Решение:

Проблему с неотображением решил благодаря: drupal.org/node/1086254, но масштабирование по прежнему не работало.

А масштабирование не работало только для картинки по умолчанию, т. е. если вы смените картинку всё буде нормально, однако ещё можно почитать здесь: www.drupal.ru/node/56649

Тема Blogsmith для Drupal 6

25 июня 2011 в 2:47

Blogsmith - простая и удобная тема для Drupal 6 в зеленых тонах. Если используете FCKeditor, то в его настройках CSS нужно выбрать define.css дабы избежать косяков с фоном в поле редактирования ноды.

- Две колонки
- Оптимизированная для SEO
- Простая и легкая в редактировании тема

Модуль ссtags под Друпал 7

21 июня 2011 в 16:59

cctags

На днях перевел свой модуль cctags с шестой версии на седьмую.
Сctags – это альтернатива широко известного модуля tagedelic. Т.е. модуль формирует блок и/или страницу облака тэгов таксономии с атрибутом (классом) зависящим от частоты употребления данного термина в опубликованных нодах.
В чем преимущество данного модуля перед tagedelic.

Tagedelic – формирует ровно столько блоков (и страниц) сколько определено словарей в вашей системе причем не позволяет смешивать словари, т.е. один словарь – одно облако.
В модуле Cctags мы имеем:
Гибкие настройки и расширенные возможности по темизации вывода облака (отдельные файлы шаблонов для тэгов, названия словаря, страницы облака).
Возможность (через настройки включать несколько словарей (а для словарей с древовидной структурой - кроме этого включать/выключать нужный уровень)) вывода тэгов.
Автоматическая генерация нужного количества блоков и/или страниц.
Помимо этого вы можете сформировать практически одинаковые по содержанию блоки и разместить их в разных регионах для разных страниц сайта.

Концепция модуля Cctags основана на понятии элемента cctags.
Элемент cctags – это совокупность настроек для отображения одного блока и/или страницы терминов.
Вы можете добавить необходимое количество элементов и настроить каждый из них отдельно, причем разные элементы могут содержать один и тот же словарь или словари в любой комбинации.