Seite 1 von 1

probleme mit der phpbb teplate syntax

Verfasst: 28.12.2004 04:01
von Shadowman
ich bin gerade dabei mein forum zu modden, jedoch will mir der einfachtse teil nicht gelingen *am verzweifeln ist*

Code: Alles auswählen

// Start Bad Post Mod
        if ( $userdata['session_logged_in'] )
        {
             $url_style = "blub";
             $bad_post_url = "badposting.php?post_id=".$postrow[$i]['post_id']."&topic_id=".$_GET['t']."&poster_id=".$postrow['user_id']."&reporter_id=".$userdata['user_id']."&mode=confirm";
             $template->assign_block_vars('switch_badpost', array(
                                                                  'BADPOST_URL' => $bad_post_url,
                                                                  'URL_STYLE' => $url_style
                                                                  ));
        }
        // End Bad Post Mod
das ganze steht kurz vor $template->assign_block_vars('postrow', array( (ca zeile 1200)

in der viewtopic_body.tpl hab ich nun folgendes vor {postrow.QUOTE_IMG}
eingetragen:

Code: Alles auswählen

<!-- BEGIN switch_badpost -->
                                                        <a href="{BADPOST_URL}">Schlechten Post melden</a>
                                                        <!-- END switch_badpost -->
nur leider wird dieser link nicht angezeigt. ich steh kurz vor der verzweiflung. schliesslich bin ich eingeloggt und der link muss ja dann angezeigt werden... ist aber nicht der fall.

wo liegt der fehler?

Verfasst: 28.12.2004 04:13
von Pyramide
Wenn du innerhalb von postrow einen switch_badpost Block einfügen willst, musst du diesen mit postrow.switch_badpost an assign_block_vars übergeben. (momentan fügst du den Block an oberster Ebene ein)

Verfasst: 28.12.2004 04:17
von Shadowman
hm, wenn ich nun einen post anschauen will kommt:
Parse error: parse error, unexpected '=' in E:\broxx-com.download\forum\includes\template.php(127) : eval()'d code on line 40

Code: Alles auswählen

var $_tpldata = array(); 
Das steht auf zeile 40 in der template.php
ich werd daraus nicht schlau..

Verfasst: 28.12.2004 13:05
von Pyramide
Shadowman hat geschrieben:eval()'d code on line 40
Es geht um den "eval()'d code" - also den generierten PHP-Code. Welche Zeilen hast du denn in der .tpl verändert, bevor der Fehler auftrat?

Verfasst: 28.12.2004 13:11
von Shadowman
also ich hab

Code: Alles auswählen

 <!-- BEGIN postrow.switch_badpost -->
<a href="{postrow.BADPOST_URL}">Schlechten Post melden</a>
<!-- END postrow.switch_badpost -->
zwischen

Code: Alles auswählen

<td valign="top" nowrap="nowrap"><table border="0" cellpadding="0" cellspacing="2" width="100%"><tr><td width="100%" nowrap="nowrap">
(ca zeile 37 beim solaris template)

und

Code: Alles auswählen

{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}</td></tr></table></td>
eingefügt.. verstehe nicht wo da nen fehler sein soll.

Verfasst: 28.12.2004 13:44
von Pyramide
Auf den ersten Blick sehe ich den Fehler auch nicht, aber da {postrow.BADPOST_URL} sowieso {postrow.switch_badpost.BADPOST_URL} heißen muss, kannst du ja mal versuchen ob das auch die Fehlermeldung verursacht hat (AFAIK bleibt die stelle dann aber einfach nur leer).

Verfasst: 28.12.2004 13:56
von Shadowman
leider ist das auch nicht der fehler :(

Verfasst: 28.12.2004 14:20
von Shadowman
ich weiss nicht was ich falsch gemacht habe, ich hab einfach das switch umgangen:

Code: Alles auswählen

// Start Bad Post Mod
        if ( $userdata['session_logged_in'] )
        {
             $badpost_img = "<a href='";
             $badpost_img .= "badposting.php?post_id=";
             $badpost_img .= $postrow[$i]['post_id'];
             $badpost_img .= "&topic_id=";
             $badpost_img .= $_GET['t'];
             $badpost_img .= "&poster_id=";
             $badpost_img .= $postrow['user_id'];
             $badpost_img .= "&reporter_id=";
             $badpost_img .= $userdata['user_id'];
             $badpost_img .= "&mode=confirm";
             $badpost_img .= "'>Schlechten Beitrag melden</a>";
        }
        // End Bad Post Mod

Code: Alles auswählen

$template->assign_block_vars('postrow', array(
                'ROW_COLOR' => '#' . $row_color,
                'ROW_CLASS' => $row_class,
                'POSTER_NAME' => $poster,
                ......
                'BADPOST_IMG' => $badpost_img,
nun gehts...

Re: probleme mit der phpbb teplate syntax

Verfasst: 29.12.2004 16:51
von MrMind
Häätest du das so gemacht, wäre das vermutlich auch gegangen:

Code: Alles auswählen

// Start Bad Post Mod
        if ( $userdata['session_logged_in'] )
        {
             $url_style = "blub";
             $bad_post_url = "badposting.php?post_id=".$postrow[$i]['post_id']."&topic_id=".$_GET['t']."&poster_id=".$postrow['user_id']."&reporter_id=".$userdata['user_id']."&mode=confirm";
             $template->assign_block_vars('switch_badpost', array(
                                                                  'BADPOST_URL' => $bad_post_url,
                                                                  'URL_STYLE' => $url_style
                                                                  ));
        }
        // End Bad Post Mod

Code: Alles auswählen

<!-- BEGIN switch_badpost -->
                                                        <a href="{switch_badpost.BADPOST_URL}">Schlechten Post melden</a>
                                                        <!-- END switch_badpost -->
Da du bei deiner Templatesvariable diese in einen Block gesteckt hast und diese auch mit dem Block definierst, musste vor der Variablennamen {BADPOST_URL} auch den Blocknamen (switch_badpost.) anfügen, dann erkennt die Klasse das es zu dem Block gehört, ansonsten denkt die Klasse das es zu den Root-Variablen gehören die du durch assign_vars() definierst.

Mfg
MrMind