Home / Forum / Problem beim erstellen eines ContentObject

Problem beim erstellen eines ContentObject

Um Zugang zu den Foren zu erhalten, müssen Sie angemeldet sein

Autor Nachricht

Thomas Negeli

Registriert seit: 02.03.2010

Beiträge: 4

Dienstag, 02. März 2010 10:14:15



Hallo liebe Leute,
ich habe ein Problem beim erzeugen von User Content Objekten
Ich muss neue Benutzer dynamisch anlegen, da die Authentifizierung über ein externes Drittsystem läuft. Das funktioniert auch schon soweit. Ich kann Benutzer anlegen mit korrekt ausgefüllten Daten und sie mir dann im Admin Siteaccess ansehen. Die Daten werden dann auch korrekt angezeigt.

Wenn ich jedoch versuche, die gleichen Daten im Frontend auszulesen, sind Integer Werte immer 0, Strings nicht belegt usw.. Ich kann jedoch first_name und Last_name und den useraccount auslesen. Nur die selbst erstellten Attribute in der User Klasse sind immer falsch belegt.

Ich mache folgendes um den Benutzer aus dem System auszulesen:

1. $ezpublishUser = eZUser :: fetchByName('externalUserName')
2. $contentObject = eZContentObject::fetch($ezpublishUser->attribute('contentobject_id'));
3. $dataMap = $contentObject->attribute('data_map');

Jetzt müsste ich, laut meiner Denke, eigentlich das Attribut das ich angelegt hab ('imagine_user_id') per folgendem Befehl auslesen können:

* $imagineUserId = $dataMap['imagine_user_id']->attribute('data_int');

Aber es kommt immer 0 zurück, außer beim Admin Siteaccess.

Der Useraccount wird zuvor mit folgenden Zeilen erzeugt ($params müssen korrekt sein, da das Objekt im Backend ja korrekt angelegt und ausgelesen wird):

1. $contentObject = eZContentFunctions :: createAndPublishObject($params);
2. $existUser = eZUser::fetch($contentObject->attribute('id'));
3. $existUser->setAttribute('login', $login);
4. $existUser->setAttribute('email', $imagineUser['email'] );
5. $existUser->setAttribute('password_hash', md5($password) );
6. $existUser->setAttribute('password_hash_type', eZUser::PASSWORD_HASH_MD5_PASSWORD );
7. $existUser->store();

Ich hab versucht

* eZContentCacheManager :: clearObjectViewCache( $contentObject->attribute('id') );
* eZContentCacheManager :: clearAllContentCache(true);

Hat aber nix gebracht.
Irgendwelche Ideen was ich vergessen haben könnte?

Danke im Voraus und LG
Thomas

Thomas Negeli

Registriert seit: 02.03.2010

Beiträge: 4

Dienstag, 02. März 2010 13:54:45

Neue Erkenntnis: wenn ich die Daten als admin im Backend rein schreibe, kann ich sie auch im Frontend korrekt anzeigen.
Woran liegt das?

Thomas Köhn

Thomas Köhn

Registriert seit: 05.03.2007

Beiträge: 355

Dienstag, 02. März 2010 22:55:46

Melde dich mal als Admin an und schau, welche Informationen dir dann angezeigt werden!? Wenn du mehr als vorher angezeigt bekommst, dann könnte es ein Rechteproblem sein.

Schau auch mal nach, ob deine Objekte einen Ersteller (Owner) besitzen.

Dipl. Ing. (FH) M. Sc. Thomas Köhn

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-NETWORK.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Thomas Negeli

Registriert seit: 02.03.2010

Beiträge: 4

Mittwoch, 03. März 2010 17:45:25

Hallo Thomas,
hat sich erledigt.
Ich weiß zwar jetzt nicht warum, aber es funktioniert seit Heute.
Hab mir das mit den Rechten schon gedacht und gestern angesehen, hat aber nix geändert.
Jetzt hab ich dem Anonymous User Registrierungsrechte gegeben, dann hats funktioniert.
Dann hab ich die Rechte wieder weg genommen, funktioniert noch immer.
Komisch aber wahr.
Danke auf jeden Fall fürs Nachdenken.
Wird sicher nicht die letzte meiner Fragen gewesen sein.
LG
Thomas

Thomas Negeli

Registriert seit: 02.03.2010

Beiträge: 4

Donnerstag, 22. April 2010 11:30:08

Hallo zusammen,
ich muss jetzt content objekte in mehreren Sprachen erzeugen.
CreateAndPublishObject aus den eZContentFunctions erzeugt die Objekte ja in der Standardsprache des Siteaccess.
Soweit sogut.
Ich möchte also ein in der Standardsprache erzeugtes Objekt übersetzen aus meinem PHP skript raus.

Bin ich dabei auf dem richtigen Weg mit der Funktion
createNewVersionIn(...)
des bereits erzeugten Objektes?
Anschließend ein publish der erzeugten Version?

Die Frage stellt sich insofern weil ich die Methode schon versucht hab, allerdings hats nicht geklappt.
Nun bin ich auf Fehlersuche und möchte nur wissen ob der Weg der richtige ist ...

Ein kurzes Ja oder Nein mit Alternative würd mir da schon reichen ...

Danke im Voraus.

Um Zugang zu den Foren zu erhalten, müssen Sie angemeldet sein