Switch's "verschachteln"?

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.
knalltrauma
Mitglied
Beiträge: 150
Registriert: 06.05.2004 17:14

Switch's "verschachteln"?

Beitrag 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:
---------------------------------
=Es lebe die Liebe!=
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag 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
knalltrauma
Mitglied
Beiträge: 150
Registriert: 06.05.2004 17:14

Beitrag von knalltrauma »

Okey :-) Ich werd das mal probieren...vielen lieben Dank :wink:
---------------------------------
=Es lebe die Liebe!=
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
bedee
Mitglied
Beiträge: 29
Registriert: 21.07.2004 14:13

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

Beitrag 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
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
bedee
Mitglied
Beiträge: 29
Registriert: 21.07.2004 14:13

meinst du so?

Beitrag 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:
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag 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 -->
bedee
Mitglied
Beiträge: 29
Registriert: 21.07.2004 14:13

funzt

Beitrag 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
bedee
Mitglied
Beiträge: 29
Registriert: 21.07.2004 14:13

o.k.

Beitrag 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
Antworten

Zurück zu „Coding & Technik“