Вопросы

How to write your own deliveryHandler for Minishop2

Hello,

I am from Barbados in the Caribbean and I need/want write a custom deliveryHandler for my minishop. My island is small and we do not have regions but what we have are parishes. My plan to substitute «parishes» with region. I have started by creating a select box named «region» with the parishes.

<select name="region">
    <option value="Saint Lucy">St. Lucy</option>
    <option value="Saint Peter">St. Peter</option>
    <option value="Saint Andrew">St. Andrew</option>
    <option value="Saint James">St. James</option>
    <option value="Saint Joseph">St. Joseph</option>
    <option value="Saint Thomas">St. Thomas</option>
    <option value="Saint Michael">St. Michael</option>
    <option value="Saint George">St. George</option>
    <option value="Saint John">St. John</option>
    <option value="Saint Philip">St. Philip</option>
    <option value="Christ Church">Christ Church</option>
</select>
There will be 1 delivery option and 2 pickup locations. Once a user selects a «region» for delivery, then the delivery cost is calculated. Here a table to break it down simplier.


I bought mscDistance but it's in Russian and I dont think that it will work for this case. I want to write a delivery handler which can determine the delivery cost calculated from the pickup location (determined by vendor of the product) to the delivery location(region). Any suggestions, code snippets, etc would be appreciated.
Jevon Boyce
31 декабря 2019, 17:41
modx.pro
776
0

MODX REVO не работает where в getImageList, как настроить фильтр?

Друзья, подскажите пожалуйста, почему не работает фильтрация в getImageList?
Есть снипет для фильтра ajax, работает хорошо со снипетом pdoResources и его параметрами, а вот с MIGX tv и getImageList не хочет :(

На странице есть MIGX tv field-news, в нем параметр date. Этот параметр формой передаю в снипет, тут порядок, все прилетает. Но вот в $where никак не возвращает почему то, что не так?

$_GET['date'] = '2018'; //задал жестко для примера один параметр
$filter = array();

if($_GET['date']) {
    $filter[] = 'date='.$_GET['date'];
}
if($filter) {
	$where = $modx->toJSON(array($filter));
} else {$where = '';}
$params = array(
	'docid' => 1,
	'tvname' => 'field-news',
	'where' => $where
	);
return $modx->runSnippet('getImageList',$params);
Роман
31 декабря 2019, 00:40
modx.pro
1 646
0

Несколько фотографий для одного значения MIGX

Добрый вечер, может кто реализовывал такой функционал: Необходимо с помощью migx поля реализовать добавление нескольких фото к 1 значению.
Пока как идея была создать tv с полем типа richtext и другое поле в виде inputtv.
В inputtv вставить поле с мультизагрузкой изображений из этого руководства.
Во вкладках формы вписал пока так:
[{
  "caption": "Item",
  "fields": [ {
    "field": "description",
    "caption": "Описание",
    "inputTVtype": "richtext"
  }, {
    "field": "image",
    "caption": "Image",
    "inputTVtype": "resourcealbum"
  }]
}]
К сожалению, данный способ не работает и админке необходимое поле выглядит просто как текстовый инпут
Alex
30 декабря 2019, 23:32
modx.pro
1 388
0

Как изменить cultureKey

Доброго времени суток всем.
Как можно изменить значение [[++cultureKey]]?
Babel и localizator имеют возможность переключать значение в [[++cultureKey]], а есть ли возможность с помощью небольшого когда менять значение?

И еще небольшой вопрос, где babel или localizator хранять значение выбранного языка.
Сергій
30 декабря 2019, 23:07
modx.pro
1 053
0

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

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

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

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

where fenom

Как написать правильно?
В pdoresource добавить where где id не равно id текущего ресурса.
Сергей Самусев
29 декабря 2019, 19:51
modx.pro
2
1 981
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 468
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
635
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 056
0