Seite 1 von 5

Switch's "verschachteln"?

Verfasst: 15.08.2004 20:15
von knalltrauma
Moin phpBB-Freunde

Nun, eine kleine Frage...weiss jemand, warum ich Switch's (so heissen die doch) nicht verschachteln kann?

Also z.B. so:

<!-- BEGIN switch_user_logged_out -->


<!-- BEGIN switch_show_nickpage -->

<!-- END switch_show_nickpage -->


<!-- END switch_user_logged_out -->

:cry:

Verfasst: 15.08.2004 20:42
von Dennis63
Du kannst die dinger nur so verschachteln, wie sie auch in der dazu gehörigen PHP-Datei verschachtelt sind.
Alternativ könntest Du Dir ja ein

switch_user_logged_out_AND_show_nickpage

bauen...

Grüße
Dennis

Verfasst: 15.08.2004 21:30
von knalltrauma
Okey :-) Ich werd das mal probieren...vielen lieben Dank :wink:

Verfasst: 15.08.2004 23:30
von PhilippK
Eigentlich kannst du Swiches schon verschachteln - geht eigentlich z.B. in der index_body.tpl einwandfrei...
Du mußt nur evtl. mit

Code: Alles auswählen

$template->assign_block_vars('switch_user_logged_out.switch_show_nickpage'
arbeiten.

Gruß, Philipp

ich glaub mein prob. hat auch damit zu tun...

Verfasst: 16.08.2004 18:09
von bedee
hi, ich glaub in dieser ecke bin ich richtig.

was ich möchte:
- ich habe ein phpbb, und möchte manche dinge nur für den moderator sichtbar machen, z.b. das "wer ist online -kastl"

dazu habe ich:
in der page_header.php einen neuen switch "gebaut"

Code: Alles auswählen

if ( $userdata['user_level'] == MOD ) 
		{ 
			$template->assign_block_vars('switch_moderator_logged_in', array()); 
		} 
dann habe ich in der index_body.tpl diesen switch einfach um den code-block der "wer ist online- box" gesetzt:

Code: Alles auswählen

<!-- BEGIN switch_moderator_logged_in -->

<table width="100%" cellspacing="0" border="0" align="center" cellpadding="2">
  <tr>
	<td align="left">&nbsp;</td>
	<td align="right">&nbsp;</td>
  </tr>
</table>

<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
.....
......
</tr>
</table>
<!-- END switch_moderator_logged_in -->
ergebniss - wunderbar

nun möchte ich auch die spalten Antworten, aufrufe, letzter beitrag... für "normale user" verschwinden lassen, und dachte mir, einfach den switch drum herum, aber, denkste, ist nicht...

Code: Alles auswählen

<!-- BEGIN switch_moderator_logged_in -->
	<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.TOPICS}</span></td>
	<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.POSTS}</span></td>
	<td class="row2" align="center" valign="middle" height="50" nowrap="nowrap"> <span class="gensmall">{catrow.forumrow.LAST_POST}</span></td>

<!-- END switch_moderator_logged_in -->
[/code]

das ergebniss, ein user sieht die tabellen nicht mehr, wunderbar, aber der mod sieht nun auch nichts mehr, da irgendwie die variable - inhalte verlohren gehen ?!

mein php - ist nun nicht das beste, aber ich habe durch eifriges stöbern im forum den verdacht es hat entweder mit dem "global setzen einer variable", oder auch mit der verschachtelung der switches zu tun, den diese tabelle sind ja umrandet von:

Code: Alles auswählen

 <!-- BEGIN catrow -->
  <!-- BEGIN forumrow -->
...
...
  <!-- END forumrow -->
  <!-- END catrow -->
ich freu mich auf antwort, sitz schon irgendwie auf nadeln, denn bisher alles wunderbar, dann plötzlich *tilt*

greets
bedee

Verfasst: 16.08.2004 19:02
von PhilippK
Du wirst das wohl im Block, wo die Forenzeile ausgegeben wird, angehen müssen.
Versuch mal:

Code: Alles auswählen

