CCK Field themen : node_edit_template
am 05.10.2010 - 11:34 Uhr in
Gerade stecke ich an einem Problem, wo mir die Übersicht fehlt.
Ich habe mit den CCK Feldern ein Benutzerprofil erstellt, dieses Profil enthält
auch einen Dateityp "Datei" in Form von Fotos.
CCK Contenttyp about_me
Feldbezeichnung user_album
Die Standardansicht habe ich durch eine node-about_me.edit.tpl.php ersetzt.
In der template.php habe ich die neue tpl Datei bekannt gemacht
function waffles_theme() {
return array(
'user_profile_form' => array(
'arguments' => array('form' => NULL),
'template' => 'user-profile-form',
),
'about_me_node_form' => array(
'arguments' => array('form' => NULL),
'template' => 'node-about_me-edit',
)
);
}
In der node-about_me.edit.tpl.php Datei bekomme ich Zugriff auf die einzelnen Felder
<?php print drupal_render($form['field_language']); ?><br>
<?php print drupal_render($form['field_bday']); ?><br>
<?php print drupal_render($form['field_own_size']); ?><br>
und es gibt auch das Feld <?php print drupal_render($form['field_user_album']); ?><br />
das
auch angezeigt wird.
Klappt alles.
Meine Frage wie bekomme ich Zugriff auf die einzelnen Elemente von 'field_user_album'.
Ich habe schon einiges probiert und finde nicht die Stelle, wo ich überhaupt ansetzen muss, damit ich auf
die einzelnen Elemente zugreifen kann. Diese Elemente möchte ich dann in der node-about_me.edit.tpl.php
entsprechend dem Layout platzieren.
Kann mir jemand einen Tipp geben, wo ich überhaupt suchen muss oder besser was ich falsch mache?
Danke
Katasun
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst mit
am 05.10.2010 - 20:30 Uhr
Du kannst mit
$node->field_user_album[0]['value']
auf die Felder zugreifen.Ich habe zum Beispiel bei mir einen Gallery-Node mit einem CCK-Feld das ein Layout festlegt. Das Frage ich in meinem node-template so ab:
$node->field_gallery_layout[0]['value']
Du kannst mit
am 05.10.2010 - 20:33 Uhr
Du kannst mit
$node->field_user_album[0]['value']
auf die Felder zugreifen.Ich habe zum Beispiel bei mir einen Gallery-Node mit einem CCK-Feld das ein Layout festlegt. Das Frage ich in meinem node-template so ab:
$node->field_gallery_layout[0]['value']
Am besten erstmal den Inhalt
am 05.10.2010 - 20:49 Uhr
Am besten erstmal den Inhalt des Objektes $node anzeigen lassen:
<?php
print_r($node)
?>
Dann hast du eine Übersicht.
Mit dem devel-Modul noch komfortabler und strukturierter:
<?php
dpr($node)
?>
Ich habe auch eine Seite auf
am 06.10.2010 - 03:42 Uhr
Ich habe auch eine Seite auf der der Inhalt angezeigt wird. Dort kann ich
auch wie beschrieben auf den Inhalt des Arrays "field_user_album" zugreifen.
Aber ich brauche noch die Lösung für die Bearbeitung des Formulars.
<?php print $node->field_user_album[0]['value']; ?><br>
<?php print $form->field_user_album[0]['value']; ?><br>
<?php print_r($node) ?>
<?php dpr($node) ?>
gibt keine Ausgabe. Ich benutze Forminspect vom Develmodul und habe dort
das Array gelistet. Aber mit dem vorgeschlagenen Lösungen kann ich es noch
nicht greifen.
field_user_album (Array, 18 elements)
#theme (String, 23 characters ) content_multiple_values
#title (String, 14 characters ) Benutzer Album
#required (String, 1 characters ) 0
#description (String, 137 characters ) Hier kannst Du einige persönliche Fotos ausste...
Hier kannst Du einige persönliche Fotos ausstellen. Suche Dir die schönsten Ausschnitte aus Deinen Fotos und speichere dann die Seite.
0 (Array, 12 elements)
#title (String, 0 characters )
#type (String, 22 characters ) imagefield_crop_widget | (Callback) imagefield_crop_widget();
#default_value (Array, 10 elements)
fid (String, 3 characters ) 184
list (String, 1 characters ) 1
data (Array, 3 elements)
crop (Array, 5 elements)
x (String, 3 characters ) 200
y (String, 2 characters ) 56
width (String, 4 characters ) 1144
height (String, 4 characters ) 1144
changed (String, 1 characters ) 1
alt (String, 18 characters ) katasun Albumfotos
title (String, 13 characters ) katasun Fotos
uid (String, 1 characters ) 1
filename (String, 12 characters ) IMAG0178.jpg
filepath (String, 46 characters ) sites/default/files/album/katasun/IMAG0178.jpg
filemime (String, 10 characters ) image/jpeg
filesize (String, 6 characters ) 652303
status (String, 1 characters ) 1
timestamp (String, 10 characters ) 1286096369
#upload_validators (Array, 5 elements)
filefield_validate_associate_field (Array, 1 element)
0 (Array, 16 elements)
field_name (String, 16 characters ) field_user_album
type_name (String, 8 characters ) about_me
.....................
katasun schrieb Aber ich
am 06.10.2010 - 08:46 Uhr
Aber ich brauche noch die Lösung für die Bearbeitung des Formulars.
Was meinst du damit?
Auflösen des Arrays eines file_fields
am 06.10.2010 - 10:04 Uhr
Danke erstmal,
mit
$vars['field_user_album0'] = drupal_render($vars['form']['field_user_album'][0]);
kann ich die einzelnen Array des Feldes darstellen. Das ganze steht in meiner Template.php und
es gibt eine passende meine_node_form.tpl.php.
Allerdings gibt es ein neues Problem für meinen Kenntnisstand. Ein Filefield in Drupal enthält weitere Arrayinformationen,
auf die ich auch zugreifen will (fid, filepath, weight, title, ...).
Also die Gewichtung, Title, ... sollen mit unset entfernt werden. Und was spezielles, die Inhalte des Arrays werden
nicht komplett übernommen. Die "tabledrop-Funktion" (also die kleinen Kreuze vor einer Zeile ) wird nicht mit übernommen,
sondern erst in der
drupal_render($form)
ausgegeben.Das habe ich jetzt auch schon probiert aber ich weiss
wieder nicht wie ich da rankomme und warum die "tabledrop-Funktion" ein Spezialfall ist.
Ich dachte mir was in Richtung
unset($vars['form']['field_user_album'][0]['#title']);
hat aber so noch nicht geklappt.
ein unset auf
unset($vars['form']['field_user_album']);
funktioniert aber.Soweit klappt es ja im Groben nur wie ich genau auch die Werte innerhalb des Arrays
zugreifen muss fehlt mir noch.
Katasun