Filefield Inhalt ausserhalb der zugehörigen node ausgeben
Eingetragen von brenes (21)
am 28.07.2008 - 17:58 Uhr in
am 28.07.2008 - 17:58 Uhr in
Ich versuche ein über das Ckk Filefield modul hochgeladenes PDF, ausserhalb der zugehörigen node auszugeben. Wie könnte ich es nun beispielsweise in der sidebar oder in einer anderen Region unterbringen? Mit
<?php
print $node->content['field_pdf_datei']['#value'];
?>
Beste Grüße
- Anmelden oder Registrieren um Kommentare zu schreiben
filefield
am 28.07.2008 - 18:29 Uhr
Gibt es ähnliche Möglichkeiten für die page.tpl.php?
Klar doch (node_load):
<?php
// Mal angenommen, das pdf gehoert zum node mit der ID 2.
$nd = node_load(2);
print $nd->content['field_pdf_datei']['#value'];
?>
Dann noch entsprechend Deiner evtln. Wünsche einen Link zum Herunterladen darumbauen und fertig.
Ungetestet, daher ohne jeglichen Anspruch auf Vollständig-/Richtigkeit :-)
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke erstmal für
am 28.07.2008 - 21:25 Uhr
Danke erstmal für den Verweis zur node_load Funktion. Bis jetzt habe ich die Funktion leider noch nicht zum Laufen gebracht. Das müsste doch eigentlich von jeder Stelle in meinem Template aus funktionieren - Blöcke und tpl.php dateien mit eingeschlossen. Oder?
beste grüße
ben
node_load und tpl
am 28.07.2008 - 21:50 Uhr
Eigentlich(!) müsste es funktionieren. Gibts denn irgendwelche Fehlermeldungen?
Mach mal
<?php
print_r(node_load(2)); // um mal bei meinem Beispiel mit der ID 2 zu bleiben
?>
Was kommt denn da?
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Fehlermeldungen gibt es
am 28.07.2008 - 22:41 Uhr
Fehlermeldungen gibt es keine - es erscheint einfach nichts.
Wenn ich deinen test Code in der page.tpl.php in die sidebar einfüge und ID 82 (die mit dem PDF field) eingebe bekomme ich den folgenden Code in der sidebar ausgegeben:
stdClass Object ( [nid] => 82 [vid] => 82 [type] => bildseite [status] => 1 [created] => 1217256015 [changed] => 1217280385 [comment] => 0 [promote] => 1 [sticky] => 0 [revision_timestamp] => 1217280385 [title] => PDF-Test [body] => [teaser] => [log] => [format] => 3 [uid] => 1 [name] => brenes [picture] => files/pictures/picture-1.jpg [data] => a:2:{s:14:"picture_delete";s:0:"";s:14:"picture_upload";s:0:"";} [field_bildfeld] => Array ( [0] => Array ( [fid] => 0 [title] => [alt] => ) ) [field_pdf_datei] => Array ( [0] => Array ( [fid] => 28 [description] => test.pdf [list] => 1 [nid] => 82 [filename] => test.pdf [filepath] => files/pdf/test.pdf [filemime] => application/pdf [filesize] => 8622612 ) [1] => Array ( [fid] => 29 [description] => test2.pdf [list] => 1 [nid] => 82 [filename] => test2.pdf [filepath] => files/pdf/test2.pdf [filemime] => application/pdf [filesize] => 223179 ) ) [field_txt] => Array ( [0] => Array ( [value] => ) ) [0] => [taxonomy] => Array ( ) )
Scheint mir alles aufgeführt zu sein was in der node enthalten ist. Wenn ich nun an der selben Stelle den Code von oben mit entsprechender node ID eingebe sollte er mir ja eigentlich das cck Feld mit der PDF datei ausgeben - da tut sich jedoch nichts.
Pfad zur Datei
am 29.07.2008 - 09:09 Uhr
//snip//
Scheint mir alles aufgeführt zu sein was in der node enthalten ist. Wenn ich nun an der selben Stelle den Code von oben mit entsprechender node ID eingebe sollte er mir ja eigentlich das cck Feld mit der PDF datei ausgeben - da tut sich jedoch nichts.
Ah, nee. Denkfehler beiderseits :-)
Nochmal die Ausgabe vom node:
[field_pdf_datei] => Array (
[0] => Array (
[fid] => 28
[description] => test.pdf
[list] => 1
[nid] => 82
[filename] => test.pdf
[filepath] => files/pdf/test.pdf
[filemime] => application/pdf
[filesize] => 8622612
)
[1] => Array (
[fid] => 29
[description] => test2.pdf
[list] => 1
[nid] => 82
[filename] => test2.pdf
[filepath] => files/pdf/test2.pdf
[filemime] => application/pdf
[filesize] => 223179
)
)
Du hast also zwei Dateien, die an node 82 angehängt sind.
Mal angenommen, Du möchtest zu jeder Datei einen Link auf der page.tpl.php haben, mit dem man die Datei öffnen kann.
Dann musst Du folgenden Code einfügen:
<?php
$nd = node_load(82);
foreach($nd->field_pdf_datei as $key => $file) {
print '<a href="'. $file['filepath'] .'" title="'. $file['description'] .'">'. $file['name'] .'</a><br />';
}
?>
Das sollte dann ausgeben:
<a href="files/pdf/test.pdf" title="test.pdf">test.pdf</a><br />
<a href="files/pdf/test2.pdf" title="test2.pdf">test2.pdf</a><br />
Viel Spass beim Testen,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Super danke das klappt schon
am 29.07.2008 - 22:09 Uhr
Super danke das klappt schon mal soweit, dass ich die links in der Sidebar im Quelltext finde. Jedoch scheint das mit dem
'. $file['name'] .'
noch nicht zu klappen. Ich bekomme nur den ungeschlossenen Link Tag ausgegeben.<a title="test.pdf" href="files/pdf/test.pdf"/>
der letzte part mit dem link zur Datei fehlt. Dann noch was: Wäre es nun möglich in der Funktion zu sagen wenn node xy aktiv, dann gebe mir bitte wenn vorhanden zugehöriges filefield xy an gewünschter Stelle im Template aus? Das würde das Ganze nämlich dynamischer machen und mir die verweise auf die Node ID ersparen.Beste Grüße
ben
Nur mal so als Anregung.
am 30.07.2008 - 02:57 Uhr
@brenes,
bist Du auch mal auf die Idee gekommen selbst zu testen anstatt zu fragen?
Z. Bsp. setze eine Node auf unveroeffentlicht und gib von dieser Node wie voran mit print_r() das Nodeobject aus. Und dann sehe mal hin ob Du erkennen kannst woran man eine nicht veroeffentlichte Node erkennt.
Nur mal so als Anregung.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
und noch eine Anregung
am 30.07.2008 - 07:58 Uhr
Moin!
Wenn Du in meinen vorangegangenen Beitrag schaust und da mal die Ausgabe des node betrachtest, wirst Du schnell sehen, dass ich mich vertan habe:
$file['name']
gibts nicht. Das muss$file['filename']
heissen.Tipp zur Dynamisierung (komisches Wort): arg().
Damit kannst Du die Id des node auslesen (so denn vorhanden).
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke für die Anregungen
am 03.08.2008 - 14:53 Uhr
Sorry für meine späte Antwort, war für ein paar Tage offline.
Das ganze funktioniert nun, ich bekomme wie erwünscht die beiden Dateien an beliebiger Stelle im Template ausgegeben. Danke. Zusätzlich habe ich grade ein Modul gefunden, dass im Prinzip genau das tut was ich mir vorgestellt habe. Nämlich die CKK Felder der aktuellen Seite als Blöcke auszugeben. Das Modul gibts hier http://drupal.org/project/cck_blocks
Danke & beste Grüße
Ben