probleme mit der phpbb teplate syntax

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.
Antworten
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

probleme mit der phpbb teplate syntax

Beitrag 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?
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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)
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag 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..
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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?
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag 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.
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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).
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag von Shadowman »

leider ist das auch nicht der fehler :(
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag 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...
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Re: probleme mit der phpbb teplate syntax

Beitrag 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
Selbst ist der Coder
Coder unter Linux
Antworten

Zurück zu „Coding & Technik“