[erledigt] Problem mit BEGIN switch_user_logged_in

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Hast Du die geänderten Dateien schon oben? Also zum Anschauen des Codes?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

ja. bilder.php

edit:
so nun habe ich nochmal online einwenig weitergebastelt. siehe Bild1 ist ausgeloggt. Bild2 ist eingeloggt.

hier der Code den ich im Template eingebaut habe:

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
<table width="458" border="1" cellspacing="0" cellpadding="0">
<tr>
<td height="15" class="text">hallo</td>
</tr>
</table>
<!-- END switch_user_logged_in -->

<!-- BEGIN switch_user_logged_out -->
<table width="458" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="15" class="text">halloooooo</td>
</tr>
</table>
<!-- END switch_user_logged_out -->
Und warum klappt das mit den Smilies nicht???


SKYSURFER
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Aaah!

jetzt habe ich es gesehen... Und die Lösung findest Du (in abgewandelter Form) hier -->
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

also heist das für mich, dass ich bis dahin wo die Smilies eingefügt werden ein <!-- BEGIN switch_user_logged_in -->
Smilies
<!-- END switch_user_logged_in -->

Aber das macht doch dann keinen Sinn. Dann werden die Smilies immer angezeigt, was ich ebenfalls nicht möchte. Die ganze "box" soll nur angezeigt werden, wenn der User eingeloggt ist.


SKYSURFER
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Dann brauchst Du auch den Smilie-Switch nicht... Oder?
Wie Du switches ineinander verschachteln kannst ist hier im Board beschrieben.... Musst' mal suchen. :)
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

Miriam hat geschrieben:Dann brauchst Du auch den Smilie-Switch nicht... Oder?
stimmt. darum habe ich das Ganze nun mal etwas geändert. Doch leider funktioniert das immer noch nicht.

In der bilder.php habe ich folgendes geändert:

Code: Alles auswählen

		$template->assign_block_vars('switch_user_true', array());
		//funktion für die Smilies	
		generate_smilies('inline', BILDERSCRIPT);
		//ende 	funktion für die Smilies	
        
		$template->assign_vars(array(
			));
meine smiliefunktion schaut nun so aus:

Code: Alles auswählen

...
if ($num_smilies)
		{
			$smilies_count = ($mode == 'inline') ? min(19, $num_smilies) : $num_smilies;
			$smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1;

			$s_colspan = 0;
			$row = 0;
			$col = 0;

			while (list($smile_url, $data) = @each($rowset))
			{
				if (!$col)
				{
					$template->assign_block_vars('smilies_row', array());
				}

				$s_colspan = max($s_colspan, $col + 1);
				
				$template->assign_block_vars('switch_user_true.smilies_row.smilies_col', array(
					'SMILEY_CODE' => $data['code'],
					'SMILEY_IMG' => $board_config['smilies_path'] . '/' . $smile_url,
					'SMILEY_DESC' => $data['emoticon'],

					));

				if ($col == $smilies_split_row)
				{
					if ($mode == 'inline' && $row == $inline_rows - 1)
					{
						break;
					}
					$col = 0;
					$row++;
				}
				else
				{
					$col++;
				}
				$template->assign_vars(array(
				'L_EMOTICONS' => $lang['Emoticons'], 
				'L_CLOSE_WINDOW' => $lang['Close_window'], 
				'S_SMILIES_COLSPAN' => $s_colspan,
				'L_MORE_SMILIES' => $lang['More_emoticons'], 
				'U_MORE_SMILIES' => append_sid("posting.$phpEx?mode=smilies"),
				));
			}
		}
...
Im Template habe ich das so geändert:

Code: Alles auswählen

