Павел Романов

Павел Романов

С нами с 03 марта 2014; Место в рейтинге пользователей: #36
09 августа 2016, 17:15
+1
Не знаю как в TypoMCE, в TinyMCE можно было закомментировать 231 строку в core/components/tinymce/tinymce.class.php:
$this->config['resource'] = $this->config['resource']->toArray();

Но сейчас он обновился и 4.3.4 уже работает нормально.
24 июля 2016, 23:29
+1
Смотрите лог не pdoResources, а лог MODX (...../core/cache/logs/error.log).
Там будет что-нибудь типа:
[2016-07-24 23:23:54] (ERROR @ .........../core/components/pdotools/model/pdotools/pdotools.class.php : 940) 
Unexpected tag '******' in a0c869550ea492457a960cab7e3b434a line 81, 
near '{******' <- there

Найдите этот самый {****** и просто добавьте пробел после первой фигурной скобки.
24 июля 2016, 21:20
0
Смотрите лог ошибок. Буквально вчера обсуждали.
24 июля 2016, 19:10
0
Если Вы выводите условия на странице, то нужно включить параметр pdotools_fenom_parser в настройках pdoTools (в системных настройках).
24 июля 2016, 11:20
1
+3
Парсер MODX работает таким образом, что сначала рендерит чанки, TV, сниппеты, в общем, всё, что есть на странице, а только потом выполняет условия и оставляет нужное.
Соответственно, если Вы делаете так:
[[*tv:!empty=`[[$chunk]]`]]
то MODX сначала выполнит все, что в чанке, а только потом решит выводить его на страницу или нет.
В любом случае ресурсы уже потрачены. А если таких условий в шаблоне несколько. то тромоза все более и более ощутимы.

Если же сделать так:
[[$[[*tv:!empty=`chunk`]]]]
то MODX отрендерит просто текст «chunk» и потом, если условие выполнено, оставит его, а тут уже получится тег, который обработается:
[[$chunk]]

В случае невыполнения условия выведется просто
[[$]]

Fenom же работает по-другому. Он изначально рендерит только то, что соответствует условию.
В Вашем случае будет так:
{if $_modx->resource.tags != ''}
    {$_modx->runSnippet('pdoResources', [
    'parents' => 2,
    'limit' => 5,
    'tpl' => 'tplArticleSim'
    ])}
{/if}

Ну или так, если угодно:
{if $_modx->resource.tags != ''}
    {$_modx->getChunk('similarArticles')}
{/if}

Или вообще так ):
{if $_modx->resource.tags != ''}
    [[pdoResources?
    &parents=`2`
    &limit=`5`
    &tpl=`tplArticleSim`
    ]]
{/if}
24 июля 2016, 10:46
0
В этом случае у Вас вызов будет работать даже при отсутствии тегов (MODX сделает выборку, а потом только выполнит условие).
Действительно, лучше Fenom или на худой конец так:
[[$[[*tags:!empty=`similarArticles`]]]]

И кстати, в Вашем случае можете кешировать вызов pdoResources в чанке.
23 июля 2016, 20:26
0
Проверьте есть ли ошибки в логе.
Скорее всего на странице где-то подключен скрипт с
{...}
.
Добавьте пробел:
{ ... }
.
13 июля 2016, 13:50
0
Даже визуально заметно.
Ну и стандартный [^t^] это подтверждает.

Категория с 400 товарами: tobemam.ru/store/detskie-igrushki/
PHP 5.6.22:
Total: 1.9635 s | database
Total: 0.3748 s | cache

PHP 7.0.8:
Total: 0.7135 s | database
Total: 0.1330 s | cache
13 июля 2016, 13:32
+4
Целесообразно. Как минимум в три раза быстрее.
11 июля 2016, 16:54
0
Проверил на нескольких сайтах и хостингах.
Действительно где-то работает нормально, где-то нет. Связано с тем, что чтение из базы в 53 строке не везде отдает дату в UNIX-формате.
В качестве костыля попробуйте заменить эту строку:
$lmimsDate = $lmims->get('date');
на эту:
$lmimsDate = strtotime($lmims->get('date'));
11 июля 2016, 14:53
0
А если эту страницу отредактировать и сохранить?
11 июля 2016, 14:41
0
У Вас уже эта дата прописалась в таблицу плагина.
Откройте эту страницу в браузере и проверьте потом ответ сервера.

А лучше всего просто через phpMyAdmin очистить все записи в таблице modx_lmims и потом уже они сами туда добавятся по мере открывания страниц сайта.
11 июля 2016, 13:23
0
Попробуйте в плагине на 17 строке заменить:
$date = time();
на:
if($resource->editedon != 0){
    $date = $resource->editedon;
} else {
    $date = $resource->createdon;
}
10 июля 2016, 14:49
+1
Поставьте пробелы:
[ [ ..... ] ]
10 июля 2016, 14:43
+1
[[!+modx.user.id:memberof=`Administrator`:then=`.........`:else=`.........`]]
10 июля 2016, 14:07
1
+1
Добрый день.
Например, так:
[[!+modx.user.id:is=`0`:then=`Контент для анонимов`:else=`Контент для залогиненных`]]
10 июля 2016, 13:41
0
Допустим, у Вас домен site.ru.
Попробуйте в вызове указать параметр:
[[!FormIt?
&hooks=`email`
&emailTpl=`letterZvonok.sent`
&emailSubject=`Message`
&emailTo=`me@myemailaddress.com`
&emailFrom=`info@site.ru`
]]
09 июля 2016, 20:17
0
Попробуйте указать явно &emailFrom, причем, с тем же доменом, что и сайт.
06 июля 2016, 13:48
2
+2
Да, только в Revo их лучше прописывать не так:
[[*id:is=`15`:then=`[[$chunk]]`]]
а так:
[[$[[*id:is=`15`:then=`chunk`]]]]
Это из-за того, что парсер сначала выполняет все чанки на странице, а потом только выводит нужные в соответствии с условиями.
Во втором же варианте будут обработаны только текстовые строки и пустые [[$]], если условие не выполнено.

Но если используете Fenom, то можно не извращаться, поскольку там парсер работает по-другому:
{if $_modx->resource.id == 15}{$_modx->getChunk('chunk')}{/if}
06 июля 2016, 11:50
+1
1. У человека Evolution — там именно [*content*]
2. Для вывода по условиям нужно поставить PHx.