Вопросы

Ошибки в логе

Подскажите может кто сталкивался. В лог постоянно валятся ошибки
27.10.2020 	12:55:43 	ERROR 	/var/www/site.ru/core/xpdo/cache/xpdocachemanager.class.php 	514

PHP warning: unlink(/var/www/site.ru/core/cache/db/objects/modResource/e89fa63e1c424d10b085739f66097498.cache.php): No such file or directory

	27.10.2020 	12:55:43 	ERROR 	/var/www/site.ru/core/xpdo/cache/xpdocachemanager.class.php 	522

PHP warning: closedir(): supplied resource is not a valid Directory resource
cache_alias_map отключен потому что очень большое количество страниц
Евгений Лазарев
27 октября 2020, 13:22
modx.pro
536
0

Условие внутри сниппета на Fenom

Подскажите как использовать условия в сниппете?? Вот так не работает:
{'MinifyX' | snippet : [
    'minifyCss' => 1,
	'minifyJs' => 1,
	'registerJs' => 'default',
	'registerCss' => 'default',
	'jsSources' => '
	    //code-ru1.jivosite.com/widget.js,
		/js/jquery.js,
	'
	'cssSources' => '
		/css/all.css,
		/css/icon.css,
		
		{if $_modx->resource.id == 1}
		/css/cat.css,
		/css/main.css,{/if}
		
		{if $_modx->user.id == 12}{if $_modx->resource.id == 21}/css/cart.css,{/if}{else}{if $_modx->resource.id == 21}/css/cart.css, /css/icon.css{/if}
	'
]}
Maxim
26 октября 2020, 17:44
modx.pro
1 268
0

Ошибка в журнале pdotools.class.php : 343) [pdoTools] Could not load snippet "id"

[2020-10-26 12:29:35] (ERROR @ /****/core/components/pdotools/model/pdotools/pdotools.class.php: 343) [pdoTools] Could not load snippet «id»

Как избавиться?
вызываю элементы так:
{$_modx->runSnippet('!pdoResources', [
                'parents' => 11,
                'depth' => '0',
                'limit' => '4'
                'where' => '{"template:IN":[12]}',
                'tpl' => 'tpl.articles.main',
                'sortby' => '',
                'sortdir' => 'DESC',
                'includeTVs' => 'preview',
                'prepareTVs' => '1',
                'processTVs' => '1',
                'tvPrefix' => '',
                'select' => '{"modResource":"id,uri,pagetitle,longtitle,content,publishedon"}',
            ])}
Илья Александрович
26 октября 2020, 12:33
modx.pro
1 357
0

Как переместить плейсхолдер page выше pdoPage?

Добрый день всем!

Сильно не пинайте, так как знаком с Modx 3 месяца. Не могу решить, как казалось, банально простую задачу. Нужно переместить плейсхолдер page выше pdoPage.
Раймонд
26 октября 2020, 10:57
modx.pro
696
0

Проблема с предварительными подсчётами в новой версии mSearch2 1.14.0-pl

Василий здравствуйте! Начиная с версии mSearch2 1.14.0-pl в обновлении реализовано кэширование предварительных результатов mfilter2, но если расширен класс и фильтрация происходит по своей таблице, возникают проблемы с подсчетами предварительных результатов в ранних версиях msearch2, это решалось добавлением кода в файл custom.class.php:

//Правильные подсчёты в mFilter2
public function filterDefault(array $requested, array $values, array $ids) {
     return array_unique(parent::filterDefault($requested,$values,$ids));
}
но сейчас этот вариант не работает и временное решение: itchief.ru/questions/663 описал Александр Мальцев на сайте itchief.ru спасибо ему, правда при таком раскладе как я понимаю, кэширование предварительных результатов работать не будет, но подсчёты работают. Что можно сделать в данном случае, подскажите пожалуйста или возможно в будущих обновлениях msearch2 будет учтена эта проблема?
Александр
25 октября 2020, 18:17
modx.pro
740
0

Как добавить доставку в mspLifePay?

