Hallo,
ist jetzt endlich erledigt.
Problem war, dass params field in CB nicht editierbar war.
Das Feld muss bei einem aktiven Tab sein und editierbar sein.
Danke nochmal für eure Mühe.
Beiträge von Cluster87
-
-
Hallo,
weiß vielleicht jemand, warum Joomla das bind nicht aufruft?
Das eigentliche json_decode ist ja hier in bind:
https://github.com/ShMaunder/J…om_shldap/tables/host.php
bind wird aber nicht aufgerufen. Somit erfolgt auch kein decode. -
Hi,
habe es jetzt mit einem Codeinsert kurz nach dem Laden eines users in usertable.php gelöst.Codeforeach ( $arr as $kk => $v ) { $this->$kk = $v; if (trim($kk) === 'params' && isset($v) && trim($v) !== '') { $this->$kk = json_decode($this->$kk); } }
params ist ja im JSON Format gespeichert. In UserTable wird der user dann geladen, aber es wird nie ein json_decode ausgeführt. Beim Speichern wird dann wieder das noch nicht decodede encoded.
Warum es nicht decoded wird beim Laden, weiß ich nicht. Eventuell ein Bug oder ein anderer Grund...
Jedenfalls scheint (bisher) so alles zu funktionieren! Vielen Dank für eure Mühe. -
Ja das habe ich probiert, hat aber leider nichts gebracht.
Das [0] {"auth_type":"LDAP","auth_domain":"site.net"} sollte wohl eigentlich gar nicht da sein.
Es gibt nämlich neben 0 index noch auth_type index mit Wert LDAP und auth_domain mit der site (wie es sein sollte)
Daher kommt beim json encode auch das \\\"0\\\":\\\" raus.
Ich werde morgen nochmal versuchen herauszufinden, woher es kommt.
Es passiert aber https://github.com/joomla/volu…ries/joomla/user/user.php zwischen Zeile 665 und 679 -
Hallo,
danke für deine Antwort. Das scheint ein ähnliches Problem zu sein.
Was ich bisher debuggen konnte:
In user.php wird in der save Funktion $this->params = (string) $this->_params;
aufgerufen.
durch das Umwandeln des Strings wird hier ein json encode in Json.php objectToString aufgerufen._params ist ein Registry Type, [0] hat {"auth_type":"LDAP","auth_domain":"site.net"}
-
Hallo zusammen,
Ich benutze joomla 3.6.5, CommunityBuilder 2.1.2 und JMapMyLDAP. Wenn ein Benuzer sein CB Profil verändert (Frontend) und speichert, funktioniert es zwar zunächst, nach einigen malen jedoch nicht mehr.
Das Problem ist, dass die _users Tabelle zugemüllt wird. Konkret Spalte params. Nach dem ersten speichern sieht die Spalte so aus:
{"auth_type":"LDAP","auth_domain":"site.net"}Dann so: {"auth_type":"LDAP","auth_domain":"site.net","0":"{\"auth_type\":\"LDAP\",\"auth_domain\":\"site.net\"}"}
und nach ein paar mal mehr so (stark gekürzt):
"{"auth_type":"LDAP","auth_domain":"site.net","0":"{\"auth_type\":\"LDAP\",\"auth_domain\":\"site.net\",\"0\":\"{\\\"auth_type\\\":\\\"LDAP\\\",\\\"auth_domain\\\":\\\"site.net\\\",\\\"0\\\":\\\"{\\\\\\\"auth_type\\\\\\\":\\\\\\\"LDAP\\\\\\\",\\\\\\\"auth_domain\\\\\\\":\\\\\\\"site.net\\\\\\\",\\\\\\\"0\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"auth_type\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"LDAP\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"auth_domain\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"site.net\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"auth_type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Und nach einiger Zeit ist der Speicher voll, der Nutzer kann sein Profil nicht mehr editieren und ich muss ihn löschen.
Hätte jemand eine Idee warum das System die params Spalte zumüllt?