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

Событие по изменению поля флага

14 октября 2014 в 13:27

Испльзую модуль Flag для голосования.
Пользаватели могут отметить друг друга как своего "заместителя" чтоб он мог голосовать от них. Если пользователь выбирает другого "заместителя" то через правило с trim flag - старый флаг удаляется.
Все работает. Kак-то выложу когда в отдельный модуль упакую. Наверное как дополнение к Advanced Voting.

Теперь понял что можно сделать "заместителей" по разным вопросам голосований. - Через поля флага.
Создал поле Taxonomy Reference c типами вопросов: политика, быт, техника и тп. При нажатии на флаг появляется меню.

Как теперь удалять выбраные опции по старым флагам если пользователь выбирает нового "заместителя" по какому-то типу вопросов. По каждоум типу вопросов "Заместитель" может быть толко один.

Потреб. кооперация на Друпал

19 сентября 2014 в 0:52

Такой вопрос для социального проекта, близкого к http://vk.com/coopsoc

Как оргазизовать Потреб. Кооперацию (Массовые закупки) на Друпал?

Открытые фильтры срабатывают только у админа.

30 августа 2014 в 5:33

Доброго времни суток.

Такая проблема.

В профиле пользователя сделано предствление с открытыми фильтрами для вывода его материалов. Давно это сделал, все работало - перазагружелосось аяксом представление.
Сейчас обнаружил что работает только для админа.
Ошибок никаких не выдает.
Чистил кеши, перегружал разрешения, выключал все касномные модули, менял тему - не помогло.

"Заработало" если дать пользователям разрешения "Bypass views access control" или выключить явасктипт в admin/structure/views/settings/advanced.

В Фаяербаге пытался понять почему не работает аякс. Видно что он начинает работу, даже приходит один json ответ - у админа приход их 3.
Никаких особым модулей по доступу с представлениями не использую.
Пробовал на последней рабочей и дев. версиях views.

Сортировака переведенных терминов в Hierarchical select и Simple hierarchical select

21 августа 2014 в 14:20

Мультиязычный сайт с переводом терминов таксономии (Taxonomy translation - то есть не через Entity Translation)
Использую представление для вывода таблицы нод по терминам таксономии (/taxonomy/term/%).
Добавил раскрытые фильтры - Content: Has taxonomy terms (with depth; Simple hierarchical select) (exposed)
Все работает замечательно но сортировка терминов в фильтрах происходит по их весу, а надо по алфавиту.
Для одного языка еще можно расположить по весам в алфавитном порядке, но для других языков будет без сортировки.

Для примера:
Austria
Russia
UK

и

Австрия
Россия
Великобритания - (порядок не по алфавиту)

Better Exposed Filters - ничего такого не решает

Видит ли ajax arg() ?

16 июля 2014 в 2:11

Когда выполняется файл (ajax.php) на севере вызванный axaj запросом то видит ли он функцию аргумента arg() в url?
Делаю проверку чей профиль открыт и такое ощущение что arg() не работает.

Я могу его сразу узнать и отправить в ajax, но понять в чем дело хочется.

Куда лучше помещать php код?

15 июля 2014 в 23:51

Поначалу когда надо было внести дополнительные функции к полям - пользовался тем что вносил php код в поле с php-фильтром.
Оно поначалу очень удобно, наглядно и тп.
Но когда появились станичные куски кода в нескольких полях ноды и каждой получилось много общих фрагментов кода.
Да, еще под конец север стал выдавать такие ошибки.

Error messagePDOException: SQLSTATE[42000] [1203] User хххххххх already has more than 'max_user_connections' active connections in lock_may_be_available() (line 167 of /hsphere/local/home/ххххххх/ххххххххх.org/includes/lock.inc).

Раздробленный код в ноде может быть причиной такого?
Думаю что не должен. Нода по идее должна собираться за одно подключение к базе, даже если код разбросан по полям. (поправьте если не прав)