Всем доброго времени суток!
Назрел вопрос. Установили на свой сайт с MODX Revolution 2.7.3-pl и miniShop2 2.5.0-pl плагин mspLifePay 1.0.0-pl. Но при оплате заказа всегда выходит ошибка в самом Life Pay о том, что чек не принят. Как мы потом узнали из отчета в тестовом режиме, уходит только общая сумма заказа и информация о товаре с его ценой, а доставки нет.
Собственно вопрос. Как можно добавить в этот плагин вывод информации о доставке, чтобы все чеки уходили правильно и без ошибок?
Николай
24 октября 2020, 21:07
modx.pro
540
0

как в ajaxForm и formit сделать проверку расширения файла?

MODX Revolution 2.7.3-pl

Создал сниппет formit2checkfile:
<?php
// инициализируем переменную output, отвечающую за результат работы валидатора, со значением true
$output = true;
// разрешённые расширения файлов
$allowedExt = array('jpg','png','pdf');

// имя файла
$fileName = basename( $_FILES[$key]['name'] );

// расширение файла
$fileExt = mb_strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
// если имя файла не пустое
if ($fileName != '') {
  if(!in_array($fileExt, $allowedExt)) {
    // файл имеет недопустимый тип
    $errorMsg = 'Файл ' . $fileName . ' имеет не разрешённый тип.';
    $validator->addError($key, $errorMsg);
    $output = false; // возвращаем false
  }
}
return $output;
В вызове формы прописал 'customValidators' => 'formit2checkfile', и 'validate' => 'upload:formit2checkfile',
{'!ajaxForm'|snippet:[
                'snippet'=>'FormIt',
                'hooks' => 'spam,email',
                'emailSubject' => 'Новое сообщение из формы обратной связи',
                'customValidators' => 'formit2checkfile',
                'validate' => 'email:email:required,work_phone:blank,upload:formit2checkfile',
                'form' => 'tpl.form',
            	'emailTpl' => 'tpl.form2mail'
            ]}
При наличии всего этого форма отправляется с любым типом файла.
Не понимаю, где ещё что-то надо прописать?

upd.
c php у меня никак, т.ч. пришлось выкручиваться «html костылём»:
accept=".jpg,.jpeg,.png,.pdf"
Андрей
23 октября 2020, 21:59
modx.pro
1 208
0

Как получить значение всех TV-полей ресурса одним SQL-запросом?

Задача решается в лоб, если значения TV-полей хранятся именно в виде нужных значений.

select t2.name, t2.caption, t2.description, t1.value

from modx_site_tmplvar_contentvalues as t1
left join modx_site_tmplvars as t2 on t1.tmplvarid = t2.id

where t1.contentid = :resourceId

Если TV представляет собой список значений значение1==1||значение2==2||значение3==3, то в TV будет хранится цифры 1,2,3 а нам нужны значения значение1, значение2, значение3. Тогда задачу можно решить так

select
t2.name, t2.caption, t2.description, if(t2.elements like concat('%==', t1.value, '%'), REGEXP_SUBSTR(t2.elements, concat('[:lower:]+(?=\={2}', t1.value, ')')), t1.value) as value

from modx_site_tmplvar_contentvalues as t1
left join modx_site_tmplvars as t2 on t1.tmplvarid = t2.id

where

t1.contentid = :resourceId
Но работать это будет только в MySql8, т.к. начиная с 8 версии появилась функция REGEXP_SUBSTR.
Павел Голубев
23 октября 2020, 15:59
modx.pro
1 669
0

Совместить вкладки товара minishop2 в одну

Для товара нужны только несколько полей: Заголовок, Содержимое, Цена и Фото. И они находятся все в разных вкладках. Менеджер очень ленивый и хочет при заполнении видеть в админке их сразу без переключения.
Spirit_Ninja
23 октября 2020, 00:56
modx.pro
1
1 099
+1

Отключение ajax в пагинации mFilter2.

Добрый день,

В продолжение моего вопроса от 21.10.

Подскажите, есть ли возможность отключить ajax в пагинации mFilter2.

Непосредственного параметра ajax не обнаружил.

Спасибо.
Василий Королев
ВК
22 октября 2020, 17:59
modx.pro
888
0