Блог пользователя - vectoroc

vectoroc Втр, 05/07/2011 - 06:37

Ищется программист drupal. СПб

Ищется в офис на полный рабочий день на проект (что-то вроде рекламной сети, дательнее здесь http://followfirefly.com).
Офис расположен недалеко от станции метро Петроградская (проспект Медиков 5).
Режим работы 11 - 19

Требования: как минимум уверенное владение php/js/mysql.
Желательно: умение разрабатывать модули под D6.

Нужен не человек, который умеет собирать из готовых модулей сайты, а именно программист.
Предполагаемый уровень зп: 30-50

Ключевые слова: 
Версия Drupal: 
0 Спасибо

vectoroc Втр, 26/04/2011 - 16:37

Настройка поиска на сайте

поиск - сложная штука

Тип материала: 
Версия Drupal: 
0 Спасибо

vectoroc Чт, 27/01/2011 - 10:02

модуль "график работы"

Есть ли на друпал модуль, который предоставляет cck поле график работы, где можно выбрать дни недели и часы работы?

Тип материала: 
Версия Drupal: 
0 Спасибо

vectoroc Пнд, 14/12/2009 - 06:53

Multistep From

Много раз задавался вопросом – почему никто не сделал модуль для облегчения создания multistep форм или wizard-ов?
И вот решил-таки написать что-нибудь сам.
Прикладываю архив с модулем. Там же есть пример использования.

Бонусы, которые предоставляет модуль:

  • возможность указать callback для получения формы на каждом шаге
  • отдельный form_submit и form_validate для каждого шага
  • своего рода breadcrumb, отображающий процесс прохождения по этапам wizard-а

Что скажешь по этому поводу, %username%?
Считает ли кто-нибудь такой модуль полезным?

Ключевые слова: 
0 Спасибо

vectoroc Чт, 26/11/2009 - 03:36

косяк на api.drupal.ru

Уже несколько дней страница http://api.drupal.ru/api/file/developer/topics/forms_api_reference.html/6 грузится очень долго и отображается с здоровенным сообщением об ошибке

0 Спасибо

vectoroc Ср, 09/09/2009 - 11:23

Сломалась таблица menu_links. Кто виноват, и что делать?

Недавно по неизвестным мне причинам сайт перестал работать с сообщением out of memory
Естественно любой друпаллер скажет "памяти добавь, ты что не знаешь, как прожорлив друпал?", но я начал разбираться.

Выяснилось, что выпадает в функции _menu_tree_data. При этом до вызова этой функции потребление памяти 14М, а из функции уже вываливается с нехваткой памяти (~32M).
В _menu_tree_data берутся данные из menu_links, полез смотреть эту таблицу и выяснил, что каждый link_path этой таблице повторяется 10 раз. 1 выглядит наиболее вменяемо, а остальные неправильные, на мой взгляд.

Вот пример записи:

 
admin/build/block/configure    2  17  25  64  0  0  0  0  0  0
admin/build/block/configure    476  0  0  0  0  0  0  0  0  0

Слева links_path, далее идут числа p1/2/3/... p1 - id первого участка меню (т.е. admin/build/block/configure ), далее id для admin/build/block/configure и т.д..
Из 10 копий каждого пункта меню только у первого правильные значения для pN, у остальных p1 > 400 , а p2/3+.. = 0.

В итоге сделал дамп таблицы (в атаче) и truncate. Это помогло, но надолго ли?
Кто-нибудь сталкивался с таким?

Ключевые слова: 
Версия Drupal: 
0 Спасибо

vectoroc Пнд, 07/09/2009 - 17:56

Поддержка русских словоформ в format_plural

Искал, уже решил накатать патч в ядро (и накатал...), но тов. Ilya_1st подсказал, что этот вопрос решается через трансляции в .po файле.

В начале .po файла должны быть строки

"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?"
"(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));"

Далее

msgid "Bulk generation of index aliases completed, one alias generated."
msgid_plural ""
"Bulk generation of index aliases completed, @count aliases generated."
msgstr[0] ""
"Массовое обновление индекса синонимов завершено, @count синоним сгенерирован."
msgstr[1] ""
"Массовое обновление индекса синонимов завершено, @count синонима "
"сгенерировано."
msgstr[2] ""
"Массовое обновление индекса синонимов завершено, @count[2] синонимов "
"сгенерировано."

Пример из pathauto/translations/ru.po

Ключевые слова: 
Версия Drupal: 
0 Спасибо

vectoroc Пт, 17/07/2009 - 18:26

[РЕШЕНО] Программная обработка imagefield полей

Пытаюсь в form_submit сделать создание нод, в которых есть imagefield поле.

<?php
$file 
file_save_upload('photo');
$node = new stdClass;
$node->type 'photo';
$node->title $file->filename;
$node->field_photo[] = (array)$file;
$node->field_gallery[] = array('nid' => $gallery);
node_save($node);
?>

Код работает, но никакие валидаторы и обработчики imagefield не запускаются.
У меня есть 2 мысли, как эту проблему можно решить:

  1. Получить форму создания такой ноды и программно ее обработать.
  2. Найти какой-нибудь imagefield/filefield/cck api, через который можно запустить обработку загруженного файла, валидацию

По 1-му варианту не знаю как создать такую форму. Из страницы node/add/photo вытащил form_id photo_node_form, но drupal_get_form не принимает этот id.
По второму ищу, но пока ничего не нашел.

Подытожив, задействовал и п.1, и п.2.

<?php
    $node 
= new stdClass;
    
$node->type 'photo';
    
    
$tmp_form_state = array();
    
$tmp_form = array('#node' => $node);
    
    
$field content_fields('field_photo''photo');
    
module_load_include('inc''content''includes/content.node_form');
    
$element content_field_form($tmp_form$tmp_form_state$field);
    
$photo_fid filefield_save_upload($element['field_photo'][0]);
    
    
module_load_include('inc''node''node.pages');
    
$photo_state = array();
    
$photo_state['values'] = array(
        
'body' => 'description',
        
'title' => 'title',
        
'op' => t('Save'),
    );
    
$photo_state['values']['field_gallery'][0]['nid'] = $gallery->nid;?>
Модули и темы: 
0 Спасибо

vectoroc Втр, 05/05/2009 - 14:14

CCK и hook_form_alter

Задача: надо скрыть от глаз пользователя поле cck (заполняется с помощью js перед отправкой)

Долго ломал голову, пробовал разные способы. В итоге пришел к такому варианту:

function _hidde_field(&$element)
{
        $name = $element['#field_name'] . "[0][value]";
        $id = 'edit-' . str_replace('_', '-', $element['#field_name']) . '-0-value';
        $default_value = check_plain($element[0]['#default_value']['value']);
        $element[0]['#prefix'] = <<<PREFIX
                <input type="hidden" name="$name" id="$id" value="$default_value" />
                <!--
PREFIX;
        $element[0]['#suffix'] = "\n            -->\n";
}

и из hook_form_alter применяю эту функцию к нужным элементам.
В моем случае все это работает правильно, но больше похоже на костыль, чем на правильное решение.
Хотелось бы узнать, как такое правильно делать (что-то вроде [#type]=hidden).

Модули и темы: 
Ключевые слова: 
Версия Drupal: 
0 Спасибо