Seite 1 von 1
Zugriff aus Modulcode auf Plugin Datenfelder
Verfasst: Di 3. Jan 2006, 00:45
von robertb
Hi Forum,
ich habe mir die Plugin-Demos für Frontenduser von Timo
http://www.contenido.org/opensourcecms/ ... do_4_6.zip runtergeladen und installiert.
Aus dem Admin-Frontend funktioniert alles prima, aber ich möchte aus einem Modul per code auf diese erweiterten Felder der frontenduser zugreifen (lesen, schreiben) z.B. auf das Feld "eMail".
Problem ist nur, ich weiss nicht über welche Funktionen, Aufrufe etc. und habe diesbezüglich im Forum entweder die falschen Suchbegriffe verwendet oder ich finde wirklich keine für mich verwendbare Info dazu.
Diesen Thread habe ich gefunden
http://www.contenido.org/forum/viewtopi ... 0435#50435 aber darin finde ich nix passendes.
Hat jemand ein kleines Beispiel für mich wie das geht (suchen, lesen, schreiben in PlugIn Feldern), bzw. was alles dabei zu beachten ist?
Vielen Dank
Robert
Verfasst: Di 3. Jan 2006, 18:48
von HerrB
Grundsätzlich stehen alle diese Daten in der con_properties-Tabelle. Wirf mal einen Blick in den Code des Plugins in contenido/plugins, vielleicht hilft Dir das schon weiter.
Gruß
HerrB
Verfasst: Di 3. Jan 2006, 20:55
von robertb
Hallo HerrB,
ich hatte mir schon deine beiden Module zur Frontend-User-Passwort-Änderung und Passwort Rücksetzen installiert und versucht mit gleichen Methoden ...
Code: Alles auswählen
$frontendusers = new FrontendUserCollection;
$frontendusers->select("idclient = '$client' AND username = '".urlencode($auth->auth[uname])."'");
...
$frontenduser->set("eMail", "test");
$frontenduser->store();
... jetzt auf die zusätzlichen PlugIn Felder zuzugreifen. Es hat keinen Fehler produziert, passiert ist aber auch nix. Dann dachte ich vielleich ist die Feldbezeichnung nicht die richtige oder ich benutze nicht das richtige Objekt oder Methode oder ... oder ...
Na ja, da stecke ich gerade im Moment. Ne Idee was ich falsch mache?
Danke.
Robert
Verfasst: Di 3. Jan 2006, 23:05
von Dodger77
robertb hat geschrieben:Na ja, da stecke ich gerade im Moment. Ne Idee was ich falsch mache?
Ich bin zwar nicht HerrB, aber schau dir mal wirklich die Tabelle "con_properties" an.
Verfasst: Di 3. Jan 2006, 23:11
von robertb
Hi Dodger77,
... bin ich gerade dabei!
Klar da steht das Zeugs drin. Die Frage ist nur wie komme ich (außer mit native SQL) da ran.
Ich habe zwei klassen 'PropertyCollection' und 'PropertyItem' in der class.properties.php gefunden mit deren Methoden es gehen müsste.
Gibt's irgendwo ein fertiges Beispiel für so einen Zugriff? (Mein PHP ist nicht so flüssig wie es vielleicht sein sollte für so einen Task)
CIAO
Robert
Verfasst: Mi 4. Jan 2006, 02:05
von robertb
Hi,
ich hab's so geht's
Code: Alles auswählen
cInclude("classes", "class.properties.php");
$idfrontend = "die userid der die properties zugeordnet sind";
$client = "die ID des Mandanten";
$conprops = new PropertyCollection;
$conprops->select("idclient = '$client' AND itemid= '$idfrontend' AND itemtype = 'idfrontenduser' AND type = 'email' AND name = 'address'"); // item suchen bzw. selektieren
while ($conpropitem = $conprops->next()) {
$myvalue->get("value"); // wert lesen
$newvalue = "test";
$conpropitem->set("value",$newvalue,true); //wert schreiben
$conpropitem->store();
}
In der Tabelle con_properties werden die Felder bei der frontenduser-Erweiterung (PlugIn) wie folgt belegt:
idclient:= ID des Mandanten
itemid:= ID des Users
itemtype: = 'idfrontenduser' //fester immer gleicher Wert
type:= Name der Plugin Erweiterung
name:= sub Feld bei einem Array von Feldern sonst 'address'
value:= der Wert des Eingabefeldes bzw. des Properties
Der zu setzende Parameter '$safe' bei der Funktion 'SetValue' des PropertyItems ist mir allerdings nicht klar was das zu bedeuten hat und was er tut, da auch kein default Wert in der Funktion angegeben ist. Ich habe den einfach mal auf 'true' gesetzt.
Cheers
Robert
Verfasst: Do 5. Jan 2006, 00:06
von HerrB
Solltest Du nicht tun. $safe = true bedeutet, dass der Wert ohne Umwandlung in die DB geschrieben wird, d.h. ein @ bleibt ein @ (statt %40).
Nix gut.
Gruß
HerrB
Verfasst: Fr 6. Jan 2006, 16:25
von robertb
Herzlichen Dank für die Info HerrB!
Gruß
Robert