$template->assign_block_vars('catrow.forumrow.switch_moderator_logged_in'
Gruß, Philipp

meinst du so?

Verfasst: 16.08.2004 19:24
von bedee
in der page_header.php

Code: Alles auswählen

// moderator switch 

	if ( $userdata['user_level'] == MOD )
		{
			$template->assign_block_vars('switch_moderator_logged_in', array());
		}

	if ( $userdata['user_level'] == MOD )
		{
	    	$template->assign_block_vars('catrow.forumrow.switch_moderator_logged_in', array());
	  	}
// 
in der index_body.tpl:

Code: Alles auswählen

<!-- BEGIN catrow.forumrow.switch_moderator_logged_in -->

	<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.TOPICS}</span></td>
	<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.POSTS}</span></td>
	<td class="row2" align="center" valign="middle" height="50" nowrap="nowrap"> <span class="gensmall">{catrow.forumrow.LAST_POST}</span></td>

<!-- END catrow.forumrow.switch_moderator_logged_in -->
dann gibts ein sowas:

Code: Alles auswählen

Parse error: parse error, unexpected '=' in ../includes/template.php(127) : eval()'d code on line 51
danke, aber könntest du deine antwort ins NEWBIE übersetzen?

beede :oops:

Verfasst: 16.08.2004 20:05
von Leuchte
index.php
Suchen

Code: Alles auswählen

               }
				}
			}
		}
	 }// for ... categories

}// if ... total_categories
Davor einfügen

Code: Alles auswählen

if ( $userdata['user_level'] == MOD )
{
  $template->assign_block_vars('catrow.forumrow.switch_mod',	array());
}
In der index_body.tpl:

Code: Alles auswählen

<!-- BEGIN switch_mod -->
	<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.TOPICS}</span></td>
	<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.POSTS}</span></td>
	<td class="row2" align="center" valign="middle" height="50" nowrap="nowrap"> <span class="gensmall">{catrow.forumrow.LAST_POST}</span></td>
<!-- END switch_mod -->

funzt

Verfasst: 16.08.2004 20:32
von bedee
besten dank leuchte, funtzt herrlich

noch ein nachschlag fürs verständniss, aber nur falls mehr wem faaaad sein sollte, will ja nicht unverschämt sein:
warum funkts?

greets
bedee

o.k.

Verfasst: 16.08.2004 21:20
von bedee
jetzt steh ich vorm selben prob, aber diesmal funktionierts nicht in der
foren-ansicht, also ich hätte auch hier gerne sowas wie:

Code: Alles auswählen

	<!-- BEGIN topicrow -->

	<tr>
	  <td class="row1" align="center" valign="middle" width="20"><img src="{topicrow.TOPIC_FOLDER_IMG}" width="19" height="18" alt="{topicrow.L_TOPIC_FOLDER_ALT}" title="{topicrow.L_TOPIC_FOLDER_ALT}" /></td>
	  <td class="row1" width="100%"><span class="topictitle">{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}<a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a></span><span class="gensmall"><br />
		{topicrow.GOTO_PAGE}</span></td>
	  <td class="row2" align="center" valign="middle"><span class="postdetails">{topicrow.REPLIES}</span></td>

<!-- BEGIN noch_ein_switch_mod'-->
	  <td class="row3" align="center" valign="middle"><span class="name">{topicrow.TOPIC_AUTHOR}</span></td>
	  <td class="row2" align="center" valign="middle"><span class="postdetails">{topicrow.VIEWS}</span></td>

<!-- END noch_ein_switch_mod' -->
also hier hab ich einen switch in der schleife topicrow,
ich nehm an ich muss einen eigenen switch bauen, so ähnlich wie:

Code: Alles auswählen

if ( $userdata['user_level'] == MOD ) 
{ 
  $template->assign_block_vars(topicrow.noch_ein_switch_mod',   array()); 
}
und jetzt bin ich auf der suche nach der stelle, wo ich den switch einbau

please help, dann geb ich ganz bestimmt ruhe :wink:

bedee