Всего 125 978 комментариев

Николай Савин
10 декабря 2021, 15:51
0
Здравствуйте. Нет такого не предусмотрено.
Виктор
10 декабря 2021, 15:50
0
Николай, приветствую! Вопрос по возможностям модуля.
Если в CRM меняем остатки товара, то на сайте в модификациях msOptionsPrice они изменятся? Такая синхронизация поддерживается?
Vladimir
10 декабря 2021, 15:09
+1
В типах есть файл, и изображение, но там так же открывается файловый менеджер.
Vladimir
10 декабря 2021, 15:07
0
как я писал выше, что .html я убрал изначально.

htaccess такой
RewriteEngine On
RewriteBase /


# Prevent dot directories (hidden directories like .git) to be exposed to the public
# Except for the .well-known directory used by LetsEncrypt a.o
RewriteRule "/\.|^\.(?!well-known/)" - [F]

RewriteCond %{THE_REQUEST} //
   # Проверяем, повторяется ли слеш (//) более двух раз.
RewriteRule .* /$0 [R=301,L]
   # Исключаем все лишние слеши.

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]





RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^.*$ $0.html [L,QSA]
RewriteCond %{THE_REQUEST} ([^\s]*)\.html
RewriteRule (.*) %1 [R=301,L]


RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/{2,} [NC]
RewriteRule ^(.*) $1 [R=301,L]


RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]



AddEncoding gzip .jgz

#add support gzip JavaScript
RewriteCond %{HTTP_USER_AGENT} ".*Safari.*" [OR]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.jgz -f
RewriteRule (.*)\.js$ $1\.js.jgz [L]
AddType "text/javascript" .js.jgz

#add support gzip CSS
RewriteCond %{HTTP_USER_AGENT} ".*Safari.*" [OR]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.jgz -f
RewriteRule (.*)\.js$ $1\.css.jgz [L]
AddType "text/css" .css.jgz
AddEncoding gzip .jgz


RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_URI}  (?i)(.*)(\.jpe?g|\.png)$
RewriteCond %{DOCUMENT_ROOT}%1.webp -f
RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R]


Header append Vary Accept env=REDIRECT_accept

AddType image/webp .webp


ExpiresActive On

BrowserMatch "MSIE" brokenvary=1
BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
BrowserMatch "Opera" !brokenvary
SetEnvIf brokenvary 1 force-no-vary
# BROWSER CACHING USING EXPIRES HEADERS
<IfModule mod_expires.c>
    ExpiresActive On
  
    # Images
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"
    ExpiresByType image/x-icon "access plus 1 year"
  
    # Video
    ExpiresByType video/mp4 "access plus 1 year"
    ExpiresByType video/mpeg "access plus 1 year"

    # CSS, JavaScript
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"

    # Others
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
</IfModule>

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

# BROWSER CACHING USING CACHE-CONTROL HEADERS
<ifModule mod_headers.c> 
    # One year for image and video files
    <filesMatch ".(flv|gif|ico|jpg|jpeg|mp4|mpeg|png|svg|swf|webp|ttf|woff|eot)$">
        Header set Cache-Control "max-age=31536000, public"
    </filesMatch>

    # One month for JavaScript and PDF files
    <filesMatch ".(js|pdf)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>

    # One week for CSS files
    <filesMatch ".(css)$">
        Header set Cache-Control "max-age=604800, public"
    </filesMatch>
</ifModule>
Сергей Шлоков
10 декабря 2021, 12:44
0
Информация для понимания механизма парсинга.
max
max
10 декабря 2021, 12:40
+1
Пробовал. То же самое.

В content index.html
{'!pdoResources' | snippet : [
    'tpl' => 'ChildContent',
    'includeContent' => 1
]}
В чанке ChildContent:
{$content}
В дочернем ресурсе child.html (родитель index.html):
{1 | resource : 'pagetitle'}
Захожу на index.html — вижу
{1 | resource : 'pagetitle'}
. Захожу на child.html — вижу как и ожидалось заголовок ресурса 1
Наумов Алексей
10 декабря 2021, 12:31
0
Подозреваю что стоит попробовать уйти от @INLINE к обычному чанку.
Сергей Шлоков
10 декабря 2021, 07:28
+5
Спасибо за добрые слова! Но ради справедливости хочу сказать, что в нашем RU-сообществе контрибьютеров MODX есть люди, вклад которых не меньше (а то и больше) значителен. Ведь важно не только писать код. Важно всё. И умение организовать и мотивировать других. И поправить лексиконы или CSS класс. И даже просто подсказать правильный инструмент для работы.

