Вячеслав Варов

Вячеслав Варов

С нами с 06 сентября 2016; Место в рейтинге пользователей: #231
Вячеслав Варов
3 часа назад
1
0
Отвечаю на свой же вопрос — можно вот так

<?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/',
    // Добавьте другие настройки контекста здесь
];
?>
Вячеслав Варов
4 часа назад
0
А возможно ли и настройки контекстов сюда вынести?
Вячеслав Варов
Вчера в 08:44
0
Спасибо!) А как с происходит обработка {resource_id | resource: 'tv_param_name'}

каждый такой вызов делает свой отдельный запрос в бд? Я ведь правильно понимаю — использование выше сниппета выше более рационально если надо дергать 5 — 6 полей другого ресурса?
Вячеслав Варов
24 июля 2024, 17:44
0
У меня Ubuntu и настроил все на NGINX — работает норм
Вячеслав Варов
26 июня 2024, 14:38
0
Почему-то сниппет игнорирует указанные в настройках лиректориии и продолжает сохранять файлы в /assets/minifyx/ хотя указано /assets/cache/
Вячеслав Варов
10 мая 2024, 23:56
+1
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;
}
так заработало, может кому полезно будет
Вячеслав Варов
10 мая 2024, 23:32
0
правда не работают дружественные url, конфигурации вроде верный, что ему не нравится

В логах по классике пусто, все страницы выбивают 404, локейшн вроде как прописал верно в NGINX, во всяком случае с isp это работало
Вячеслав Варов
10 мая 2024, 23:21
0
решилось сменой владельца на www-data, от этого пользователя запускается php-fpm насколько это критично?
Вячеслав Варов
08 мая 2024, 13:36
1
0
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;
}
Получилось так, может кому полезно будет)
Вячеслав Варов
08 мая 2024, 13:21
0
Попробовал настроить таким образом получил что сайт в целом не открывается, открывается пустая страница и скачивается файл index.php.

Видимо обновилось что-то?
Вячеслав Варов
28 марта 2024, 09:42
0
Просто сейчас почему-то после переезда на 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
В файломов менеджере тоже превью не загружаются
Вячеслав Варов
28 марта 2024, 09:27
0
На php 7.4 запустилось, но хотелось бы разобраться и запустить на 8 версии
Вячеслав Варов
11 февраля 2024, 13:47
0
pThumb кэширует все ок, просто почему-то при обычной загрузке и Ajax разные кэши изображения

/assets/components/phpthumbof/cache/potreb_preview.19cb9a5166b7c3afe3d9d6c584abd4be.jpg — обычная

/assets/components/phpthumbof/cache/potreb_preview.48445472a51abf0072eea4c9ab7cf72a.jpg — Ajax

попробовал phpThumbOn он работает с mfilter2 и реально помогло far=0 спасибо!
Вячеслав Варов
11 февраля 2024, 13:20
0
OnParseDocument заработало с {'param' | lexicon}
Спасибо!
Вячеслав Варов
11 февраля 2024, 09:15
0
сайт по факту не является магазином в привычном понимании, это портал с предоставлением услуг, каждая услуга как товар, нет обычного понимания галлереи, каждая страница услуги как отдельный лендинг с наполнением, всего на сайте около 40 секций которые заполнены через migx

Соответственно, мне не совсем подходит генерация миниатюр через msGallery поскольку каждый блок имеет свой размер изображений, и тогда мне для универсальности нужно генерить каждую картинку во всех возможных вариациях на сайте помноженное на 4 (webp retina/webp/jpg retina/jpg) по мне так это оч много) + адаптивные картинки, некоторые секции имеют разные картинки на десктоп/таблет/мобайл, я все это добро вставляю через
<picture><source media.....</picture>


В сторону phpthumbon он работает аналогично с pthumb однако он не переваривает конвертацию png в web с сохранением прозрачности (всегда добавляет белый фон)
Вячеслав Варов
10 февраля 2024, 12:49
0
а ну есть msGallery2 который для всех типов ресурсов modx однако вопрос как у него с генерацией webp с прозрачным фоном, ну и я на сколько знаю он генерит миниатюры исходя из настроек, в моем случае приходится брать размер картинки, и формировать из нее исходя из ее размера 1 webp для ретины затем в два раза меньше разрешение 1 webp для обычных экранов и еще 2 jpg/png для retina и обычных экранов, пока только pThumb с этим справляется однако очень медленно работает фильтрация поскольку mfilter2 пересоздает изображения в чанках где есть pthumb а не использует кэширование картинки, которые уже ранее были сгенерированы, отсюда вывод что надо как-то докручивать связку mfilter2 + pthumb