so-lo74: Блог

Главные вкладки

Текущая видимость блока

5 апреля 2013 в 18:30

Добрый день всем!

Проблема: В регионе, скажем, «Content» над представлениями выводятся блоки форм с exposed фильтрами, блоков — целая стопка, т.к. формы, разные для каждого View. В зависимости от контекста (страницы, роли пользователя etc) видна одна форма c фильтрами из всей группы аналогичных, лежащих в этом регионе.
Отображется всё корректно, но все хуки, связанные с перехватом и подменой форм + прочая функциональность, вызываются столько раз, сколько форм (блоков) связано с текущим представлением (вообще), вне зависимости от того, что отображается блок в этом контексте или нет.

Опционная группировка по полю в Views (РЕШЕНО)

4 апреля 2013 в 14:25

Добрый день всем.

Среда: drupal 7.21
views 3.6 (7)

Проблема:
Есть табличное представление с фильтрами выводимыми в форме.
Пытаюсь программно реализовать выбор и задание поля для группировки (случай общий, поле — одно).
1. Подменяю в модуле форму exposed фильтра своей через MYMODULE_form_views_exposed_form_alter,
дополняя её управляющими элементами: checkbox, активизирующий через #states соответствующий список доступных полей.
Список заполянется именами полей из $form_state['view'], но это не суть.

2. Группирующее поле устанавливается в реализации хука views_pre_build, примерно так:

<?php
  
