Сайт мнгопрофильного медицинского центра на minishop2
Всем привет!
Поделитесь опытом, плиз, кто уже сталкивался с подобной задачей.
Нужно сделать сайт многопрофильного медцентра.
У специализации врача есть набор услуг, которые оказывают несколько врачей и каждый по своей цене. Каждый врач может относиться к разным специализациям (например, врач-УЗИ и гинеколог), к тому же врач по специализации может относиться к разным отделениями (например, Взрослое: гинеколог и Детское: детский гинеколог).
Никак не могу понять как это правильно или лучше сделать, чтобы не плодить услуги, не дублировать карточки врачей, в услугах не писать ФИО и специализацию и т.д. Так как затем нужно создать фид для загрузки в Яндекс Вебмастер
yastatic.net/s3/doc-binary/src/support/ru/webmaster/files/doctors.xml
Ключевые разделы:
Взрослое отделение
— Врач-УЗИ
— — Иванов И
— — — Первичный приём — 1000 рублей
— — — Повторный приём — 1000 рублей
— — — УЗИ органов малого таза — 1500 рублей
— Гинеколог
— — Иванов И
— — — Первичный приём — 1200 рублей
— — — Повторный приём — 1000 рублей
— — Петрова М
— — — Первичный приём — 1500 рублей
— — — Повторный приём — 1200 рублей
Детское отделение
— Гинеколог
— — Петрова М
— — — Первичный приём — 1000 рублей
— — — Повторный приём — 800 рублей
Поделитесь опытом, плиз, кто уже сталкивался с подобной задачей.
Нужно сделать сайт многопрофильного медцентра.
У специализации врача есть набор услуг, которые оказывают несколько врачей и каждый по своей цене. Каждый врач может относиться к разным специализациям (например, врач-УЗИ и гинеколог), к тому же врач по специализации может относиться к разным отделениями (например, Взрослое: гинеколог и Детское: детский гинеколог).
Никак не могу понять как это правильно или лучше сделать, чтобы не плодить услуги, не дублировать карточки врачей, в услугах не писать ФИО и специализацию и т.д. Так как затем нужно создать фид для загрузки в Яндекс Вебмастер
yastatic.net/s3/doc-binary/src/support/ru/webmaster/files/doctors.xml
Ключевые разделы:
Взрослое отделение
— Врач-УЗИ
— — Иванов И
— — — Первичный приём — 1000 рублей
— — — Повторный приём — 1000 рублей
— — — УЗИ органов малого таза — 1500 рублей
— Гинеколог
— — Иванов И
— — — Первичный приём — 1200 рублей
— — — Повторный приём — 1000 рублей
— — Петрова М
— — — Первичный приём — 1500 рублей
— — — Повторный приём — 1200 рублей
Детское отделение
— Гинеколог
— — Петрова М
— — — Первичный приём — 1000 рублей
— — — Повторный приём — 800 рублей
Комментарии: 2
Обычно на таких сайтах есть раздел Услуги, где будет все, что у вас перечислено (до уровня врачей, но не включая их) и раздел Специалисты — где уже просто идут все врачи общим списком каким-то.
Далее нужно связать эти два раздела, в целом можно было бы просто добавить TV поле Список с множественным выбором к Услуге и выбирать там врачей, кто оказывает эту услугу. Но вы указали, что каждому врачу нужен еще и прайс-лист свой. Тогда используем либо MIGX, либо PageBlocks (бесплатный вполне подойдет), где делаем выбор врача из списка и добавляем таблицу с ценами.
В фид это при желании тоже всё можно вывести
Далее нужно связать эти два раздела, в целом можно было бы просто добавить TV поле Список с множественным выбором к Услуге и выбирать там врачей, кто оказывает эту услугу. Но вы указали, что каждому врачу нужен еще и прайс-лист свой. Тогда используем либо MIGX, либо PageBlocks (бесплатный вполне подойдет), где делаем выбор врача из списка и добавляем таблицу с ценами.
В фид это при желании тоже всё можно вывести
Я делал ровно такое через тегирование, компонентом tvSuperSelect.
На другом сайте клиники пытался сделать через taxonomy, но там что-то пошло не так (вроде с кодировкой русской были проблемы, но уже не помню, было несколько лет назад), и в итоге через TV с подстановкой возможных значений через синтаксис
Тут главное не забывать концепцию MODX, что ресурс — это не обязательно страница. Есть побочный эффект при таком подходе: на одинаковых услугах у тебя будет одинаковый alias, но это легко пофиксить пакетом customURLs, где настраиваются маски alias-ов по разным правилам.
Кастомные цены на одни и те же услуги, чтобы без дублирования самих услуг, наверное удобнее всего через MIGX — услугу подвязываешь через выбор из списка (типа справочника), а цену указываешь руками нужную. Это будет легко вывести в карточке врача. Но если нужно в общем прайсе потом указывать наоборот стоимость услуги разную у разных врачей, то будут сложности с выборкой, то придется либо написать небольшой сниппет, который ходит по врачам и дергает цену на услугу (закэшируй чтобы не тормозило, если много врачей), либо плагинчик, который при сохранении врача пропишет его персональную цену на услугу в MIGX-поле привязанное уже к самой услуге. Плагин получше будет, позволит показывать цену от и до на услугу, что, вероятно, улучшит UX сайта и порадует дизайнера и заказчика))
Там все операции сводятся к перекладыванию JSON для MIGX и простейшим выборкам ресурсов, так что бояться такой кастомизации не стоит.
Успехов!
На другом сайте клиники пытался сделать через taxonomy, но там что-то пошло не так (вроде с кодировкой русской были проблемы, но уже не помню, было несколько лет назад), и в итоге через TV с подстановкой возможных значений через синтаксис
@SELECT [[!pdoResources? //и тут выбор значений для чекбоксов ]]
То есть к врачу галочки ставишь, какие специальности, потому что специальностей список конечный, а врачей как будто нет. Услуги и цены создавал ресурсами, через настройку форм убирал лишние поля. Там где надо было схлопнуть дерево в админке, использовал компонент Collections.Тут главное не забывать концепцию MODX, что ресурс — это не обязательно страница. Есть побочный эффект при таком подходе: на одинаковых услугах у тебя будет одинаковый alias, но это легко пофиксить пакетом customURLs, где настраиваются маски alias-ов по разным правилам.
Кастомные цены на одни и те же услуги, чтобы без дублирования самих услуг, наверное удобнее всего через MIGX — услугу подвязываешь через выбор из списка (типа справочника), а цену указываешь руками нужную. Это будет легко вывести в карточке врача. Но если нужно в общем прайсе потом указывать наоборот стоимость услуги разную у разных врачей, то будут сложности с выборкой, то придется либо написать небольшой сниппет, который ходит по врачам и дергает цену на услугу (закэшируй чтобы не тормозило, если много врачей), либо плагинчик, который при сохранении врача пропишет его персональную цену на услугу в MIGX-поле привязанное уже к самой услуге. Плагин получше будет, позволит показывать цену от и до на услугу, что, вероятно, улучшит UX сайта и порадует дизайнера и заказчика))
Там все операции сводятся к перекладыванию JSON для MIGX и простейшим выборкам ресурсов, так что бояться такой кастомизации не стоит.
Успехов!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.