Вопросы

TV с флагом страны

Кто-нибудь заморачивался с созданием TV, которое выводит выпадающий список с флагами стран непосредственно в админке? Если прописать значение в формате css, к примеру:
<span class="flag-icon flag-icon-gr"></span>
на бэккенде подхватится при условии подключения файла стилей.
Как с этим быть в админке?
Антон
15 апреля 2020, 15:45
modx.pro
680
0

Pdopage через where в плагине фильтрует по всем контекстам, хотя айди родителя в 1 конектсте, как исправить?

Код фильтра
P.S как только не пытался сделать простое действие вывести объекты по tv он выводит во всех контекстах, при получении данных на плагин они нормальные, на выход where они нормальные, такие же как и обычные. P.S. не смотрите на бред в некоторых местах пробовал по разному, если вводить только год то ищет по всем контекстам, если выбрать пункт какой-либо фильтрует нормально, так же выбирал заказчик и год, тоже фильтрует нормально, если выбрать только год то ищет по всем, хотя parent указан, указывал по разному, и :Like, и :IN и :=
На выходе where имеет это

{"parent:LIKE":4,"from-year:=":"2012","OR:by-year:=":"2012"}
.
<?php
if(sizeof($_POST) != 0){
    switch ($_POST['action']) {
        case 'filter':
            $Data = $_POST;
          if (sizeof($Data['fields']) >= 0) {

                $hash = (string) $_POST['hash'];
                $parentit = $Data["parent"];
                $where = array();
                // $where["template:="] = $templ;
                $fields = $Data['fields'];
                $where["parent"] = (int)$parentit;
                foreach($fields as $key => $value){
                    switch ($key){
                        case 'project-type':
                            if(sizeof($fields[$key]) != 1){
                                $where = array();
                            } else{
                                $where["parent"] = (int)$parentit;
                                $where[$key] = $fields[$key];
                            }
    
     
                            break;
    
                        case 'form':
                            $where = array();
                            
                            if(!empty($fields[$key]['customer']) && !empty($fields[$key]['year'])){
                                $where['customers-choose:LIKE'] = $fields[$key]['customer'];
                                $where["AND:parent:LIKE"] = (int)$parentit;
                                $year = $fields[$key]['year'];
                                $where["AND:from-year:="] = $year;
                                $where["OR:by-year:="] = $year;
                                
                                break;
                            } else {
                                if(!empty($fields[$key]['customer'])){
                                    $where['customers-choose:='] = $fields[$key]['customer'];
                                    
                                }
                                if(!empty($fields[$key]['year'])){
                                    $year = $fields[$key]['year'];
                                    $where["parent:LIKE"] = (int)$parentit;
                                    $where["from-year:="] = $year;
                                    $where["OR:by-year:="] = $year;
    
                                } 
                                
                            }
                            

                            
                            break;
                        default:

                            break;
                    }
                }


            
                $_SESSION['pdoPage'][$hash]['where'] = $where;
                $output['message'] = $where;
                $output['success'] = true;
                $_SESSION['pdoPage'][$hash]['parents'] = (int)$parentit;
 
                echo $modx->toJSON($output);
                die();
            } else {
                $output['message'] = 'Error';
                echo 'Error';
                die();
            }


            break;

    }
}
Slava
15 апреля 2020, 15:32
modx.pro
830
0

Вопрос по PdoMenu

Алексей
15 апреля 2020, 15:28
modx.pro
1
587
0

Как вывести родителей ресурса (категории товаров)?

Привет, в ms2 есть вкладка у товара, называется «категории»

Как бы на странице ресурса (товара) вывести список всех категорий в которых он находится? Спасибо.

Спасибо за ответ Евгений Webinmd
Сниппет выводит все вложенные категории товара в виде ссылок.
<?php
if (empty($rid)) {$rid = $modx->resource->id;}
if (empty($pid)) {$pid = $modx->resource->parent;}
if (empty($delimeter)) {$delimeter = ' , ';}
$scheme = $modx->getOption('link_tag_scheme', null, 'full', true);

$q = $modx->newQuery('msCategory');
$q->leftJoin('msCategoryMember', 'msCategoryMember', array(
    '`msCategory`.`id` = `msCategoryMember`.`category_id`'
));
$q->sortby('pagetitle','ASC');
$q->groupby('id');
$q->select(array('id','pagetitle'));
$q->where('`msCategoryMember`.`product_id` = '.$rid.' OR `id` = '.$pid);

