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

Rules. Условие создание ноды, содержащей термин таксономии.

14 октября 2011 в 19:28

Все привет!

Необходимо обрабатывать событие создания/изменения определенного типа содержимого, у которых термин таксономии имеет определенной значение.

Например, у меня есть тип содержимого "Животные" и есть связанный словарь таксономии со следующими значениями ("Домашние", "Дикие" ).
Нужно, чтобы при создании/редактировании материалов содержащих термин "Домашние" срабатывало определенно действие.

Это можно сделать с помощью Rules? Я нашел только условие срабатывания по типу материала.

Мерцает/Моргает поле при использовании AJAX

28 марта 2011 в 21:09

Добрый вечер!

Необходимо сделать проверку пароля на форме(стандартный элемент '#type' => 'password_confirm' не подходит).
Форма вывожу с помощью самописного модуля, пример взял здесь http://drupal.org/project/examples

Поле с паролем:

$form['password1'] = array(
      '#type' => 'password',
      '#title' => t('Пароль'),
      '#size' => 20,
      '#required' => TRUE,  
      '#ajax' => array(
        'callback' => 'password_callback',
        'wrapper' => 'password_check_wrapper',
        'effect' => 'fade',
      ),    
    );

$form['password_check_wrapper'] = array(
        '#markup' => $password_check_content,
        '#prefix' => '<div id="password_check_wrapper">',
        '#suffix' => '</div>',
);

После ввода пароля и выходе из поля в password_check_wrapper выводится информация о сложности пароля и т.д.
Вроде все хорошо, работает как и задумывалось. Но раздражает отвратительное мерцание/перезагрузка самого поля с паролем при подгрузке данных с помощью AJAX.

Посмотрел все примеры из http://drupal.org/project/examples (на тему AJAX) так там тоже самое - при подгрузке данных с помощью AJAX вместе с данными обновляется поле, которое вызвало эту перезагрузку.

Для конкретной ноды подключить css файл

20 марта 2011 в 18:51

Как для конкретной ноды можно подключить css файл?

Необходимо создать страницу со статичным содержимым, для этого я создал страницу (Basic Page). В ней разместил текст в формате HTML и сохранил (идентификатор ноды = 700). Теперь мне нужно подключить таблицу стилей к данной ноде. Как это сделать я не знаю. В поиске ничего не нашел.
Единственное, что я пока нашел для темизации ноды это совет создать файл node--700.tpl.php. Файл я создал, внутри написал <?php print render($content); ?>.
Да, стало выводиться содержимое, да я могу его изменять, но я не понял как это мне позволит подключить css файл. В standard Variables Available to node.tpl.php я тоже не нашел полезных переменных.

Блин... Sad Проще написать свой модуль, в котором css подключается элементарно и в нем вывести этот статический текст. Но должно же быть какое то простое решение.

Помогите пожалуйста.

При вызове field_delete_field не совсем удаляются таблицы из БД. Появляются таблицы field_deleted_data_X.

5 декабря 2010 в 23:38

Пишу свой модуль, в нем создаю тип содержимого c полями CCK. В uninstall вызываю field_delete_field('field_name').
Проблема в том, что после удаления CCK-полей в БД остаются таблицы вида field_deleted_data_X, где X - идентификатор удаленного поля.
Эти таблицы необходимо удалять т.к. у них имена ограничений (PK, UNIQUE, CHECK) не переименовывались, а остались прежними. Поэтому при повторном создании поля СУБД ругается.

Тормозит постраничный вывод через View при большом количестве записей

9 ноября 2010 в 23:50

Вывожу через View статьи (постраничный вывод, на одной странице 20 статей). При малом количестве статей все нормально, но решил проверить как отразится на производительности большое количество статей.

Для эксперимента забил через скрипт в базу 1КК статей и попробовал отобразить первую страницу.... Как же долго я ждал Sad
Я конечно понимаю, что ему нужно выполнить SELECT COUNT(*) FROM QUERY для того, чтобы показать общее количество статей и построить правильную ссылку на последнюю страницу. Но мне не нужна ссылка на 15267 страницу.

