Есть модуль Pathauto, который позволяет автоматически задавать синонимы в том числе и для профиля юзера.
А есть ли решение как сделать чтобы юзер сам мог задавать синоним у себя в профиле?
Чтобы при регистрации синоним задавался автоматически, но юзер мог бы его менять на свой.
Как это сделать?
Комментарии
Можете создать филд (например, path_alias) в профиле пользователя, выставить его дефолтное значение в
users
, а в шаблонах использовать токены[user:field_path_alias]/[user:name]
.Получится, что у пользователей будет возможность создавать пути вида
<custom path>/<username>
.Если этого не достаточно и хочется убрать ограничение в виде обязательного имени пользователя в конце пути (
<username>
), то можно немного накодить: используя хук hook_form_FORM_ID_alter, добавьте свою submit функцию и добавляйте в филдpath_alias
введённое имя пользователя, так чтобы, когда новый пользователь регистрируется в этом филде автоматическим прописывалось бы что-то вродеusers/vasya
. В таком случае, в шаблоны будет достаточно добавить только филд[user:field_path_alias]
и вуаля!Добавлю, что для поля path_alias надо будет сделать проверку на уникальность - чтобы 2 пользователя не могли указать себе одинаковый синоним.
У Field validation есть проверка на уникальность поля, или же Unique field, но он не прошел проверку безопасности.
А Path Alias сам добавит цифру в конце, если значение не уникальное. Например, у нод названия могут быть одинаковые, но создаются всегда разные алиасы.
/content/title
/content/title-0
/content/title-1
Верно, но юзер будет видеть у себя в профиле значение поля без цифр, а алиас в урле - с цифрами.
Начнутся лишние вопросы.
Тоже верно. С другой стороны пользователь вводит в поле "best-user", а после сохранения там "best-user-999" тоже не понятно.
Думаю, это уже логические вопросы принимать решения по ним должен ТС.
Вообще, идея не очень.
Всякие малолетние кулхацкеры начнут делать себе алиасы root, admin, etc. и включать социальную инженерию.
Я бы оставил id, а хорошим людям, за пиво, можно и руками поменять.
Если говорить про идею, то в общем-то все позволяют менять часть адреса: vk, youtube, gitlab, bibucket
В принципе ничего страшного в этом нет. Главное разумно подойти к задаче. Можно составить список исключений, которые нельзя вводить в поле.
А что, можно было бы написать модулёк для этого, только я не уверен что он уже не написан
Делайте валидацию по полю? Или что то не понимаю
В каком смысле? По какому полю?
Ну по полю где добавляете алиас, что бы при вводе сразу высвечивалось что алиас занят.
Велосипед ведь построили давно, в соц сетях.
Готов сделать мелкий модулёк для решения этой проблемы, обращайтесь в личку