Вопросы

Нужна помощь по msync

Доброе время суток. Тут столкнулся с такой проблемой. Может подскажете решение или куда копать. Ситуация такая: если создаю продукт через админку и добавляю теги к товару в стандартное поле то в БД в эту таблицу они записываются в разные строки (к примеру 2 тега — новый год и новинка, то будет 2 записи в этой таблице). Если я загружаю через msync то в Import выглядит это следущим образом
<ХарактеристикиТовара>
					<ХарактеристикаТовара>
						<Наименование>Вставки</Наименование>
						<Значение>Бриллиант</Значение>
					</ХарактеристикаТовара>
					<ХарактеристикаТовара>
						<Наименование>Теги</Наименование>
						<Значение>Новый Год,Новинка,</Значение>
					</ХарактеристикаТовара>
				</ХарактеристикиТовара>
и тогда эти 2 значения записывают в одну строку но тогда отфильтровать данные товары без бубна практически не возможно. Если зайти в админку на страницу товара и сохранить, то в БД перезаписывается по нормальному. Подскажите пожалуйста решение.
Евгений Лазарев
30 декабря 2019, 16:59
modx.pro
768
0

Передача значение из tv родителя в условие where

Доброго времени суток.
Подскажите, пожалуйста, в чем ошибка. Получаю значение родительского tv таким образом
[[!pdoField?
    &id=`[[*parent]]`
    &field=`tagsAdminFilter`
    &toplaceholder=`tagsfilter`
]]
Александр
29 декабря 2019, 21:53
modx.pro
1 427
0

where fenom

Как написать правильно?
В pdoresource добавить where где id не равно id текущего ресурса.
Сергей Самусев
29 декабря 2019, 19:51
modx.pro
2
1 960
0

MODX REVO Fenom, как в цикле исключить повторяющиеся элементы?

Подскажите как через Fenom исключить повторяющиеся элементы массива?
Есть список дат


2017
2018
2019
2019
2019

Как исключить повторные записи? Пробую через array_unique, но не получается с FENOM это подружить.

{set $input = json_decode(1 | resource : 'field-news', true)}
                    {$rows = array_unique($input)}
                    {foreach $rows as $idx => $row}
                      <option value="">{$row.date | date : "Y"}</option>
                    {/foreach}
Или придется писать сниппет отдельный?
Роман
29 декабря 2019, 15:20
modx.pro
2
1 453
0

Подсобите пожалуйста с запросом

Есть запрос выдачи товаров по тегам. Хочется сделать запрос чтобы в результате было 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,
                ]}
Евгений Лазарев
29 декабря 2019, 12:27
modx.pro
625
0

screen width не могу юзать из чанков

Доброго дня. Помогите плз, как использовать screen width из чанков…

Как сделать чтобы оно заработало в чанке Navbar:
[[*screen_width:gt=`768`:then=`[[*screen_width]] меньше 768`:else=`[[*screen_width]] больше 768`]]
АндрейЧ
28 декабря 2019, 11:43
modx.pro
1 042
0

mfilter2 + method scroll работает не правильно

Добрый день, не понимаю в чем причина, установил чистый модкс на modhost, установил mfilter2 + pdopage, создал несколько ресурсов и хотел проверить пагинацию методом scroll, но проблема заключается в том, что при малейшей прокрутки скролла сразу происходит подгрузка, до низа страницы не доходит, в чем может быть проблема?
вызов обычный

[[!mFilter2?
				&limit=`2`
			        &parents=`2`
				&ajaxMode=`scroll`
				
]]
<div id="pdopage">
            <div class="rows" id="mse2_results">
                {$results}
            </div>

            <div class="mse2_pagination ">
                {'page.nav' | placeholder}
            </div>
        </div>
спасибо заранее
atrox
28 декабря 2019, 10:10
modx.pro
1 005
0

Как можно оптимизировать данный код

Есть каталог(id-20) внутри которого собраны все товары. У каждого товара есть tv поле с id подкаталога где они должны быть.
Я написал такой код который должен перемещать товар из каталога с id 20 в подкаталог, id которого написан в TV поле
$arr =  $modx->getChildIds(20,1,array('context' => 'web'));
foreach($arr as $id){
  $res = $modx->getObject('modResource', $id);
  $parent = $res->getTVValue('parent');
  $res->set('parent', $parent);
  $res->save();
}
Но консоль напрочь зависает после двух секунд работы и выдаёт окошко с ошибкой.
Как можно решить проблему краша в этом случае?
Марк
27 декабря 2019, 20:42
modx.pro
1 134
0

Как програмно присвоить опции категории?

В Minishop2 создал опции Barcode,Compatibility и прочие.
Как при создании категории присвоить ей опции?
Порывшись в БД понял что за опции категории отвечает таблица category_options

$responsez = $modx->runProcessor('resource/create', array(
        'class_key' => 'msCategory',
        'pagetitle' => 'Заголовок',
        'parent' => 3,
        'template' => 3,
        'show_in_tree' => 1,
        'published' => 1,
    ));
Roman
26 декабря 2019, 17:27
modx.pro
762
0

[РЕШЕНО]Как получить ID ресурса, зная его pagetitle?

$resource = $modx->getObject('msCategory', array('pagetitle' => 'pagetitle'));
Roman
25 декабря 2019, 21:14
modx.pro
3 710
0