fox72: Комментарии

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

10 ноября 2015 в 11:48

Вот такая засада выскакивает при разрешении пользователю шарить статьи со стороннего сайта на свою страницу на vk.com
Notice: Undefined property: stdClass::$body в функции _render_vk_share_button() (строка 66 в файле /home/f/farbchelru/public_html/sites/all/modules/vk_openapi/vk_share/vk_share.module).

drupal 7.17
vk_openapi 7.x-1.0

4 октября 2015 в 12:11

Кхм.
Если полностью запихнуть класс commerce_line_item_handler_field_edit_quantity в myhooksmodule и переписать в нем функцию views_form_validate как в предыдущем моем посте, а потом добавить функцию

<?phpfunction myhooksmodule_form_views_form_commerce_cart_form_default_alter(&$form, &$form_state, $form_id) {
    $form['#validate'][] = 'views_form_views_form_validate';
}?>

то все как бы ОК.

4 октября 2015 в 10:18

Оказывается, похожая проблема вылезает при просмотре позиций заказа
и изменении количества непосредственно в самой корзине.
При вводе в поле "Количество" невалидного значения вылезает сообщение
«Вы должны указать положительное значение количества»
или на ангельском
«You must specify a positive number for the quantity»
Прочесав директорию commerce выяснил что функция views_form_validate
которая генерирует это сообщение входит в состав
класса commerce_line_item_handler_field_edit_quantity
из файла

29 сентября 2015 в 22:28

пока вот как-то так

Изменил следующим образом стандартую функцию commerce_cart_add_to_cart_form_validate из commerce_cart.module

28 сентября 2015 в 22:31

Путем блужданий в непролазной тьме,
И в окруженьи равнодушной тишины,
была обретена незыблемая нить,
Что к горизонту истины приблизила меня немного...

Ну это лирика...

Мною был установлен модуль Devel.
Ниже по коду видно, где были сделаны вставки отладочных функций

23 сентября 2015 в 22:44

Дальше еще интереснее.
В переводах встроенного интерфейса нижеприведенная строчка присутствует аж два раза.
You must specify a valid quantity to add to the cart. Use dot as decimal point.
И ниже под ней указывается для какого типа вариации товара
/content/proflist-c-8h1150-ocinkovannyy
А вылазит все равно старый перевод.O_o

20 сентября 2015 в 13:33

Чего-то не выходит хук.
Нашел функцию commerce_cart_add_to_cart_form_validate
в модуле commerce_cart.module

Скоприровал ее код в свой модуль myhooksmodule

перименовал как положено.

Изменил немного - добавил "Use dot as decimal point" в сообщение об ошибке.

Получилось вот что:

<?php

20 сентября 2015 в 11:01

"orion76" wrote:

ПРиведенный Вами выше хук ..._form_alter (hook_form_alter) "отвечает" за вывод формы.
А вам необходимо обрабатывать валидацию формы (проверку введенных пользователем данных).

Большое спасибо за подсказку. Пошел копать в нужном направлении. Smile

20 сентября 2015 в 10:05

"orion76" wrote:
Попробуйте еще раз..

Да не вопрос... Smile

Где лежит тот заветный ман, в котором понятно описаны основы.

Для следующего кода пришлось перерыть полинтернета

19 сентября 2015 в 21:55

Хорошо, задам вопрос по другому:
Как можно реализовать хук, проверяющий ввод дробного значения в поле quantity (Количество) на наличие запятой и преобразующий ее в точку

19 сентября 2015 в 20:19

"sasha_gar" wrote:
javascriptom подменяйте. либо хуком форму перехватывайте

Я малознаком с хуками Drupal, тем более не знаю какое поле в форме "перехватывать" и какой функцией его обрабатывать

javascript вообще не знаю.

Может поделитесь секретами?

19 сентября 2015 в 19:49

"orion76" wrote:

Возможно это подойдет(Ввод значений по шаблону):
https://www.drupal.org/project/masked_input

Нет не действует на quantity этот чудесный модуль. Он хорош, когда создается новое поле и там можно выбрать виджет "ввод по маске" вместо "текстовое поле". Поле количество "quantity" вшито намертво его ни изменить ни удалить нельзя. А так бы было действительно неплохо