Помогите изменить ссылки на профили пользователей

Автор vova1609, 15 декабря 2012, 20:42:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vova1609

Вообщем надо чтобы ссылки на профили пользователей выглядели так: ./u[номер_профиля], а сейчас они выглядят очень длинными, вот так: ./index.php?action=profile;u=[номер_профиля] Нашел кусок кода в моде Pretty Urls, что там нужно менять?
// Filter profiles
function pretty_profiles_filter($urls)
{
global $boardurl, $scripturl, $smcFunc;

$pattern = '`' . $scripturl . '(.*)action=profile;u=([0-9]+)(.*)`S';
$query_data = array();
foreach ($urls as $url_id => $url)
{
// Get the profile data ready to query the database with
if (!isset($url['replacement']))
if (preg_match($pattern, $url['url'], $matches))
{
$urls[$url_id]['profile_id'] = (int) $matches[2];
$urls[$url_id]['match1'] = $matches[1];
$urls[$url_id]['match3'] = $matches[3];
$query_data[] = $urls[$url_id]['profile_id'];
}
}

// Query the database with these profile IDs
if (count($query_data) != 0)
{
$query = $smcFunc['db_query']('', '
SELECT id_member, member_name
FROM {db_prefix}members
WHERE id_member IN ({array_int:member_ids})',
array('member_ids' => $query_data));

$memberNames = array();
while ($row = $smcFunc['db_fetch_assoc']($query))
$memberNames[$row['id_member']] = rawurlencode($row['member_name']);
$smcFunc['db_free_result']($query);

// Build the replacement URLs
foreach ($urls as $url_id => $url)
if (isset($url['profile_id']))
if (strpos($memberNames[$url['profile_id']], '%2F') !== false)
$urls[$url_id]['replacement'] = $boardurl . '/profile/' . $url['match1'] . 'user=' . $memberNames[$url['profile_id']] . $url['match3'];
else
$urls[$url_id]['replacement'] = $boardurl . '/profile/' . $memberNames[$url['profile_id']] . '/' . $url['match1'] . $url['match3'];
}
return $urls;
}

?>


Того кто поможет, отблагодарю материально, только еще на пару мелких вопросиков ответите.

vova1609

Написал на этом и другом форуме, кто первым ответит, тому и будет вознаграждение.

digger®

Цитата: vova1609 от 15 декабря 2012, 20:42:10Вообщем надо чтобы ссылки на профили пользователей выглядели так: ./u[номер_профиля], а сейчас они выглядят очень длинными, вот так: ./index.php?action=profile;u=[номер_профиля] Нашел кусок кода в моде Pretty Urls, что там нужно менять?
Поставить в настройках Pretty Urls галку Фильтры для перезаписи URL - Области (actions)

ЦитироватьНаписал на этом и другом форуме, кто первым ответит, тому и будет вознаграждение.
Что за загадочный "другой" форум?

vova1609

Цитата: digger от 15 декабря 2012, 23:15:06Поставить в настройках Pretty Urls галку Фильтры для перезаписи URL - Области (actions)

Вот именно что мне не надо это, если я поставлю ссылки будут такие profile/имяпользователя, а мне надо такие u[id пользователя]


maestrosite.ru

замените строку $urls[$url_id]['replacement'] = $boardurl . '/profile/' . $memberNames[$url['profile_id']] . '/' . $url['match1'] . $url['match3'];
на
$urls[$url_id]['replacement'] = $boardurl . '/u' . $url['profile_id'] . '/' . $url['match1'] . $url['match3'];


А также добавьте в .htaccess правило RewriteRule ^u([0-9]+)/?$ ./index.php?pretty;action=profile;u=$1 [L,QSA]
после метки # PRETTYURLS MOD ENDS
Иначе первое же сохранение настроек ЧПУ удалит это правило

upd фильтр "Profiles" в настройках ЧПУ должен быть включен


Цитата: digger от 15 декабря 2012, 23:15:06
Что за загадочный "другой" форум?
http://forum.searchengines.ru/showthread.php?p=11212761
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru