Pagina 1 van 3

Profielopties weghalen

Geplaatst: 28 mar 2004, 17:55
door Headstrong
Ik wil wat opties in het profiel weghalen zoals tijdszone en forum taal.
Wat moet ik precies weghalen (en waar)?

Geplaatst: 28 mar 2004, 18:38
door mosymuis
Je kunt ze wegsnijden in templates/subSilver/profile_add_body.tpl, waar je elke optie vervang voor:
<input type="hidden" name="{NAAM}" value="{WAARDE}"/>

Geplaatst: 28 mar 2004, 18:44
door Headstrong
Bijv. dit:

Code: Selecteer alles

<input type="text" class="post"style="width: 150px"  name="aim" size="20" maxlength="255" value="{AIM}"/>
Moet dit worden:

Code: Selecteer alles

<input type="hidden" name="{L_AIM}" value="{AIM}"/>
Of moet er nog iets bij van td class, span class...

Geplaatst: 28 mar 2004, 18:47
door mosymuis
Nee;

Code: Selecteer alles

	<tr> 
	  <td class="row1"><span class="gen">{L_AIM}:</span></td>
	  <td class="row2"> 
		<input type="text" class="post"style="width: 150px"  name="aim" size="20" maxlength="255" value="{AIM}" />
	  </td>
	</tr>
dit moet

Code: Selecteer alles

<input type="hidden" name="aim" value="{AIM}"/>
dit worden. ;)

Geplaatst: 28 mar 2004, 18:49
door Headstrong
Oke bedankt! :D

Ik had mijn bericht trouwens ge-edit, eerst stond dat er ook, behalve de <tr> en </tr> tags, maar ik dacht dat het toch zoiets moest worden dat er nu dus staat. Maar nu weet ik iig hoe ik het moet doen.

Geplaatst: 28 mar 2004, 18:52
door Erulezz
Kan ik dit zo ook doen voor de verborgen optie?

Er zijn 2 members online :: 2 Geregisteerd, 0 Verborgen en 0 Gasten

Geplaatst: 28 mar 2004, 18:56
door mosymuis
Je kunt die optie wegsnijden uit de profielen ja, en bijvoorbeeld vervangen voor

Code: Selecteer alles

<input type="hidden" name="hideonline" value="0"/>
als je wilt dat alle leden altijd zichtbaar zijn. Een SQL query maakt het dan af:

Code: Selecteer alles

UPDATE phpbb_users
SET user_allow_viewonline = 1;

Geplaatst: 28 mar 2004, 18:58
door Erulezz
mosymuis schreef:Je kunt die optie wegsnijden uit de profielen ja, en bijvoorbeeld vervangen voor

Code: Selecteer alles

<input type="hidden" name="hideonline" value="0"/>
als je wilt dat alle leden altijd zichtbaar zijn. Een SQL query maakt het dan af:

Code: Selecteer alles

UPDATE phpbb_users
SET user_allow_viewonline = 1;
Ok , dan ga ik dat ff wijzigen , die optie komt er dan ook niet meer te staan als mensen registreren?? ( denk van niet :P )

Geplaatst: 28 mar 2004, 18:59
door mosymuis
Erulezz schreef:Die optie komt er dan ook niet meer te staan als mensen registreren?? ( denk van niet :P )
Nope...

Geplaatst: 28 mar 2004, 19:01
door Erulezz
De laatste vraag 8)

dit stukje :

Code: Selecteer alles

	</tr>
	<tr> 
	  <td class="row1"><span class="gen">{L_PUBLIC_VIEW_EMAIL}:</span></td>
	  <td class="row2"> 
		<input type="radio" name="viewemail" value="1" {VIEW_EMAIL_YES} />
		<span class="gen">{L_YES}</span>&nbsp;&nbsp; 
		<input type="radio" name="viewemail" value="0" {VIEW_EMAIL_NO} />
		<span class="gen">{L_NO}</span></td>
	</tr>
	<tr> 
	  <td class="row1"><span class="gen">{L_HIDE_USER}:</span></td>
	  <td class="row2"> 
		<input type="radio" name="hideonline" value="1" {HIDE_USER_YES} />
		<span class="gen">{L_YES}</span>&nbsp;&nbsp; 
		<input type="radio" name="hideonline" value="0" {HIDE_USER_NO} />
		<span class="gen">{L_NO}</span></td>
Daar staat het in. Maar vanaf welk stuk moet ik dat veranderen? :wink:

Geplaatst: 28 mar 2004, 19:02
door mosymuis
Dit is de "Onzichtbaar in 'Online gebruikers' lijst" optie:

Code: Selecteer alles

	<tr> 
	  <td class="row1"><span class="gen">{L_HIDE_USER}:</span></td>
	  <td class="row2"> 
		<input type="radio" name="hideonline" value="1" {HIDE_USER_YES} />
		<span class="gen">{L_YES}</span>&nbsp;&nbsp; 
		<input type="radio" name="hideonline" value="0" {HIDE_USER_NO} />
		<span class="gen">{L_NO}</span></td>
	</tr>