function MYMODULE_views_pre_build(&$view) {
    ...
    
$custom_field 'field_MYFIELD_value';?>

Backup migrate

12 февраля 2013 в 12:53

Добрый день всем.

Drupal 7.16
Проблема: Сайт отлаживается на локалке, под Denwer. Разбираясь со вставкой картинок через IMCE, видимо, изменил атрибуты папки default/files и вложенных, после чего Backup and migrate перестал работать с прежней папкой manual
Подскажите, пожалуйста, как правильно выставить атрибуты для папки files/private в Windows XP, т.к. именно в этом дело, ибо модуль упорно не хочет работать, отказываясь сохранять backup и требуя «защитить» папку manual (

(РЕШЕНО) темизация VBO-формы

25 ноября 2012 в 22:29

Всем привет.

Drupal 7.16, Views 3

N-е число часов пытаюсь решить простую задачу:
При отображении View c VBO перед таблицей по умолчанию выводится филдсет с набором доступных операций.
Необходимо реализовать более логичное, imho, а не дефолтное его отображение и поведение, т.е. если
не выбран ни один row, либо отключать кнопку «выполнить», либо хотя бы держать его (филдсет) изначально в свернутом состоянии.
Пытаюсь «достучаться» до элемента формы через hook_form_FORM_ID_alter, id-формы вытаскиваю из кода страницы, и всё бы хорошо..., но в при выводе debug($form) или dsm, искомого филдсета не наблюдается, т.е. «видно» всё, кроме филдсета с select.

(РЕШЕНО) динамическое изменение формы в зависимости от состояния элемента

11 ноября 2012 в 0:43

Всем привет ).

Пытаюсь решить простую задачу, но результат довольно странный:
В форме редактирования ноды, необходимо динамически изменять содержимое элемента типа select в зависимости от
состояния выбранной радио-кнопки, т.е. в список выбора подгружается соответствующий набор данных.
Использование ajaх — принципиальный момент, т.к. форму перезагружать не хотелось бы.

<?php
/**
 * Implements hook_form_FORM_ID_alter().
 */
function UI_custom_form_task_node_form_alter(&$form, &$form_state) {
  
//  Требуется модифицикация поля field_user (тот самый список)
  //  блок кнопок выбора типа списка

  

$form['users'] = array(
    
'#type' => 'radios',
    
'#title' => 'Состав исполнителей'
    
'#options' => array(
      
'group' => 'Группа',
      
'all' => 'Все',?>

алгоритм формирования id

29 октября 2012 в 18:38

Добрый день )
Очевидно, вопрос совсем нелепый, раз поиском ничего внятного найти не удалось ), но существует ли встроенное техническое решение для удаления «дыр» в автоинкрементном алгоритме формирования id (nid, vid etc.)?

(РЕШЕНО) Программное создание поля для словаря таксономии

26 октября 2012 в 19:56

Всем привет.

Среда: Drupal 7.16

Подскажите пожалуйста, в чем может быть дело?
Программно создаётся словарь таксономии, на основе выборки из БД, т.е. до запроса его нет.
К терминам словаря необходимо добавить поле, содержащее, скажем, uid пользователя.


<?php
  $voc_name 
'voc_by_rid';
  
$vocabulary taxonomy_vocabulary_machine_name_load($voc_name);
  if (!
$vocabulary) {
  
$vocabulary = array(
     
'machine_name' => $voc_name,
     
'name' => 'somebody voc',
  );
  
$vocabulary = (object) $vocabulary;
  
taxonomy_vocabulary_save($vocabulary);

  

//    добавление поля user_id (uid) к термину словаря таксономии
  
$field field_info_field('user_id'); 
  if (
$field == NULL) {
     
$field = array(
     
'field_name' => 'user_id',?>

подстановка значения токена в код PHP

17 сентября 2012 в 13:27

Друзья, подскажите, пожалуйста как правильно подставлять значение токена в код?
Например, токен [node:field_user] возвращает выбранное имя пользователя (или список) из поля field_user (словарь таксономии, выпадающий список).
Чтобы получить доступ к искомой почте пользователя (не текущего залогиненного, а возвращаемого значением токена),
в действии rules пишу код:

<?php
$n="[node:field_user]";
//echo $n;
$q=db_select('users','u');
$q->condition('u.name',$n,'=');
$q->fields('u',array('mail','uid'));
$res=$q->execute();

while($rec=$res->fetchAssoc()){
echo 'mail='.$rec['mail'].' uid='.$rec['uid'].'
';
};
?>
В итоге, запрос не отрабатывается, т.к. похоже, что тип $n не строковый??
Если тупо присвоить $n строку всё работает.

[РЕШЕНО]Отправка сообщений автору ноды связанной через field from URL

14 сентября 2012 в 19:39

Всем привет!

Не могу решить простую задачу ):
Дано: 2 типа материала, например, «Задание» и «Отчёт» + 2 словаря таксономии, определяющие авторов материалов каждого из типов. После публикации, нода типа «Задание связана с «Отчет» через поле user reference.
Обратная связь между опубликованным заданием и отчётом конкретного пользователя (их может быть группа)— через node reference from URL.

[Решено]Токены и поля Views

13 сентября 2012 в 2:14

Доброй ночи всем!
Среда: Druapl 7.15, Views 3.5
Заранее прошу прощения, что один вопрос глупее другого ), но уже голову сломал, что же делаю не так?
Проблема:
В форме материала есть простое текстовое поле с именем автора материала, которое устанавливается as default
через токен [node:author] (формат ввода, фильтр. HTML, замена токенов включена для всех форматов, кроме plain txt)
При создании материала всё работает, причем как в варианте токена, так и при использовании PHP кода в поле.
Для материала сделан ряд представлений во Views, где используется указанное поле.

Управление полями в форме создания материала в зависимости от ролей

11 сентября 2012 в 17:13

Добрый день.
среда: Drupal 7.15
Вопрос: в форме создания материала определенного типа (реализуемой стандартно, через admin-интерфейс), необходимо сделать
поле с ограничением прав доступа, т.е. видимое и допускающее ввод только для конкретной роли.
Подскажите, пожалуйста, как реализовать это без кода ). Похоже, что Condition fields не подходит для этой цели.

[РЕШЕНО] ошибка при исполнение кода PHP

3 сентября 2012 в 15:17

Всем привет.
Подскажите, плз, в чём может быть дело?
локальный сервер, отладка под Denwer'ом
среда:
Drupal 7.15
PHP 5.3.16 (вроде, всё нужное включено)
модуль PHP Filter (7.15) включён, права доступа (admin)

При попытке выполнить любой код, встроенный в поле ноды (не важно какое, хоть Body) и содержащий обращение
к переменным, например:
<?php
print ($node->name)
?>

выводится одна и та же ошибка:
Notice: Undefined variable: node в функции eval() (строка 1 в файле Z:\home\HR-program.ru\www\modules\php\php.module(80) : eval()'d code).
Notice: Trying to get property of non-object в функции eval() (строка 1 в файле Z:\home\HR-program.ru\www\modules\php\php.module(80) : eval()'d code).

Автоматическое заполнение полей создаваемого материала при регистрации пользователя

29 августа 2012 в 20:17

Здравствуйте.
Пытаюсь решить задачу, судя по всему, типовую):
При регистрации пользователя (после утверждения админом и назначения роли) необходимо автоматически создавать ноду типа учетной карточки с информацией из созданного профиля. Т.е. фактически, это тот же профиль + некие дополнительные поля.
Создан тип материала, например «Учетная карточка», содержащий соответствующие вводимым поля (в том числе и с выбором из списка = словаря таксономии).
Поскольку в PHP вообще и в применении к Drupal я пока совсем нуб, попробовал решить эту задачу с помощью модуля rules и создания соотв. правила:
event: регистрация
conditions: none
actions: создать сущность (материал типа «Учетная карточка»), имя ноды — из токена account