Seite 2 von 3

Verfasst: 05.11.2006 20:31
von bobo2man
ja ich weiß^^
aber die ist ja irgendwo fediniert! ich weiß nur nimmer wo!

Verfasst: 05.11.2006 20:36
von Westpark
hmm wie ist jetzt der stich das es nur admins sehen können? vorher war des ned richtig

Verfasst: 05.11.2006 21:41
von bobo2man
ich will das es nur eingeloggte sehen können! aber in dem code den ich gepostet habe geht da nicht! ich weiß nur nicht warum nicht

Verfasst: 05.11.2006 22:00
von Westpark
also du fügst vor der tabelle das ein:

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
und hinetr der tabelle das:

Code: Alles auswählen

<!-- END switch_user_logged_in -->
das sieht dann ungefähr so aus:

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
<table>
<tr>
<td>
bla bla bla onlinliste
</td>
</tr>
</table>
<!-- END switch_user_logged_in -->

Verfasst: 05.11.2006 22:28
von Miriam
bobo2man hat geschrieben:ja ich weiß^^
aber die ist ja irgendwo fediniert! ich weiß nur nimmer wo!
Du meinst, wo der Code zum Einschalten/Ausschalten generiert wird?

In der page_header.php.

Verfasst: 05.11.2006 22:50
von bobo2man
@Westpark ich weiß! ich hab ja auch schon den code gepostet auf seite 1 :-)

kann mir vieleicht einfach jmd sagen wo da der fehler liegen könnte?

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
<!-- BEGIN switch_top_posters -->
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr>
<th colspan="2">{L_TOP_POSTERS}</th>
</tr>
<tr>
<td class="row1" align="center"><span class="genmed">{L_TOP_MEMBER}</span></td>
<td class="row1" align="center"><span class="genmed">{L_TOP_POSTS}</span></td>   
</tr>
<!-- END switch_top_posters -->
<!-- BEGIN users -->
<tr>
<td class="row1" align="left"><span class="gensmall"><a href="{users.URL}">&nbsp;{users.USERNAME}</a></span></td>
<td class="row1" align="center"><span class="gensmall"><b>&nbsp;&nbsp;{users.POSTS}</b></span></td>   
</tr>
</table>
<!-- END users -->
<!-- BEGIN switch_top_posters -->
<table border="0" cellpadding="0" cellspacing="0" class="tbl"><tr><td class="tbll"><img src="images/spacer.gif" alt="" width="8" height="4" /></td><td class="tblbot"><img src="images/spacer.gif" alt="" width="8" height="4" /></td><td class="tblr"><img src="images/spacer.gif" alt="" width="8" height="4" /></td></tr></table>
<br />
<!-- END switch_top_posters -->
<!-- END switch_user_logged_in -->

Verfasst: 06.11.2006 00:20
von gn#36
Die Verschachtelung der <!-- BEGIN --> <!-- END --> Blöcke ist vermutlich das Problem. Wenn die innerhalb voneinander verwendet werden dann ändert sich die Syntax:

Code: Alles auswählen

<!-- BEGIN außen -->
<!-- BEGIN außen.innen -->
<!-- END außen.innen -->
<!-- END außen -->
Außerdem muss der Aufruf in der php Datei in der richtigen Reihenfolge dargestellt werden, ansonsten sieht man nichts.
Reihenfolge muss sein außen, innen.
Da der Switch im page_header zugewiesen wird, die Online Info aber im index dürfte zumindest die Aufrufreihenfolge kein Problem sein.
=> Die Syntax des Codeabschnitts entsprechend abändern und dann sollte es gehen.

Ach so: Auch die Variablensyntax der Blockvariablen muss natürlich angepasst werden. Was vorher {innen.VARIABLE} war muss zu {außen.innen.VARIABLE} werden. {außen.VARIABLE} kann bleiben wie es ist.

Verfasst: 06.11.2006 21:19
von bobo2man
hmm so richtig hab ich das jetzt leider nicht verstanden grml :-( tut mir leid!

Verfasst: 06.11.2006 22:35
von DreamPromise
Moin moin

1000 Dank....funktioniert suuuper

DP

Verfasst: 06.11.2006 23:13
von gn#36
Ok ich probier's noch mal anders:
Mit <!-- BEGIN xxx --> und <!-- END xxx --> werden Anfang und eine eines Codeblocks markiert der in diesem Fall den Namen xxx trägt. Ob dieser Codeblock angezeigt wird hängt davon ab, ob dies in den php Dateien so eingetragen ist. Es ist also gewissermaßen ein Schalter. Diese Blöcke können außerdem dazu verwendet werden, einen Codeabschnitt mehrfach auszugeben.

Jetzt kann es natürlich passieren, dass ein Codeblock innerhalb eines anderen Codeblocks liegt. Das macht z.b. dann Sinn, wenn beim Posting zu dem Post Buttons gehören, die nicht jedem angezeigt werden sollen (z.B. das Editieren von Posts). Dann ist der Äußere Block der Post (denn der Button gehört ja effektiv zu dem Post) und der Innere Block ist der Button. Man könnte den Button auch als "Child" des Posts bezeichnen, den Post als "Parent".

Um jetzt direkt auszudrücken, dass der Button zu dem Post gehört wurde hier die Bezeichnung der Blöcke ein wenig verändert. Statt den Child Block darzustellen wie alle Top Level Blöcke (also die, die kein "Parent" Block haben) werden sie als Teil des Parent Blocks dargestellt. Dies geschieht in vielen Programmiersprachen u.a. durch einen Punkt (z.B. Java, Basic, C, C++). Die Formulierung <!-- BEGIN aaa.bbb --> drückt somit aus, dass dies der Beginn des Codeblocks bbb ist, bbb aber ein Child von aaa, somit bbb nur dargestellt wird, wenn auch aaa dargestellt wird.

Alle Codeblöcke, die innerhalb eines anderen Blocks sind müssen dieser Syntax folgen, eine Konstruktion wie

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
<!-- BEGIN switch_top_posters --> 
ist somit ein syntaktischer Fehler, denn switch_top_posters befindet sich innerhalb von switch_user_logged_in. Daher muss die Syntax dahingehend geändert werden:

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
<!-- BEGIN switch_user_logged_in.switch_top_posters --> 
Ich hoffe so ist das jetzt besser klar geworden!