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
warum holst du dir die Werte nicht einfach neu in der Datenbank mit der Id des users?
georg
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 :-)
da kannst du nur deine Ressourcen meinen, denn die 1 kleine Abfrage macht wirklich nichts aus 😉
georg
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
du brauchst keine neue connection aufmachen!
georg
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 :-(