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

Fusion chart не грузит флеш

25 августа 2010 в 23:40

Нашел вчера модуль . Он интегрирует Fusion Charts в drupal (2d и 3D Flash диаграммы).
Скачал с официального сайта само ядро, распаковал как в readme.
В отчете о состоянии "The FusionCharts SWF files found.". Как я понял, все нашлось.

Но демо не работает. Chrome говорит "ролик не загружен", хотя поле для flash появляется.

AHAH: Несколько селектов, валидация и кэш форм [Решено]

20 июля 2010 в 21:00

У меня есть несколько селектов на форме. Иерархически значения в них меняются.
После отправки получаю следующее сообщение:
"Сделан недопустимый выбор. Пожалуйста, обратитесь к администратору сайта."
Насколько я понял, это сообщение выдается функцей здесь http://api.drupal.org/api/function/_form_validate/6

После двух дней испытаний друпала на прочность пришел к следующим выводам:
-эта валидация встроенна;
-ошибка возникает потому, что изначально выбранного элемента в селекте нет, а затем он появляется, становится выбранным и пытается отправить значение в хук _submit;
-нужно как-то перестраивать форму во время работы ahah-коллбека (вносить в кеш, выносить из него), а именно изменять '#options';
Если не прав, пожалуйста, поправьте.

Имеется следующий код (AHAH-коллбек):

function get_model_serials ()
{

        //Участок кода для правильной обрабоки формы
        $form_state = array('storage' => NULL, 'submitted' => FALSE);
        $form_build_id = $_POST['form_build_id'];
        $form = form_get_cache($form_build_id, $form_state);
        $args = $form['#parameters'];

        $form_id = array_shift($args);
        $form['#post'] = $_POST;
        $form['#redirect'] = FALSE;
        $form['#programmed'] = FALSE;
        $form_state['post'] = $_POST;
        $form = form_builder($form_id, $form, $form_state);

        $outf = fopen ("out.txt","w");
    fprintf ($outf, serialize ($form));
    fclose ($outf);

        $selectednid = $form_state['values']['model_items'];
        if ($selectednid)
        {
                $result = db_query ("SELECT * FROM {leasing_base} WHERE id_catalog=%d" ,$selectednid);

[Решено] Снова AHAH: лишний и неправильный возвращенный код

13 июля 2010 в 8:50

Пишу модуль. Есть три select'а. Каждый следующий должен зависеть от предыдущего. Применил свои познания в AHAH, получил следующее. Если сразу после загрузки страницы производить действия со вторым select'ом, то на нем висит событие ('change'). После того, как изменено значение в первом select'е, значения во втором изменяются и событие со второго пропадает!
После просмотра изменения кода заметил, что элементы меняются (drupal_get_form - генерит всю форму нормально, а возвращено функцией-обработчиком другое).
А именно до изменения:

<div class="form-item" id="edit-model-items-wrapper">
 <label for="edit-model-items">Модель: </label>
 <select name="model_items" class="form-select" id="edit-model-items" >
<option value="1">Выберите тип в пункте выше</option>
<option value="2">Выберите тип в пункте выше</option></select>
 <div class="description">Выберите модель из каталога. В скобках указано количество имеющихся экземпляров данной модели.</div>
</div>

После возврата функцией

<div class="form-item" id="edit-model-items-wrapper"><div><div class="form-item">
 <label>Модель: </label>
 <select name="" class="form-select ahah-processed" id="edit-model-items"><optgroup label="Выберите производителя"><option value="2">Хитачи пила 1 (1)</option><option value="3">Пила 2 (2)</option></optgroup></select>
 <div class="description">Выберите модель из каталога. В скобках указано количество имеющихся экземпляров данной модели.</div>
</div>
</div></div>

Связанные (иерархические) списки [Решено]

8 июля 2010 в 18:25

Пишу модуль. 3 селекта, первый выводит из словаря термины, второй по термину список нод, третий по ноде - еще один селект, по изменению последнего селекта меняется поле в форме (цена).

С AHAH вроде работать научился. Проблема вот в чем. Когда в первом селекте меняю значения, после этого меняются значения во втором селекте и событие по изменению значения во втором (влияние второго на третий) перестает срабатывать. Если еще пока замена не произведена (поставил заглушку и два варианта выбора) - все нормально (происходит срабатывание).
В чем может быть проблема?

Datepicker jquery собственный модуль [Решено]

5 июля 2010 в 11:47

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

Библиотеки подключил функцией drupal_add_js () вот так:

drupal_add_js (drupal_get_path ('module','leasing')."/js/jquery.ui.core.js");
drupal_add_js (drupal_get_path ('module','leasing')."/js/jquery.ui.datepicker.js");

Далее, как я понял, нужно изменить id textfielda. Вот так

$form['leasing_reserve']['start_date'] = array
(
        '#type' => 'textfield',
        '#title' => 'Дата начала бронирования',
        '#size' => 10,
        //'#element_validate' => array ('price_validate'),
        '#description' => 'Когда Вы планируете взять инструмент?',
        '#attributes' => array ('id' => 'datepicker')
);

не работает.

И еще, нужно включить неизвестный js-код в саму страницу. (Зачем текстом? Нельзя файлом? Где и как это правильно сделать? Пожалуйста, поясните, что этот код делает.)

Заранее всем спасибо!

PS. Можно и ссылку... но я искал...