Вставка инфы в таблицу после редактирования профиля

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 16 марта 2014 в 17:31
День добрый. Направьте в нужное русло.

Задача такая: после редактирования профиля(а именно, полей которые входят в столбец таблицы cms_user_profiles(formsdata)) нужно вставить эти же значения в другую таблицу cms_user_param(нужно проследить динамику изменений)

Куда во frontend.php вбивать запрос insert...select что бы это проходило только после изменений этого столбца(formsdata)

Заранее спасибо =)
#2 16 марта 2014 в 18:01
Dmitriy, можно не править указанный файл, а написать плагин на эвент UPDATE_USER_PROFILES. Будет доступен массив данных, подготовленных для обновления таблицы cms_user_profiles. Проверяйте элемент массив 'formsdata' — это строковое значение в формате Yaml. Если вам нужно сравнивать как то значение, то соответственно в плагине получайте предыдущее значение данного поля (плагин выполняется до обновления данных) и проводите нужные манипуляции.
#3 16 марта 2014 в 18:29


Dmitriy, можно не править указанный файл, а написать плагин на эвент UPDATE_USER_PROFILES. Будет доступен массив данных, подготовленных для обновления таблицы cms_user_profiles. Проверяйте элемент массив 'formsdata' — это строковое значение в формате Yaml. Если вам нужно сравнивать как то значение, то соответственно в плагине получайте предыдущее значение данного поля (плагин выполняется до обновления данных) и проводите нужные манипуляции.

Fuze

Здраствуйте Fuze,
Не по теме, но близко к ней.
По поводу форм в анкете пользователя.Если создаю поле с большим количеством символов, например 1000, то после его заполнения и сохранения пользователем оно почему то обрезается, и обрезается текст в поле в следующем поле от него.Пожайлсута если возможно проверьте.
Версия 1.10.3
#4 16 марта 2014 в 18:32
Здравствуйте alexbabo.

Если создаю поле с большим количеством символов, например 1000, то после его заполнения и сохранения пользователем оно почему то обрезается, и обрезается текст в поле в следующем поле от него.

alexbabo
Напишите максимально подробно действия, чтобы я смог повторить это у себя.
#5 16 марта 2014 в 18:57


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

Fuze
В конструкторе форм, в анкете пользователя создаю поле "Обо мне".
У меня оно по порядку 6, до него :
[1] Телефон

[2] Контактное лицо

[3] Веб сайт

[4] E-mail

[5] Доп.информация

[6] Обо мне

[7] Минимальная сумма заказа


Для поля "Обо мне " в настройках "Макс. длина:" выставляю значение 1000.(соответственно Описание: Максимум 1000 знаков)
Для следующего за ним поля "Минимальная сумма заказа " в настройках "Макс. длина:" выставлено значение 200.

Теперь при редактировании профиля, заполняем поле "Обо мне" текстом 1000 символов и поле "Минимальная сумма заказа" 200 символов и сохраняем.
После сохранение поле "Обо мне " обрезается, поле "Минимальная сумма заказа" бывает обрезается бывает нет, как я заметил смотря сколько символов в поле "Обо мне ", но не факт.
При повторном редактирование поле "Минимальная сумма заказа" бывет почему то пустым.
Спасибо.
#6 16 марта 2014 в 19:37


Dmitriy, можно не править указанный файл, а написать плагин на эвент UPDATE_USER_PROFILES. Будет доступен массив данных, подготовленных для обновления таблицы cms_user_profiles. Проверяйте элемент массив 'formsdata' — это строковое значение в формате Yaml. Если вам нужно сравнивать как то значение, то соответственно в плагине получайте предыдущее значение данного поля (плагин выполняется до обновления данных) и проводите нужные манипуляции.

Fuze

Плагин, если я правильно понимаю, такой же файл с расширением .php, который я в нужный момент вызову в frontend.php? так? а где взять шаблон подобного плагина? А то я не совсем понял как это реализовать.
#7 16 марта 2014 в 19:53

Плагин, если я правильно понимаю, такой же файл с расширением .php, который я в нужный момент вызову в frontend.php? так?

Dmitriy
нет, делайте по аналогии с существующими плагинами, которые находятся в директории /plugins.
alexbabo, проверю, если баг подтвердится, будет исправление.
#8 17 марта 2014 в 19:46


Dmitriy, можно не править указанный файл, а написать плагин на эвент UPDATE_USER_PROFILES. Будет доступен массив данных, подготовленных для обновления таблицы cms_user_profiles. Проверяйте элемент массив 'formsdata' — это строковое значение в формате Yaml. Если вам нужно сравнивать как то значение, то соответственно в плагине получайте предыдущее значение данного поля (плагин выполняется до обновления данных) и проводите нужные манипуляции.

Fuze

А как массив то этот извлечь, он же в другом файле? Поясните пожалуйста.
#9 17 марта 2014 в 20:14

А как массив то этот извлечь, он же в другом файле? Поясните пожалуйста.

Dmitriy
Массив передается в плагин в метод execute.

делайте по аналогии с существующими плагинами, которые находятся в директории /plugins.

Fuze
#10 17 марта 2014 в 20:31
а тут еще Странник подсуетился с Генератором плагина…
#11 20 марта 2014 в 16:53


а тут еще Странник подсуетился с Генератором плагина...

Странник

??
#12 20 марта 2014 в 17:46


А как массив то этот извлечь, он же в другом файле? Поясните пожалуйста.

Dmitriy
Массив передается в плагин в метод execute.

делайте по аналогии с существующими плагинами, которые находятся в директории /plugins.

Fuze

Fuze
Большое спасибо, почти получилось. Данные успешно вносятся в другую таблицу, но никак не могу поместить в неё id пользователя с которым произошли изменения, видимо в этом массиве ид пользователя не передается, т.к. переменные$article['id']и $article['user_id'] пустые scratch. Не подскажите как выкрутиться?
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.