Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 133 комментария

Павел Романов
Павел Романов
Либо добавьте свой пакет в системную настройку extension_packages, либо используйте параметр loadModels.
И если в базе нет поля publishedon, то укажите сортировку по существующему полю:

{'pdoResources' | snippet : [
    'loadModels' => 'название пакета',
    'class' => 'Cities',
    'sortby' => '{ "id":"DESC" }'
]}
Наумов Алексей
Наумов Алексей
Привет, ну да, верно написал Николай, ошибка из-за того, что один запрос еще не завершен, а система отправляет второй. Посещаемость большая? Ошибка частая или разок проскочила?
Я, когда руки дойдут до smartSessions, попробую оптимизировать компонент, может побыстрее будет работать.
Pandemic
Pandemic
Если убрать торговое предложение, делает вид что что-то происходит с товарами, но резко обрывается, и так же раз там в неизвестность проскакивает нормально, при том я ничего не меняю.

P.S. Ошибок нет нигде, буквально пусто везде
Николай Савин
Николай Савин
Кстати есть мнение, что файлы конфигурации лучше хранить в специальном каталоге core/config, где основной MODX конфиг лежит.
Это связано с тем, что можно случайно каталог с компонентом удалить, перезаписать. А также есть нюансы связанные с работой Git (каталог конфига по умолчанию добавляют в исключения и он не попадет в открытый доступ). Короче так… минутка бесполезной полезной информации
Николай Савин
Николай Савин
Эта ошибка обычно означает попытку записать в сессию данные, в тот момент, когда не завершился еще прошлый запрос. То есть обращения к сессии через чур быстрые. Не успевает обработать. Сессии внутри баз данных немного медленнее работают, чем файловые сессии.
Wassi Wassinen
Wassi Wassinen
@Наумов Алексей приветствую. Классное дополнение, вы молодец.

Есть вот такая ошибка в логах:

[2024-02-19 14:43:00] (ERROR @ /www/core/xpdo/om/xpdoobject.class.php : 240) Error HY000 executing statement: 
Array
(
    [0] => HY000
    [1] => 2014
    [2] => Cannot execute queries while other unbuffered queries are active.  Consider using PDOStatement::fetchAll().  Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
)

[2024-02-19 14:43:00] (ERROR @ /www/core/xpdo/om/xpdoobject.class.php : 1452) Error HY000 executing statement:
INSERT INTO `modx_smart_sessions` (`id`, `access`, `ip`, `user_agent`, `data`) VALUES ('8u218rm3v5d92au80cqe497mgt', 1708342980, 'support@search.yandex.ru', 'Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)', 'modx.user.contextTokens|a:0:{}modx.user.0.resourceGroups|a:1:{s:5:\"proza\";a:0:{}}modx.user.0.attributes|a:1:{s:5:\"proza\";a:5:{s:16:\"modAccessContext\";a:15:{s:6:\"author\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:4:\"beta\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:4:\"blog\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:5:\"event\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:8:\"gramotno\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:7:\"konkurs\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:8:\"litkursy\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:3:\"mag\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:5:\"proza\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:7:\"publish\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:6:\"rabota\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:5:\"stihi\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:6:\"theory\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:4:\"typo\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}s:3:\"web\";a:1:{i:0;a:3:{s:9:\"principal\";i:0;s:9:\"authority\";s:1:\"0\";s:6:\"policy\";a:3:{s:4:\"load\";b:1;s:6:\"formit\";b:1;s:18:\"formit_encryptions\";b:0;}}}}s:22:\"modAccessResourceGroup\";a:0:{}s:17:\"modAccessCategory\";a:0:{}s:28:\"sources.modAccessMediaSource\";a:0:{}s:18:\"modAccessNamespace\";a:0:{}}}Tickets_User|s:32:\"99c2d8d1749f889d870d70c625fecb6e\";')
Array
(
    [0] => HY000
    [1] => 2014
    [2] => Cannot execute queries while other unbuffered queries are active.  Consider using PDOStatement::fetchAll().  Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
)

[2024-02-19 14:43:00] (ERROR @ Unknown0) PHP warning: Unknown: Failed to write session data using user defined save handler. (session.save_path: /var/lib/php/sessions)
При этом в кончиках не указан этот путь "/var/lib/php/sessions" для сохранения сессий (строка закомментирована). В чём может быть дело?
Виктор
Виктор
Добрый день!
Можно подробнее про ссылки. пожалуйста. Таблица так выглядит:
Название, Цена, ID

Как бы это ID превратить в ссылку. В идеале бы вообще сделать название ссылкой.

Здесь же нет отдельно чанков под первую и последнюю ячейку, например? Своих id тоже не увидел.
Андрей
Андрей
Уязвимая получается система))
Вы панику лишний раз не наводите =) С системой всё в порядке.

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

Как изменить кодировку для всех таблиц в MySQL — вот так можно поменять все таблицы. Также в БД должно быть установлено Сопоставление кодировки соединения в utf8mb4_unicode_ci или utf8mb4_general_ci

И также в файле /core/config/config.inc.php есть такие строчки:
$database_connection_charset = 'utf8mb4';
$database_dsn = 'mysql:host=127.0.0.1;dbname=****;charset=utf8mb4';
Также надо поменять на utf8mb4 если стоит другое значение.