zheka2: Блог

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

Сложные страницы: текст вперемежку c картинками, формами и пр

26 января 2017 в 12:01

Здравствуйте

Часто встречаюсь с задачей добавить страницу на сайт в которой много кусков текста вперемежку с картинками, формами и прочим.
В добавок страница имеет непростую вёрстку, что делает невозможным использование WYSIWYG
Варианты которые я вижу:

Commerce Shipping. Получить адрес доставки в функции расчёта стоимости

10 октября 2016 в 11:47

Здравствуйте

Пишу модуль для расчёта стоимости доставки
В магазине под который он пишется оформление заказа осуществляется на одной странице. Т.е. на ней и корзина, и информация о пользователе, об адресе доставки, о способе доставки и пр.

Commerce, фильтрация по таксономии

1 августа 2016 в 9:18

Здравствуйте

Работаю над фасетным поиском в Commerce. Встала задача реализовать отбор по иерархии таксономии "Каталог"
При клике на термин таксономии должны отображаться все элементы в иерархии и в добавок в фильтре отображаться подгруппы (как на картинке, хотя подкатегории можно и подчинёнными к родителю элементами выводить)

Вообще надо ли это делать через фасеты, или правильнее через exposed filter или как вариант сделать свой блок с ссылками использующими контекстный фильтр?

Модуль для создания переменных через GUI

25 июля 2016 в 19:06

Здравствуйте

Не первый раз сталкиваюсь с задачей следующего характера:
Есть например каталог товаров, нужно отметить один из товаров как Новинка или как Лидер продаж, не суть, главное что именно один товар
Добавлять поле неправильно. Как я понимаю нужно создать переменную с ссылкой на этот товар
Сейчас приходится каждый раз писать модуль и через него объявлять переменные
Есть ли модуль который позволил бы создать новую переменную, выбрать её тип и имел бы форму для редактирования переменных в соответствии с их типом

Basic cart, общая корзина для нескольких авторизаций одного пользователя

2 июля 2016 в 17:12

Здравствуйте

Использую Basic cart на сайте, данные корзины этот модуль сохраняет в сессии
Соответственно если один и тот же пользователь авторизуется с разных браузеров то корзины будут разные, а надо чтобы корзина была общая.
Как правильно решить эту задачу? Я вижу два варианта, это шаманства с session_id/session_name, либо переделывать сам механизм хранения, перенести его в базу

Наведите на пусть истинный Smile

Передача параметров в Javascript

15 июня 2016 в 11:06

Здравствуйте

Столкнулся с проблемой
Передаю параметры в js

<?phpif ($user->uid == 1) {
  $dashop_settings["update_loop"] = true;
}
drupal_add_js(array('dashop' => $dashop_settings), 'setting');?>

в самом скрипте есть кусок:

Views grid минимальное количество колонок

28 апреля 2016 в 21:17

Здравствуйте

Столкнулся с проблемой, не пойму как решить

Защитить ссылку от изменения

16 ноября 2015 в 19:49

Здравствуйте

Встала задача при переходе пользователя по определённому адресу перед обработкой убедиться, что эту ссылку ранее сгенерировал drupal, например:
mysite.ru/create/data1 , т.е. создать нечто с названием data1 (а не data2 или вася_пупкин)

Насколько помню на php это делается добавлением параметра в запрос который содержит хеш от (параметры + соль)

Это как раз мой вариант? Если да у друпала есть какая-нибудь надстройка над этим механизмом?

Спасибо

Фильтрация текста при вставке в WYSIWYG

10 ноября 2015 в 23:15

Здравствуйте

Подскажите, пожалуйста, как правильно разрулить:

Нужно чтобы клиент мог максимально просто вставлять текст в WYSIWYG редактор из разных источников (сайты, word...)
Если указать формат текста Filtered HTML то в редакторе пользователь видит один текст (неотфильтрованный), а на странице другой уже прошедший фильтр.

Можно вроде при вставке сбрасывать форматирование (Force cleanup on standard paste, в настройках профиля WYSIWYG) но это крайняя мера, т.к. пользователь получит голый текст.

Проблема с установкой drush (php disable_functions)

6 ноября 2015 в 23:22

Здравствуйте

Пытаюсь установить на хостинге drush и столкнулся с проблемой что в php.ini отключены некоторые функции через disable_functions
при попытке выполнить
php composer.phar global require drush/drush:7.*

получаю
escapeshellarg() has been disabled for security reasons

Drush rsync ошибка

11 октября 2015 в 0:26

Здравствуйте

Весь вечер промучился впопытке завести drush rsync на Windows 7. При попытке синхронизации после ввода ssh пароля выдаёт:

drush rsync --progress @Site.live @Site.dev
You will destroy data from /cygdrive/c/Projects/site/ and replace with data from xxx.ru:/var/www/zzz/data/www/xxx//
Do you really want to continue? (y/n): y
Password:
receiving incremental file list
rsync: mkdir "/cygdrive/c/Projects/site" failed: Bad file number (9)
rsync error: error in file IO (code 11) at /usr/src/rsync/rsync-3.0.8/main.c(587) [Receiver=3.0.8]
Could not rsync from xxx.ru:/var/www/zzz/data/www/xxx// to /cygdrive/c/Projects/site/ [error]

