id юзера в адресной строке вместо логина

  
МедальАвторитет форума
Сообщений: 1004
первая замена будет тогда такой например:
Код PHP:
public static function getProfileURL($user_login) {
        $inDB = cmsDatabase::getInstance();
        $inCore = cmsCore::getInstance();
        $nickname = $inDB->get_field('cms_users', "login='{$user_login}'", 'nickname');
        $nickname = $inCore->strToURL($nickname);
        return '/' . self::PROFILE_LINK_PREFIX .$nickname;
    }
ну и дальше нужно поменять с учётом этого
Делай добро и бросай его в воду, пусть плывет дальше...)
Сообщений: 85
Быстрый поиск на мой вопрос ответа не выдал... эта тема из той-же серии...
Как безболезненно для цмс убрать /users/ ??? чтоб получилось имя_сайта.ру/имя_пользователя
Если это уже решено где-то, дайте пожалст ссылку.
www.club-trade.ru ковыряюсь здесь
Сообщений: 10
После изменения кода на тот что предложил ты при переходе на страницу пользователя пишет какую-то синтаксическую ошибку в файле router в 508 строке

• Mike •:

да нет всё достаточно просто (но работоспособность проверялось только на вкладках пользователей)
итак — для смелых )
открываем /core/classes/user.class.php находим строку (~1396)
Код PHP:
public static function getProfileURL($user_login) {
заменяем функцию целиком:
Код PHP:
public static function getProfileURL($user_login) {
        $inDB = cmsDatabase::getInstance();
        $id = $inDB->get_field('cms_users', "login='{$user_login}'", 'id');
        return '/' . self::PROFILE_LINK_PREFIX . 'id'.$id;
    }
открываем файл /components/users/frontend.php находим (~649)
Код PHP:
/////////////////////////////// VIEW PROFILE /////////////////////////////////////////////////////////////////////////////////////////
if ($do=='profile'){

	$inCore->loadLib('clubs');

    if (!$id){
        $login = $inCore->request('login', 'str', '');
        $login = urldecode($login);
        $id    = $inDB->get_field('cms_users', "id='{$id}' ORDER BY is_deleted ASC", 'id');
    }
заменяем этот блок на:
Код PHP:
/////////////////////////////// VIEW PROFILE /////////////////////////////////////////////////////////////////////////////////////////
if ($do=='profile'){

	$inCore->loadLib('clubs');

    if (!$id){
        $id = $inCore->request('id', 'int', '');
    }
открываем файл /components/users/router.php находим в самом конце:
Код PHP:
//RewriteRule ^users/([a-zA-z0-9\.]*)$ /index.php?view=users&do=profile&login=$1
        $routes[] = array(
                            '_uri'  => '/^users\/([a-zA-z0-9\.]+)$/i',
                            'do'    => 'profile',
                            1       => 'login'
                         );
// закомментируем этот блок и после него (или удаляем и вместо него)
Код PHP:
//RewriteRule ^users/id([0-9]+)$ /index.php?view=users&do=profile&id=$1
        $routes[] = array(
                            '_uri'  => '/^users\/id([0-9]+)$/i',
                            'do'    => 'profile',
                            1       => 'id'
                         );
наверное всё, если будет где-то не работать напишите тут что-нить подправим)
кстати данный хак позволит более точно отбирать условия для плагина user_tip… )
МедальАвторитет форума
Сообщений: 1004
Все изменения в файлах относились к версии 1.7, вполне возможно что с более поздними версиями могут быть расхождения…
Делай добро и бросай его в воду, пусть плывет дальше...)
Сообщений: 10
А для версии 1.8 можешь написать код? Очень нужно
• Mike •:

Все изменения в файлах относились к версии 1.7, вполне возможно что с более поздними версиями могут быть расхождения…
МедальАвторитет форума
Сообщений: 1004
Alex broun:
После изменения кода на тот что предложил ты при переходе на страницу пользователя пишет какую-то синтаксическую ошибку в файле router в 508 строке
что именно находится у вас в 508 строке, код приведите из данного файла (508 строку)…
Делай добро и бросай его в воду, пусть плывет дальше...)
Сообщений: 10
• Mike •:

Alex broun:
После изменения кода на тот что предложил ты при переходе на страницу пользователя пишет какую-то синтаксическую ошибку в файле router в 508 строке
что именно находится у вас в 508 строке, код приведите из данного файла (508 строку)…

Вот что пишет сайт Parse error: syntax error, unexpected '?' in /usr/home/socialwo/domains/social-world.ru/public_html/components/users/router.php on line 508

В этой строке кроме ?php> ничего нет

А вообще вставляю этот код:
//RewriteRule ^users/id([0-9]+)$ /index.php?view=users&do=profile&id=$1
$routes[] = array(
'_uri' => '/^users\/id([0-9]+)$/i',
'do' => 'profile',
1 => 'id'
);
МедальАвторитет форума
Сообщений: 1004
кроме вставки нужно еще закомментировать,
вот код начиная с 500 строки и до конца файла:
Код PHP:
        //RewriteRule ^users/([a-zA-z0-9\.]*)$ /index.php?view=users&do=profile&login=$1
        //$routes[] = array(
        //                    '_uri'  => '/^users\/([a-zA-z0-9\.]+)$/i',
        //                    'do'    => 'profile',
        //                    1       => 'login'
        //                 );

        //RewriteRule ^users/id([0-9]+)$ /index.php?view=users&do=profile&id=$1
        $routes[] = array(
                            '_uri'  => '/^users\/id([0-9]+)$/i',
                            'do'    => 'profile',
                            1       => 'id'
                         );

        return $routes;

    }

?>
Делай добро и бросай его в воду, пусть плывет дальше...)
Сообщений: 10
• Mike •:

кроме вставки нужно еще закомментировать,
вот код начиная с 500 строки и до конца файла:
Код PHP:
        //RewriteRule ^users/([a-zA-z0-9\.]*)$ /index.php?view=users&do=profile&login=$1
        //$routes[] = array(
        //                    '_uri'  => '/^users\/([a-zA-z0-9\.]+)$/i',
        //                    'do'    => 'profile',
        //                    1       => 'login'
        //                 );

        //RewriteRule ^users/id([0-9]+)$ /index.php?view=users&do=profile&id=$1
        $routes[] = array(
                            '_uri'  => '/^users\/id([0-9]+)$/i',
                            'do'    => 'profile',
                            1       => 'id'
                         );

        return $routes;

    }

?>

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