Hallo.
Ich programmiere aktuell ein "Add-On" für vBulletin-4 und beobachte ein seltsames verhalten.
Vielleicht weiss ja hier jemand rat?
Der Code wird über das vBulletin PlugIn-System verarbeitet und funktioniert. Im Header (weil echo) erscheinen dann die "echos" in der richtigen Reihenfolge, weil es ja X-Mal geparst (heisst das so?) wird (je nachdem wieviele Themen angezeigt werden pro Seite).
Mache ich aber nun folgendes...
Kurze Erläuterung:
In vB4 muss man Variablen in Templates "registrieren" bzw. "anmelden".
Weiter im Text...
Setze ich die Variable nun in das Template ein...
Werden ab einem "treffer" (wird moderiert) alle weiteren "ul" Farblich verändert.
Das dürfte aber eigentlich nicht so sein!?
Das Template "threadbit" wird ja z.B. 20 mal ausgeführt und die IF-Abfrage jedes mal erneut durchlaufen.
So geht es übrigens "richtig"...
Ich kapier das nicht.
Ich programmiere aktuell ein "Add-On" für vBulletin-4 und beobachte ein seltsames verhalten.
Vielleicht weiss ja hier jemand rat?
PHP:
if ($thread['visible'] == 0)
{
echo 'Der Thread wird moderiert.<br />';
}
if ($thread['visible'] == 1)
{
echo 'Der Thread ist offen.<br />';
}
if ($thread['visible'] == 2)
{
echo 'Der Thread ist geschlossen.<br />';
}
Der Code wird über das vBulletin PlugIn-System verarbeitet und funktioniert. Im Header (weil echo) erscheinen dann die "echos" in der richtigen Reihenfolge, weil es ja X-Mal geparst (heisst das so?) wird (je nachdem wieviele Themen angezeigt werden pro Seite).
Mache ich aber nun folgendes...
PHP:
if ($thread['visible'] == 0)
{
$StatusThread = 'Der Thread wird moderiert.';
$StatusMod = 'style="background-color:#ff0000;"';
vB_Template::preRegister('threadbit', array('StatusThread ' => $StatusThread,'StatusMod ' => $StatusMod ));
}
if ($thread['visible'] == 1)
{
$StatusThread = 'Der Thread ist offen.';
vB_Template::preRegister('threadbit', array('StatusThread ' => $StatusThread));
}
if ($thread['visible'] == 2)
{
$StatusThread = 'Der Thread ist geschlossen.';
vB_Template::preRegister('threadbit', array('StatusThread ' => $StatusThread));
}
Kurze Erläuterung:
In vB4 muss man Variablen in Templates "registrieren" bzw. "anmelden".
PHP:
// Registriere die Variable "$StatusThread" als StatusThread für das Template "threadbit"
vB_Template::preRegister('threadbit', array('StatusThread ' => $StatusThread));
Weiter im Text...
Setze ich die Variable nun in das Template ein...
HTML:
<ul {vb:raw StatusMod}>
<li>Status-Icon</li>
<li>Thread-Titel</li>
<li>Letzter Beitrag</li>
</ul>
Werden ab einem "treffer" (wird moderiert) alle weiteren "ul" Farblich verändert.
Das dürfte aber eigentlich nicht so sein!?

Das Template "threadbit" wird ja z.B. 20 mal ausgeführt und die IF-Abfrage jedes mal erneut durchlaufen.
So geht es übrigens "richtig"...
PHP:
if ($thread['visible'] == 0)
{
$StatusThread = 'Der Thread wird moderiert.';
$StatusMod = 'style="background-color:#ff0000;"';
vB_Template::preRegister('threadbit', array('StatusThread ' => $StatusThread,'StatusMod ' => $StatusMod ));
}
if ($thread['visible'] == 1)
{
$StatusThread = 'Der Thread ist offen.';
$StatusMod = '';
vB_Template::preRegister('threadbit', array('StatusThread ' => $StatusThread,'StatusMod ' => $StatusMod ));
}
if ($thread['visible'] == 2)
{
$StatusThread = 'Der Thread ist geschlossen.';
$StatusMod = '';
vB_Template::preRegister('threadbit', array('StatusThread ' => $StatusThread,'StatusMod ' => $StatusMod ));
}
Ich kapier das nicht.