Seite 1 von 2

Sprachvariable im Template des Textformater

Verfasst: 09.04.2022 11:08
von IMC
Ich habe ein Problem mit dem Ausgeben von Sprachvariablen im Template des Textformater.

Innerhalb der Grenzen des Standardtemplates $configurator->tags['IMG']->template funktioniert dies mit den Attributen ohne Probleme. Leider nicht in dem Code den ich drumherum hinzugefügt habe.

Ich denke das ich diese über ein core.event selbst setzen muss. Leider habe ich dazu kein Beispiel dazu gefunden. Zur Zeit setze ich die Sprachvariablen mit JS.

Die Fehlerbehaftete HTML-Ausgabe:

Code: Alles auswählen

<div class="imcger-img-wrap">
	<a href="http://up.picr.de/21927574pq.jpg" data-fancybox="image" data-caption="http://up.picr.de/21927574pq.jpg">
		<img src="http://up.picr.de/21927574pq.jpg" class="postimage" alt="Externes Bild" title="Externes Bild">
	</a>
	<span class="imcger-ext-image">
		<span>{$L_IMCGER_EXT_LINK_BILD_SOURCE}</span>: http://up.picr.de/21927574pq.jpg
	</span>
</div>
Die Eingabe von {{ lang("IMCGER_EXT_LINK_BILD_SOURCE") }} führte erwartungsgemäß auch nicht zum Erfolg.

Re: Sprachvariable im Template des Textformater

Verfasst: 09.04.2022 12:33
von Dr.Death
Ist es ein fester Wert aus den Sprachvariablen ?
Wenn ja sollte {{ lang('IMCGER_EXT_LINK_BILD_SOURCE') }} reichen, außer die Sprachvariable IMCGER_EXT_LINK_BILD_SOURCE ist leer...

Ohne den gesamten Code zu sehen kann man schlecht helfen...hast du den Code irgendwo auf Github / Gitlab einsehbar?

Re: Sprachvariable im Template des Textformater

Verfasst: 09.04.2022 14:49
von IMC
https://github.com/IMC-GER/phpBB-External-Links

Habe eben die geänderten Dateien hochgeladen.
Die Sprachvariablen sind im Moment nur in de gesetzt.

Leider geht es nicht mit {{ lang("IMCGER_EXT_LINK_BILD_SOURCE") }} und {$L_IMCGER_EXT_LINK_BILD_SOURCE}
{$L_IMCGER_EXT_LINK_EXT_LINK} für das Title Attribute arbeitet hervorragend.

Betreffender Code ist in der main_listener.php.

Ich bin mit Github noch am lernen und üben.

Re: Sprachvariable im Template des Textformater

Verfasst: 09.04.2022 16:06
von Dr.Death
Ok, du bist noch im php code und nicht im Template.

Die Sprach Variablen werden innerhalb vom PHP Coder normalerweise mit:

$this->language->lang('IMCGER_EXT_LINK_BILD_SOURCE')

Bau diesen Teil mal in deinem Code ein und mache eine Testausgabe mittels:

Code: Alles auswählen

echo  $this->language->lang('IMCGER_EXT_LINK_BILD_SOURCE') . " <-- Dort sollte :Quelle: stehen.";
Oder innerhalb deines Codes:

Code: Alles auswählen

<span>' . $this->language->lang('IMCGER_EXT_LINK_BILD_SOURCE') . '</span>

Re: Sprachvariable im Template des Textformater

Verfasst: 09.04.2022 18:36
von IMC
Hatte ich vergessen zu erwähnen. Das hatte ich auch schon vor längerer Zeit ausprobiert.

Dies geht nicht da das Template / das Event core.text_formatter_s9e_configure_after nur aufgerufen wird wenn die Extension aktiviert wird, oder der Forums Cache aktualisiert wird. Das heist, dass zu dem Zeitpunk der Text in der aktuellen Sprache in das Template geschrieben wird. jedoch bei weiteren Forum aufrufen nicht mehr an die User Sprache angepasst wird.

Dabei fällt mir dass mal wieder versuchen könnte die Sprachvariable als Templatvariable über das Event core.text_formatter_s9e_renderer_setup einzuschleusen. Hat im letzten Jahr nicht funktioniert, da hatte ich aber noch weniger Ahnung von Stringverarbeitung in XPath als jetzt. Ich versuche es einfach nochmal.

Edit:
Hat beim 2. Versuch geklappt. Wenn der Variable ein L_ vorrangestellt wird klappt es nicht.
Ich danke dir dafür das du mich auf die richtige Spur gebracht hast. Die Lösung: <xsl:value-of select="string($S_TEXT_SOURCE)"/>

Re: Sprachvariable im Template des Textformater

Verfasst: 09.04.2022 22:14
von IMC
Zur Vollständigkeit.
Da die Templatevariable mit beginnenden L_ nicht funktionierte habe ich nochmal was ausprobiert.

Es ist tatsächlich möglich die Sprachvariable direkt im Template auszugeben.
<xsl:value-of select="string($L_IMCGER_EXT_LINK_BILD_SOURCE)"/>

Re: Sprachvariable im Template des Textformater

Verfasst: 31.08.2022 20:23
von cpg
Moin,

bei der neuesten Version (23/24 Tage alt) bekomme ich eine Fehlermeldung:

Code: Alles auswählen

class 'imcger/externallinks/event/main_listener' does not have a method 'load_language_on_setup'

Ich habe erstmal wieder die ältere Version aktiviert.

Gruß
cpg

Re: Sprachvariable im Template des Textformater

Verfasst: 31.08.2022 20:43
von IMC
Hi cpg,

welche Version hast du den. Aktuell ist v1.4.2. Dort gibt es die Methode load_language_on_setup nicht mehr. Vielleicht funktioniert es wenn du den Cache löscht.

In kürze kommt eine neue Version mit besserer Erkennung von Bildern und weiteren Codeänderungen. Hatte leider noch keine Zeit um die neue Version ausgiebig zu Testen. Bin jetzt auch wieder das ganze Wochenende unterwegs. :)

Re: Sprachvariable im Template des Textformater

Verfasst: 01.09.2022 08:47
von cpg
Moin Thorsten,

es war die letzte Version von github.
Cache habe ich natürlich gelöscht; der Fehler blieb.
Das ist aber kein Problem.
Da du weitere Aktualisierungen vornimmst, werde ich in ein paar Tagen wieder reinschauen.

Vielen Dank für deine Arbeit! Ich hatte schon gedacht, mir selbst etwas auszudenken, um die externen Links zu kennzeichen; aber da entdeckte ich deine Lösung.

Gruß
cpg

Re: Sprachvariable im Template des Textformater

Verfasst: 06.09.2022 10:42
von IMC
Die Version 1.4.3 steht jetzt zu Download bereit.

Leider konnte ich deine Fehlermeldung nicht nachstellen. Im besten Fall kam eine ähnliche/vergleichbare, aber nur wenn ich den Cache nicht gelöscht hatte.