Multigroup Eintrag von Hand erstellen
Eingetragen von Scentyoo (60)
am 15.11.2009 - 22:00 Uhr in
am 15.11.2009 - 22:00 Uhr in
Hallo,
ich nutze von CCK die Version "6.x-3.x-dev". Dort gibts ja die Multigroups. Ich habe eine Multigruppe erstellt wo man in 5 Felder etwas eintragen kann (Name, UserID, SessionID,...). Nun will ich bei Aufruf einer Seite die Felder UserID und SessionID füllen (die anderen Felder nicht).
Das wollte ich so machen (Code ist nur ein Ausschnitt):
<?php
$node = node_load($nid);
$node->field_match_player_session[]['value'] = $user->sid;
$node->field_match_player_id[]['uid'] = $user->uid;
node_save($node);
?>
Dabei tritt jedoch ein Problem auf, wenn nicht immer alle Felder ausgefüllt wurden. Die Einträge verschieben sich dann. Weiß jemand wie ich das besser löse? Gibt's eine Funktion die das löst?
- Anmelden oder Registrieren um Kommentare zu schreiben
Kann mir niemand
am 16.11.2009 - 14:57 Uhr
Kann mir niemand helfen?
Also eigentlich wollte ich wissen wie man programmiertechnisch mit den Multigroups arbeitet! Eine wichtige Sache wäre das hinzufügen, updaten und löschen von Einträgen einer Multigroup.
Problem
am 16.11.2009 - 15:11 Uhr
Dabei tritt jedoch ein Problem auf, wenn nicht immer alle Felder ausgefüllt wurden.
Aha. Und welches?
Stefan
--
sei nett zu Deinem Themer
Man kann nicht einfach durch
am 16.11.2009 - 17:52 Uhr
Man kann nicht einfach durch verwenden von:
$node->field_match_player_id[]['uid'] = $user->uid;
einen Eintrag hinzufügen, wenn beim vorherigen Eintrag keine UserID eingetragen wurde.
Dies liegt daran, dass die Arrays z.B. so aufgebaut sind (das problematische sind die Keys 0,1,2 bei 3 Einträgen in der Multigroup):
[field_match_player_session] => Array
(
[0] => Array
(
[value] => 4372ba3451vgs5471hwgw3vgwf
)
[1] => Array
(
[value] => NULL
)
[2] => Array
(
[value] => 50j88m84bdt12ebik3jnngb5a3
)
)
[field_match_player_id] => Array
(
[0] => Array
(
[uid] => 4
)
[1] => Array
(
[uid] => 1
)
)
[field_match_player_name] => Array
(
[1] => Array
(
[value] => Chris
)
[2] => Array
(
[value] => NULL
)
)
Wenn man das mit dem oben beschriebenen Befehl machen würde, die UserID beim Eintrag 2 eingetragen, statt einen neuen Eintrag zu erstellen!