id юзера в адресной строке вместо логина
- Предыдущая
- 1
- 2
- 3
- Следующая
- Показаны 16-30 из 31
абсолютно верно, осталось только научить пользователя придумать логин в виде транслита имени компании)))) пожалуй припишу это в регистрацию)хз… номаные имена получаются… транслит имени компании… думать то надо им когда компанию называют
Это как? сделать как Вы описали выше и еще добавить вот эту функцию?можно ведь и никнейм прогнать через функцию транслитерации и вместо ид использовать…
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; }
Как безболезненно для цмс убрать /users/ ??? чтоб получилось имя_сайта.ру/имя_пользователя
Если это уже решено где-то, дайте пожалст ссылку.
да нет всё достаточно просто (но работоспособность проверялось только на вкладках пользователей)
итак — для смелых )
открываем /core/classes/user.class.php находим строку (~1396)
заменяем функцию целиком:
public static function getProfileURL($user_login) {
открываем файл /components/users/frontend.php находим (~649)
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; }
заменяем этот блок на:
/////////////////////////////// VIEW PROFILE ///////////////////////////////////////////////////////////////////////////////////////// if ($do=='profile'){ $inCore->loadLib('clubs'); if (!$id){ $login = $inCore->request('login', 'str', ''); $id = $inDB->get_field('cms_users', "id='{$id}' ORDER BY is_deleted ASC", 'id'); }
открываем файл /components/users/router.php находим в самом конце:
/////////////////////////////// VIEW PROFILE ///////////////////////////////////////////////////////////////////////////////////////// if ($do=='profile'){ $inCore->loadLib('clubs'); if (!$id){ $id = $inCore->request('id', 'int', ''); }
// закомментируем этот блок и после него (или удаляем и вместо него)
//RewriteRule ^users/([a-zA-z0-9\.]*)$ /index.php?view=users&do=profile&login=$1 '_uri' => '/^users\/([a-zA-z0-9\.]+)$/i', 'do' => 'profile', 1 => 'login' );
наверное всё, если будет где-то не работать напишите тут что-нить подправим)
//RewriteRule ^users/id([0-9]+)$ /index.php?view=users&do=profile&id=$1 '_uri' => '/^users\/id([0-9]+)$/i', 'do' => 'profile', 1 => 'id' );
кстати данный хак позволит более точно отбирать условия для плагина user_tip… )
Все изменения в файлах относились к версии 1.7, вполне возможно что с более поздними версиями могут быть расхождения…
что именно находится у вас в 508 строке, код приведите из данного файла (508 строку)…После изменения кода на тот что предложил ты при переходе на страницу пользователя пишет какую-то синтаксическую ошибку в файле router в 508 строке
что именно находится у вас в 508 строке, код приведите из данного файла (508 строку)…После изменения кода на тот что предложил ты при переходе на страницу пользователя пишет какую-то синтаксическую ошибку в файле router в 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'
);
вот код начиная с 500 строки и до конца файла:
//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 '_uri' => '/^users\/id([0-9]+)$/i', 'do' => 'profile', 1 => 'id' ); return $routes; } ?>
- Предыдущая
- 1
- 2
- 3
- Следующая
- Показаны 16-30 из 31