Dateianhänge aus Nodes in Block auslagern
Eingetragen von headkit (514)
am 30.10.2007 - 12:28 Uhr in
am 30.10.2007 - 12:28 Uhr in
Hi Leute!
Ich würde gerne Dateianhänge und Links aus Nodes in einen Block auslagern. Also nicht nur im Block darstellen, sondern auch aus der Nodedarstellung aussperren.
Wie kann man das erreichen?
Danke!
- Anmelden oder Registrieren um Kommentare zu schreiben
Aus der Nodedarstellung
am 30.10.2007 - 14:23 Uhr
Aus der Nodedarstellung kannst du sie einfach ausblenden wenn du das Häkchen "Alle Anzeigen" vor der jeweiligen Datei rausmachst.
Für den Block: http://drupal.org/node/121379#comment-215995
gruß pebosi
gruß pebosi
--
https://pebosi.net
stümmt, danke!
am 30.10.2007 - 16:36 Uhr
stümmt, danke!
der dargestellte code aus deinem link, wo muss ich den reinsetzen?
und wenn ich die links ebenfalls aus der nodedarstellung in einen block setzen möchte?
müsste ich sie dann in der node.tpl.php löschen? aber wie bekomme ich die dann in nen block?
danke!!
Den Code einfach in den
am 30.10.2007 - 16:59 Uhr
Den Code einfach in den Block und als Eingabeformat PHP wählen.
gruß pebosi
gruß pebosi
--
https://pebosi.net
hab ich gemacht. nen neuen
am 30.10.2007 - 17:42 Uhr
hab ich gemacht. nen neuen block, den code rein, php zugelassen.
nix passiert.
:-(
Sicher das du den richtigen
am 31.10.2007 - 09:27 Uhr
Sicher das du den richtigen Code genommen hast? was wird denn bei dem BLock ausgegeben?
gruß pebosi
gruß pebosi
--
https://pebosi.net
es erscheint nichts.
am 31.10.2007 - 12:23 Uhr
es erscheint nichts.
Wird nicht mal der
am 31.10.2007 - 12:46 Uhr
Wird nicht mal der Blocktitel gezeigt? Befindest du dich denn auf einer Node mit Anhängen?
gruß pebosi
gruß pebosi
--
https://pebosi.net
nicht mal der blocktitel
am 31.10.2007 - 13:33 Uhr
nicht mal der blocktitel wird angezeigt.
komisch.
und den code hab ich eingebunden
<?php
if (arg(0) == 'node' && is_numeric(arg(1)) && is_null(arg(2))) {
$nid = (int)arg(1);
// We load the node and the attached files by the nid (here nid = $nid)
$files = upload_load(node_load($nid));
// and use the themeing function of the upload module to print the attachment table
$output = theme_upload_attachments($files);
return $output;
}
?>
was heisst denn bei den berechtigungen "PHP für die Sichtbarkeit von Blöcken verwenden"?
...
damit gehts jedenfalls auch nicht.
print $output
am 31.10.2007 - 14:46 Uhr
Versuche mal in der letzten Zeile statt return $output; print $output;
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
gute idee.
am 01.11.2007 - 12:01 Uhr
gute idee.
wenn ich als anderer user eingeloggt bin gehts auch. aber die anhänge werden trotzdem am ende der seite angezeigt. und nehm ich die "alle anzeigen" haken weg, dann gibts auch keinen ausgelagerten block mehr...
mit return gehts übrigens auch.
ich muss mir mal nen Admin-User zusätzlich anlegen. Daran lags wohl. Ich hatte einigen Userrollen die Ansicht erlaubt und damit wohl dem Superadmin indirekt verboten. Komisch, ist doch bei anderen Blöcken auch nicht so, oder?
Sieht und darf man als Superadmin (User Eins) nicht eigentlich immer alles?
So, nun werden aber die Anhänge doppelt gezeigt: im Block und am Ende der Seite.
Ausserdem würde ich gern die Links ebenfalls auslagern. Kann man da nicht nen ähnlichen code nehmen?
Hast Du da zufällig auch ne Idee?
..Nachtrag...: Ich versuchs mal mit dem Modul "Related Links" (http://drupal.org/project/relatedlinks)...
Vielen Dank für Deine Hilfe!
Fuer die Funktion
am 01.11.2007 - 12:55 Uhr
Fuer die Funktion theme_upload_attachments() kannst Du ein Template erstellen.
In diesem Template kannst Du arg(0) abfragen. Ist arg(0) = node wird im Template nichts ausgegeben. Damit wuerdest Du am Ende der Seiten keine Attachements mehr sehen sondern nur noch im Block.
http://api.drupal.org/api/function/theme_upload_attachments/5
Die Links koennen ueber die Funktion theme_links() ein Template bekommen. Um die Links nur im Block anzuzeigen kannst Du nach dem gleichen Schema verfahren. Ist arg(0) = node dann keine Anzeige im Template.
http://api.drupal.org/api/function/theme_links/5
Bevor Du anfaengst
Mach mal im Block-Template eine Ausgabe: print arg(0)
Wird im Block dadurch node ausgegeben funktioniert voran beschriebenes nicht. In dem Falle muesste man in den Templates die Abfrage
if (arg(0) == 'node')
aendern.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
vielen dank, das bringt mich
am 01.11.2007 - 13:08 Uhr
vielen dank, das bringt mich große schritte weiter.
was bedeutet denn dieses arg? ist das so ne standardabfrage von blocks, was gerade requested wird?
Mit der arg(0) abfrage
am 01.11.2007 - 13:18 Uhr
Mit der arg(0) abfrage schaltest du aber generell für alle Nodes die Anhänge aus, um das zu umgehen kannst du dir http://www.pebosi.net/drupal-node-anhaenge-block-auslagern mal angucken.
gruß pebosi
gruß pebosi
--
https://pebosi.net
Drupalfunkton arg()
am 01.11.2007 - 13:27 Uhr
Das arg() nimmt immer Bezug auf die aktuelle Seiten-URL bzw. wird als Array im Zusammenhang mit der Seiten-URL gefuellt. Man kann arg() fast ueberall ansprechen.
Beispiel:
http://www.deine-website/node/55
Dann ist arg(0) gleich "node" und arg(1) gleich "55" - usw.
Wenn Du es ganz drupalgenau wissen willst: http://api.drupal.org/api/function/arg/5
PS
Da bei PHP in Arrays immer mit 0 angefangen wird zu zaehlen und bei der Drupal-Funktion arg() fuer das Array keine Array-Keys mit speziellen Werten definiert werden ist der erste Wert in Drupal's arg() immer arg(0).
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Mit der arg(0) Abfrage
am 01.11.2007 - 13:36 Uhr
Mit der arg(0) abfrage schaltest du aber generell für alle Nodes die Anhänge aus, um das zu umgehen kannst du dir http://www.pebosi.net/drupal-node-anhaenge-block-auslagern mal angucken.
Sehr gut. Am Ende waere meine Ideenentwicklung wohl auch in diese Richtung gegangen. Halt nur ueber nen anderen Weg.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
also, das mitd en anängen
am 16.11.2007 - 18:51 Uhr
also, das mitd en anängen hab ich gelöst bekommen - vielen dank!
für die links hab ich noch das gefunden: http://drupal.org/node/104200
hm..
aber wie man templatefunktionen eigene templates zuweist hab ich ncoh nicht ganz verstanden...
also weitersuchen, um die links in nen block auszulagern...
btw: ja, wenn ich die print-anweisung einfüge wird "node" ausgegeben.