Немного пафосно прозвучало, да? %)
Raimei
09 декабря 2021, 16:17
+3
Хорошая идея. Скинул на кружку провинциального, но вкусного кофе.
Павел Бигель
09 декабря 2021, 16:13
+5
Предлагаю скинуться по рублю данному товарищу так как без его работы MODX 3 в принципе мог бы и не выходить
Роман
09 декабря 2021, 15:49
-1
/manager/?a=system/contenttype
Тип содержимого, нужно посмотреть, что там в типе text/html
А так скорее всего не правильные настройки в htaccess
Сергей Шлоков
09 декабря 2021, 15:24
+7
Поправил. Спасибо!
Банальная опечатка. Вместо $modx->services написал $modx->service.
Наумов Алексей
09 декабря 2021, 15:04
+4
Что-то не так…
При очистке кеша вижу в консоли:
Консоль запущена…
PHP notice: Undefined property: MODX\Revolution\modX::$service
и все…

Ошибка в плагине pdoTools (id = 1):

PHP notice: Undefined property: MODX\Revolution\modX::$service


Fatal error:  Uncaught Error: Call to a member function get() on null in /var/www/modx3beta2/www/core/cache/includes/elements/modx/revolution/modplugin/1.include.cache.php:7
Stack trace:
#0 /var/www/modx3beta2/www/core/src/Revolution/modScript.php(88): include()
#1 /var/www/modx3beta2/www/core/src/Revolution/modX.php(1706): MODX\Revolution\modScript->process()
#2 /var/www/modx3beta2/www/core/src/Revolution/Processors/System/ClearCache.php(48): MODX\Revolution\modX->invokeEvent()
#3 /var/www/modx3beta2/www/core/src/Revolution/Processors/Processor.php(189): MODX\Revolution\Processors\System\ClearCache->process()
#4 /var/www/modx3beta2/www/core/src/Revolution/modX.php(1771): MODX\Revolution\Processors\Processor->run()
#5 /var/www/modx3beta2/www/_easyComm/_build/build.transport.php(394): MODX\Revolution\modX->runProcessor()
#6 {main}
  thrown in /var/www/modx3beta2/www/core/cache/includes/elements/modx/revolution/modplugin/1.include.cache.php on line 7
Наумов Алексей
09 декабря 2021, 14:35
+2
Отличная работа!
Поставил для теста, вроде работает)))
Vladimir
09 декабря 2021, 12:53
+1
Кстати не на всех хостингах это работает, там есть функция exec её часто блокирует.
Miša Bulic
09 декабря 2021, 10:54
0
Нашёл ошибку в вызове в 'filters' => ' tv|params==default, вместо tv|params:default. Фильтрация на странице seofilter заработала, но вот в форме только один чекбокс как его настроить чтобы выводил параметры из Тв поля?
0verride
08 декабря 2021, 20:43
0
Мне нужно сделать одноуровневую выборку по родителю с id 953,

<div class="tabs-content">
                                            {'pdoMenu' | snippet : [
						'parents' => 953
                                                'level' => 1
                                                'sortby' => 'menuindex'
                                                'includeTVs' => 'img'
                                                'tvPrefix' => ''
                                                'tpl' => 'tplMaterialImg'
                                                'tplOuter' => '@INLINE {$wrapper}'
                                            ]}  
                             </div>
и превьюшки img упаковать вот в такую обертку:
<div class="tabs-content__item{if $idx == 1} active{/if}">
    <div class="d-flex flex-wrap">
        <label class="product-material">
        <input class="d-none" type="radio" name="options[mat]" value="{$pagetitle}" {if $id == 956}checked{/if} data-cat="{$parent}" data-img="{$photo}">
         <div class="product-material__img"><img class="d-block lazy" src="assets/template/img/default.jpg" data-src="{$img | phpthumbon : 'w=114&h=114&zc=1&q=95'}" alt=""></div>
        <div class="product-material__color">{$pagetitle}</div>
        </label>
    </div>
</div>
Как правильно реализовать этот шаблон?
tplMaterialImg
{if $parent != 414}
                                                        {foreach json_decode($_modx->resource.photos) as $item}
                                                            {if $item.material == $pagetitle}
                                                                {var $photo = $item.photo}
                                                            {/if}
                                                        {/foreach}
                                                        
                                                        <label class="product-material">
                                                            <input class="d-none" type="radio" name="options[mat]" value="{$pagetitle}" {if $id == 418}checked{/if} data-cat="{$parent}" data-img="{$photo}">
                                                            <div class="product-material__img"><img class="d-block lazy" src="assets/template/img/default.jpg" data-src="{$img | phpthumbon : 'w=114&h=114&zc=1&q=95'}" alt=""></div>
                                                            <div class="product-material__color">{$pagetitle}</div>
                                                        </label>
                                                    {else}                                        
                                                        <div class="tabs-content__item{if $idx == 1} active{/if}">
                                                            <div class="d-flex flex-wrap">
                                                                {$wrapper}
                                                            </div>
                                                        </div>
Как объяснить короче не знаю.