LINUX.ORG.RU

Drupal 8 Настроить вывод пользователей

 , ,


0

2

Помогите настроить вывод пользователей на сайте в Drupal 8.
Изначально в данной CMS, если зайти по адресу site.net/user, происходит редирект на форму авторизации site.net/user/login. По-Системный путь к информации о пользователе имеет по адрес site.net/user/ID (ID - идентификатор пользователя).
На сайте необходимо сделать следующее: 1) При переходе по адресу site.net/sotrudniki, должны списком выходить все доступные сотрудники (это реализовано через модуль Представления); 2) При переходе по адресу site.net/sotrudniki/ФИО-сотрудника-через-транслит. (Данный пункт в принципе тоже настроен, при помощи Синонимов URL, то есть для каждого адреса вида site.net/user/ID есть site.net/sotrudniki/ФИО-сотрудника-через-транслит)
При данном выводе на странице пользователя в виде заголовка отображается его имя, что нужно убрать.
Так как нет стандартного представления для страниц user/, и нет выделенного шаблона для данного модуля, то решил попробовать создать еще одно представление. Первым вариантом в качестве Пути представления взять /sotrudniki/%, но не смог настроить Контекстные фильтры, так как аргумент имеет вид ФИО-сотрудника-через-транслит. Для второго варианта взял путь user/%, а в качестве Контекстного фильтра указал ID пользователя. И этот вариант работает как надо, но появилась проблема со страницей авторизации, она перестала быть доступной и выдает Страница не найдена.
Может кто знает и может помочь как правильно все же реализовать данную задачу, чтобы все работало

появилась проблема со страницей авторизации, она перестала быть доступной и выдает Страница не найдена.

Прям таки выстрел в ногу.

По теме: разберись с представлением с ФИО в адресе. Если оно записано в виде отдельного поля у юзера, то вообще не должно стать проблемой.

А еще можно развить твой костыль: сделай синонимы с ФИО не на user/%, а на profile/%. Тогда представление не будет перекрывать страницу авторизации. Но это ооочень сомнительное решение.

Dmit3Y ()
Ответ на: комментарий от Dmit3Y

А еще можно развить твой костыль: сделай синонимы с ФИО не на user/%, а на profile/%. Тогда представление не будет перекрывать страницу авторизации. Но это ооочень сомнительное решение.

Я так думаю что про использовать profile/% вы подразумевает, что я использую модуль profile, но я его не использую... Да и синонимы переделать я так думаю не получиться, потому что user/% это системная ссылка, а sotrudniki/% непосредственно синоним. Может конечно это будет доступно при установленном модуле profile.

По теме: разберись с представлением с ФИО в адресе. Если оно записано в виде отдельного поля у юзера, то вообще не должно стать проблемой.

Да, поле ФИО отдельно у юзера, но пока не могу понять как разобраться. Подскажите?

operatornk ()
Ответ на: комментарий от operatornk

Не, я не про модуль profile говорил, а просто предложил варианта адреса страницы.

Не-а, не подскажу. Забросил друпал лет 5 назад и возвращаться не хочу. Все мысли что были по этому вопросу, я уже высказал.

Dmit3Y ()
Ответ на: комментарий от operatornk

Вангую он имел ввиду взять вместо дурпала обычный нормальный пыхо-фреймворк, где спокойно, гибко и прозрачно можно накидать видов, контроллеров, моделек.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

То же может быть, но все зависит от задач поставленных перед проектом... и в данном случае оптимально выбрать подходящую CMS... Фреймворк в данном случае будет избыточен.

operatornk ()
Ответ на: комментарий от operatornk

Это друпал избыточен по сравнению с фреймворками. Любая цмс является надстройкой над фреймворком, пусть и писанным ради этой самой цмс, так еще и загоняет в свои рамки лишних телодвижений. Вот эти все магазины на джумлах и ворпрессах — отличный пример творящегося песца.

В фреймворках же нет ничего лишнего вообще, там только роутер, базовые контроллер, модель и утильки для работы с БД. А нужное подключается при необходимости. Другое дело — какой из них выбрать. Это уже дело вкуса, привычки и навыков.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

Вы сейчас говорите в рамках кода и я с вами соглашусь. Но я вам, говоря про избыточность, имел ввиду трудозатраты и на сколько они актуальны при разработке определенного проекта, и не в каждом проекте, как в моем случае, целесообразно использовать разработку на фреймворке с нуля.

operatornk ()
Ответ на: комментарий от goingUp

django/flask в основном. хотя есть еще один мрак-самопис по фану.

q13 ()
Ответ на: комментарий от operatornk

Из пыха я распробовал laravel и symfony. Их наверное и порекомендую и смогу порекомендовать. Хотя не холивара ради скажу, что после ухода с php на python/go стало как то меньше рутины, но и задачи усложнились в разы. Не знаю как лучше, но главное не увязнуть в мире CMS

q13 ()
Последнее исправление: q13 (всего исправлений: 1)
Ответ на: комментарий от deep-purple

В фреймворках же нет ничего лишнего вообще, там только роутер, базовые контроллер, модель и утильки для работы с БД.

Явным примером обратного и будет Symfony. Там по умолчанию есть лишнее.

А так во всём полностью согласен.

Вообще, как по мне, у CMS есть только одно преимущество - быстро сделать шаблонную визитку и забить ***.

q13 ()
Ответ на: комментарий от q13

Это все же фреймфорки, а нужна CMS. Да и за основу Drupal 8 использует туже symfony и элементами zend.

Не знаю как лучше, но главное не увязнуть в мире CMS
Вообще, как по мне, у CMS есть только одно преимущество - быстро сделать шаблонную визитку и забить ***.


Поэтому и говорю что нужно понять из задачи актуально ли использовать фреймфорк или достаточно взять CMS.
В моем случае как раз достаточно CMS, но вот только вылезла небольшая загвоздка... Можно конечно переделать и формирование URL через id, но хотелось бы ФИО-сотрудника-через-транслит... Поэтому и спросил может кто чего подсказал бы

operatornk ()
Ответ на: комментарий от operatornk

\Drupal\Core\Url - В нём всё по урлам. думаю там ты и найдешь ответ. Я в подобных случаях просто начинаю дебегаром по методам ходить и идеи сами в голову приходят.

q13 ()
Ответ на: комментарий от q13

Ну походу только так) Думал может чего упускаю и можно решить все средствами панели управления, не лезть в код... Но походу придется лезть)

operatornk ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.