Интерактивный выбор термина в ноде

14 июля 2014 в 15:29

Есть двух уровневый словарь таксономии.
Размещаю его в профиле и нодах с помощью Hierarchical Select. (нужен выбор именно конечного темина в дереве)
Надо чтобы любой (не автор ноды/профиля) пользователь мог выбрать термин из этого словаря.
Пробовал с Editable Fields, выставил допольнительные разрешения чтоб любой мог менять - не отображается для не авторов (выдает кучу ошибок, сам модуль сырой для 7) и эта кнопка "Сохранить" толком не нужна. Задача не саму ноду править а просто выбрать термин и отправить его по ajax на обработку.
С ajax - все понятно. Делал такое в формах ноды. Но как сделать в ноде и для всех пользователей?

Думаю что надо сделать аналог Hierarchical Select на javascript, загнать в него словарь, ну и вывести.

вывести элементы массива в представление

12 июля 2014 в 1:44

Есть массив, полученный извне в переменной, в таком виде.

Отображаются все локализованые ссылки в меню - всех языков

6 июля 2014 в 1:11

Есть мультиязычное (main) меню со ссылками. Почему-то когда редактируется какая-либо нода - отображаются все ссылки в меню со свех языков.
Также при этом пропадает перевод ссылок из User Menu, там где у ссылок нейтральный язык с преводом меток.

Конфигурация обычная для мультиязычного сайта.
Entity translation отключил для нод.

Ajax 500 (Internal Server Error) PHP Fatal error: Call to undefined function

4 июля 2014 в 13:26

В целом сайт рабочий.
Настраиваю сейчас Ajax, на простом примере проверил что ответ приходит.

Выдает "тихую" ошибку после обращения к серверу, если используются фукнции требующие модуль. Не сработали функции, node_load(), taxonomy_term_load, module_exists() - похоже что все требующие модуль - не работают. print_r() echo - работает и выдает ответ.

Журнал ошибок
FastCGI: server "/hsphere/local/home/xxxxx/xxxxxxx.org/fcgi-bin/php-fcgi" stderr: PHP Fatal error: Call to undefined function node_load() in /hsphere/local/home/xxxxxx/xxxxxxx.org/sites/all/modules/aded1Module/ajax.php on line 6,

в Firebug:
POST http://www.xxxxxxxxxxx.org/sites/all/modules/aded1Module/ajax.php 500 (Internal Server Error) js_t1_iHJnZ5YNPdczdMVfChTE-B_WJTRpN1QfagUfcx4k.js:6054

Использование яваскрипт при создании/редактирвоании ноды

1 июля 2014 в 20:30

Пользователь создает материал Объявление. Выставляет цену, валюту. Как ему рядышком показать переденную сумму в другую валюту.
Курсы других валют лежат в таксономии, в доп.полях.
Нашел такую подсказку http://stackoverflow.com/questions/10856769/execute-javascript-on-node-c...
Но чето громоздко, наверное лишнего куча. Я ведь не создаю ноду программным путем.

Меню таксономии в блоке схлопывается при отрытии ноды.

19 июня 2014 в 15:50

Использую DHTML Menu в блоке для выбора категории объявлений по словарю таксономии. Представление выводит анонсы объявляений. Когда пользователь выбирает нужное объявление раскрытое дерево меню схлопывается, пользователь "теряется" и должен заново пройти по дереву чтобы вернутся в ту область меню. Никакие внутренние настройки на это не влияют. Читал что это вообще проблема не с DHTML Menu, а в том что Друпал не прописывает активные пути к дополнительным меню.

https://www.drupal.org/node/1104000

"The problem is not with the DHTML Menu module but that Drupal 7 does not assign an active trail to a custom menu. The fix is to patch the actual Drupal core menu module with the patch in post #262 from http://drupal.org/node/942782." (патч не помог)

Такая же ситуация с jQuery menu.

Отключение обработки php-полей при создании ноды