Geplaatst: 28 mar 2004, 19:09
door Erulezz
Heb alles veranderd , maar wat doet die SQL query?

En die tekst staat er nog , die verwijder ik dan ook nog wel ff :)

Geplaatst: 28 mar 2004, 19:12
door mosymuis
Erulezz schreef:maar wat doet die SQL query? :P
Die verandert voor iedereen de instelling zodat ze zichtbaar zijn.

Geplaatst: 28 mar 2004, 20:03
door LazyTiger
mosymuis schreef:Nee;

Code: Selecteer alles

	<tr> 
	  <td class="row1"><span class="gen">{L_AIM}:</span></td>
	  <td class="row2"> 
		<input type="text" class="post"style="width: 150px"  name="aim" size="20" maxlength="255" value="{AIM}" />
	  </td>
	</tr>
dit moet

Code: Selecteer alles

<input type="hidden" name="aim" value="{AIM}"/>
dit worden. ;)
ik heb dat eerst stuk code gewoon helemaal weggehaald. dat kan ook of niet?

Geplaatst: 28 mar 2004, 20:14
door mosymuis
Dat kan, maar het is netter om er een hidden input voor terug te plaatsen. Nu krijgt PHP geen waarde aangereikt en plaatst hij dus user_aim= '' in de database query. Het zou beter zijn wanneer dat user_aim= '0' zou zijn, omdat je deze waarde dan later ook terug zou kunnen veranderen.

Als je hem waarde 1 mee wilt geven is het zelfs verplicht, omdat deze anders zou veranderen naar 0, elke keer dat iemand zijn profiel zou updaten.

Geplaatst: 28 mar 2004, 21:09
door LazyTiger
hm.. okee..

Geplaatst: 29 mar 2004, 10:43
door -=|Rik|=-
mosymuis schreef:Dat kan, maar het is netter om er een hidden input voor terug te plaatsen. Nu krijgt PHP geen waarde aangereikt en plaatst hij dus user_aim= '' in de database query. Het zou beter zijn wanneer dat user_aim= '0' zou zijn, omdat je deze waarde dan later ook terug zou kunnen veranderen.

Als je hem waarde 1 mee wilt geven is het zelfs verplicht, omdat deze anders zou veranderen naar 0, elke keer dat iemand zijn profiel zou updaten.
Volgens mij houdt ie de waarde die standaard in de database zit moos, dus eigenlijk kan je in dit geval alles gewoon verwijderen.

Geplaatst: 29 mar 2004, 10:58
door mosymuis
-=|Rik|=- schreef:Volgens mij houdt ie de waarde die standaard in de database zit moos, dus eigenlijk kan je in dit geval alles gewoon verwijderen.
Nee, bij elke UPDATE voert hij alle waardes opnieuw in. Bij bijvoorbeeld pagina's in het adminpanel is dat inderdaad niet zo.

Geplaatst: 29 mar 2004, 11:01
door -=|Rik|=-
mosymuis schreef:
-=|Rik|=- schreef:Volgens mij houdt ie de waarde die standaard in de database zit moos, dus eigenlijk kan je in dit geval alles gewoon verwijderen.
Nee, bij elke UPDATE voert hij alle waardes opnieuw in. Bij bijvoorbeeld pagina's in het adminpanel is dat inderdaad niet zo.
Ja, maar wat doet hij voor die update? Juist hij haalt alle waardes uit de database, dus tenzij je iets in een veld veranderd, veranderd er niks.

Geplaatst: 29 mar 2004, 11:50
door mosymuis
Eigenwijs, huh? ;)

De UPDATE query uit includes/usercp_register.php:
$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . "
WHERE user_id = $user_id";
Dus het gaat om de var $aim. Deze wordt door deze stappen heen geleid... (van onder naar boven)

Code: Selecteer alles

$aim = stripslashes($aim);
(tekentjes verwijderd)

Code: Selecteer alles

validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature);
includes/functions_validate.php; lengte gecheckt en teruggegeven.

Code: Selecteer alles

$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests');
Wordt gestript (lege tekens aan de einden weggehaald) en de HTML tekens worden weggefiltert.

Code: Selecteer alles

	while( list($var, $param) = @each($strip_var_list) )
	{
		if ( !empty($HTTP_POST_VARS[$param]) )
		{
			$$var = trim(htmlspecialchars($HTTP_POST_VARS[$param]));
		}
	}
Hier wordt hij als $HTTP_POST_VARS[] opgehaald en in $aim gestopt, maw, het verzonden formulier wordt aangenomen. Als er geen AIM veld bestaat is $aim dus ook leeg, want daarvoor bestaat hij nog niet. Er wordt er in de query dus ook het volgende ingevoerd:

Code: Selecteer alles

user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', '')) . "'
...niets dus, en niet de waarde uit de database.