Syntax in Sprachdatei - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html) +--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html) +--- Thema: Syntax in Sprachdatei (/thread-37852.html) |
Syntax in Sprachdatei - Gerti - 01.06.2021 Hallo ist es möglich z.B {$mybb->settings['bbname']} in einer Sprachvariablen mit einzubinden? Beispiel: PHP-Code: $l['syntax_text'] = 'Sie befindet sich im Forum {$mybb->settings['bbname']} und....'; Wenn ja, wie? Habe zwar schon einiges wie z.B. Escaped versucht, aber bisher ohne Erfolg. Hätte jemand eine Lösung? Vorab besten Dank für Tipps und Hinweise. RE: Syntax in Sprachdatei - Schnapsnase - 01.06.2021 Ich gehe davon aus, dass du die Variablen, die du in den Sprachstrings verwenden möchtest, in der Sprachdatei noch nicht globalisiert hast?! Woher soll die Variable dann bekannt sein? Beispiel: PHP-Code: <?php RE: Syntax in Sprachdatei - StefanT - 02.06.2021 PHP-Code und -Variablen haben in Sprachdateien nichts verloren und überleben ein Bearbeiten der Sprachdatei im Admin-CP nicht. Variable Texte kann man mit Platzhaltern wie {1} und $lang->sprintf umsetzen. RE: Syntax in Sprachdatei - Schnapsnase - 02.06.2021 Hi Stefan, ich glaube nicht, dass es hier um variable Texte geht, denn "$mybb->settings['bbname']" ändert sich ja im Normalfall nie. Gerti hat nicht konkret beschrieben, was er vor hat. Mir erschließt sich die Sinnhaftigkeit auch nicht, denn wenn ich in der Sprachdatei eine Variable definiere und einfüge, habe ich das in gleicher Zeit auch als Klartext eingefügt. Es macht allenfalls Sinn, wenn dieser Text in dieser Sprachdatei seeehr häufig vorkommt. Über Sinn und Unsinn kann nur Gerti aufklären. Ich habe lediglich einen Anhaltspunkt gegeben, wie´s funktionieren könnte. RE: Syntax in Sprachdatei - StefanT - 02.06.2021 (02.06.2021, 12:07)Schnapsnase schrieb: ich glaube nicht, dass es hier um variable Texte geht, denn "$mybb->settings['bbname']" ändert sich ja im Normalfall nie.Wenn sich das Text nicht ändern würde, bräuchte Gerti auch keine Variable. In den offiziellen Sprachpaketen gibt es jede Menge Platzhalter, sogar für genau diese Variable. (02.06.2021, 12:07)Schnapsnase schrieb: Ich habe lediglich einen Anhaltspunkt gegeben, wie´s funktionieren könnte.Und ich habe geschrieben, warum diese Lösung Murks ist. Und sie funktioniert nicht einmal. RE: Syntax in Sprachdatei - Schnapsnase - 02.06.2021 (02.06.2021, 15:46)StefanT schrieb: Und sie funktioniert nicht einmal. Na getestet hab ich´s leider nicht. Das wollte ich Gerti überlassen. Kurzer Hinweis von Deiner Seite, warum´s nicht funktioniert? War mir eigentlich sicher, dass das funktionieren müsste... RE: Syntax in Sprachdatei - Gerti - 02.06.2021 Über Sinn und Unsinn kann man stets geteilter Meinung sein. Manche begnügen sich mit einem Golf, andere bevorzugen Flugzeuge und/oder einen Maserati und wieder Andere begnügen sich mit dem ÖVPN oder Fahrrad bzw. zu Fuss. Der/die eine mag lieber Käse, andere bevorzugen Wurst. usw. Ich habe lediglich dahingend eine Frage gestellt ob, und wenn ja, wie es möglich ist. @Schnapsnase Deine gut gemeinte Anregung funktioniert, so wie StefanT bereits anmerkte, leider nicht. Zum Sachthema: (02.06.2021, 10:07)StefanT schrieb: Variable Texte kann man mit Platzhaltern wie {1} und $lang->sprintf umsetzen.Das geht für mich doch tief in die Programmierung. Soweit getraue ich mich mit meinem Wissensstand nicht einzutauchen. *schäm (02.06.2021, 15:46)StefanT schrieb: In den offiziellen Sprachpaketen gibt es jede Menge Platzhalter, sogar für genau diese Variable.Wie lautet der Platzhalter für genau die gewünschte Variable? Zusatzfrage: Wie erkennt man die von Dir benannten "jede Menge Platzhalter", wie findet man diese heraus um sie verwenden zu "können"? RE: Syntax in Sprachdatei - Gerti - 02.06.2021 Nachtrag: @Schnapsnase Deine Ausführung: "Es macht allenfalls Sinn, wenn dieser Text in dieser Sprachdatei seeehr häufig vorkommt." trifft hierbei genau ins Schwarze. Vor allem wenn die gleiche Sprachdatei in mehreren Forn verwendet werden soll. RE: Syntax in Sprachdatei - Schnapsnase - 02.06.2021 Du lässt uns ja hier im Dunkeln stehen, und niemand weiß eigentlich, was du erreichen willst. Du kannst, wie Stefan bereits angedeutet hat, in der Sprachdatei beispielhaft folgende Platzhalter definieren: PHP-Code: $l['syntax_text'] = 'Sie befindet sich im Forum {1} und Ihre letzter Besuch hier war {2}'; Im Plugin müsste dann an der jenigen Stelle wie folgt definiert werden: PHP-Code: $lang->syntax_text = $lang->sprintf($lang->syntax_text, $mybb->settings['bbname'], $lastvisit); Der Platzhalter {1} wird dann durch "$mybb->settings['bbname']" und der Platzhalter {2} durch "$lastvisit" ersetzt. Ungetestet, aber so sollte das in etwa funktionieren. Ich gehe davon aus, dass Stefan meine Fauxpas berichtigen wird. RE: Syntax in Sprachdatei - Gerti - 03.06.2021 (02.06.2021, 19:20)Schnapsnase schrieb: Du lässt uns ja hier im Dunkeln stehen, und niemand weiß eigentlich, was du erreichen willst.Wie so im Dunkeln stehen lassen? Wenn ich dazu vorab all meine Intensionen, Begründungen etc. offen zur Diskussion legen muss, dann wird es ein unnötig langer Thread, weil dann eh nur über (Un-)Sinn diskutiert wird, aber das eigentliche Ansinnen sich nicht verändert. Letztlich hast Du es mit Deinen angeregten Lösungsvorschlägen (dafür besten Danke) grundsätzlich verstanden was angestrebt wird. Sie analog diese Anleitung. Logisch klingt für mich den von Dir angeregten Lösungsweg: via {1} den Inhalt von $mybb->setting['bbname'] in der Sprachdatei des PlugIns (egal bei welchem Sprachvariablen innerhalb der Sprachdatei) verwenden. Danke für die dazugehörige Anregung. der Test war leider erfolglos (oder ich binde es an der falschen Stelle ein). Die Variable PHP-Code: $mybb->settings['bbname'] $l['syntax_1'] = 'Text {1} Text'; $l['syntax_2'] = 'Text {1} Text'; $l['syntax_3'] = 'Text {1} Text'; usw. benötigt Klick, die gewünschte Variable "pauschal in Form von {1}" für die Sprachdatei des PlugIns über das PlugIn selbst verfügbar zu machen klingt daher absolut logisch. Jetzt stellt sich die Frage: An welcher Stelle z.B. function activate { '$Definition'; } ? muss es wie im PlugIn definiert werden damit der von Dir angeregte Syntax {1} usw. in der Sprachdatei an x-beliebiger Stelle pauschal verwendet werden kann? Nachtrag die von Schnapsnase eingangs vorgeschlagene Lösung mit: PHP-Code: global $mybb; Die ursprünglich Nichfunktion scheint dem geschuldet zu sein, weil anscheinend irgendwo der Syntax boardname schon verwendet wird. Nachdem ich es auf bb_name änderte funktionierte es sofort. Ganz herzlichen Dank für die Lösung |