Zum Inhalt springen

Frontend User Registration - Sprachauswahl reduzieren

Erstellt am 17. November 2009 · 3 Antworten · letzte Antwort am 23. November 2009

Tags: Frontend-Benutzer, Frage

zappzarapp ·

Hallo,

habe eine Website mit der sr_feuser_register. Soweit funktioniert alles, allerdings hätte ich bei der "Sprachauswahl" gerne nur die auf der Website vorhandenen Sprache zur Verfügung (Bevorzugte Sprache: deutsch/englisch).

Kann man das irgendwie einstellen oder muss ich hier ein eigenes neues Feld erstellen, das dann nur die zwei Möglichkeiten hat?

lg Matthias

zappzarapp ·

Hab jetzt ein neues Feld für die fe_users erstellst (syslanguage) und über einen Hook erzeuge ich das Auswahlfeld, dass mir die vorhandenen Websitesprachen als Select-Box übergibt.

zappzarapp ·

Hi (sorry für die späte Antwort),

derzeit ist es noch etwas unsauber, da ich die vorhandene Datei mit den Hook-Beispielen verwende. Auf jeden Fall habe ich in der Datei class.tx_srfeuserregister_hooksHandler.php die Funktion "function addGlobalMarkers(&$markerArray, &$invokingObj)" folgendermaßen erweitert:

function addGlobalMarkers(&$markerArray, &$invokingObj)	{
// SYS Languages
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*','sys_language','');
$sLanguage = '<select id="tx-srfeuserregister-pi1-tx_healthcare_syslanguage" name="FE[fe_users][tx_healthcare_syslanguage]">';
$sLanguage.= '<option value="0">Deutsch</option>';

while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
	$sLanguage.= '<option value="'.$row['uid'].'">'.$row['title'].'</option>';
}
$sLanguage.= '</select>';
$markerArray['###SELECTOR_LANGUAGE_NEW###'] = $sLanguage;	
	}

Ich lese also meine sys_languages aus und die default-Sprache (in meinem Fall deutsch) hänge ich an den Anfang.. geht evtl. auch sauberer aber für meine Anwendung vollkommen ausreichend. Vor allem sollte ich die Hook-Datei noch aus der Extension rausnehmen da ich sie sonst mit einem Update der Extension überschreibe..

Den Marker ###SELECTOR_LANGUAGE_NEW### kann man dann einfach in den Templates verwenden.

lg