Сообщений: 1004 | | #31 - 26 мая 2011 в 22:30 | |
первая замена будет тогда такой например: Код 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 | | #32 - 6 ноября 2011 в 16:59 | |
Быстрый поиск на мой вопрос ответа не выдал... эта тема из той-же серии... Как безболезненно для цмс убрать /users/ ??? чтоб получилось имя_сайта.ру/имя_пользователя Если это уже решено где-то, дайте пожалст ссылку. |
Сообщений: 10 | | #33 - 22 ноября 2011 в 12:15 | |
После изменения кода на тот что предложил ты при переходе на страницу пользователя пишет какую-то синтаксическую ошибку в файле 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 | | #34 - 22 ноября 2011 в 14:04 | |
Все изменения в файлах относились к версии 1.7, вполне возможно что с более поздними версиями могут быть расхождения… Делай добро и бросай его в воду, пусть плывет дальше...) |
Сообщений: 10 | | #35 - 22 ноября 2011 в 20:35 | |
А для версии 1.8 можешь написать код? Очень нужно | • Mike •: | Все изменения в файлах относились к версии 1.7, вполне возможно что с более поздними версиями могут быть расхождения… |
|
Сообщений: 1004 | | #36 - 22 ноября 2011 в 23:17 | |
| Alex broun: | | После изменения кода на тот что предложил ты при переходе на страницу пользователя пишет какую-то синтаксическую ошибку в файле router в 508 строке |
что именно находится у вас в 508 строке, код приведите из данного файла (508 строку)… Делай добро и бросай его в воду, пусть плывет дальше...) |
Сообщений: 10 | | #37 - 23 ноября 2011 в 00:00 | |
| • 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 | | #38 - 23 ноября 2011 в 00:05 | |
кроме вставки нужно еще закомментировать, вот код начиная с 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 | | #39 - 23 ноября 2011 в 07:07 | |
| • 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;
}
?>
| Спасибо. Все работает |