Как поменять шаблон генерации URL?

 
Посетитель
small user social cms
Медаль
Сообщений: 311
Мне нужно чтобы URL формировались как "сайт/тип-контента/имя-автора-публикации/id-публикации"

В настройках типов контента по-умолчанию прописано "тип-контента/{id}-{title}". А как добавить еще имя автора публикации? То есть хорошо было бы увидеть где-то список значений кроме {id} и {title}, которые можно добавлять в шаблон генерации URL.

Еще было бы очень хорошо, если бы URL можно было делать полностью кириллическими, поскольку я планирую создать сайт на кириллическом домене, но это как я понимаю, будет уже совсем не просто сделать?
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатий
Сообщений: 569
Все доступные поля показал на картинке:
Как поменять шаблон генерации URL?

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

Ваш шаблон генерации URL: {user_nickname}/{id}
Поддержки кириллических адресов пока нет. Русский ник будет транслитерирован и переведён в нижний регистр. "Администратор" -> "administrator"

Обратите внимание, что в текущей версии InstantCMS2 это очень проблемный вариант!

Первая проблема. На данный момент в Двойке реализована уникальность полей в пользовательском профиле только для id и email. Для ников это пока не сделано. Это значит, что при Вашем шаблоне адреса Вы рискуете получить ситуацию с материалами разных пользователей в одной и той же "папке". Во-первых, из-за транслитерации (например, для пользователей Виктор и Viktor). Во-вторых, из-за невозможности запретить разным пользователям задавать себе одинаковые имена. Эта тема уже несколько раз поднималась на форуме.

Вторая проблема Вашего варианта на данный момент в том, что любой пользователь в любой момент может изменить своё имя (ник). А значит, его старые материалы по прежним адресам останутся, а новые материалы уже будут создаваться в "папке" с другим именем. Получите несколько "папок" для одного и того же пользователя.

Единственный вариант, который я вижу для Вас, если очень нужно сделать именно так, как Вы описали - создание отдельного уникального поля, которое обычно называют "Логин". Стандартными средствами поле в профиле можно добавить в Админке. Но оно уникальным не делается, значит это уже хак системы или, если возможно, хук. Это поле должно попадать в вышеприведённый набор переменных - это либо второй хак, либо, если возможно, ещё хук. Это поле должно вводиться пользователем один раз и далее быть недоступно для изменения им - тоже хак или хук. Если получится только хуками - это лучше. Возможно ли это, я не знаю, так как ещё не разбирался со всеми событиями в системе.

Я сейчас столкнулся с аналогичной задачей, только более широкой. Буду её решать через создание системного поля "Логин" и несколько хаков. Что из этого получится и когда закончу - пока не знаю. Если разработчики будут не против, выложу то, что получится в свой блог.
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 311
Спасибо, WebMan, за исчерпывающий ответ! Можно прям в документацию InstantCMS заносить smile

Имя пользователя в УРЛе мне нужно для того, чтобы была возможность добавлять виджеты на страницы с публикациями отдельных пользователей. Для этого подходит и id пользователя. Тогда отпадают все проблемы, которые Вы описали, и которые возникают при использовании имени пользователя.

Отдельное спасибо за таблицу со значениями, которые можно использовать в шаблоне URL. Думаю, многим пригодится.

И еще надеюсь, что когда-то появится поддержка кириллических URL, что в первую очередь нужно для кириллических доменов. Ведь, например, мойсайт.рф/новости/новости-дня смотрится как-то лучше чем мойсайт.рф/news/novosti-dnya
Посетитель
small user social cms
Медаль
Сообщений: 238
boanro:
И еще надеюсь, что когда-то появится поддержка кириллических URL
На сколько я понимаю, это реализовать не сложно. Основная проблема в том, что программисты не любят русский язык, из-за возможных конфликтов.
У меня есть самописный движок, на котором кириллические урлы прекрасно работают. Однажды даже предлагал его отдать R2, но ему оказалось не интересно. Видимо разработчики инстанта пока не готовы перейти рубеж английский/русский.
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 806
boanro:
мойсайт.рф
Да потому что кириллические домены - это сплошной гемор, а еще и ссылки добавлять кириллические - это вообще кошмар. smile
Посетитель
small user social cms
Медаль
Сообщений: 238
Melon:
Да потому что кириллические домены - это сплошной гемор
Зря Вы так, довольно часто они очень выручают, а русские урлы на много приятнее смотрятся в поиске, и даже, думаю
в некоторых случаях имеют преимущество в ранжировании.
Посетитель
small user social cms
Медаль
Сообщений: 311
Я тоже так думаю! В результатах поиска кириллические домены и урлы хорошо выделяются среди латинских. Это одна из причин, из-за которой я хочу делать новый свой контентный проект на кириллическом домене (пусть даже с не полностью кириллическими урлами).

Alexprofi:

а русские урлы на много приятнее смотрятся в поиске,
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.