Zum Inhalt springen

Werte an userFunc uebergeben?

Erstellt am 14. März 2007 · 6 Antworten · letzte Antwort am 14. März 2007

Tags: PHP, Frage

Fabian-K ·

Hi.

Ich moechte mehrere Werte an eine [userFunc..] uebergeben.

Wie mache ich das?

Was ich bisher habe:
TypoScript Setup

[userFunc = user_match(TSFE:fe_user|user|usergroup, 100)]
  ..ANWEISUNGEN..
[end]

(Wenn die Rueckgabe "true" ist, fuehre ANWEISUNGEN aus.)

localconf.php

function user_match($idlist, $okID){
	$gIDlist = split(",", $idlist);
	$return = false;
	$i = 0;
	while($i < count($gIDlist)){
		if($gIDlist[$i] == $okID){
			$return = true;
		};
		$i++;
	}
	return $return;
}

(Ueberpruefe, ob eine der FE-Usergruppen in der sich aktuelle Users befindet, die ID 100 hat.)

Ich weiss, mein Script sieht noch ziemlich #?ß*+#&$§ aus, aber das kommt noch ;-)

Ich bekomme folgende zwei Fehlermeldungen beim Ausfuehren:

Warning: Missing argument 2 for user_match() in /html/typo3conf/localconf.php on line 247

Warning: Missing argument 2 for user_match() in /html/typo3conf/localconf.php on line 247

Zeile 247 ist die Zeile

function user_match($idlist, $okID){

Woran liegt das?
Wie uebergebe ich die Werte richtig an das PHP-Script?

mfg
Fabian

Fabian-K ·

Naja.. Wenn die Werte schon 'da sind', wieso dann erneut holen? ;-)
(Thema: Ressourcen)

Aber okay, du hast wie immer recht.
Bevor ich es garnicht hinbekomme, mache ich es lieber so :-)

just2b ·

da kannst du nur deine Ressourcen meinen, denn die 1 kleine Abfrage macht wirklich nichts aus 😉

georg

Fabian-K ·

Ja, okay, du hast gewonnen ^^

Hab mir etwas zusammengebastelt,
aber ich bekomme immernoch folgende Fehlermeldungen:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /html/typo3conf/localconf.php on line 246

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /html/typo3conf/localconf.php on line 246

Fatal error: Cannot redeclare user_match() (previously declared in /html/typo3conf/localconf.php:243) in /html/typo3conf/localconf.php on line 243

(Zeile 243 ist die unten stehende "function user_match($cmd){"-Zeile, also die erste Zeile in meinem PHP-Script)

[userFunc = user_match(checkUserGroupAccess)]
...
[end]
function user_match($cmd){
	switch($cmd){
		case "checkUserGroupAccess":
			mysql_connect($typo_db_host, $typo_db_username, $typo_db_password);
			mysql_select_db($typo_db);
			
			$actFeUserID = $GLOBALS['TSFE']->fe_user->user['uid'];
			$query = "SELECT usergroup FROM fe_users WHERE uid = " . $actFeUserID;
			$result = mysql_query($query);
			$return = false;
			
			while ($usrTab = mysql_fetch_array($result)) {
				$gIDlist = split(",", $usrTab['usergroup']);
				$i = 0;
				while($i < count($gIDlist)){
					if($gIDlist[$i] == $okID){
						$return = true;
					};
					$i++;
				}
			}
			break;
	}
	return $return;
}

(Nach dem 'Hauptsache es laeuft erstmal'-Prinzip zusammengebastelt..)

Ich dreh gleich durch o.O

Fabian-K ·

Jetzt kommt:

Fatal error: Cannot redeclare user_match() (previously declared in /html/typo3conf/localconf.php:243) in /html/typo3conf/localconf.php on line 243

Aber ich habe sonst keine user_match in verwendung :-(