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


Публикации CbCoder

9 публикаций создано CbCoder (учитываются публикации только с 29-Март 23)


#39413 Окно ввода данных из вычисления

Отправлено от CbCoder в 13 Февраль 2024 - 16:19 in Как это сделать

Вычисления в принципе не предназначены для вывода чего-либо (кроме всплывающих уведомлений через функцию calc_alerts), особенно при быстром редактировании которое в фоне данные сохраняет. Так что вы никак не реализуете свою задачу буквально. Через вычисление можно реализовать следующий вариант: 1) проверяем данные, 2) в случае несоответствия отменяем изменение через $event['changed'][111]['old'], где 111 - id поля, и 3) выводим уведомление пользователю о том что значение в указанном поле некорректное, исправьте на другое

Либо реализуете заполнение поля через доп.действие в всплывающем окне и там уже делаете какую угодно форму.



#39412 Программное формирование pdf с использованием шаблонов печати

Отправлено от CbCoder в 13 Февраль 2024 - 16:08 in Как это сделать

Просмотр сообщенияandibrag (10 Февраль 2024 - 11:41) писал:

Разобрался, всё сделал.

Нашли ответ на форуме?



#39403 Передать в шаблон письма динамические данные

Отправлено от CbCoder в 29 Сентябрь 2023 - 12:16 in Как это сделать

Просмотр сообщенияAnton1 (15 Сентябрь 2023 - 15:49) писал:

Код работает, но возможно есть более правильные и изящные решения передачи результатов запроса в шаблон письма, без использования json и html_entity_decode ?

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



#39399 Передать в шаблон письма динамические данные

Отправлено от CbCoder в 15 Сентябрь 2023 - 14:56 in Как это сделать

Переменная $line будет сохранена в БД только после завершения кода всех вычислений, а send_template берет сразу данные из БД. Поэтому и записывать в вашем случае лучше в БД напрямую:

data_update($table_id, ['f111' => $data], 'id = ', $ID); // 111 - замените на id поля "Данные", в $data - результат вашего запроса



#39393 Запустить внешний файл из крона

Отправлено от CbCoder в 11 Август 2023 - 16:01 in Как это сделать

Цитата

Сработает?

Да, для доп.действий по идее тоже должно сработать.

Цитата

Далее определить id и запустить через run_calc()

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



#39390 Запустить внешний файл из крона

Отправлено от CbCoder в 11 Август 2023 - 15:25 in Как это сделать

Не подойдет тут никак вариант с include по той причине что скрипт user_button.php не предназначен для включения его в другие файлы. Это полноценный скрипт для самостоятельно запуска в браузере, поэтому там и происходит дублирование всего того что уже подключено при вызове задания крон, включая определение функций и т.д. И проверка функций тут погоды не сделает.

Как вариант можно скопировать код доп.действия в вычисление и поставить событие "по расписанию", тогда задание крон создастся автоматически, но этот вариант подойдет если вам нужно только одно вычисление запускать. Если нужно именно включить вызов кода вычисления в произвольный код крона, то можно использовать следующий код:

$calc = sql_select_array(CALC_TABLE, 'id = 111'); // 111 - id вычисления
$calc['link_fields'] = unserialize($calc['link_fields']);
$table_id = $calc['table_id'];
$table = get_table($table_id);
$table_fields = get_table_fields($table);
$event = [
    'type' => 'cron',
    'table_id' => $table_id,
    'changed' => [],
];
$line = data_select_array($table_id, 'id = 222'); // 222 - id записи по которой надо запустить вычисление
calc_line($table, $line, $calc, $event);



#39388 Запустить внешний файл из крона

Отправлено от CbCoder в 10 Август 2023 - 12:53 in Как это сделать

А каким образом запускали? Вариант с include как со внешними файлами в примере выше, тут не прокатит, т.к. код доп.действия лежит в БД, а не в файле.

Кроме того тут еще надо учитывать что код дополнительного действия запускается в контексте текущей записи конкретной таблицы (как и код вычислений), тогда как в кроне есть только контекст общей среды выполнения КБ (а во внешних файлах вообще нет никакого контекста по умолчанию). В этом тоже может быть проблема.



#39386 Правило отображения кнопок Восстановить и Копировать

Отправлено от CbCoder в 11 Июль 2023 - 11:15 in Как это сделать

Просмотр сообщенияf-jeka (16 Июнь 2023 - 15:11) писал:

Можно как то сделать правило запрещающее копировать при определенных условиях?
Нужно сделать чтобы оплаченный счет нельзя было скопировать.
Или скопировать, но чтоб отметка об оплате не копировалась.
Возможно ли так сделать?

Можно написать вычисление, где проверять заполнение переменной $_REQUEST['copy_line'] и соответственно при ее наличии обнулять в нем отметку об оплате.



#39385 MariaDB вместо MySQL

Отправлено от CbCoder в 11 Июль 2023 - 11:11 in Разработчикам

Просмотр сообщенияf-jeka (08 Май 2023 - 02:07) писал:

Добрый день.
У нас старая версия КБ 2.0.8 работает на mysql 5.6
Есть ли смысл обновить базу данных до mysql 8 или перейти на mariadb 10 ?
Будет ли КБ работать с этими версиями?
Будет ли ускорение?

До mysql 8 на данный момент не то чтобы смысла нет переходить, а вообще нельзя переходить, т.к. выйдут ошибки из-за частичной несовместимости КБ с этой версией. Возможно позже исправим это, как руки дойдут. Поэтому в плане mysql надо оставаться на 5.6

Что же касается mariadb, то это как раз рекомендуемая нами СУБД, т.к. наши сервера Saas работают именно на ней и все тестируется в первую очередь на ней.