<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://de.contaowiki.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Althoffc</id>
		<title>Contao Community Documentation - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Althoffc"/>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Spezial:Beitr%C3%A4ge/Althoffc"/>
		<updated>2026-04-30T19:43:52Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://de.contaowiki.org/Feldname_an_Callback_%C3%BCbergeben</id>
		<title>Feldname an Callback übergeben</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Feldname_an_Callback_%C3%BCbergeben"/>
				<updated>2012-02-27T15:54:57Z</updated>
		
		<summary type="html">&lt;p&gt;Althoffc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Dev_Snippets]]&lt;br /&gt;
Wenn man viele Felder in einem Backend-Formular per load_callback oder save_callback manipulieren will, müsste man eigentlich für jedes Feld eine eigene Callback-Funktion schreiben. Wenn man aber in jedem Fall prinzipiell die selbe Manipulation vornimmt (z.B. die Daten statt aus der Datenbank woanders einzulesen), ist es sinnvoller, immer die selbe Funktion zu nutzen. Leider übergibt Contao diesem callback, aber nicht den Feldnamen.&lt;br /&gt;
&lt;br /&gt;
Dank der PHP Methode &amp;quot;__call&amp;quot; kann man aber der Klasse diese Möglichkeit nachrüsten:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Automatic callback functions for every field&lt;br /&gt;
   * loads or saves the values   &lt;br /&gt;
   */     &lt;br /&gt;
  public function __call($name,$args) {&lt;br /&gt;
    list($type,$field) = explode('_',$name,2);&lt;br /&gt;
    switch($type) {&lt;br /&gt;
      case 'load': &lt;br /&gt;
        return $this-&amp;gt;load_field($field,$args[0]);&lt;br /&gt;
        break;&lt;br /&gt;
      case 'save':&lt;br /&gt;
        return $this-&amp;gt;save_field($field,$args[0]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Methoden &amp;quot;load_field&amp;quot; und &amp;quot;save_field&amp;quot; bekommen nun als ersten Parameter den Feldnamen übergeben. Man muss nur dafür sorgen, dass das callback der Felder der Form load_''feldname'' bzw. save_''feldname'' folgt.&lt;br /&gt;
&lt;br /&gt;
Wenn man z.B. allen Feldern der Tabelle tl_page ein callback mitgeben will, kann man es so machen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
foreach ($GLOBALS['TL_DCA']['tl_page']['fields'] as $strFieldName =&amp;gt; $arrField)&lt;br /&gt;
{&lt;br /&gt;
  $GLOBALS['TL_DCA']['tl_page']['fields'][$strFieldName]['load_callback'][] = array('DMAPublishCallback','load_'.$strFieldName);&lt;br /&gt;
  $GLOBALS['TL_DCA']['tl_page']['fields'][$strFieldName]['save_callback'][] = array('DMAPublishCallback','save_'.$strFieldName);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Althoffc</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Die_erste_Webseite_-_Mehrsprachig</id>
		<title>Die erste Webseite - Mehrsprachig</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Die_erste_Webseite_-_Mehrsprachig"/>
				<updated>2012-02-27T15:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;Althoffc: /* Ergebnis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Erste_Schritte]]&lt;br /&gt;
{{AppliesTo|Version=ab 2.9}}&lt;br /&gt;
=Einleitung=&lt;br /&gt;
Diese Anleitung zeigt, wie man mit Contao eine mehrsprachige Webseite erstellt. Es wird hierfür ausschliesslich die Corefunktionalität verwendet.&lt;br /&gt;
&lt;br /&gt;
Das Ziel dieser Anleitung ist:&lt;br /&gt;
*Das Erstellen einer Webseite in Deutsch und in Englisch. Webseiten-Besucher mit einem deutschen Browser sollen auf die deutsche Webseite geleitet werden; Besucher mit einem englischen Browser oder IRGENDEINEN anderessprachigen Browser sollen auf die englische Webseite geleitet werden.&lt;br /&gt;
&lt;br /&gt;
In dieser Anleitung werden:&lt;br /&gt;
*2 Seitenbäume erstellt: Eine für die deutsche Webseite, eine für die englische.&lt;br /&gt;
&lt;br /&gt;
{{c2g&lt;br /&gt;
|tut1=http://www.contao2go.org/pakete-uebersicht/items/die-erste-webseite-mehrsprachig.html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Voraussetzung=&lt;br /&gt;
Diese Anleitung baut auf der Anleitung [[Die_erste_Webseite|Die erste Webseite]] auf.&lt;br /&gt;
&lt;br /&gt;
=Vorbereitung=&lt;br /&gt;
Bevor man mit der eigentlichen Arbeit beginnt, ist eine kleine &amp;quot;kosmetische Anpassung&amp;quot; erforderlich, welche die Übersichtlichkeit erhöht:&amp;lt;br /&amp;gt;&lt;br /&gt;
Aktuell sieht die Seitenstruktur so aus:&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite-sitestructure.png|Seitenstruktur|frame|center]]&lt;br /&gt;
&lt;br /&gt;
Nun bearbeitet man den ''Startpunkt der Webseite'' (bei dem erster Eintrag &amp;quot;My First Site&amp;quot; auf den Bleistift-Button klicken) und benennt ihn mit deutschen Bezeichnungen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-startpointfix.png|Umbenennung in deutsche Bezeichnungen|frame|center]]&lt;br /&gt;
&lt;br /&gt;
Anschliessend speichert und schliesst man. Nun sollte die Seitenstruktur so aussehen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-sitestructurefix.png|Seitenstruktur nach der Anpassung|frame|center]]&lt;br /&gt;
&lt;br /&gt;
=Funktionsbeschreibung=&lt;br /&gt;
Aktuell existiert eine Webseite in Deutsch. Im ''Startpunkt der Webseite'' wurde im Abschnitt ''DNS-Einstellungen'' unter Sprache ''de'' für Deutsch und ein Haken bei ''Sprachen-Fallback'' gesetzt. Durch diese Einstellungen werden ALLE Besucher auf diese Seite geleitet, egal welche Sprache sie eingestellt haben.&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-dns.png|DNS-Einstellung|frame|center]]&lt;br /&gt;
&lt;br /&gt;
'''Nun, was bedeuten diese Einstellungen?'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Die im Feld ''Sprache'' gesetzte Sprache definiert, in welcher Sprache die Webseite verfasst ist. Wird die Webseite nun durch einen Besucher aufgerufen, liest Contao die Sprache des Browsers aus und vergleicht sie mit der im Feld ''Sprache'' gesetzten Sprache. Stimmen die Sprachen überein, wird diese Webseite ausgegeben. Stimmt sie nicht überein, erhält der Besucher einen Fehlermeldung ''404 - Seite nicht gefunden''.&lt;br /&gt;
&lt;br /&gt;
Hier kommt jetzt die Einstellung ''Sprachen-Fallback'' ins Spiel: Wird bei dieser Einstellung ein Haken gesetzt, wird diese Seite ausgegeben, sollte keine der verfügbaren Webseiten in der Sprache des Benutzers vorhanden sein. Somit wird verhindert, dass der Besucher die Fehlermeldung ''404 - Seite nicht vorhanden'' bekommt. Es sollte mindestens eine Sprache einer Webseite einen Fallback bekommen.&lt;br /&gt;
&lt;br /&gt;
Legt man diese Erkenntnis nun auf die in der [[#Einleitung|Einleitung]] aufgeführten Vorgabe um, bedeutet dies:&lt;br /&gt;
*Man benötigt eine Webseite in Deutsch (ohne Fallback)&lt;br /&gt;
*Man benötigt eine Webseite in Englisch (mit Fallback)&lt;br /&gt;
&lt;br /&gt;
=Anpassen der existierenden Seite=&lt;br /&gt;
Da die deutsche Seite ja schon existiert, besteht die einzige Aufgabe bei dieser nur darin, die richtigen Spracheinstellungen zu setzen. Dazu bearbeitet man wieder den ''Startpunkt der Webseite'' und setzt beim Abschnitt ''DNS-Einstellungen'' die Sprache auf ''de'' (sollte schon gesetzt sein) und entfernt den Haken bei ''Sprachen-Fallback''. Anschliessend speichert und schliesst man.&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-dednssettings.png|Spracheinstellung der deutschen Webseite|frame|center]]&lt;br /&gt;
&lt;br /&gt;
=Erstellen der neuen Seite=&lt;br /&gt;
Die englische Seite muss komplett neu erstellt werden. Im Prinzip funktioniert dies genau gleich wie bei der deutschen Seite. Es muss nur auf die richtige &amp;quot;Verschachtelung&amp;quot; geachtet werden. Der Startpunkt der englischen Seite muss UNTERHALB der existierenden Seite eingefügt werden, NICHT INNERHALB. Die einzelnen Seiten der englischen Seite müssen INNERHALB des englischen Startpunktes sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Da hier immer wieder Fehler gemacht werden, nochmal die grafische Darstellung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Seitenstruktur beider Seiten aufgeklappt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-sitestructureall.png|Seitenstruktur beider Seiten aufgeklappt|frame|center]]&lt;br /&gt;
&lt;br /&gt;
Seitenstruktur beider Seiten (Startpunkte zugeklappt):&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-sitestructureminimized.png|Seitenstruktur bei zugeklappen Startpunkten|frame|center]]&lt;br /&gt;
&lt;br /&gt;
Und noch einmal mit Textdarstellung:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
- Startpunkt deutsche Webseite&lt;br /&gt;
---- Startseite&lt;br /&gt;
---- Über Mich&lt;br /&gt;
---- Meine Eltern&lt;br /&gt;
-------- Mein Vater&lt;br /&gt;
-------- Meine Mutter&lt;br /&gt;
---- Impressum / Kontakt&lt;br /&gt;
- Startpunkt englische Webseite&lt;br /&gt;
---- Home&lt;br /&gt;
---- About Me&lt;br /&gt;
---- My Parents&lt;br /&gt;
-------- My Father&lt;br /&gt;
-------- My Mother&lt;br /&gt;
---- Imprint / Contact&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Startpunkt der englischen Webseite muss im Abschnitt ''DNS-Einstellungen'' bei Sprache ''en'' und ein Haken bei ''Sprachen-Fallback'' gesetzt werden. Anschliessend speichert und schliesst man.&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-endnssettings.png|Spracheinstellungen bei im englischen Startpunkt|frame|center]]&lt;br /&gt;
&lt;br /&gt;
=Artikel=&lt;br /&gt;
Abschliessend müssen wie in der deutschen Seite auch die Artikel in der englischen Seite [[Die_erste_Webseite#Artikel|erstellt]] werden.&lt;br /&gt;
&lt;br /&gt;
=Ergebnis=&lt;br /&gt;
Alle Aufgaben wurden erfüllt. Ruft man nun die Startseite mit einem deutschen Browser auf, kommt die deutsche Webseite.&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite-frontend.png|Die deutsche Webseite|frame|center]]&lt;br /&gt;
&lt;br /&gt;
Ruft man die Startseite mit einem englischen Browser oder einen Browser in irgendeiner anderen Sprache auf, wird die englische Webseite ausgegeben.&lt;br /&gt;
&lt;br /&gt;
[[Datei:firstsite_multilang-englishsite.png|Die englische Webseite|frame|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Hinweis zum Testen=&lt;br /&gt;
Einige Internet-Browser (z.B. Firefox) verwalten eine &amp;quot;Vorzugsliste&amp;quot; der vorrangig anzuzeigenden Sprachen.&lt;br /&gt;
Beim Testen gerade des Sprachen-Fallbacks darauf achten, dass in dieser &amp;quot;Vorzugsliste&amp;quot; des Browsers keine der in der Homepage umgesetzten Sprachen enthalten ist.&lt;br /&gt;
Sobald eine der Sprachen aus der &amp;quot;Vorzugsliste&amp;quot; in der Homepage enthalten ist, kommt der Sprachen-Fallback nicht zum Tragen.&lt;/div&gt;</summary>
		<author><name>Althoffc</name></author>	</entry>

	</feed>