• avatar webber
  • 0
актуальный вид панели переключения языков — для тех, кто потерял из виду.
  • avatar paic
  • 0
Спасибо, идею понял, и наверное сравню с темами предыдущей версии, может еще какие отличия есть.
  • avatar webber
  • 1
Текущий плагин использует общие настройки плагина COdeMirror — потому править надо там. Для дефолтной темы это можно попробовать сделать так, для темной — в теме one-dark в конце добавить стили для ошибки
.cm-s-one-dark span.cm-error {color: #f00;}
  • avatar paic
  • 0
CodeMirror безусловно вещь полезная, но начиная с версии 1.2.X он работает как то не так, много чего не подсвечивает вообще, вот здесь обозначал проблему и скриншоты показывал — как было и как стало

modx.im/blog/news/4950.html#comment44393

При этом в демке на сайте самого CodeMirror (такой скрин по ссылке тоже есть) все работает отлично.
Вот этот круто, отличный плагин.
Фуф, обновил вовремя на сайте.
Выглядит неплохо, надо попробовать такое
Недавно тоже хотел сделать калькулятор с помощью js но ничего не получилось, слишком сложно это делать. В результате взял и на ucalc.pro сделал за пару часов. Жаль что компонента нет, только код вставлять. Но хоть так, чем ничего. Главное что работает.
  • avatar paic
  • 0
Было такое хорошее решение по зависимым спискам
modx.im/blog/addons/1869.html
к сожалению, как здесь написано, устарело
modx.im/blog/questions/1862.html
Но можно посмотреть, как это там реализовывалось (там был модуль).

А можно и через eFilter:
1. Направления — ТВ параметр, значения задавать в модуле eLists.
2. Врачи — документы в каталоге Врачей, к шаблону подключить ТВ из п.1. с типом чекбокс (если один врач работает в нескольких направлениях)
3. На странице каталога — фильтр с направлениями и анонсы страниц врачей, но не обязательно — можно только фильтр и можно в любом нужном месте, а результат фильтрации — на другой странице.
Ну и самое главное, не выводить сразу всю информацию по всем направлениям и врачам, а выводить, например, по условию. Если выбрана Диагностика, то выводим расписание врачей только по Диагностике и так далее. Как бы все блоки выведены, но скрыты по условию, и потом по условию показывается тот или иной блок
Есть структура. Выбираем Диагностика, выводится блок по ID

<div class="line">
<label for="variants">Направление</label>
<select name="variants" id="variants" onchange="changeOption()">
<option value="" disabled selected>Выберите направление</option>
<option value="var1">Дигностика</option>
-----
</select>
</div>
<div class="line options hidden" id="var1">
<label for="specialists">Специалист</label>
<select class="dropping" name="specialists" id="doc1" onchange="changeOptionDocOne()">
<option value="none" disabled selected>Выберите врача</option>
<option value="doc1_1">ФИО</option>
------
</select>
</div>


Когда выбираем первого врача, выводится расписание врача


<div class="infodoc info-doc1 w-full hidden p-6 pl-8 pr-8" id="doc1_1">
<p>Дигностика</p>
<span class="fio"><span>Фамилия</span> Имя Отчество</span>
<p class="text-center">Часы приема</p>
<ul class="hours">
<li class="flex justify-between"><span class="day">Понедельник:</span><span class="grafik"> с 9:00 до 16:00</span></li>
<li class="flex justify-between"><span class="day">Вторник:</span><span class="grafik"> с 10:00 до 16:00</span></li>
<li class="flex justify-between"><span class="day">Среда:</span><span class="grafik"> с 11:00 до 20:00</span></li>
<li class="flex justify-between"><span class="day">Четверг:</span><span class="grafik"> с 10:00 до 20:00</span></li>
<li class="flex justify-between"><span class="day">Пятница:</span><span class="grafik"> с 10:00 до 19:00</span></li>
</ul>
</div>


Код jQuery


function changeOption() {
  $('.options').hide();
  $('.beggin').show();
  $('#' + $('#variants').val()).show();
   //$('.info-doc1').hide();
$('div[class*="info-doc"]').hide();
  $('select.dropping').val('none');
  $('.dropping').formSelect();
}

function changeOptionDocOne() {
  $('.beggin').hide();
  $('.info-doc1').hide();
  $('#' + $('#doc1').val()).show();
}


Я имел ввиду, можно ли каким-то способом сократить код скрипта, как-то его модифицировать под все блоки, а не повторять каждый раз, меняя функцию change


function changeOptionDocTwo() {
  $('.beggin').hide();
  $('.info-doc2').hide();
  $('#' + $('#doc2').val()).show();
}


и так далее
«Как лучше хранить направления и врачей (ресурсы, TV)?» — зависит от кол-ва контента по «направлению» и «врачу». Если у «направления» есть описание и фотки — то лучше ресурс. По врачу то же самое.

Расписания можно и в ТВ.

Вообще, чтобы нормально ответить, от вас нужно описание необходимых запросов-отчетов вашей системы. Например, есть ли запрос типа «какие врачи-анестезиологи работают в понедельник ночью»?

А навскидку упрощенно — в одной папке будут ресурсы-направления.

Если каждый врач работает только в 1-м направлении — то ресурсы-врачи это дочерние у направлений.

Если каждый врач — может в нескольких направлениях работать, то врачи в другой папке и у каждого врача есть ТВ (там его направления, которые берутся из папки с направлениями).

Это типично MODx-овская структура, можно и лучше, вон скоро Laravel-версия выйдет, там хоть что сделаете.

«Пробовал всю информацию через DocLister выводить, но получается очень много контента сразу подгружается.» — это, честно говоря, вообще не понял.Можно по клику или change через Аякс грузить.
  • avatar paic
  • 0
Ура! Теперь работает. Спасибо еще раз.
  • avatar webber
  • 1
да, похоже надо еще немного поправить для нулевых значений.
Здравствуйте, уважаемые пользователи.

В Чёрную Пятницу — Безумные Скидки!

Только 23, 24, 25 и 26 ноября при покупке тарифов хостинга Gold (Европа) или RuGold (Москва) на NVMe SSD дисках:

— введите промо-код hostiman50 и получите скидку 50% при заказе на 1 месяц;

— введите промо-код 999 и годовая оплата для Вас составит всего 999 рублей вместо обычных 1188.

Напоминаем, что при оплате любого тарифа хостинга на 1 год — домен RU, РФ или РУС в подарок!

Ссылка для заказа — hostiman.ru/hosting

С уважением, Ваш хостинг-провайдер HostiMan.
  • avatar paic
  • 0
что-то пока не хочет.
И с правками той версии eFilter что была (более старая) и после обновления на нынешнюю.
Вызываю так
[!eFilter? &ajax=`1` &allowZero=`1`!]

может allowZero нужно в пару еще какой-то параметр?

P.S.
ТВ параметр типа text, находится в категории Filters.
Другие значения параметра, кроме 0, в форму фильтра выводятся.
В чанке товара плейсхолдер [+params+] не используется.
Сортировка не используется.
После обновления eFilterResult после любого выбора в форме eFilter выводит пустое значение, но это скорее всего к теме значения ТВ=0 не имеет, потом разберусь.
  • avatar paic
  • 0
Спасибо огромное!
  • avatar webber
  • 1
Похоже что никто. UPD — добавил еще один параметр для этого случа :)
  • avatar sergge
  • 0
Ларчик просо открывался: нужно обновиться.
  • avatar paic
  • 0
неужто никто не сталкивался