Beiträge: 1.709
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
17.01.2024, 12:45
(Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2024, 12:45 von Gerti.)
Hallo,
aktuell wird vom PlugIn ein HTML-Code (damit ihn der Admin selbst abändern kann), wie z.B. nachstehend, in die Datenbank geschrieben.
Zitat:<div align="right" style="margin: 1% 1%; position: relative; z-index: 9999;"><a href="./ziel/" title="Bezeichnung" style="text-decoration: none;"><span style="font-size: 18px; color: #fff; background-color: #008600; border-radius: 100px; padding: 1px 3px;">Link zu</span></a></div>
Ich habe versucht, Bezeichnung mit einer Sprachvariable so: {$lang->name_sprachvariable} (was ja im Template selbst funktioniert) bzw. so: {\$lang->name_sprachvariable} zu ersetzen. Leider ohne Erfolg. Wäre hat wegen der gegebenen Mehrsprachigkeit sehr willkommen
Verständnisfrage:
Funktioniert der Aufruf einer Sprachvariablen aus der Datenbank im Inhalt des definierten DIV (wie vorstehend) nicht oder gibt es da eine andere Vorgensweise beachtet werden?
Wenn nicht, kann ich mir den weiteren Zeitaufwand zum Testen ersparen.
Vorab Danke für Tipps und Hinweise.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
Beiträge: 836
Themen: 8
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
Dein eigener HTML-Code (Template) muss durch ein obligatorisches eval() gejagt werden, damit auch Variablen darin 'verarbeitet' und durch Inhalt ersetzt werden.
Beispiele dafür sind überall in *.php- Dateien von MyBB zu finden:
eval("\$VAR = \"".$templates->get("TEMPLATE_TITLE")."\";");
[ExiTuS]
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
17.01.2024, 13:52
(Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2024, 13:52 von SvePu.)
@Gerti
Am besten auf Inline-Styles verzichten und CSS ID/Klassen verwenden und dazu ein entsprechenden Plugin Stylesheet hinzufügen. So lässt sich die Anzeige an Themendesigns besser anpassen.
Normalerweise sollten Admins da auch keine Schwierigkeiten bei gewünschten Änderungen haben.
Beiträge: 1.709
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
17.01.2024, 14:04
(Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2024, 14:12 von Gerti.)
(17.01.2024, 12:58)[ExiTuS] schrieb: Dein eigener HTML-Code (Template) muss durch ein obligatorisches eval() gejagt werden, damit auch Variablen darin 'verarbeitet' und durch Inhalt ersetzt werden.
Beispiele dafür sind überall in *.php- Dateien von MyBB zu finden:
eval("\$VAR = \"".$templates->get("TEMPLATE_TITLE")."\";");
[ExiTuS] Danke für Dein Engagement.
Ich entnehme daraus, das ich für den Datenbankentrag die Variable $db_eintrag für den Header mit
Code: eval("\$db_eintrag = \"".$templates->get("header")."\";");
einbinden müsste. Wenn ja, funktioniert dies nicht. Habe es gerade so getestet. Aktuell ruft es mit der vorstehenden Lösung das Template zweimal auf.
Die Variable soll jedoch in das bestehende Template eingebunden werden.
Habe ich etwas falsch gemacht oder ist die angedachte Lösung unzutreffend?
(17.01.2024, 13:52)SvePu schrieb: Am besten auf Inline-Styles verzichten und CSS ID/Klassen verwenden und dazu ein entsprechenden Plugin Stylesheet hinzufügen. So lässt sich die Anzeige an Themendesigns besser anpassen.
Normalerweise sollten Admins da auch keine Schwierigkeiten bei gewünschten Änderungen haben. Danke für den Hinweis. Das Styleshett kann ich gerne im PlugIn definieren und bei Aktivierung des PlugIns das Stylesheet in das Default-Theme schreiben. Das wäre kein großes Problem. Noch arbeite ich an der Lösungsfindung bzgl. Sprachvariable.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
Beiträge: 836
Themen: 8
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
Also dein HTML-Code-Schnipsel liegt als eigenes Template in der Tabelle 'mybb_templates', mit eigenem Namen im Feld 'title', z.b.'gerti_button'.
eval("\$VARIABLE = \"".$templates->get("gerti_button")."\";");
Die $VARIABLE schreibst du an gewünschter Stelle in das 'header'-Template.
(Ich bin mir nicht sicher, ob auch der Name 'gerti_button' mit in $templatelist aufgeführt werden muss.)
[ETS]
Beiträge: 1.713
Themen: 22
Registriert seit: 18.02.2017
MyBB-Version: 1.8.*
ein "muss" nicht, aber die Variable hat sicherlich ihren Sinn
Kein Support per PN, Mail, Telefon, Hausbesuch, Discord, Telegram, WhatsApp und anderen nutzlosen Tools
Beiträge: 1.709
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
19.01.2024, 15:15
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2024, 15:16 von Gerti.)
@ExiTuS
Das mit dem Einbinden eines Templates ahbe ich erfolgreich umsetzen können. Danke für den Hinweis.
(17.01.2024, 14:15)[ExiTuS] schrieb: Ich bin mir nicht sicher, ob auch der Name 'gerti_button' mit in $templatelist aufgeführt werden muss. (17.01.2024, 16:16)bv64 schrieb: ein "muss" nicht, aber die Variable hat sicherlich ihren Sinn Wie was wo? Das bzgl. $templatelist lese ich zum ersten mal. Kann mir das jemand nachvollziehbar erklären warum, wieso, weshalb und wie man es, wenn es denn Sinn macht, umsetzt?
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
(19.01.2024, 15:15)Gerti schrieb: Wie was wo? Das bzgl. $templatelist lese ich zum ersten mal. Kann mir das jemand nachvollziehbar erklären warum, wieso, weshalb und wie man es, wenn es denn Sinn macht, umsetzt? Ich wiederhole mich ungern, aber du solltest dir das Beispiel-Plugin hello.php anschauen. Dort findet sich auch hierzu zumindest eine kurze Erklärung einschließlich längerem Code-Beispiel:
PHP-Code: // cache templates - this is important when it comes to performance // THIS_SCRIPT is defined by some of the MyBB scripts, including index.php if(defined('THIS_SCRIPT')) { global $templatelist;
if(isset($templatelist)) { $templatelist .= ','; }
if(THIS_SCRIPT== 'index.php') { $templatelist .= 'hello_index, hello_message'; } elseif(THIS_SCRIPT== 'showthread.php') { $templatelist .= 'hello_post, hello_message'; } }
Die längere Erklärung ist, dass Templates, die nicht der Liste sind, nicht ein einem Rutsch in den Cache geladen werden. Dies führt dazu, dass jedes neue Templates einzeln aus der Datenbank geladen werden muss. Dies ist vergleichsweise ineffizient und verlangsamt das Forum. Bei einem Template mag das vernachlässigbar sein, bei vielen kann es sich aber bemerkbar machen.
Dies lässt sich über die MyBB Debug Information im Footer nachvollziehen. Die zusätzliche Abfragen tauchen dort auf und werden unten bei "Templates Requiring Additional Calls (Not Cached at Startup)" angezeigt.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 1.709
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
Jetzt weiß ich wenigstens was $templatelist auch inhaltlich bedeutet.
Besten Dank für Dein Engagement es nachvollziehbar zu erläutern.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
|