Алексей Ерохин

Алексей Ерохин

Был в сети 15 апреля 2025, 15:28
Заказы не принимаю
Создать TV — селект с возможными значениями @SELECT `name`,`snippet` FROM `dbpref_site_htmlsnippets` WHERE `category` = 2"
Сделать так:
{"field":"module","caption":"module","inputTV":"название выше созданной TV"}
Теоретически можно этот же запрос пихнуть сразу вместо вашего.

Тогда у вас будет структура chunkName==chunk_html_code|| и т.д.
Отображаться в селектах будет имя чанка, а выводить соответственно содержимое

В логах php написано что скрипт вылетел по таймауту, соответственно ничего не вернув.
А в modx в логи попала ошибка обработки, когда в цикле пытаются перебрать несуществующую переменную, которая не заполнилась по причине вылета по таймауту.
Смотрите в сниппет, что там такое.
Возможно на старом сервере было увеличено время выполнения скриптов, а на текущем стандартное.
php.net/manual/ru/language.types.float.php
Кроме того, рациональные числа, которые могут быть точно представлены в виде чисел с плавающей точкой с основанием 10, например, 0.1 или 0.7, не имеют точного внутреннего представления в качестве чисел с плавающей точкой с основанием 2, вне зависимости от размера мантиссы. Поэтому они и не могут быть преобразованы в их внутреннюю двоичную форму без небольшой потери точности. Это может привести к неожиданным результатам: например, floor((0.1+0.7)*10) скорее всего вернет 7 вместо ожидаемого 8, так как результат внутреннего представления будет чем-то вроде 7.9999999999999991118....
php.net/manual/ru/language.types.integer.php#language.types.integer.casting
При преобразовании из float в integer, число будет округлено в сторону нуля.
floatval(19.9 * 50) по факту чуть меньше чем 995, а floatval(1990 — floatval(19.9 * 50)) чуть больше (в десятичном представлении), при intval число округляется в строну 0, поэтому var2 становится 994,var3 = 995, отсюда и результаты
print intval($var1) > intval($var2); //true