Перейти к содержимому


Отработка events_enable из внешнего файла


Сообщений в теме: 11

#1 Dinak

    Активный участник

  • Пользователи
  • PipPipPip
  • 207 сообщений
  • Пол:Мужчина
  • Город:Новосибирск

Отправлено 10 Декабрь 2015 - 11:46

Коллеги, в корне КБ у меня лежит файл с таким вот содержанием:

$id = $_GET['utm_id'];
$page = $_GET['utm_page'];
$action = $_GET['utm_action'];
$action_type = $_GET['utm_type'];
//редирект
Header("Location: http://offer.el-log.ru?utm_source=mail&utm_action=".$action."&utm_type=".$action_type."");
//подключение и вставка данных в кб
$config['script_noauth'] = 1;
require_once "../../common.php";
$data = array();
$data['f16000'] = date("Y-m-d H:i:s"); //Дата действия
$data['f16010'] = $page; // Место запуска действия
$data['f16020'] = $action_type; //Тип действия
$data['f16030'] = $action; // Действие
//update_query($data, EVENTS_ENABLE, "Входящие запросы", "`id`=$id");
data_update(271, EVENTS_ENABLE, $data, "`id`=$id");
Данные успешно вставляются в КБ, при вставке данных срабатывают "напоминания", но не срабатывает вычисление на изменения поля "Действие". Что не так?

#2 Dinak

    Активный участник

  • Пользователи
  • PipPipPip
  • 207 сообщений
  • Пол:Мужчина
  • Город:Новосибирск

Отправлено 11 Декабрь 2015 - 10:11

Полазил, подумал, нашёл проблему ...
Но вот следующее event_enable отработали, но почему то если в вычисление шаблона на изменения поля стоит:
$send_filter = "`id`='$ID'";
send_template(1450, $send_filter);

То вычисление не отрабатывает, точнее сказать сама функция send_template не хочет работать при инициативе event_enable, а если руками произвести изменения поля то функция сработает. В чем глюк?
Обычные вычисления на изменения поля работают например date() и т.д., а конкретно send_template не хочет!

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Декабрь 2015 - 23:35

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

#4 Dinak

    Активный участник

  • Пользователи
  • PipPipPip
  • 207 сообщений
  • Пол:Мужчина
  • Город:Новосибирск

Отправлено 14 Декабрь 2015 - 07:47

По логике:
Внешний скрипт вносит update в КБ с events_enable, например заносит данные в поле Дата, на изменение поле дата есть вычисление в таблице, и если это вычисление например date(), то оно отрабатывает как нужно, а если это send_template то выдает SQL error без описания.

Вот пример кода
$line['Дата1'] = date('Y-m-d'); // это отработает
// или
$send_filter = "`id`='$ID'";
send_template(1450, $send_filter); // не отработает
Вычисление будет настроено на изменение поля "Дата", изменяется внешним скриптом.

id шаблона проверил, все работает при ручном изменения поля, а если скриптом то нет.

Сообщение отредактировал Dinak: 14 Декабрь 2015 - 07:49


#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Декабрь 2015 - 09:26

Цитата

а если это send_template то выдает SQL error без описания

Значит вычисление все таки срабатывает, по событию. Что касается "SQL error без описания" - в программе под администратором находитесь в этот момент? Обычно такое в случае неадминского входа.

#6 Dinak

    Активный участник

  • Пользователи
  • PipPipPip
  • 207 сообщений
  • Пол:Мужчина
  • Город:Новосибирск

Отправлено 14 Декабрь 2015 - 09:37

Такс, так отправку иницирует по сути внешний скрипт а не пользователь:

$config['script_noauth'] = 1;
require_once "../../common.php";
$data = array();
$data['f16000'] = date("Y-m-d H:i:s"); //Дата действия
$data['f16010'] = $page; // Место запуска действия
$data['f16020'] = $action_type; //Тип действия
$data['f16030'] = $action; // Действие
//update_query($data, EVENTS_ENABLE, "Входящие запросы", "`id`=$id");
data_update(271, EVENTS_ENABLE, $data, "`id`=$id");

По изменению поля $data['f16020'] должно сработать send_template

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Декабрь 2015 - 09:47

Понятно, тогда отключите временно $config['script_noauth'] = 1; и запустите скрипт в браузере. При этом вы должны быть авторизованы в программе (в том же самом браузере) под админом, тогда внешний скрипт возьмет вашу авторизацию из сессии. В этом случае ошибка выйдет в полном формате.

Правда вполне возможно что ошибка совсем пропадет, если она например связана с текущим пользователем. Тогда лучше использовать более универсальный вариант, а именно задать в config.php строку $config["sql_admin_mode"] = 1;

#8 Dinak

    Активный участник

  • Пользователи
  • PipPipPip
  • 207 сообщений
  • Пол:Мужчина
  • Город:Новосибирск

Отправлено 14 Декабрь 2015 - 09:55

Скрипт в браузере по прежнему выдает
SQL error

Это после того как добавил в config.php
$config["sql_admin_mode"] = 1;

Попробовал отключить $config['script_noauth'] = 1, вот что выдало!
Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

Error 404

Сообщение отредактировал Dinak: 14 Декабрь 2015 - 09:58


#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Декабрь 2015 - 09:57

Странно. А с первым вариантом?

#10 Dinak

    Активный участник

  • Пользователи
  • PipPipPip
  • 207 сообщений
  • Пол:Мужчина
  • Город:Новосибирск

Отправлено 14 Декабрь 2015 - 09:58

Попробовал отключить $config['script_noauth'] = 1, вот что выдало!
Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

Error 404

#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Декабрь 2015 - 10:00

:wacko:

Отправьте заявку в ТП лучше.

#12 Dinak

    Активный участник

  • Пользователи
  • PipPipPip
  • 207 сообщений
  • Пол:Мужчина
  • Город:Новосибирск

Отправлено 14 Декабрь 2015 - 10:00

ОК, спасибо )





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных