Как заменить в URL Username на ID при включении SEF?

10 years 10 months ago #228046 by scientificman
Здравствуйте!

Работаю над переводом сайта на человеко-понятные ссылки. Использую штатные возможности Joomla 2.5. Заметил, что при формировании ссылок на профиль пользователя движок использует поле username. Вследствие этого возникают 2 проблемы.
1. Снижается безопасность.
2. Ссылки, в которых используются русские символы не открываются.

Вижу два выхода из ситуации: либо подставлять вместо имени пользователя поле ФИО, обеспечивая его транслитерацию, либо, что меня бы вполне устроило, поле ID пользователя.

Кто с этим сталкивался? Прошу помощи!
Спасибо!

Please Log in to join the conversation.

10 years 10 months ago #228048 by AlexSmirnov
Добро. Отправлю завтра разработчикам.

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

Please Log in to join the conversation.

10 years 10 months ago - 10 years 10 months ago #228146 by AlexSmirnov
По какой-то волшебной случайности вопрос аналогичный Вашему был и без моего вмешательства поднят вчера в теме www.joomlapolis.com/forum/153-professional-member-support/221359-urlprofile#228042

Цитирую ответ:

The SEF link should be as follows.

yoursite/menu_alias/component_task/username

So for example it'd be the following.

example.com/profiles/userprofile/bob

You can change this to an extend using 3rd party SEF extensions, but aside from that no it can't be cut down much further. It's specific like this is the URL knows where to go.


В переводе на русский:

SEF ссылка должны быть следующей: yoursite/menu_alias/component_task/username

Так что, например, она может быть example.com/profiles/userprofile/bob

Вы можете ее изменить в некоторой мере при помощи сторонник SEF расширений, но кроме этого, ее трудно урезать дальше. Такова специфика, чтобы URL ссылка знала куда идти.


Похоже я был прав в Вашей начальной теме.

Удачи

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

Please Log in to join the conversation.

10 years 10 months ago #228164 by scientificman
Alex, cпасибо за поддержку!

Однако, мой вопрос был немного в другом. У меня просто есть желание заменить в ссылке username на ID. Поскольку оба этих поля уникальны, проблем со идентификацией ссылки не будет. Причем этот эксперимент я провел, исправив файл роутера. На мой взгляд, подобная возможность выбора должна быть в самом CB.

Please Log in to join the conversation.

10 years 10 months ago #228180 by AlexSmirnov
Не стоит благодарности, scientificman.

Подбросил этот вопрос в той же теме Кайлу из команды разработчиков.

Ждем ;)

Александр

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

Please Log in to join the conversation.

10 years 10 months ago #228200 by AlexSmirnov
Получил ответ: один к одному опомянутое Вами ранее решение, - избавиться от ответственного за конвертирование username кода в /components/com_comprofiler/router.php

====================

if ( is_numeric( $query ) ) {
$sql = 'SELECT username FROM #__users WHERE id = '. (int) $query;
$database = JFactory::getDBO();
$database->setQuery( $sql, 0, 1 );
$username = $database->loadResult();
if ( $username && ! ( preg_match( '+[@:/\n\r\t\a\e\f\v\x00_]+', $username ) || is_numeric( $username ) ) ) {
$query = str_replace( '.', '_', $username ); // a dot (.) in a username is mishandled by the dot htaccess of joomla 1.5
}
}
=====================

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

Please Log in to join the conversation.

Moderators: beatnantkrileon
Time to create page: 0.630 seconds

Facebook Twitter LinkedIn