Seite 2 von 3

Verfasst: 20.11.2006 16:40
von Miriam
Hast Du die geänderten Dateien schon oben? Also zum Anschauen des Codes?

Verfasst: 20.11.2006 18:31
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

Verfasst: 20.11.2006 19:11
von Miriam
Aaah!

jetzt habe ich es gesehen... Und die Lösung findest Du (in abgewandelter Form) hier -->

Verfasst: 20.11.2006 19:22
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

Verfasst: 20.11.2006 20:57
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. :)

Verfasst: 21.11.2006 10:15
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

Verfasst: 21.11.2006 18:00
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:

Verfasst: 21.11.2006 18:46
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

Verfasst: 21.11.2006 19:21
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

Verfasst: 21.11.2006 20:01
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