Всего 123 801 комментарий

Валерий
12 декабря 2022, 00:43
0
Думал это на крайний случай оставить, рывок все-таки будет виден.
Дело в том, что я точно также (добавлением параметров к ссылке) формирую переход в другом месте. И там у меня все отрабатывает прекрасно.
У меня сайт на тестовом сервере, может быть можно ссылку оставить, это не спам — вот здесь reg.wwwhite.ru/predstavitelstva/, если на карте выбрать любую точку, там есть большая зеленая кнопка для перехода в фильтр. Так вот она работает и 404 ошибку не вызывает. Чтобы увидеть, что оно работает, точку нужно выбрать в Крыму :))

Единственная разница — здесь параметры идут после .html, а там, где не работает, идет после слеша.
Артур Шевченко
12 декабря 2022, 00:38
+1
Напиши сниппет, который вернёт список контекстов.
Артур Шевченко
12 декабря 2022, 00:23
0
Попробуй JS триггерить
Артур Шевченко
12 декабря 2022, 00:18
0
Артём какой-то сложный вариант предлагает. Во-первых, расширить стандартную модель товара можно компонентом msAddFields. Во-вторых, пример плагина действительно есть в документации, но в документации по Modx
Петропавловский Артем
11 декабря 2022, 19:50
0
В документации есть пример реализации подобного функционала. Единственное, что вам нужно сделать, адаптировать его под себя
Сергей Карпович
11 декабря 2022, 16:04
0
А есть пример такого плагина?
Валерий
11 декабря 2022, 14:56
0
Это правда :)

Но, справедливости ради, отмечу, что достигнутый результат не совсем тот, который хотелось бы видеть. Перехода на внутреннюю страницу не происходит, следовательно, пользователь не понимает, что он «внутри округа». Попробую с изображениями теперь написать:

Внутренняя структура:

Ресурс «Представители» это подборка, сделанная через компонент «Collections». Все ресурсы берутся из категории с ID 162.

Код вывода фильтра на странице «Найти представителя» и странице «Центральный ФО» (дочерняя категория «Найти представителя»):

[[!mFilter2?
 &parents=`162`
 &limit=`12`
 &hideContainers=`true`
 &suggestions=`false`
 &tvPrefix=`tv.`
 &includeTVs=`mentor_area,mentor_bisness,mentor_status,mentor_spec,personTown,mentor_fo`
 &tplOuter=`user-pers_mFilter2.outer`
 &tpl=`persons_item`
 &tpls=``
 &sort=`resource|pagetitle:asc`
&filters=`
  tv|mentor_fo,
  tv|mentor_area,
  tv|personTown,
  tv|mentor_status,
  tv|mentor_spec,
`
 ...
Здесь «mentor_fo» — фильтр по Федеральным округам.

И я хочу добиться того, чтобы, при заходе на страницу «Центральный ФО» через меню, фильтр стоял по-умолчанию на пункте «Центральный ФО».


Дело в том, что из-за того, что фильтр «mentor_fo» привязан не к категориям в дереве ресурсов, а вручную вбивается в каждом сотруднике в качестве TV поля с множественным выбором, то фильтр сам не понимает, что мы внутри конкретного округа.

Ох, надеюсь, что сейчас чуть понятнее… Стало.
На самом деле, я хочу понять, почему, вписанная в замороженный url (первый скриншот сверху) ссылка не работает. Тогда как на странице с фильтром, если выбрать нужный округ там, то ссылка имеет именно этот вид :)
Сергей Карпович
11 декабря 2022, 13:56
0
удивительно, что за столько лет нет нормальной реализации
Артур Шевченко
11 декабря 2022, 11:23
0
Вооот, потому что правильно сформулированный вопрос это 50% ответа))
Валерий
11 декабря 2022, 10:15
0
Пока готовил вам ответ, понял в чем ошибся. Теперь все работает.
Я параметр прописывал с учетом перехода в подкатегорию (Крым), а нужно было без нее делать. Это все равно немного странно, но работает прекрасно.
Роман
11 декабря 2022, 07:59
0
Да, вы правы, были обозначены поля, из-за этого эти не прописывались.
Спасибо, надо быть мне внимательнее.
Артур Шевченко
11 декабря 2022, 00:35
0
Скрин дерева ресурсов, код вызова mFilter2 и описание того, что должно получится, — вот такая информация помогла бы получить ответ. А пока мне непонятно, что ты пытаешься сделать.
Артур Шевченко
11 декабря 2022, 00:32
0
Создать поле В наличии и плагин на сохранение, если остаток больше 0 ставить В наличии = 1, иначе 0. И фильтровать по этому полю.
Николай Савин
10 декабря 2022, 22:43
0
Вы точно в MODX работаете?
Андрей
10 декабря 2022, 20:54
0
Николай, сорри.
Я поторопился с ответом и принял вас за разработчика модуля )
Николай Савин
10 декабря 2022, 17:02
+1
Еще как вариант можно переустановить просто минишоп. В этом случае совершенно точно все поля окажутся на месте.
Pavel
10 декабря 2022, 16:00
0
Дошел до такого (с такими же результатами к сожалению...)

