08 августа 2024, 19:59 Сейчас возвращает строку c data, что с ней делать пока не понятно string(50031) "Array ( [id] => 51 [type] => document [contentType]..... Вопросы / msProducts и общий параметр return 5 0
29 июля 2024, 17:24 Докрутил, ранее не подтягивались настройки если запрашивать из одного контекста настройки другого <?php switch ($modx->event->name) { case 'OnHandleRequest': // Функция для загрузки настроек из файлов function loadSettings($directory) { $settings = []; if (file_exists($directory) && is_dir($directory)) { foreach (glob($directory . '*.inc.php') as $file) { $response = require($file); if (is_array($response)) { $settings = array_merge($settings, $response); } } } return $settings; } // Загрузка общих настроек $site_all = MODX_CORE_PATH . 'config/settings/'; $globalSettings = loadSettings($site_all); // Конфигурация для сайта с конфигом MODX_CONFIG_KEY $site_dir = MODX_CORE_PATH . 'config/settings/' . MODX_CONFIG_KEY . '/'; $configKeySettings = loadSettings($site_dir); // Конфигурация для текущего контекста $context_key = $modx->context->get('key'); $context_dir = MODX_CORE_PATH . 'config/settings/' . $context_key . '/'; $contextSettings = loadSettings($context_dir); // Объединение всех настроек $allSettings = array_merge($globalSettings, $configKeySettings, $contextSettings); // Применение настроек к текущему контексту foreach ($allSettings as $key => $value) { $modx->context->setOption($key, $value); // Сохранение настроек в базе данных $setting = $modx->getObject('modContextSetting', [ 'context_key' => $context_key, 'key' => $key ]); if (!$setting) { $setting = $modx->newObject('modContextSetting'); $setting->set('context_key', $context_key); $setting->set('key', $key); } $setting->set('value', $value); $setting->save(); } break; } ?> Пошаговые инструкции / Лайфхак по config.inc 29 0
27 июля 2024, 18:36 попробуй c указанием пространства, например у меня есть пространство имен mynamespace внутри него есть все ключи и заданы они как mynamespace.key_name в итоге вывожу {'mynamespace.key_name' | lexicon} Плагин на загрузку лексикона выглядит так <?php $lang = $modx->getOption('cultureKey'); $modx->setOption('cultureKey',$lang); $modx->lexicon->load($lang.':mynamespace:default');Запуск на системные события OnParseDocument и OnLoadWebDocument Вопросы / pdoPage и лексиконы 4 0
27 июля 2024, 17:28 ну вот меня это и смутило, отсюда и задался вопросом — вдруг это как-то для безопасности или еще чего сделано) Вопросы / Почему MODX не использует $_SERVER['DOCUMENT_ROOT']? 7 0
27 июля 2024, 14:26 Супер, да речь об одном конкретном сайте, спасибо!) Вопросы / Почему MODX не использует $_SERVER['DOCUMENT_ROOT']? 7 0
27 июля 2024, 13:51 Этот ответ из gpt я уже читал и мне не показалось это чемто критичным, однако все таки решил спросить) У меня сайт на nginx все пути прописывал сам, поэтому если это никак не отражается то в целом действительно проще использовать серверную константу Вопросы / Почему MODX не использует $_SERVER['DOCUMENT_ROOT']? 7 0
27 июля 2024, 00:56 Отвечаю на свой же вопрос — можно вот так <?php switch ($modx->event->name) { case 'OnHandleRequest': // Загрузка общих настроек $site_all = MODX_CORE_PATH . 'config/settings/'; if (file_exists($site_all) && is_dir($site_all)) { foreach (glob($site_all . '*.inc.php') as $file) { $response = require($file); if (is_array($response)) { $modx->config = array_merge($modx->config, $response); } } } // Конфигурация для сайта с конфигом MODX_CONFIG_KEY $site_dir = MODX_CORE_PATH . 'config/settings/' . MODX_CONFIG_KEY . '/'; if (file_exists($site_dir) && is_dir($site_dir)) { foreach (glob($site_dir . '*.inc.php') as $file) { $response = require($file); if (is_array($response)) { $modx->config = array_merge($modx->config, $response); } } } // Конфигурация для текущего контекста $context_key = $modx->context->get('key'); $context_dir = MODX_CORE_PATH . 'config/settings/' . $context_key . '/'; if (file_exists($context_dir) && is_dir($context_dir)) { foreach (glob($context_dir . '*.inc.php') as $file) { $response = require($file); if (is_array($response)) { $modx->config = array_merge($modx->config, $response); } } } break; } ?>Структура папок core/ └── config/ └── settings/ ├── common.inc.php // Общие настройки ├── config1/ │ └── config1-settings.inc.php // Настройки для MODX_CONFIG_KEY = config1 ├── config2/ │ └── config2-settings.inc.php // Настройки для MODX_CONFIG_KEY = config2 ├── web/ │ └── web-settings.inc.php // Настройки для контекста web └── en/ └── en-settings.inc.php // Настройки для контекста enВид настроек например для core/config/settings/en/en-settings.inc.php <?php return [ 'site_url' => 'https://your-uz-site-url.com/', // Добавьте другие настройки контекста здесь ]; ?> Пошаговые инструкции / Лайфхак по config.inc 29 0 1
27 июля 2024, 00:35 А возможно ли и настройки контекстов сюда вынести? Пошаговые инструкции / Лайфхак по config.inc 29 0
26 июля 2024, 08:44 Спасибо!) А как с происходит обработка {resource_id | resource: 'tv_param_name'} каждый такой вызов делает свой отдельный запрос в бд? Я ведь правильно понимаю — использование выше сниппета выше более рационально если надо дергать 5 — 6 полей другого ресурса? Вопросы / Получить все TV-поля ресурса в Fenom 9 0
24 июля 2024, 17:44 У меня Ubuntu и настроил все на NGINX — работает норм Новые дополнения и их версии / [SendIt 2.0.0] Пагинация и обновлённая загрузка файлов 28 0
26 июня 2024, 14:38 Почему-то сниппет игнорирует указанные в настройках лиректориии и продолжает сохранять файлы в /assets/minifyx/ хотя указано /assets/cache/ Новые дополнения и их версии / [MinifyX] Новые возможности старичка 80 0
10 мая 2024, 23:56 server { server_name 5.35.87.177 www.5.35.87.177; charset off; ssi on; index index.php index.html; disable_symlinks if_not_owner from=$root_path; access_log /var/www/httpd-logs/5.35.87.177.access.log; error_log /var/www/httpd-logs/5.35.87.177.error.log notice; set $root_path /var/www/5.35.87.177; root $root_path; gzip on; gzip_comp_level 5; gzip_disable "msie6"; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; location @modx-rewrite { rewrite ^/(.*)$ /index.php?q=$1&$args last; } location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|webp|woff|woff2)$ { expires 24h; } try_files $uri $uri/ @modx-rewrite; } location @php { fastcgi_index index.php; fastcgi_ignore_client_abort on; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } listen 5.35.87.177:80; }так заработало, может кому полезно будет Вопросы / Не запускается MODX с NGINX + PHP-FPM на чистом ubuntu 22.4 3 +1
10 мая 2024, 23:32 правда не работают дружественные url, конфигурации вроде верный, что ему не нравится В логах по классике пусто, все страницы выбивают 404, локейшн вроде как прописал верно в NGINX, во всяком случае с isp это работало Вопросы / Не запускается MODX с NGINX + PHP-FPM на чистом ubuntu 22.4 3 0
10 мая 2024, 23:21 решилось сменой владельца на www-data, от этого пользователя запускается php-fpm насколько это критично? Вопросы / Не запускается MODX с NGINX + PHP-FPM на чистом ubuntu 22.4 3 0
08 мая 2024, 13:36 server { server_name 213.139.209.81 www.213.139.209.81; return 301 https://213.139.209.81$request_uri; charset off; index index.php index.html; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*.conf; include /etc/nginx/vhosts-resources/213.139.209.81/*.conf; access_log /var/www/httpd-logs/213.139.209.81.access.log; error_log /var/www/httpd-logs/213.139.209.81.error.log notice; ssi on; set $root_path /var/www/www-root/data/www/213.139.209.81; root $root_path; gzip on; gzip_comp_level 5; gzip_disable "msie6"; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; location @modx-rewrite { rewrite ^/(.*)$ /index.php?q=$1&$args last; } location / { try_files $uri $uri/ @modx-rewrite; location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|webp|woff|woff2)$ { expires 24h; } } location @php { include /etc/nginx/vhosts-resources/213.139.209.81/dynamic/*.conf; fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@213.139.209.81"; fastcgi_pass unix:/var/www/php-fpm/1.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } listen 213.139.209.81:80; } server { server_name 213.139.209.81 www.213.139.209.81; ssl_certificate "/var/www/httpd-cert/www-root/213.139.209.81_le1.crt"; ssl_certificate_key "/var/www/httpd-cert/www-root/213.139.209.81_le1.key"; ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_dhparam /etc/ssl/certs/dhparam4096.pem; charset off; index index.php index.html; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*.conf; include /etc/nginx/vhosts-resources/213.139.209.81/*.conf; access_log /var/www/httpd-logs/213.139.209.81.access.log; error_log /var/www/httpd-logs/213.139.209.81.error.log notice; ssi on; set $root_path /var/www/www-root/data/www/213.139.209.81; root $root_path; gzip on; gzip_comp_level 5; gzip_disable "msie6"; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; location @modx-rewrite { rewrite ^/(.*)$ /index.php?q=$1&$args last; } location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|webp|woff|woff2)$ { expires 24h; } try_files $uri $uri/ @modx-rewrite; } location @php { include /etc/nginx/vhosts-resources/213.139.209.81/dynamic/*.conf; fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@213.139.209.81"; fastcgi_pass unix:/var/www/php-fpm/1.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } listen 213.139.209.81:443 ssl; }Получилось так, может кому полезно будет) Вопросы / Как правильно настроить конфигурацию NGINX для работы MODX? 1 0 1
08 мая 2024, 13:21 Попробовал настроить таким образом получил что сайт в целом не открывается, открывается пустая страница и скачивается файл index.php. Видимо обновилось что-то? Уроки / Настройка конфигурации NGINX + PHP-FPM 7.4 на Ubuntu 22.04 + Fastpanel для MODX 2.8.7 13 0
28 марта 2024, 10:22 А можно ссылку на телегу? Нашел сам, спасибо Вопросы / Белый экран при редактировании ресурса после копирования его в другой контекст 6 0
28 марта 2024, 09:42 Просто сейчас почему-то после переезда на 7.4 отлетели картинки в панели управления, вместо картинок вижу 500 ошибку /connectors/system/phpthumb.php?w=400&h=400&aoe=0&far=0&f=png&src=products/uzcard_unionpay.jpg&source=3&version=41a17f4bВ файломов менеджере тоже превью не загружаются Вопросы / Белый экран при редактировании ресурса после копирования его в другой контекст 6 0
Как ограничить вебмастеру доступ к заказам? Допустим вы закроете доступ к заказам и пользователям через админку, но для полноценной работы с сайтом нужен доступ в БД, а там вся эта информация есть и спрятать её невозможно, т...
Возможно ли реализовать возможность предоплаты за доставку на сайте? Отлично, значит можно не создавать заказ пока оплата не пройдёт успешно, а поскольку класс-обработчик оплаты будет кастомный сможет сами решать какую стоимость пробрасывать. Ещё на...
Редизайн сообщества На мобилке шапка не помещается на 1 строке, плюс иконки растягиваются до овала из-за иконки, вместо того, чтобы оставаться круглыми
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Выпустил новую версию [1.0.3-beta1] — 2026-07-13 Fixed — Inject сохраняет ``, `` и `` на полном HTML-документе (больше не оборачивает страни...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
mynamespace внутри него есть все ключи и заданы они как mynamespace.key_name
в итоге вывожу
Плагин на загрузку лексикона выглядит так
<?php
Запуск на системные события OnParseDocument и OnLoadWebDocument
У меня сайт на nginx все пути прописывал сам, поэтому если это никак не отражается то в целом действительно проще использовать серверную константу
Структура папок
Вид настроек например для
core/config/settings/en/en-settings.inc.php
каждый такой вызов делает свой отдельный запрос в бд? Я ведь правильно понимаю — использование выше сниппета выше более рационально если надо дергать 5 — 6 полей другого ресурса?
В логах по классике пусто, все страницы выбивают 404, локейшн вроде как прописал верно в NGINX, во всяком случае с isp это работало
Видимо обновилось что-то?
В файломов менеджере тоже превью не загружаются