<!-- BEGIN switch_user_true -->
<form action="{S_POST_ACTION}" method="POST" name="post" onsubmit="return checkForm(this)">
<table width="458" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3"><img src="images/balken_v2_1_01.jpg" width="83" height="22" alt=""></td>
<td colspan="3" class="headline" style="background-image: url(images/balken_v2_1_02.jpg)">{L_KOMMENT_ABGEBEN}</td>
</tr>
<tr>
<td colspan="3"><img src="images/balken_v2_1_03.jpg" width="83" height="7" alt=""></td>
<td colspan="3"><img src="images/balken_v2_1_04.jpg" width="375" height="7" alt=""></td>
</tr>
<tr>
<td colspan="3" style="background-image: url(images/balken_v2_1_08.jpg); background-repeat:repeat-y;" class="text_l_f" height="23" ><img src="images/balken_v2_1_05.jpg" alt="" width="83" height="23" border="0"><br /><div style="background-image: url(images/balken_v2_1_08.jpg); background-repeat:repeat-y;" class="text_fett_c_f">

	<table width="83" border="0" cellspacing="0" cellpadding="5">
	<tr align="center"> 
	<td colspan="{S_SMILIES_COLSPAN}" class="gensmall"><b>{L_EMOTICONS}</b></td>
	</tr>
	<!-- BEGIN smilies_row -->
	<tr align="center" valign="middle"> 
	<!-- BEGIN smilies_col -->
	<td><a href="javascript:emoticon('{switch_user_true.smilies_row.smilies_col.SMILEY_CODE}')"><img src="{switch_user_true.smilies_row.smilies_col.SMILEY_IMG}" border="0" alt="{switch_user_true.smilies_row.smilies_col.SMILEY_DESC}" title="{switch_user_true.smilies_row.smilies_col.SMILEY_DESC}" /></a></td>
	<!-- END smilies_col -->
	</tr>
	<!-- END smilies_row -->
	<tr align="center"> 
	<td colspan="{S_SMILIES_COLSPAN}"><a href="{U_MORE_SMILIES}" onclick="window.open('{U_MORE_SMILIES}', '_phpbbsmilies', 'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=250');return false;" target="_phpbbsmilies" class="nav">{L_MORE_SMILIES}</a></td>
	</tr>
	</table>
...
<!-- END switch_user_true -->
Wo ist denn da der Fehler? Ich stehe gerade voll auf dem Schlauch.

SKYSURFER
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Ja, Du hast die Template Variablen in der php Datei nicht verschachtelt.

Lies mal bitte diesen Artikel durch und schaue Dir vor allem die Dateien des Links (ganz unten im Artikel) an.
Das wird Dir sicher Klarheit bringen. :lol:
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

Hallo,

also jetzt peil ich gar nichts mehr. :( Wie soll das gehen??!
Ich habe mal die aktuellen Dateien hochgeladen.
bilder2.php
bilder_pic2.tpl

Vieleicht möchte sich ja jmd. daran probieren.


SKYSURFER
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

endlich hat es klick gemacht. Und es funktioniert sogar. Ich bin so froh. Und danke dass ihr ( eigentlich nur du Miriam ) so lange mit mir ausgehalten habt.

Lösung ist folgende:
bilder.php

Code: Alles auswählen

if($userdata['session_logged_in']) 
	{
    	$template->assign_block_vars('test', array(
    	'bla' => $bla,
    	));
	generate_smilies('inline', BILDERSCRIPT);
	}
funktion:

Code: Alles auswählen

if (!$col)
				{
					$template->assign_block_vars('test.smilies_row', array());
				}

				$template->assign_block_vars('test.smilies_row.smilies_col', array(
					'SMILEY_CODE' => $data['code'],
					'SMILEY_IMG' => $board_config['smilies_path'] . '/' . $smile_url,
					'SMILEY_DESC' => $data['emoticon'])
				);
template:

Code: Alles auswählen

<!-- BEGIN test -->
...
<table width="83" border="0" cellspacing="0" cellpadding="5">
	<tr align="center"> 
	<td colspan="{S_SMILIES_COLSPAN}" class="gensmall"><b>{L_EMOTICONS}</b></td>
	</tr>
	<!-- BEGIN smilies_row -->
	<tr align="center" valign="middle"> 
	<!-- BEGIN smilies_col -->
	<td><a href="javascript:emoticon('{test.smilies_row.smilies_col.SMILEY_CODE}')"><img src="{test.smilies_row.smilies_col.SMILEY_IMG}" border="0" alt="{test.SMILEY_DESC}" title="{test.smilies_row.smilies_col.SMILEY_DESC}" /></a></td>
	<!-- END smilies_col -->
	</tr>
	<!-- END smilies_row -->
	<tr align="center"> 
	<td colspan="{S_SMILIES_COLSPAN}"><a href="{U_MORE_SMILIES}" onclick="window.open('{U_MORE_SMILIES}', '_phpbbsmilies', 'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=250');return false;" target="_phpbbsmilies" class="nav">{L_MORE_SMILIES}</a></td>
	</tr>
	</table>
...
<!-- END test -->
Aber jetzt kann ich zu den nächsten Baustellen kommen. Und davon gibt es noch einige. Ich werde euch also noch ein wenig erhalten bleiben.


SKYSURFER
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Genau das ist verschachteln... Super.

Und ich wollte gerade meckern, dass Du in deiner geposteten bilder.php garkeine Einschaltbedingung für das switch_user_true eingebaut hast.

Schreibe also oben (im ersten Posting) ein [erledigt] in die Überschrift und schon kann es weiter gehen... mit dem nächsten Problem. :D
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „Coding & Technik“