Seite 1 von 1

Profilfeld als Switch benutzen?

Verfasst: 04.01.2008 17:31
von AttilaG
Hallo

Ich habe auf der Indexseite die Ajax Shoutbox eingebaut. Nun gibt es Leute, die eine Shoutbox cool finden und andere die sich nur nerven. Ich möchte darum jedem Benutzer die Möglichkeit geben, die Shoutbox über ein Feld im persönlichen Profil ein- und auszublenden (Switch).

Das entsprechende boolsche Feld habe ich im Profil bereits eingebaut. Leider bringe ich es aber nicht fertig den Wert so auszulesen, dass ich ihn im index_body.html verwenden kann. Wie komme ich an den Feldinhalt um eine IF-Abfrage machen zu können und mit "<!-- IF xxxx = 1-->" den Shoutbox-Include zu switchen???

Danke
-- Attila

Lösung

Verfasst: 22.01.2008 14:06
von AttilaG
Ok, ich habe nach vielen Stunden es nun doch noch geschafft. Allerdings musste ich einen kleinen Umweg einlegen, in dem ich eine direkte SQL Abfrage eingebaut habe.

Die Lösung sieht so aus:

Auf der index.php Seite mache ich folgende SQL Abfrage:

Code: Alles auswählen

// Shoutbox ein/aus abfragen 
$shoutbox_status = ''; 
$sql = "SELECT pf_shoutbox FROM phpbb_profile_fields_data WHERE user_id = " . $user->data['user_id']; 
$result = $db->sql_query($sql); 
while ($row = $db->sql_fetchrow($result)) 
   { 
      $shoutbox_status = $row['pf_shoutbox']; 
   } 
$db->sql_freeresult($result); 
"pf_shoutbox" ist bei mir der Name des Custom Profile Feldes.
In der Variabel $shoutbox_status steht bei mir der Wert 1 (oder leer) oder 2.

Danach übergebe ich die Variabel $shoutbox_status:

Code: Alles auswählen

$template->assign_vars(array(
	'SHOUTBOX_STATUS'	=> $shoutbox_status,
...
Welche ich dann auf der Seite index_body.html als Switch benutze mit:

Code: Alles auswählen

<!-- IF SHOUTBOX_STATUS != 2 -->
	<!-- INCLUDE shout_body.html -->
<!-- ENDIF -->
"2" bedeutet Shoutbox ausblenden. Wenn der Wert 1 oder leer ist, wird die Shoutbox angezeigt.

Ich hoffe, dass diese Lösung anderen auch behilflich ist bei ähnlichen Problemen.

-- Attila