Zum Inhalt springen

Extension um Tabelle fe_users zu erweitern

Erstellt am 26. Januar 2005 · 2 Antworten · letzte Antwort am 14. Juni 2005

Tags: TCA, Frontend-Benutzer, Frage

ToM04 ·

Hi Leute,

ich brauche in der Eingabemaske für die Erstellung eines Website Benutzers zusätzliche Felder.
Das ist auch nicht das Problem.

Mein Problem liegt darin, dass die neuen Felder automatisch ganz unten in der Maske erscheinen, ich aber diese vor dem Feld "name" haben möchte.

Kann mir bitte jemand helfen.

ToM

Flink ·

Das liegt wohl an dem Code

/**
 * Fetching raw user record with uid=$uid
 *
 * @param	integer		The UID of the backend user to set in ->user
 * @return	array		user record or FALSE
 * @internal
 */
function getRawUserByUid($uid)	{
	$user = FALSE;
	$dbres = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $this->user_table, 'uid='.intval($uid).' '.$this->user_where_clause());
	if ($dbres)	{
		$user = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($dbres);	$GLOBALS['TYPO3_DB']->sql_free_result($dbres);
	}
	return $user;
}

/**
 * Fetching raw user record with username=$name
 *
 * @param	string		The username to look up.
 * @return	array		user record or FALSE
 * @see	t3lib_userAuth::getUserByUid()
 * @internal
 */
function getRawUserByName($name)	{
	$user = FALSE;
	$dbres = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $this->user_table, 'username='.$GLOBALS['TYPO3_DB']->fullQuoteStr($name, $this->user_table).' '.$this->user_where_clause());
	if ($dbres)	{
		$user = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($dbres);	$GLOBALS['TYPO3_DB']->sql_free_result($dbres);
	}
	return $user;
}

in der Datei t3lib/class.t3lib_userauth.php .

Die Felder werden so eingelesen, wie sie in der Datenbank stehen. Über $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_userauth.php'] kann man diesen Code als Hook durch eigenen ersetzen.
Oder die Tabelle als SQL exportieren, darin die Reihenfolge der Felder ändern, und anschließend wieder importieren.
Die bessere Lösung wäre es, den Code von tt_products zu übernehmen. Dort wird in einem eigenen Template ein ###Marker### für die fe_user Felder in einem HTML-Template ausgewertet. Vielleicht sollte man diese Funktionalität in eine eigene Extension auslagern.