Добавить ajax-кнопку через form_alter

27 сентября 2015 в 9:14

Здравствуйте

Есть тип материала для формы которого надо добавить ajax кнопку при нажатии на которую производится некоторое автозаполнение формы.
В hook_form_alter добавил:

Отключить ajax у managed_file

21 августа 2015 в 14:18

Здравствуйте

Нужно предоставить пользователю возможность загрузить несколько файлов на сервер.

Вставил в форму managed_file. Но для того чтобы форма отправилась после нажатия на Закачать/Удалить нужно нажимать Сохранить. Половина пользователей будут этот момент упускать.
Как сделать так чтобы при нажатии на Закачать/Удалить форма сразу отправлялась?
Как вариант вижу написать свою #process функцию элемента, в которой Закачать и Удалить скрыть, а вместо них выводить свой submit.
Или можно проще?

Ограничить доступ к views через хук

8 августа 2015 в 22:38

Здравствуйте

Понадобилось по непростому алгоритму определять наличие доступа. Нашёл способ через hook_menu_alter, но в добавок к нему нужно чтобы модуль реализующий кастомную проверку доступа вызывался после вьюса. Не очень понравилось решение. Где то промелькнуло что через хук hook_views_pre_execute можно это сделать. Но как? вот прототип
hook_views_pre_execute(&$view)
в параметре view я не нашёл ничего что указывало бы на доступ

Спасибо

Переопределить шаблон страницы entityform

31 июля 2015 в 20:14

Здравствуйте

Хочу вывести entityform в fancybox
Без переопределения шаблона страницы получаю всю страницу в окне fancybox'а
Не могу найти как нужно назвать файл шаблона страницы для entityform.
Раньше когда пользовался webform файл назывался page--node--1.tpl.php.
Пробовал page--entityform.tpl.php, не подхватил

Подскажите как правильно, спасибо

Обновить одну строку в views после изменения данных в бд

25 июля 2015 в 17:58

Здравствуйте

У меня есть views, в одной из колонок есть ajax-ссылки с действиями, вызов которых приводит к изменения данных в этой строке, например изменение "состояния", которое отображается в другой колонке.
Как обновить строку по которой кликнули. Про ajax framework я знаю, пользовался.
Можно ли сформировать views, взять интересующую строку и через command replace отправить клиенту?
Или есть более правильный вариант?

Спасибо

Открыть страницу drupal через командную строку

22 июля 2015 в 23:04

Здравствуйте

Встала задача обновлять каталог загружая и парся другой сайт. Написал модуль, загружается и обрабатывается каталог около 10 минут, соответственно apache прибивает процесс раньше окончания.
Нашёл способ запустить через cron
export QUERY_STRING="q=grandline/parse" ; php -e -r 'parse_str($_SERVER["QUERY_STRING"], $_GET); include "index.php";'
В целом работает, хоть и ругается на "Notice: Undefined index: REMOTE_ADDR in /var/www/p321287/data/www/kaspprom.ru/includes/bootstrap.inc on line 2916"

Но осталась одна проблема, base_path система определяет как "./" . Соответственно url возвращает пути всегда относительно текущего адреса

Допускаю, что я вообще велосипед изобретаю и можно сделать проще, но не знаю как

Модуль аналогичный EmptyPage только для контента

9 июля 2015 в 13:39

Сори за сумбурный заголовок, попробую объяснить на примере

Вставить галарею в произвольное место в тексте

23 июня 2015 в 21:22

Здравствуйте

Вопрос в теме
Пример страницы внизу
Т.е. внутри текста в произвольных местах вставлять галереи

В качестве галереи подходит Juicebox

Предполагаю что можно сделать через токены, но по запросу drupal gallery token толком ничего не нашёл
Есть вроде вариант сделать views с галереей и через "Token embed views" вставлять, но как то сложно ИМХО.

Есть ли ссылка для создания таксономии по типу ноды /node/add/xxx

13 июня 2015 в 13:49

Здравствуйте

Вопрос в теме. Пишу кастомную админку. Список терминов вывел через вьюс. Можно ли добавить кнопку/ссылку для создания нового элемента таксономии без программирования?

hook_form - значения формы не попадают в базу

11 мая 2015 в 22:04

Приветствую

Кастомизирую форму ноды, вывожу select

$form ['field_group'] = array(
    '#type' => 'select',
    '#title' => t('Группа'),
    '#options' => $groups[ $discipline_id ],
    '#default_value' => $group->nid,
    '#maxlength' => 127,
    '#prefix' => '<div id="field-group-replace">',
    '#suffix' => '</div>',
 );

После отправки формы вызываю
$output = ctools_modal_form_wrapper('train_node_form', $form_state);

Выбранное пользователем значение попадает в $form_state['values']['field_group'] и имеет строковый тип. И значение не попадает в базу