Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Eigene {$xxx} Variablen
#1
Hallo,
wie kann ich in den Templates meine eigenen Variablen ({$xxx}) einfügen? Definiert sind sie vor dem templates->get("...").

Bimon
[Bild: Nirgendssicher.jpg]
Zitieren
#2
Du musst die Variable in der entsprechenden PHP-Datei definieren bevor das Template geladen wird, in der sie verwendet werden soll.

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
#3
habe ich gemacht aber ausgegeben wird trotzdem nicht der inhalt von $xxx sondern {$xxx}.

Oder werden Templates schon vor dem templates->get() geladen?
[Bild: Nirgendssicher.jpg]
Zitieren
#4
Hier mal ein praktisches Beispiel: Du willst das Datum im header ausgeben. Dazu öffnest du die Datei global.php und suchst die Zeile, in der der header geladen wird:
PHP-Code:
eval("\$header = \"".$templates->get("header")."\";"); 
Irgendwo darüber fügst du ein:
PHP-Code:
$datum date("d.m.Y"); 
Danach kannst du die Variable {$datum} im Template verwenden. Wichtig ist, dass Variablen in Templates in geschweiften Klammern stehen.

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
#5
komisch bei mir geht das irgendwie nie...ich probs nochmal
danke trotzdem Smile


Das is nich wahr........... jetzt gehts Big Grin

DANKE
[Bild: Nirgendssicher.jpg]
Zitieren
#6
Hallöle,

ich hab da auch noch mal ne Frage (ich mach das mal direkt an einem Beispiel klar):

Ich möchte gerne in meinem Willkommen-Panel den Username seperat anzeigen.
Also muss ich dafür die Variable irgendwo definieren und dazu die Daten aus der Datenbank auslesen (ganz nebenbei, ich bringe mir gerade php ein bisschen näher *g*).
Soweit so gut.
Ich nehme an, die Variable muss in der Datei global.php definiert werden?

Frage 1.) Wo genau?
Frage 2.) Wie genau?

zu 2.) ich habe mir das so gedacht:
PHP-Code:
$username $mybb->user['username']; 

Und dann kann ich im Template header_welcomeblock_member den Usernamen mit {$username} an einer beliebigen Stelle einfügen?
Ist das richtig, oder muss ich dabei noch was beachten?
Kann ich auf diese Weise sämtliche Daten wie User ID, Homepage, etc. abfragen?

Ich hoffe ich stelle mich nich zu blöd an und würde mich freuen wenn mir jemand helfen könnte Smile
Zitieren
#7
Warum schreibst du nicht gleich ins Template $mybb->user['username']? Wink
Das Template "header_welcomeblock_member" wird der global.php in Zeile 258 aufgerufen. Variablen musst du davor definieren, um sie benutzen zu können. Praktisch wäre es, wenn du sie direkt davor einfügst.
Nach diesem Prinzip kannst du immer vorgehen. Wird das Template in einer anderen Datei aufgerufen, kannst du Variablen auch in dieser Datei definieren.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#8
Also wenn ich direkt ins Template $mybb->user['username'] schreibe, dann komtm "Array['username]" als Ausgabe... WEnn ich es über die richtige Variable mache klappt alles wunderbar *g*
Ich bin grad ganz euphorisch dass alles so klappt wie ichs mir vorgestellt habe.

Danke für deine schnelle Antwort!
Zitieren
#9
Aus Sicherheitsgründen solltest du
PHP-Code:
$username $mybb->user['username']; 
durch diese Zeile ersetzen:
PHP-Code:
$username htmlspecialchars_uni($mybb->user['username']); 

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
#10
Eine Frage direkt dazu.
Wenn ich eine Variable in der global.php definiere, ist diese doch in allen Templates verfügbar oder? Die global.php wird überall eingebunden.
Klar darf die Variable später nicht überschrieben werden und so.

Zitieren