Viktor

Viktor

С нами с 25 июня 2021; Место в рейтинге пользователей: #885
Viktor
16 января 2022, 19:56
0
Снипет сделал таким
<?php
if(!$dt){
    $dt = date('Y', strtotime(date('Y-m-d')));
    $dt = "$dt-1-1";
} else {
    $dt = "$dt-1-1";
}

if($next == '1'){
    $dt = date("Y-m-d",strtotime ( '+1 year' , strtotime ( $dt ) )) ;
}
return strtotime($dt);
Вызов такой как писал выше Артур
{"publishedon:>=": [[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`0`]], "AND:publishedon:<=": [[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`1`]]}
В целом засунул это в плагин и по хэшу сортирую без перезагрузке страницы через pdopage.
Как сделал через плагин и pdopage и без перезагрузке вот ссылка на пасте бин там код pastebin.com/AuA5Rrt6
Viktor
16 января 2022, 16:10
0
сменил company на другое слово заработало
Viktor
16 января 2022, 15:53
0
Заработало НО, может быть я туплю, но всего есть 3 ресурса, ваш код сортирует только по названию «industry», по названию «company» вообще не сортирует, но стоит поставить, 2 ресурса(И ПРИЭТОМ поле должно быть типом тэг) одного значения всё сортирует. Или если будет 2 новости company и 1 новость industry он будет сортировать и выводить только industry. Если поставлю два ресурса industry то оно выводит два ресурса industry а company игнорирует, со стандартным шаблонизатором таких проблем нет.
{'!pdoPage' | snippet : [
   'parents' => $_modx->resource.id,
   'showHidden' => 1,
   'limit' => 8,
   'depth' => 1,
   'level' => 1,
   'showLog' => 1,
   'ajaxMode' => 'default',
   'sortby' => ['parent' => 'ASC', 'menuindex' => 'ASC'],
   'includeTVs' => 'img,newsType',
   'templates' => '7',
   'where' => ['newsType:LIKE' => '%' ~ $.get['sortNewsType'] ~ '%'],
   'tpl' => 'newsTpl'
]}
Viktor
16 января 2022, 15:16
0
Сколько не пытался использовать вот это не работало
$_modx->resource.id
поэтому поставил [[*id]], вот эта запись выдаёт белую страницу
'where' => ['news-type:LIKE' => '%{$.get.news-type}%'],
Viktor
16 января 2022, 14:49
0
Довольно странно проблема была в fenom сменил на стандартный шаблонизатор, и всё заработало, пздц потратил 4 дня(
[[!pdoPage:default=`<h1>Ничего не найдено.</h1>`?
  &parents=`[[*id]]`
  &limit=`8`
  &depth=`1`
  &ajaxMode=`default`
  &tpl=`newsTpl`
  &pageLimit=`7`
  &sortby=`{ "parent":"ASC", "menuindex":"ASC" }`
  &where=`{ [[!WhereGen? &tv=`news-type` &sign=`LIKE` &get=`sort-type` &value=``]] }`
  &includeTVs=`img,news-type`
  &ajaxElemWrapper=`#pdopage`
   &ajaxElemRows=`#pdopage .rows`
  &ajaxElemPagination=`#pdopage .pagination`
  &ajaxElemLink=`#pdopage .pagination a`
 ]]
Viktor
16 января 2022, 09:43
0
Допустим снипет просто формирует where запись без get и всё равно не работает
Viktor
14 января 2022, 10:11
0
Спасибо помогло, странно для всех сайтов ставлю 7.3+ а тут стояла 5.6.
Viktor
14 января 2022, 09:10
0
Странно почему то и обычная сортировка по тв не работает код простейший
'where' => '{"news-type:=": "[[!#GET.sort-type]]"}',
Тэвэха news-type теговая и значения приходят туда правильные
Viktor
14 января 2022, 07:21
0
Странно, пытался сменить в настройках при создании как документ, тоже самое получилось 500
Viktor
14 января 2022, 06:24
0
Вчера вечером всё работало, а на утро через 10 часов перестало
Viktor
13 января 2022, 13:55
0
Лог такой
0.0002599: pdoTools loaded
0.0000460: xPDO query object created
0.0010431: Included list of tvs: img
0.0003240: leftJoined modTemplateVarResource as TVimg
0.0006390: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `alias_visible`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0000269: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.img`
0.0000231: Replaced TV conditions
0.0017660: Processed additional conditions
0.0027940: Added where condition: 0=, modResource.parent:IN(8,9,20), modResource.template:IN(7), modResource.published=1, modResource.deleted=0
0.0000138: Replaced TV conditions
0.0002139: Sorted by modResource.parent, ASC
0.0002470: Sorted by modResource.menuindex, ASC
0.0000048: Limited to 8, offset 0
0.0006542: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`alias_visible`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, IFNULL(`TVimg`.`value`, '') AS `tv.img` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVimg` ON `TVimg`.`contentid` = `modResource`.`id` AND `TVimg`.`tmplvarid` = 23 WHERE  ( `modResource`.`parent` IN (8,9,20) AND `modResource`.`template` IN (7) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY modResource.parent ASC, modResource.menuindex ASC LIMIT 8 "
0.0011570: SQL executed
0.0003688: Total rows: 2
0.0000539: Rows fetched
0.0066609: Prepared and processed TVs
0.0017228: Loaded "modChunk" with name "newsTpl"
0.0034592: Compiled Fenom chunk with name "modchunk/30"
0.0171959: Returning processed chunks
0.0317860: Total time
8 912 896: Memory usage
0.0107419: pdoTools loaded
0.0004611: Created inline "modChunk" with name "f7da63f2d337d08ca9dcacc531069c1e"
0.0072119: Loaded "modSnippet" with name "pdoResources"
0.0416641: Created inline "modChunk" with name "e6747421ac951eec87076a3f44c6a184"
0.0601921: Total time
8 912 896: Memory usage
Viktor
05 января 2022, 07:17
0
Снипет рабочий выдаёт год из гета и след год в Unix, но всё равно pdo не сортирует, если убрать эту сортировку то все ресурсы выводятся, как исправить?
Viktor
24 декабря 2021, 18:30
0
Исправил
Для таких ошибок нужно смотреть в журналах по этому адресу /var/log/apache2 В журнале ошибок я обнаружил, что я использовал некоторые переменные в .htaccess, и мой сервер не поддерживал их, по логу нужно было включить 2 модуля.

$ sudo a2enmod headers
$ sudo a2enmod expires
$ systemctl restart apache2
Viktor
24 декабря 2021, 18:08
0
Есть у кого инструкция как установить modx на VPS не нс нуля, сам пофикшу
Viktor
10 декабря 2021, 15:09
+1
В типах есть файл, и изображение, но там так же открывается файловый менеджер.
Viktor
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>
Viktor
09 декабря 2021, 12:53
+1
Кстати не на всех хостингах это работает, там есть функция exec её часто блокирует.
Viktor
05 октября 2021, 07:49
0
проблема была в паганом хостинге hoster не советую использовать