Простой выход из данной ситуации я увидел в том, что можно просто вывести 20 статей на странице(не подсчитывая COUNT(*)) и показать ссылку на следующие 20. Вроде в настройках view это можно настроить (Mini Pager), вот только эффекта от этого нет (видимо он все равно подсчитывает COUNT(*)).
Если показывать первые 20 записей без pager'a - то все работает моментально.

Поэтому вопрос - как можно быстро показать первые 20,50,100 записей (не подсчитывая общее количество), но показать ссылки на следующие/предыдущие страницы?

Или придется писать самому с помощью модуля?

ЗЫ:
СУБД - PostgreSQL 9.0
Drupal 7 dev

Drupal 7. Форма создания ноды раскрывается на весь экран. Как убрать?

3 ноября 2010 в 21:53

Как сделать так, чтобы при создании ноды форма с полями находилась справа от меню(аналогично 6-му друпалу), а не раскрывалась на весь экран?
И почему при создании ноды используется админская тема?

Вот так было в 6-м друпале:
http://img573.imageshack.us/img573/1055/40324683.png

В 7-м стало так:
http://img219.imageshack.us/img219/5452/36029011.png

Разный набор полей у Content Type в зависимости от раздела.

30 октября 2010 в 22:41

Подскажите, пожалуйста, как быть!

Необходимо создать сайт для хранения нормативных документов.
Вот пример структуры:

Общий принцип работы:
Пользователь выбирает необходимый раздел и загружает в него документацию + заполняет необходимые поля на форме.
Основная сложность заключается в том, что количество полей(в форме загрузки) зависит от того, в какой непосредственно раздел пользователь загружает документ.

Я вижу 3 варианта:
1 - Создать один Content Type "Нормативные документы" с полным набором полей для всех типов разделов(их будет не больше 15-20), а при создании контента показывать только те поля, которые относятся к данному разделу. Только как это лучше сделать? Необходимо будет проверять заполнены обязательные поля(для одного типа они могут быть обязательны, а для другого нет) или нет.
2 - Для каждого раздела создать Content Type со своим набором полей. Вот только 80% разделов имеет один набор полей, и лишь у остальных 20% разделов набор полей отличается.К том уже возможно возникнут сложности с отображением этих типов содержимых через Views(Как их вместе в таблице показать?)
3 - Забить на друпал(если в нем это можно сделать только через ж..у) и делать самому на базе Yii, CI или Symfony.

Жестко привязать Content Type к термину

18 октября 2010 в 22:19

Необходимо при создании типа содержимого автоматически привязывать его к определенному термину.
Связь будет постоянна 1:1, то есть у меня будет ~20 Content Type и 20 терминов.
Зачем нужна привязка:
Content Type будут со своим набором полей, а с помощью терминов я хочу построить иерархию.

Жестко привязать Content Type к термину

18 октября 2010 в 22:17

Необходимо при создании типа содержимого автоматически привязывать его к определенному термину.
Связь будет постоянна 1:1, то есть у меня будет ~20 Content Type и 20 терминов.
Зачем нужна привязка:
Content Type будут со своим набором полей, а с помощью терминов я хочу построить иерархию.

Свой набор полей для каждого термина

16 октября 2010 в 11:21

Нужно сделать хранилище документации(ГОСТ, ОСТ, СниП и т.д.):
Пользователь должен загружать документацию определенного типа, заполнять различные поля, в зависимости от типа документа.

Скрыть область с подсказками CKEditor

3 октября 2010 в 14:57

Установил CKEditor, настроил его (отключил Show disable/enable rich text editor toggle и т.д.).
Но никак не могу найти где убрать область с подсказками под редактором:

Пока нашел только такое решение:
http://drupal.org/node/488926

А по другому никак нельзя убрать?

Скрыть левую и правую колонку на определенной странице сайта

2 октября 2010 в 23:43

Добрый день!

Сайт имеет следующую структуру:
-Шапка (Главное меню)
-Левая колонка (Навигация и т.д.)
-Правая колонка (Различная информация)

Я создал свой модуль и в нем вывожу определенную информацию.
Как отключить вывод левой и правой колонок только при просмотре страницы моего модуля (http://localhost/page_by_my_module)?