anhang im block [gelöst]
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 20.03.2011 - 18:50 Uhr in
hallo,
ich möchte gerne meine gelisteten anhänge in den blocks der jeweiligen nodes anzeigen lassen.
hab dazu folgendes gefunden:
link
das scheint jedoch bei d7 nicht zu funktionieren, ich bekomme da folgende fehlermeldung:
Notice: Undefined property: stdClass::$files in eval() (Zeile 4 von /var/www/web417/html/cms/modules/php/php.module(75) : eval()'d code).
Warning: Invalid argument supplied for foreach() in eval() (Zeile 5 von /var/www/web417/html/cms/modules/php/php.module(75) : eval()'d code).
kann mir einer sagen wie ich das ganze umsetzen kann?
gruß knork
- Anmelden oder Registrieren um Kommentare zu schreiben
Dateien auflisten
am 21.03.2011 - 09:26 Uhr
Hallo.
... das scheint jedoch bei d7 nicht zu funktionieren, ich bekomme da folgende fehlermeldung:...
Kein Wunder, der Code ist ja auch für Drupal 4.7.x, bzw. Drupal 5.x.
In einem Block kannst Du die Dateien eines Beitrags so auflisten:
<?php
// Get node object.
$node = menu_get_object();
if (isset($node->files) && user_access('view uploaded files')) {
$items = array();
foreach ($node->files as $file) {
$items[] = array(
'title' => $file->filename,
'href' => file_create_url($file->filepath),
);
}
print theme('links', $items);
}
?>
hth,
Stefan
danke für deine hilfe! das
am 21.03.2011 - 09:57 Uhr
danke für deine hilfe! das der code nicht für drupal 7 ist hab ich schon gelesen, jedoch war ich trozdem nicht in der lage mir zu helfen.
hab den code gerade in nen block eingebaut und jetzt wird dieser nicht mehr angezeigt. hast du ne idee dazu?
Anhänge
am 21.03.2011 - 10:04 Uhr
Habs jetzt mal bei mir getestet: http://screencast.com/t/rUKfiB6QBZ
Funktioniert also wunderbar.
hm... sobald ich nur den
am 21.03.2011 - 10:42 Uhr
hm... sobald ich nur den php-code im block habe, wird dieser block überhaupt nicht mehr angezeigt. steh da grad total aufm schlauch...
könnte das mit dem modul pathauto zusammenhängen?
in beiträgen wzeigt der php-code auch nichts an... hab aber das eingabeformat richtig gewählt.
PHP
am 21.03.2011 - 10:37 Uhr
Hast Du das PHP-Modul aktiviert und dann als Eingabeformat auch PHP ausgewählt?
ja hab ich
am 21.03.2011 - 10:43 Uhr
ja hab ich
Screenshot
am 21.03.2011 - 10:47 Uhr
Zeig mal bitte einen Screenshot der Block-Konfiguration.
wie gesagt, wenn ich den code
am 21.03.2011 - 11:02 Uhr
wie gesagt, wenn ich den code in einen beitrag einfüge passiert auch nichts.
Anhänge
am 21.03.2011 - 11:18 Uhr
Ach sorry. Das ist ja Drupal 7.
<?php
$node = menu_get_object();
if (isset($node->field_file)) {
$files = field_get_items('node', $node, 'field_file');
$items = array();
foreach ($files as $file) {
$items[] = array(
'title' => $file['filename'],
'href' => file_create_url($file['uri']),
);
}
print theme('links', array('links' => $items));
}
?>
Ergebnis: http://screencast.com/t/ecPBdqNOrZ
hth,
Stefan
vielen dank für die weitere
am 21.03.2011 - 12:03 Uhr
vielen dank für die weitere mühe, aber im ergebnis ist es bisher das selbe. egal ob ich den code in den beitrag direkt einbaue oder in einen block. mir wird nichts angezeigt....
hoi, versuch mal
am 21.03.2011 - 12:31 Uhr
hoi, versuch mal http://drupal.org/project/cck_blocks
damit kannst Du dem Feld einen Block zuweisen.
Andreas
Debug
am 21.03.2011 - 12:48 Uhr
Installiere Dir doch mal das Modul [do:devel Devel] und probiere Folgendes:
<?php
$node = menu_get_object();
dsm($node);
?>
Was kommt da?
Auf welcher Seite erwartest Du den Block?
also der block soll auf jeder
am 21.03.2011 - 13:06 Uhr
also der block soll auf jeder seite sichtbar sein. und auf den seiten die anhänge haben sollen diese dann dort angezeigt werden.
hab das modul installiert und folgendes ist dabei heraus gekommen:
Called from /var/www/web417/html/cms/modules/php/php.module(75) : eval()'d code, line 3
Screenshot
am 21.03.2011 - 13:18 Uhr
Bitte einen Screenshot machen!
Bei mir ergibt das sowas (aufgeklappt): http://screencast.com/t/6z7ommUhb
Nur noch mal zur Sicherheit:
* der Block ist einer Region zugeordnet?
* an den Inhalt wurden Dateien angehängt?
der block ist in sidebar
am 21.03.2011 - 13:38 Uhr
der block ist in sidebar first und eine datei wurde angehangen...
Feldname
am 21.03.2011 - 14:25 Uhr
Das Feld heisst bei Dir "field_anhang" und nicht, wie in meinem Beispiel "field_file".
ausgezeichnet. wenn ich so
am 21.03.2011 - 15:41 Uhr
ausgezeichnet. wenn ich so recht überlege; ich hab das feld auch selbst so benannt, aber da ich mich mit php nicht auskenne bin ich den code im einzelnen nicht durchgegangen.
nochmals vielen dank für deine hilfe!!!
gruß
knork
Ich würde zur Vorsicht raten,
am 21.03.2011 - 17:22 Uhr
Ich würde zur Vorsicht raten, wenn es darum geht, PHP-Code einfach mal so zu kopieren, ohne zu wissen, was er eigentlich macht. Stefan kann man da sicher vertrauen, aber allgemein solltest du mit sowas vorsichtig sein. Mit PHP kann man auch ein paar böse Dinge anstellen.
also soweit funktioniert das
am 23.03.2011 - 11:48 Uhr
also soweit funktioniert das mit dem block und den anhängen.
wenn jetzt ein artikel keinen anhang hat bekomme ich folgende fehlermeldung
Warning: Invalid argument supplied for foreach() in eval() (Zeile 7
wie kann ich das denn umgehen?
zusätzliche if-Abfrage ob
am 23.03.2011 - 11:55 Uhr
zusätzliche if-Abfrage ob $files gefüllt ist:
<?php
if ($files) {
foreach ($files as $file) {
$items[] = array(
'title' => $file['filename'],
'href' => file_create_url($file['uri']),
);
}
}
?>
top, das macht die sache
am 23.03.2011 - 14:56 Uhr
top, das macht die sache perfekt!!
gruß knork