Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Templates und Variablen
#1
Hiho!
In den Templates stehen ja Variablen drin mit {$....} Wenn ich jetzt in einem Plugin eine Variable definiere $test_baeckerman83 und diese im Template an einer bestimmten stelle ausgeben möchte, reicht es da nicht im Template {$test_baeckerman83} zu schreiben? Wie gebe ich die Variable denn aus? Im Plugin funktioniert alles richtig und die Variable wird mit Echo dann auch oberhalb des Forums ausgegeben (Debug Bereich???)
Zitieren
#2
Du musst zwei Bedingungen erfüllen damit eine String-Variable in einem Template funktioniert:

1) Die Variable muss global sein.
2) Die Variable muss definiert sein bevor das Template ausgewertet wird.
Zitieren
#3
Wie definiere ich eine Variable in einem Plugin als global?

Ausgeführt wird das Plugin bevor das Template ausgewertet wird. Kann auch gerne den Quelltext posten, da ist aber nichts drin, nur die Variablen zuweisung.
Zitieren
#4
http://www.phpbar.de/w/global
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
Das mag irgendwie trotzdem nicht funktionieren. Sad ist der Hook falsch?

Code:
<?
// Die Informationen, die im Pluginmanager angezeigt werden
function test_ben_info()
{
    return array(
        "name"        => "Hello_Ben",
        "description"    => "Pluginbeschreibung",
        "website"    => "Webseite des Plugins (Herstellerseite)",
        "author"    => "Name des Erstellers",
        "authorsite"    => "Webseite des Erstellers",
        "version"    => "1.0",
    );
}

// Diese Funktion wird aufgerufen, wenn das Plugin aktiviert wird.
function test_ben_activate()
{

}

$plugins->add_hook("postbit", "test_ben");
function test_ben()
{
global $plugin_test_ben;
$plugin_test_ben="hallo Ben!";
echo $plugin_test_ben;
}

// Diese Funktion wird aufgerufen, wenn das Plugin deaktiviert wird.
function test_ben_deactivate()
{
}
?>
Zitieren
#6
In welchem Template willst du die Variable {$plugin_test_ben} denn verwenden?

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#7
Im Template Postbit würde ich das gerne anzeigen lassen. Hier mal mein Template dazu.

Code:
{$ignore_bit}
<a name="pid{$post['pid']}" id="pid{$post['pid']}"></a>
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="{$post_extra_style} {$post_visibility}" id="post_{$post['pid']}">
    <tbody>
        <tr>
            <td class="tcat">
                <div class="float_left smalltext">
                    {$post['postdate']}, {$post['posttime']} <span id="edited_by_{$post['pid']}">{$post['editedmsg']}</span>
                </div>
                {$post['posturl']}
            </td>
        </tr>

        <tr>
            <td class="trow1 {$unapproved_shade}">
                <table cellspacing="0" cellpadding="0" border="0" style="width: 100%;">
                    <tr>
                        <td class="post_avatar" width="1" style="{$post['avatar_padding']}">
                            {$post['useravatar']}
                        </td>
                        <td class="post_author">
                            <strong><span class="largetext">{$post['profilelink']}</span></strong> {$post['onlinestatus']}<br />
                            <span class="smalltext">
                                {$post['usertitle']}<br />
                                {$post['userstars']}
                                {$post['groupimage']}
                            </span>
                        </td>
                        <td class="smalltext post_author_info" width="165">
                            {$post['user_details']}
                        </td>
                    </tr>
                </table>
            </td>
        </tr>

        <tr>
            <td class="trow2 post_content {$unapproved_shade}">
                <span class="smalltext"><strong>{$post['icon']}{$post['subject']} {$post['subject_extra']}</strong></span>

                <div class="post_body" id="pid_{$post['pid']}">
                    {$post['message']}
                </div>
                {$post['attachments']}
                {$post['signature']}

                <div class="post_meta" id="post_meta_{$post['pid']}">
                Hier:{$plugin_test_ben}
                </div>
            </td>
        </tr>

        <tr>
            <td class="trow1 post_buttons {$unapproved_shade}">
                <div class="author_buttons float_left">
                    {$post['button_email']}{$post['button_pm']}{$post['button_www']}{$post['button_find']}
                </div>
                <div class="post_management_buttons float_right">{$post['button_edit']}{$post['button_quickdelete']}{$post['button_quote']}{$post['button_multiquote']}{$post['button_report']}{$post['button_warn']}{$post['button_reply_pm']}{$post['button_replyall_pm']}{$post['button_forward_pm']}{$post['button_delete_pm']}
                </div>
            </td>
        </tr>
    </tbody>
</table>
Zitieren
#8
im zweifel versuchs mal mit dem global_start hook das ist einer der ersten...
Zitieren
#9
Naja der Hook scheint der richtige zu sein.
Wenn ich meine Variable umbenne zu {$post['test_ben'], dann funktioniert es. Also scheint das mit dem global nicht zu gehen.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Templates in Templates einbinden Frido 3 2.585 11.01.2009, 14:41
Letzter Beitrag: StefanT