je moet inderdaad met mod_rewrite gaan werken, maar als je de gebruikersnaam gaat gebruiken als map, klopt de link naar bijvoorbeeld de index pagina niet meer.
je moet een subdomein ofzo moeten aanmaken als je .nl/gebruiker wilt gebruiken, of je moet het forum niet in een map hebben staan en je gebruikt voor de rest geen enkele map op je domein (ook geen plaatjes map!), dan hoef je een hele hoop monder te doen. maar daar gaan we niet van uit dus volg dit.
misschien kan ik het ooit aan de kennisbank toevoegen, dan kan ik wel 2 manieren beschrijven.
in htaccess
RewriteEngine On
RewriteRule ^user/(.*) eventuele_forum_map/profile.php?mode=viewprofile&un=$1
als je forum in een map staat moet je het rode naar de mapnaam wijzigen, anders moet je het rode en de / die erachter staat weghalen.
nu het probleem wat ik net zei nog wegwerken, dat gaat door dit te doen:
kopieer je overall_header.tpl en noem deze view_profile_header.tpl. open het bestand en verander alle links.
als je forum in een map staat, zet dan voor alle links ../MAP_NAAM/. ook als er {U_INDEX} of iets dergelijks staat, overal waar een variabele, dus zonder http://, link wordt gegeven moet je het voor zetten.
als je forum niet in een map staat maar net zoals hier, moet je er alleen ../ voor zetten.
sla het bestand op in de templates/{jouw_template}/ map.
open viewprofile_body.tpl, kopieer het, noem het viewprofile_uname_body.tpl en doe daar hetzelfde.
open nu het bestand includes/page_header.php en zoek deze regel:
Code: Selecteer alles
'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
vervang deze met
Code: Selecteer alles
'overall_header' => ( empty($gen_simple_header) ) ? ( empty($view_profile_header) ? 'overall_header.tpl' : 'view_profile_header.tpl') : 'simple_header.tpl')
open dan includes/usercp_viewprofile.php
zoek
Code: Selecteer alles
if ( empty($HTTP_GET_VARS[POST_USERS_URL]) || $HTTP_GET_VARS[POST_USERS_URL] == ANONYMOUS )
{
message_die(GENERAL_MESSAGE, $lang['No_user_id_specified']);
}
$profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]);
en vervang dat met
Code: Selecteer alles
if ( empty($HTTP_GET_VARS[POST_USERS_URL]) || $HTTP_GET_VARS[POST_USERS_URL] == ANONYMOUS )
{
if ( !empty($HTTP_GET_VARS['un']) )
{
$uname = htmlspecialchars($HTTP_GET_VARS['un']);
$sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE username = " . $uname . ""
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get user_id', '', __LINE__, __FILE__, $sql);
}
$uid = $db->sql_fetchrow($result)
$profiledata = get_userdata($uid);
$view_profile_header = TRUE;
$template->set_filenames(array(
'body' => 'profile_uname_view_body.tpl')
);
}
else
{
message_die(GENERAL_MESSAGE, $lang['No_user_id_specified']);
}
}
else
{
$profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]);
$template->set_filenames(array(
'body' => 'profile_view_body.tpl')
);
}
haal daarna dit weg:
Code: Selecteer alles
$template->set_filenames(array(
'body' => 'profile_view_body.tpl')
);
nu ben je al een heel eind onderweg, maar voor de mensen die een raar teken in de naam hebben krijgen deze niet in de link naar hun profiel.
open includes/page_header.php nog een keer en ga op zoek naar
zet daarachter
nu nog het bestand overall_header.tpl
zoek
plaats erachter
Code: Selecteer alles
<tr>
<td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu"> De naam waarmee je je profiel kunt bereiken is: <b>user/{L_UNAME}</b> </span></td>
</tr>
nu is alles gereed en moet het werken

voorbeeld =
http://www.esaclan.com/user/Luuk
alleen de plaatjes van email enzo werken niet helemaal, maar dat valt ook nog op te lossen