21 мая 2014 в 14:18

Возник такой вопрос по пониманию как работает Друпал при создании ноды.

Пользователь может создать ноду в которой используются поля с php кодом где используются данные с полей этой же ноды. Но пока нода не сохранена у ней нет данных этих полей и даже nid пока не присвоен (в этом не уверен, поправте).

код в поле начинается так:

if (arg(0) == 'node' && is_numeric(arg(1))) $nodeid_current = arg(1);
$node = node_load($nodeid_current, null, true);
$amount = ($node->field_amount['und'][0]['value']); // это поле заполняте пользователь при создании ноды

что дает ошибку:

Notice: Undefined variable: nodeid_current в функции eval() (строка 4 в файле C:\OpenServer\domains\international\modules\php\php.module(80) : eval()'d code). - ну и кучу других с ней связанных

Не могу скрыть метку в поле Entityreference - Inline entity form, prepopulate

28 апреля 2014 в 2:28

Есть типы документов: Объявления (разных типов) и Заказ. Хочу связать их через Entityreference prepopulate и в Заказе чтоб было "подшито" Объявление с которого сделан заказ.
Для этого в Заказе создаю поля Entityreference с виджетом Inline entity form - Single value - для каждого типа Объявления. В настройках полей выбираю ADDITIONAL BEHAVIORS > Entity reference prepopulate и создаю ссылки в Объявлениях (к соответствующим полям) на создание Заказа.
Добавляю опцию прятать поле если для него не передается значение из URL ADDITIONAL BEHAVIORS>Fallback behaviour>Hide field
В дисплее полей Entityreference выбираю выводить сушьность целиком.

Получение данных полей профиля пользователя

3 марта 2014 в 1:29

Разбирался с данными полей сущностей.
Когда вставляю в файл шаблона page.tpl.php

<?php print_r ($node); ?> - все выдает по всем полям

если хочу получить данные по полям пользователя
<?php print_r ($user); ?> - то выдает только основные поля, а те что были добавлены мной - не выдает.

stdClass Object
(
[uid] => 1
[name] => admin
[pass] => $S$DA2y74xg58wTPDU4j36FLu3N8nfBUq08647GYBIjY9AUNa9caOvЧXXXX
[mail] => xxxxxxx@gmail.com
[theme] =>
[signature] =>
[signature_format] => filtered_html
[created] => 1388929434
[access] => 1393792842
[login] => 1393676370
[status] => 1
[timezone] => Europe/Kiev
[language] => ru
[picture] => 0
[init] => xxxxxxxx@gmail.com
[data] => Array
(

Получить первое поле из Double Fields

3 февраля 2014 в 3:03

Использую поле Double Field. Там 2 суб-поля. (доп. "2" и "руб.")
Надо получить данные этих суб-полей для расчетов в другом поле.
Использую Computed Field
$entity_field[0]['value'] = array_pop(array_pop(field_get_items($entity_type, $entity, 'field_a')))

оно выдает последнее (значение массива) - "руб."
как получить предпоследнее? - "2"

Если можно также пример как это сделать без Computed Field - кодом PHP в поле.

Получение данных поля со страницы профиля

3 февраля 2014 в 2:38

Пользователь при регистации заполняет поле feild_address.
Создает материал в котором в одном из полей должна собираться ссылка используя значение этого поля. Собирается в скрытом режиме, но затем она видна другим при просмотре его материала.

Для себя разбил это на две задачи.
1. При создании материала автоматически вносить в скрытое поле значение с feild_address автора. Думал что это токенами лекго сделается. Но не выходит.
Пробовал:

[current-user:field_address]

%value[current-user:field_address]

!value[current-user:field_address]

@value[current-user:field_address]

<?php
$first = '[current-user:field_address]';
&second = token_replace($first, $type = 'global', $object = NULL, $leading = '[', $trailing = ']');
print_r(&second);
?>
Ничего не вышло.