$result = array();
if ($q->prepare() && $q->stmt->execute()) {
    while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
        $url = $modx->makeUrl($row['id'], '', '', $scheme);
        $result[] = '<a href="'.$url.'">'.$row['pagetitle'].'</a>';
    }
}
return implode($delimeter, $result);
Jazz
15 апреля 2020, 15:00
modx.pro
1
1 862
0

Как выполнить Fenom в Fenom?

Здравствуйте. Уже несколько раз сталкивался с подобным. На странице вызываю сниппет, через Fenom. Но этому сниппету нужно передать параметры от другого сниппета. Как?
Николай
15 апреля 2020, 14:17
modx.pro
912
0

Удалить товар из корзины по id ?

Может кто-то сталкивался и быстро подскажет, буду признателен.
Хочу чтобы товары, которые выводятся msProducts имели возможность быть как добавленными в корзину так и удаленными оттуда.
И если с добавление товара в корзину проблем нет, добавление происходит по id товара
<form method="post" class="ms2_form">
                    <input type="hidden" name="id" value="{$id}">
                    
                    <input type="hidden" name="count" value="1">
                    <input type="hidden" name="options" value="[]">
                    <button class="btn btn_fluid" name="ms2_action" value="cart/add">I love this one</button>
                </form>
то для удаление уже используется не id а некий ключ — некий хеш.
<form method="post" class="ms2_form">
                    <input type="hidden" name="key" value="{$product.key}">
                    <button class="link" type="submit" name="ms2_action" value="cart/remove">
                        Remove
                    </button>
                </form>
и этот key в сниппете msProducts отсутствует.
Как наименее трудозатратно удалить товар имея только id?
Спасибо.
Александр Мельник
15 апреля 2020, 14:10
modx.pro
1 507
0

msProductLink_err_nfs, при копировании товара и изменении связи

Здравствуйте! Столкнулся с такой проблемой.
У меня есть блюда и есть обеды, обеды состоят из блюд. Пользуюсь связями.
Создал связь «Один ко многим». Когда создаю обед и добавляю туда имеющиеся блюда (блюда в обедах могут повторятся), то все нормально.
1) Но если копирую какой-то объект и пытаюсь связь обновить, то выходит ошибка — msProductLink_err_nfs — http://joxi.ru/krDxRdbuKzdG8r
2) Если я блюдо, которое хочу поменять сначала добавлю, а потом попытаюсь обновить на это блюда, то обновление не происходит (это и понятно, т/к уже связь добавлена) — http://joxi.ru/ZrJpk3bhwzkko2

Кто-то сталкивался с такой проблемой? Подскажите пожалуйста что можно сделать. Т/к очень часто в наборе блюд надо поменять не все блюда, а только одно и каждый раз создавать заново очень муторно, проще копировать
Роман
15 апреля 2020, 11:38
modx.pro
573
0

Все товары minishop2 по url в папке product

Добрый день!
Интернет магазин на minishop2 v2.5.0 имеет большое кол-во товаров и url адрес товара у меня складывается из domain.ru/категории/под-категории/имя-продукта.html

Как сделать так, что бы у всех товаров был URL domain.ru/product/имя-продукта.html?

modx.pro/help/11344 — этот способ не сработал.

Плагином на событие OnDocFormSave.
if ( $resource->class_key == 'msProduct' ) {
    $uri = 'product/' . $resource->pagetitle . '.html';
    $resource->set('uri', $uri);
    $resource->save();
}
Заморозка URL тоже не подходит.
Илья Александрович
14 апреля 2020, 16:15
modx.pro
1 278
0

msYmarket и msProductRemains

Добрый день!
Подскажите пожалуйста как cкрыть товары, которых нет в наличии по средствам msYmarket и msProductRemains.
По логике, было бы достаточно в поле ms2ym_where_condition добавить условие [{«Remains.remains:>»:«0»}] Но при добавлении результат 0. Пробовал в Список полей в JSON (ms2ym_json_fields) добавить но это так-же не решило проблему.
Сергей
14 апреля 2020, 12:25
modx.pro
602
0

pdoFetch и | в select

Необходимо в select добавить функцию GROUP_CONCAT и в качестве разделителя должна быть вертикальная черта но походу pdoFetch заменяет в select у функций все | на запятые
Prihod
14 апреля 2020, 00:48
modx.pro
770
0