Сниппет:
$mysqli = new mysqli(   $host, 
                        $username, 
                        $password, 
                        $dbname, 
                        $port, 
                        $charset
                    );

$queryfull = "SELECT `Users`.`ID` AS `ID`,
					`Users`.`Name`,
					`Mail`,
					`Position`,
					`Department`,
					`WorkPhone`,
					`Cellphone`,
					((DAYOFMONTH(Birthday) = DAYOFMONTH(NOW()))
					& (MONTH(Birthday) = MONTH(NOW())))
					AS bday
				FROM `erp`.`Users`
				WHERE NOT Fired AND Department != ''
				ORDER BY `Department`, `Name`";

$fullresult = $mysqli->query($queryfull);

             
    while ($full = $fullresult->fetch_object())
    
    {
        
            if ($dept != $full->Department)

        {
 
            $dept = $full->Department;
            $phone = $full->WorkPhone != 0 ? $full->WorkPhone : '';
	        $cellphone = $full->Cellphone != 0 ? $full->Cellphone : '';
            $name = $full->Name;
            $position = $full->Position;
            $department = $full->Department;
            $mail = $full->Mail;
            $id = $full->ID;

        }

    }
                $modx->setPlaceholders(array(
                'dept' => $dept,
                'phone' => $phone,
                'cellphone' => $cellphone,
                'name' => $name,
                'position' => $position,
                'mail' => $mail,
                'id' => $id,
                ),'ep.');
$mysqli->close();
Чанк:
[[!usr1]]  

        <table class="uk-table uk-table-hover uk-table-small uk-margin-small uk-table-responsive">
        <tr align="center">
            <td class="uk-text-emphasis" colspan=5> 
                <h3 class="uk-heading-line uk-text-center"><span>[[+ep.dept]]</span></h1>
            </td>
        </tr>
        <tr align="left" onMouseOver="className='hilighton';" onmouseout="className='hilightoff';">
            <td>
                <div uk-lightbox>
                    <a class="uk-text-emphasis" uk-tooltip="title: Посмотреть профиль; pos: top-left" href='[[~3]]?userid=[[+ep.id]]' data-type="iframe">[[+ep.name]]</a>
                </div>
            </td>
            <td>[[+ep.position]]</td>
            <td align=\"center">[[+ep.cellphone]]</td>
            <td>
                <a class="uk-text-emphasis" uk-tooltip="title: Позвонить; pos: top-center" href=callto:" . $phone . ">[[+ep.phone]]</a>
            </td>
            <td>
                <a class="uk-icon-link" uk-tooltip="Написать письмо" uk-icon="mail" href=mailto:[[+ep.mail]]>[[+ep.mail]]</a>
            </td>
        </tr>
        </table>
Николай Савин
10 декабря 2022, 15:03
0
Если вы про msPromoCode — то это не мой модуль.