MyBB.de Forum
Templates und Variablen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Theme-Diskussionen (https://www.mybb.de/forum/forum-84.html)
+--- Thema: Templates und Variablen (/thread-15910.html)



Templates und Variablen - baeckerman83 - 17.03.2010

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???)


RE: Templates und Variablen - frostschutz - 17.03.2010

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.


RE: Templates und Variablen - baeckerman83 - 17.03.2010

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.


RE: Templates und Variablen - StefanT - 17.03.2010

http://www.phpbar.de/w/global


RE: Templates und Variablen - baeckerman83 - 17.03.2010

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()
{
}
?>



RE: Templates und Variablen - Michael - 17.03.2010

In welchem Template willst du die Variable {$plugin_test_ben} denn verwenden?


RE: Templates und Variablen - baeckerman83 - 17.03.2010

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>



RE: Templates und Variablen - frostschutz - 18.03.2010

im zweifel versuchs mal mit dem global_start hook das ist einer der ersten...


RE: Templates und Variablen - baeckerman83 - 18.03.2010

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.