Labels -> DRUPAL 7...

am 08.03.2011 - 12:54 Uhr in
Ich versuche schon zwei Tage das Problem zu lösen, und kein Erfolg..
Ich habe ein Modul gemacht, um alle Nodes mit ihren Felder als Liste darzustellen. Problem -> Ich kann den Label eines Feldes nicht finden...Ich habe gefunden, dass jemand hat die Funktion content_fields() benutzt und davon ein widget mit Label genommen, aber bei mir gibt es keine "content_fields() " bei Drupal 7.... Hilfe ;(((. hier mein Code:
<?php
function prepareNodesList($refNode){
$list = array();
//suche alle nodes von type $refNode
$nodeList = db_query('SELECT nid, title
FROM {node}
WHERE type = :refNode', array(':refNode' => $refNode))
->fetchAllKeyed($key_index = 0, $value_index = 1);
foreach($nodeList as $id => $name){ //für jedes node
$node = node_load($id);
$nid = $node->nid;
$list[$nid]['Name'] = $node->title;
foreach($node as $node_attribut => $field_object){ //liste von Attributen
if(substr( $node_attribut,0,6) == 'field_' && $node_attribut != 'field_photo'){
foreach($field_object as $lang => $field){//$lang is language
foreach($field as $delta => $delta_object){ //$key is delta : 0
foreach($delta_object as $key => $value){ //$key is attribut of field
if($key == 'value') $list[$nid][$node_attribut] = $value; //hier anstatt $node_attribut als name des Feldes brauche ich gesetzte Label für gegeben Feld
}
}
}
}
}
}
return $list;
}
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Views?
am 08.03.2011 - 15:10 Uhr
Ich habe ein Modul gemacht, um alle Nodes mit ihren Felder als Liste darzustellen.
Äh, mag ja sein, dass ich nicht verstehe, was du genau machen willst, aber warum nutzt du dafür nicht Views?
Ich benutze kein Views, weil
am 08.03.2011 - 16:18 Uhr
Ich benutze kein Views, weil ich eine totale Anfängerin bin XD und hatte keine Ahnung wie ich das anders mache >.> . Aber jetzt habe ich feld name, feld id, und node id. wie kann ich jetzt mit diesen drei Attributen den Label von Feld kriegen ?
Antwort
am 11.03.2011 - 15:28 Uhr
<?php
$nodeId = arg(1); //node ID
$nodeObject = node_load($nodeId);
foreach($nodeObject as $fieldName => $value){
if (substr( $key,0,6) == 'field_'){
$fieldInfo = field_info_instance('node', $fieldName, $nodeObject->type);
$label = $fieldInfo['label'];
}
}
?>
Es funktioniert jetzt
Views
am 11.03.2011 - 17:23 Uhr
Hallo.
Verwende doch besser [do:views Views]. Das ist erstens wesentlich flexibler, zweitens sicherer (weil 1000-fach getestet) und drittens hier sogar vermutlich deutlich performanter, da sich [do:views Views] einen Aufruf von [api:node_load:7] spart.
Und ein Anfänger, der lieber ein eigenes Modul schreibt, als Views einzusetzen ... wo gibts denn sowas? :D
Stefan
PS: mit
git clone --branch d7v3ui http://git.drupal.org/project/views.git
bekommst Du sogar schon die ganz neue tolle Oberfläche von Views.stBorchert
am 11.03.2011 - 22:12 Uhr
Hallo.
Verwende doch besser [do:views Views]. Das ist erstens wesentlich flexibler, zweitens sicherer (weil 1000-fach getestet) und drittens hier sogar vermutlich deutlich performanter, da sich [do:views Views] einen Aufruf von [api:node_load:7] spart.
Und ein Anfänger, der lieber ein eigenes Modul schreibt, als Views einzusetzen ... wo gibts denn sowas? :D
.
Bei Bachelor Arbeit gibt es sowas :D. Es ist ganz egal jetzt. funktioniert schon fast alles haha
ich habe die Views ein
am 13.03.2011 - 03:57 Uhr
ich habe die Views ein bisschen angeguckt, ich glaube dass sie mir nicht helfen würden, weil ich neuer Fieldtyp definiert habe ohne irgendeine hook -> View.