Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 14. Januar 2022 16:05

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.013
Webseite

[CMS V1] AdvancedContent und Lokalisierung benutzerdefinierter Blocktypen

Moin,

Hat AC eine Schnittstelle für die Lokalisierung von benutzerdefinierten Blocktypen hinterlegt?

Hab in der API dazu nix gefunden... und noch nicht die Zeit gehabt, den kompletten Code zu checken  ops

Offline

#2 14. Januar 2022 17:55

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.408

Re: [CMS V1] AdvancedContent und Lokalisierung benutzerdefinierter Blocktypen

Nö hat es noch nicht.
Du könntest aber, wenn Du schon benutzerdefinierte Blocktypen hast, im Constructor eine Eigenschaft namens "localize_label" (bool) hinzufügen.
Wenn true, dann in der Methode GetProperty() den Rückgabewert vorher mit der Lang() Funktion übersetzen.

	function __construct(&$content_obj, $params = array())
	{
		parent::__construct($content_obj, $params);
		...
		$this->params['localize_label'] = isset($params['localize_label']) && Utils::get_instance()->IsTrue($params['localize_label']);
	}
	
	public function GetProperty($name, $default = '')
	{
		$prop = parent::GetProperty($name, $default);
		if($name == 'label' && $this->params['localize_label'])
		{
			$AC   = &\cms_utils::get_module('AdvancedContent');
			$prop = $AC->Lang($prop);
		}
		return $prop;
	}

Code ist für die AC Version aus dem SVN branch für die 2.0.
Wenn Du eine andere Version nutzt, dann statt der Utils Klasse die Klasse ac_utils verwenden.

Dann kannst Du via module_custom eine eigene Sprachdatei für AC anlegen und jedes Label übersetzen.
Habs noch nicht getestet, aber das ginge vielleicht sogar ohne PHP nur übers Template.
Weiß aber gerade nicht, ob die Backend-Templates nicht doch irgendwie gecached werden.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12.2 unter PHP 7:
cmsms-1.12.2-php7.2-diff.tar.gz (nur die geänderten Dateien)
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 Gestern 16:29

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.013
Webseite

Re: [CMS V1] AdvancedContent und Lokalisierung benutzerdefinierter Blocktypen

Danke für die Anregung.

Ich bin mit meinen Überlegungen gerade an der Stelle, mein Ziel ohne eigenen Blocktypen zu erreichen.

Das Ziel soll sein, mittels AC sowie den Parametern smarty="true" und default=":::test:::" die Felder im Backend vorzubelegen, konkret mit den Metadaten einer Abfrage der YouTube API (Titel, Release-Datum, Beschreibung, Laufzeit, Thumbnail).

Gibt es eine Möglichkeit, die einmal durch die API-Abfrage ermittelten Werte an andere Inhaltsblöcke weiterzureichen?

Ich hatte zum Ausprobieren im Seiten-Template

eingetragen und dann default=":::$test:::" ausprobiert. Output war (leider nur)

.((string)->tpl_vars['test']->value).

Als UDT mit default=":::test:::" und als GCB mit default=":::global_content name='test':::" hingegen funktioniert es.

Würde aber im Ergebnis 5 API-Abfragen pro Seite bedeuten, was ich gern vermeiden möchte...

Beitrag geändert von Andynium (Gestern 17:01)

Offline