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

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

С нами с 03 марта 2014; Место в рейтинге пользователей: #70
Павел Романов
02 сентября 2016, 00:48
0
Сайт на OpenServer на PHP7?
Павел Романов
29 августа 2016, 17:09
0
Из ошибки следует, что у Вас проблема с переменной $response. То ли она не является массивом, то ли не существует, то ли ничего не содержит.
Смотрите, что там до этих строк, как формируется эта $response и, соответственно, проверяйте.
Павел Романов
29 августа 2016, 16:22
0
Ошибка не в условии. Проверяйте, что там у Вас в этом photo.
Павел Романов
28 августа 2016, 18:50
0
А какая ошибка выдается?
Павел Романов
28 августа 2016, 18:15
1
+1
Тогда так:
if(empty($field1) || empty($field2)) {
    $modx->getChunk('chunk1');
} else {
    $modx->getChunk('chunk2');
}
Павел Романов
28 августа 2016, 17:12
0
Проверка:
if(empty($field1) || empty($field2)) {
    $modx->runSnippet('Snippet1');
} else {
    $modx->runSnippet('Snippet2');
}
Но вообще, лучше и сниппеты не городить, а прямо в условии все прописать.

Вызов:
[[Snippet? &field1=`[[*link_attributes]` &field2=`[[*longtitle]]`]]
Павел Романов
19 августа 2016, 13:29
0
{$.get.var_name}

А вообще тут много полезного )).
Павел Романов
09 августа 2016, 19:12
0
А Вам нужно, чтобы был редирект?
Тогда добавьте соответствующий хук и параметр с указанием куда редиректить:
[[!FormIt?
&hooks=`email,FormItSaveForm,redirect`
&redirectTo=`***`
...
]]

А чтобы заработало сообщение без редиректа, плейсхолдер должен быть некешируемым:
[[!+fi.successMessage]]
Павел Романов
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 и потом уже они сами туда добавятся по мере открывания страниц сайта.