О блогеКонтакты
 

Перенаправление пользователя при входе на сайт из блока.

CMS Drupal

Как обычно делаю сайт на Drupal и возникла вот такая задача: если пользователь не заполнил свою анкету, то при входе на сайт он должен перенаправляться на страницу с формой анкеты.

Сначала решил воспользоваться инструкцией, которая как раз, вроде, должна решать поставленную задачу: http://drupal.org/node/683696 Т.е. с помощью модуля trigger. Но почему-то перенаправления все никак не происходило. Порывшись на том же сайте нашел, что редирект происходит, если логиниться не из блока, а со страницы /user. Но мне-то надо из блока.

Новый дизайн

CMS Drupal

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

Пока верстал столкнулся с одной проблемой. Ни в какую нижняя картинка для блока не хотела прижиматься к краю таблицы. Оказывается "дожать" ее можно при помощи style="display:block;". Тогда она прижимается к краю таблицы вплотную.

Скрытие полей CCK по условию.

CMS Drupal

Описание проблемы.
На сайте размещается информация о местах отдыха. У каждого места отдыха указывается регион и контактаная информация. Контактная инфорация скрыта для всех пользователей. Есть пользователи с ролью "Представитель", которые отвечают за тот или иной регион. Необходимо, чтобы эти представители видели контактную информацию тех мест отдыха, которые относятся к их регионам.

Решение.

Передача данных из формы Drupal в кодировке отличной от UTF8

CMS Drupal

Понадобилось, при подключении сайта на Drupal к платежной системе ASSIST передавать данные в кодировке cp1251. Передавал фамилию и имя.
Первым делом нужно было сделать передачу данных на внешний URL:
$form['#action'] = "https://test.assist.ru/shops/cardpayment.cfm";
Логично было предположить, что написав:
$form['#accept-charset'] = "Windows-1251";
я получу форму с виндовой кодировкой. Но не тут то было. Оказывается в Drupal-е UTF8 в формах зашито напрочь:

function theme_form($element) {
  // Anonymous div to satisfy XHTML compliance.

Создание на Drupal портфолио без дополнительных модулей

CMS Drupal

Решил сделать сайт веб-студии для того, чтобы показать свои работы (портфолио). При чем поставил задачу сделать все с использованием минимума сторонних модулей. Раздел с портфолио можно было бы конечно легко сделать с помощью модуля views, но я решил данную задачу средствами ядра.
Задача такая: надо чтобы на странице со список работ выводились небольшие картинки с названиями сайтов. Вывод списка надо сделать в виде таблицы с 3-мя работами в ряд. И, естественно, кликнув на картинку или название попадаем на развернутое описание работы.

Блок с количеством пользователей с группировкой по ролям

CMS Drupal

Может плохо искал, но ничего готового не нашел по данной теме. Сначала решил воспользоваться модулем views, т.к. он уже использовался в моем проекте, но данный модуль пока не умеет делать группировки. Нашел модуль views_groupby, который как видно из названия является дополнением к модулю views и добавляет одну группировочную функцию count(), которая мне то и нужна. Но. То ли модуль этот не доделанный, то ли у меня руки кривые, но никак не захотел он у меня делать группировку по ролям.

Использование модуля HS в Exposed filter без записей в term_node

CMS Drupal

В одном из проектов я ввел словать с регионами и использовал этот словарь в двух типах материалов: "Место отдыха" и "Организация". Для ввода регионов я использовал модуль hierarchical_select (HS), т.к. регионы выбирались с привязкой к фед. округам. В этом модуле можно в настройках задать опцию - записывать ли регионы в таблицу term_node (т.е. воспринимать этот словарь как обычную таксономию с выводом материалов по ссылкам типа taxonomy/term/1) или же воспринимать этот словарь лишь как справочник, без записей в эту таблицу.

Средний рейтинг по tag модуля fivestar

CMS Drupal

В модуле друпала fivestar можно сделать голосование по различным критериям (tags). Это делается стандартными средствами модуля, поэтому как именно это делается разобраться труда не составляет. А вот при выводе результатов с помощью views могут возникнуть вопросы.
Создать view с рейтингом только по одному критерию тоже можно стандартными средствами, а вот вывести рейтинг не по одному критерию, а в зависимости от суммы всех критериев, уже не так просто. Во всяком случае как это делается без дополнительного программирования не смог найти. Поэтому в своем модуле пришлось добавить хук:

Модуль uc_aac искажает дизайн в IE

CMS Drupal

Столкнулся с тем, что модуль для уберкарта uc_aac немного каверкал дизайн страницы в IE. В FF все было нормально, а именно в эксплорере страница с товаром сдвигалась вправо и картинка товара наполовину скрывалась. При чем стоило просто в браузере открыть окно свойств картинки товара, то все становилось на свои места. Не сразу дошло что это именно uc_aac с его ява скриптом, который устанавливает цену товара в зависимости от свойства. Проблема вот в этой строке (uc_aac.js):

$(node).find('.' + i).after(replacement).remove();

Drupal batch_set и загрузка больших файлов

CMS Drupal

Пришлось на днях подправлять модуль Stock & Price CSV Updater для загрузки csv файлов. Загрузка использует в качестве параметра для сравнения товаров - SKU. И первое, что насторожило - это определение в запросах SKU как число. Т.е. например:

db_query("UPDATE {uc_product_stock} SET stock = %d WHERE sku = %d", $stock_level, $ref);

Но в моем случае артикулы были с буквами, поэтому переделал sku = %d на sku = %s.