Евгений Лазарев
С нами с 06 августа 2018; Место в рейтинге пользователей: #417Ошибки в логе
Подскажите может кто сталкивался. В лог постоянно валятся ошибки
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 отключен потому что очень большое количество страниц msProducts выбор по нескольким значениям одной опции
Всем привет. Может кто сталкивался с таким. Пытаюсь на феном создать конструкцию фильтра
{var $where["id:!="] = $_modx->resource.id}
{var $filter = ["fabric:IN" => $_modx->resource.fabric]}
{if $_modx->resource.model?}
{set $filter["model:IN"] = $_modx->resource.model}
{/if}
{if $_modx->resource.consist?}
{foreach $_modx->resource.consist as $idx=>$consist}
{if $idx === 0}
{set $filter["consist"] = $consist}
{else}
{set $filter["AND:consist:="] = $consist}
{/if}
{/foreach}
{/if}
{var $similar = '!msProducts' | snippet : [
'parents' => 19,
'limit' => 10,
'depth' => 0,
'includeThumbs' => 'thumb',
'sortby' => 'RAND()',
'tpl' => 'tplProductAdd',
'where' => $where | toJSON,
'optionFilters' => $filter | toJSON,
'showLog' => 1
]}
Никак не могу правильно составить конструкцию чтобы было в sql:… AND `consist`.`value` = 'Значение1' AND `consist`.`value` = 'Значение2' AND `consist`.`value` = 'Значение3'… (У данной опции можно задавать несколько значений) Валится постоянно ошибка Could not cache context settings for web.
Подскажите кто-нибудь сталкивался с ошибкой:
[2020-07-31 09:49:14] (ERROR @ /var/www/www-root/data/www/site.ru/core/model/modx/modcachemanager.class.php : 172) Could not cache context settings for web.
Постоянно валится в логи. Стоит компонент msync который импортирует товары из 1С. При импорте через какое то время начинается валиться эта ошибка с каждой итерацией. Как выполнить фильтр при загрузке странице
Ситуация такая — есть mFilter2 (mSearch2).
Структура сайта:
— Каталог
— — Категория 1
— — — Товар 1
— — — Товар 2
— — — Товар 3
— — Категория 2
— — — Товар 4
— — — Товар 5
— — — Товар 6
Фильтр настроен на странице Каталога и все делает исправно. Но есть физические страницы Категорий для SEO и по просьбе клиента для структуризации.
Каким образом можно зайдя на страницу Категории 1 вывести товары из Категории 1, но при этом фильтр чтобы был по всему каталогу с отмеченной уже Категорией 1?
Просто если parent будет текущей страницы, то и фильтр с опциями будет на основании только текущего раздела а не всего каталога.
Если же parent Каталога то с фильтром все ок, но фильтрации при загрузке страницы по этому разделу не будет проведена.
Структура сайта:
— Каталог
— — Категория 1
— — — Товар 1
— — — Товар 2
— — — Товар 3
— — Категория 2
— — — Товар 4
— — — Товар 5
— — — Товар 6
Фильтр настроен на странице Каталога и все делает исправно. Но есть физические страницы Категорий для SEO и по просьбе клиента для структуризации.
Каким образом можно зайдя на страницу Категории 1 вывести товары из Категории 1, но при этом фильтр чтобы был по всему каталогу с отмеченной уже Категорией 1?
Просто если parent будет текущей страницы, то и фильтр с опциями будет на основании только текущего раздела а не всего каталога.
Если же parent Каталога то с фильтром все ок, но фильтрации при загрузке страницы по этому разделу не будет проведена.
Could not cache context settings for web
Всем привет. Подскажите может кто сталкивался. Есть компонент mSync, он производит загрузку товаров из 1с или в ручную с сервера. При загрузке появляется постоянно ошибка:
Ну и второй вопрос. Зачем дублировать значения полей в ms2_products и в ms2_product_options? Я понимаю, что в ms2_product_options содержатся значения в их оригинальном исполнении (русские, англ буквы), а в ms2_products хранится их json вид, но на кой тогда json?
[2020-03-15 14:43:22] (ERROR @ /var/www/www-root/data/www/site.ru/core/model/modx/modcachemanager.class.php : 172) Could not cache context settings for web.
При этом я увидел, что товары которые загружаются — у них некоторые поля не записываются в таблицу — ms2_product_options, хотя если зайти в товар то это поле добавлено (как я понял, значение этого поля еще хранится в таблице ms2_products в виде json). Соответсвенно при фильтрации эти товары не выходят в результатах — итак с 80% продукции.Ну и второй вопрос. Зачем дублировать значения полей в ms2_products и в ms2_product_options? Я понимаю, что в ms2_product_options содержатся значения в их оригинальном исполнении (русские, англ буквы), а в ms2_products хранится их json вид, но на кой тогда json?
Как написать условие OR c помощью fenom?
Все привет, делаю фильтрацию товаров, и столкнулся с проблемой и недостатком знаний как организовать условие в скобках и с OR между ними. Подскажите, кто разбирается. P.S. Код весь не влазит, но нужное я разместил.
{var $filter = []}
{if $get.gem?}{set $filter['consist'] = $get.gem}{/if}
{if $get.metal?}{set $filter['metal'] = $get.metal}{/if}
{if $get.size?}{set $filter['size'] = $get.size}{/if}
{if $get.type?}{set $filter['fabric:IN'] = $get.type}{/if}
{if $get.tag?}{set $filter['tags:IN'] = $get.tag}{/if}
{if $get.label?}
{foreach $get.label as $label}
{set $filter[$label] = 1} // Вооот здесь
{/foreach}
{/if}
<div class="products flx">
{var $products = '!pdoPage' | snippet : [
'element' => 'msProducts',
'parents' => 19,
'depth' => 0,
'limit' => $get.pagesize ? : 12,
'tpl' => 'tplProducts',
'includeThumbs' => 'thumb',
'optionFilters' => $filter | toJSON,
'where' => $where,
]}
AjaxForm и reCaptcha V3
Доброе время суток. Сталкивался ли кто-нибудь с использованием reCaptcha V3 через плагин?
Каким образом происходит проверка на робота? Обычных пользователей не пропускает, а проверку не дает.
Сама каптча на сайте подключена, но нет возможности ее проверить. Смотрел в документации, написано «Параметр rcv3Action предназначен для изменения идентификатора action.», но так и не понял для чего он и что выполняет. Если зайти через приватное окно, то никаких проверок не происходит и форма надежно отправляет, а другие пользователи отправляют форму и у них не выскакивает никакой проверки а сразу выдается сообщение «Вы не прошли проверку reCaptcha.» Смотрел видео на ютубе, парень делал не через плагин и говорит что существуют 3 спосоа проверки и по умолчанию стоит на кнопке, при нажатии на нее если есть подозрения то всплывающим окном выходит проверка на картинках — но ничего. PS на странице несколько форм.
Каким образом происходит проверка на робота? Обычных пользователей не пропускает, а проверку не дает.
Сама каптча на сайте подключена, но нет возможности ее проверить. Смотрел в документации, написано «Параметр rcv3Action предназначен для изменения идентификатора action.», но так и не понял для чего он и что выполняет. Если зайти через приватное окно, то никаких проверок не происходит и форма надежно отправляет, а другие пользователи отправляют форму и у них не выскакивает никакой проверки а сразу выдается сообщение «Вы не прошли проверку reCaptcha.» Смотрел видео на ютубе, парень делал не через плагин и говорит что существуют 3 спосоа проверки и по умолчанию стоит на кнопке, при нажатии на нее если есть подозрения то всплывающим окном выходит проверка на картинках — но ничего. PS на странице несколько форм.
Нужна помощь по msync
Доброе время суток. Тут столкнулся с такой проблемой. Может подскажете решение или куда копать. Ситуация такая: если создаю продукт через админку и добавляю теги к товару в стандартное поле то в БД в эту таблицу они записываются в разные строки (к примеру 2 тега — новый год и новинка, то будет 2 записи в этой таблице). Если я загружаю через msync то в Import выглядит это следущим образом
<ХарактеристикиТовара>
<ХарактеристикаТовара>
<Наименование>Вставки</Наименование>
<Значение>Бриллиант</Значение>
</ХарактеристикаТовара>
<ХарактеристикаТовара>
<Наименование>Теги</Наименование>
<Значение>Новый Год,Новинка,</Значение>
</ХарактеристикаТовара>
</ХарактеристикиТовара>
и тогда эти 2 значения записывают в одну строку но тогда отфильтровать данные товары без бубна практически не возможно. Если зайти в админку на страницу товара и сохранить, то в БД перезаписывается по нормальному. Подскажите пожалуйста решение. Подсобите пожалуйста с запросом
Есть запрос выдачи товаров по тегам. Хочется сделать запрос чтобы в результате было WHERE… AND ( tag = 'тэг' OR tag LIKE '%, тэг' OR tag LIKE 'тэг,%' )… В голову не идет как эти скобки ставятся при формировании запроса в виде массива а чтобы потом он парсился.
{if $get.gem?}{set $filter['consist'] = $get.gem}{/if}
{if $get.metal?}{set $filter['metal'] = $get.metal}{/if}
{if $get.size?}{set $filter['size'] = $get.size}{/if}
{if $get.type?}{set $filter['fabric:IN'] = $get.type}{/if}
{if $get.tag?}
{set $filter['tags'] = $get.tag}
{set $filter['tags:LIKE'] = '%,'$get.tag}
{/if}
{var $where = ''}
{var $search = ''}
{if $get.search?}
{set $search = '!catalogSearch' | snippet : ['search' => $get.search]}
{/if}
{set $where = '["(Data.price>='~($get.price_from ? : 0)~' AND Data.price<='~($get.price_to ? : 999999999)~' AND Data.price!=0) '~$search~'"]'}
<div class="products flx">
{var $products = '!pdoPage' | snippet : [
'element' => 'msProducts',
'parents' => 19,
'depth' => 0,
'limit' => $get.pagesize ? : 12,
'tpl' => 'tplProducts',
'includeThumbs' => 'thumb',
'optionFilters' => $filter | toJSON,
'where' => $where,
'sortby' => $sort | toJSON,
'tplPagePrev' => '@INLINE <li class="control"><a href="[[+href]]">←</a></li>',
'tplPageNext' => '@INLINE <li class="control"><a href="[[+href]]">→</a></li>',
'tplPagePrevEmpty' => '@INLINE',
'tplPageNextEmpty' => '@INLINE',
'tplPageFirst' => '@INLINE',
'tplPageLast' => '@INLINE',
'tplPageFirstEmpty' => '@INLINE`',
'tplPageLastEmpty' => '@INLINE',
'showLog' => 1,
]}
Может кто может помочь с запросом?
{var $conf = [
'groups' => 'buyer',
'tpl' => 'tplChatName'
'leftJoin' => '{
"View": {
"class": "TicketView",
"on": "modUserProfile.internalKey = View.uid"
},
"Thread": {
"class": "TicketThread",
"on": "View.thread = Thread.id AND Thread.name = \'chat-23\'"
},
"Comment": {
"class": "TicketComment",
"on": "Thread.id = Comment.thread AND Comment.createdon > View.timestamp AND Comment.email != modUserProfile.email"
}
}',
'select' => '{
"modUser":"modUser.id",
"modUserProfile":"modUserProfile.fullname",
"Comment": "COUNT(Comment.id) as count"
}'
]}
{$_modx->runSnippet('!pdoUsers', $conf)}
Поскажите как в данном запросе вместо chat-23 использовать что то на подобие chat-modUserProfile.internalKeyТо есть мне вместо цифры нужно подставлять текущий id пользователя запроса.