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


Работа с базой КБ на прямую (веб-версия)

web версия

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

#1 aleks.goodcolor

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

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

Отправлено 09 Август 2014 - 08:20

Здравствуйте. У меня такая проблема: я делаю прямой запрос к базе и записываю в нее. У меня стоит вычисление которое срабатывает на добавление в таблицу, но оно конечно не срабатывает. Скажите пожалуйста, что необходимо сделать чтобы событие добавления новой записи было понято для КБ?

#2 maksn

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

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 09 Август 2014 - 10:03

Просмотр сообщенияaleks.goodcolor (09 Август 2014 - 08:20) писал:

Здравствуйте. У меня такая проблема: я делаю прямой запрос к базе и записываю в нее. У меня стоит вычисление которое срабатывает на добавление в таблицу, но оно конечно не срабатывает. Скажите пожалуйста, что необходимо сделать чтобы событие добавления новой записи было понято для КБ?
Либо в своем php скрипте сами повторяете все действия из "вычислений", либо используете функции КБ data_insert/insert_query, подключив все необходимые файлы
"...Сижу, паяю. CRM починяю..."
Мои разработки

#3 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 09 Август 2014 - 10:59

insert_query и подобные функции где используются имена таблиц и полей устарели. Решать конечно каждому, но я бы использовал уже только функции типа data_*

#4 CbCoder

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

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

Отправлено 09 Август 2014 - 14:31

Вариантов 2:
  • Использовать нашу функцию data_insert с включенным параметром EVENTS_ENABLE (или функцию insert_query) - рекомендуемый вариант.
  • Если все же позарез охота использовать свой прямой запрос - вызывать события искусственно через функцию popup_event. Вариант более сложный, поэтому не рекомендую.
А повторять свой код - это "не по феншую".

#5 aleks.goodcolor

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

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

Отправлено 11 Август 2014 - 08:03

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

#6 CbCoder

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

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

Отправлено 11 Август 2014 - 08:22

Тогда вы вы никак не запустите вычисления. Выполнение вычислений требует такого же подключения к программе, как и data_insert.

#7 aleks.goodcolor

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

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

Отправлено 11 Август 2014 - 08:29

а если сделать условие на отображение поля что $line['поле']!=0 и заполнять массив $event, то потом можно будет вызвать событие?

#8 CbCoder

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

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

Отправлено 11 Август 2014 - 09:11

Цитата

а если сделать условие на отображение поля что $line['поле']!=0

Не совсем понял, причем тут это?


Цитата

и заполнять массив $event, то потом можно будет вызвать событие?

Вызов события - такая же функция программы, как data_insert. Если вы не можете запустить data_insert из своего скрипта - вы точно также не сможете запустить и popup_event.

#9 maksn

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

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 11 Август 2014 - 09:14

Просмотр сообщенияaleks.goodcolor (11 Август 2014 - 08:03) писал:

Суть в том, что прямой запрос к базе идет не из КБ, а с другого сайта и поэтому использование функции data_insert невозможно.
Не возможно? Кто Вам сказал? Делаете на КБ проксирующий файл, который будет принимать запрос на добавление со стороннего сайта. Он и будет вносить в базу все нужные данные.

Сообщение отредактировал maksn: 11 Август 2014 - 09:16

"...Сижу, паяю. CRM починяю..."
Мои разработки

#10 aleks.goodcolor

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

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

Отправлено 11 Август 2014 - 09:18

Просмотр сообщенияmaksn (11 Август 2014 - 09:14) писал:

Не возможно? Кто Вам сказал? Делаете на КБ проксирующий файл, который будет принимать запрос на добавление со стороннего сайта. Он и будет вносить в базу все нужные данные.
Не подскажите как создать этот "проксирующий" файл? Просто пока не представляю каким образом это работает.

#11 maksn

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

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 11 Август 2014 - 09:26

Просмотр сообщенияaleks.goodcolor (11 Август 2014 - 09:18) писал:

Не подскажите как создать этот "проксирующий" файл? Просто пока не представляю каким образом это работает.
Sorry, Я этим зарабатываю и поэтому раскрывать детали мне как то не с руки. Вспомните, что есть некий механизм внешних файлов. Подумайте, как этот самый "внешний файл" может выполнить то что Вам нужно. Отвлекитесь на время от того, что запрос выполняется с другого URL. А уже потом подумайте как передать на него этот запрос из вне.

Сообщение отредактировал maksn: 11 Август 2014 - 09:37

"...Сижу, паяю. CRM починяю..."
Мои разработки

#12 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 11 Август 2014 - 12:49

Вы сначала опишите, что именно вам нужно добавить в кб. Например, есть информация о продукте и состоит она из таких полей у меня на сайте. В кб есть такая-то таблица, в ней такие-то поля. Я хочу добавлять вот эти данные в эти поля. А дальше я, и думаю другие, подскажут направление и что с этим делать. Еще конечно же стоит уточнить, а сможет ли ваш сайт отправлять запросы post, скажем. У меня есть заказчики, у которых интернет магазины шаблонные. И все что им позволино править это шаблоны отображения. А вот доступа к php скриптам уже нет.

P.S. Задача не совсем сложная, даже я бы сказал тривиальная, но возможно она уж больно объемная и требует знаний программирования на более высоком уровне, чем у новичка. Как сказал максн, такие разработки требует времени, а значит и вознаграждений. Но повторюсь, попробуйте сначала описать свою задачу на словах более детально.

Цитата

Вспомните, что есть некий механизм внешних файлов. Подумайте, как этот самый "внешний файл" может выполнить то что Вам нужно
Настройки-дополнительно-менеджер файлов-список внешних файлов. В форме вводите mapi.php и жмете добавить файл. Жмете карандаш. Первые строки такого файла должны быть

<?php

$config['script_noauth'] = 1;
require_once "common.php";

Сообщение отредактировал wondertalik: 11 Август 2014 - 12:58


#13 aleks.goodcolor

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

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

Отправлено 12 Август 2014 - 08:03

Спасибо за объяснения. Я с сайта перекачиваю почту в crm. У меня есть полный доступ для этого - сейчас пока работает без события при создании записи - стоит на отображение. Таким образом в КБ я передаю имя и емейл отправителя и получателя, тема, текст, вложенные файлы, дату создания. Для переноса в КБ я создал новую таблицу. С внешними файлами пока не разобрался, так что нужно будет подумать.

#14 Александр Пономарев

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

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

Отправлено 17 Март 2015 - 18:25

Не проще было бы сохранять массив писем из почты куда=нибудь, а оттуда по КРОНу закачивать в баху с заданной периодичностью, чтобы не инициировать процесс "извне"?





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

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