Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Hochgeladenen Dateien in neuem Fenster öffnen

Eingetragen von bauernfaenger (14)
am 08.03.2009 - 20:05 Uhr in
  • Allgemeines zu Drupal
  • Drupal 5.x

Hallo Zusammen,

durch

function phptemplate_upload_attachments($files) {
  $header = array(t('Attachment'), t('Size'));
  $rows = array();
  foreach ($files as $file) {
    if ($file->list) {
      $href = $file->fid ? file_create_url($file->filepath) : url(file_create_filename($file->filename, file_create_path()));
      $text = $file->description ? $file->description : $file->filename;
      $rows[] = array(l($text, $href, array('target' => '_blank')), format_size($file->filesize));
    }
  }
  if (count($rows)) {
    return theme('table', $header, $rows, array('id' => 'attachments'));
  }
}

in der Datei "template.php" im Themeordner des aktiven Themes wird der Anhang, welchen man an einen Node hängt (über "Dateianhänge" -> "Neue Datei anfügen:") in einem neuen Fenster geöffnet. Nun möchte ich auch Anänge, welche über ein CCK Feld hochgeladen werden in einem neuen Fenster öffnen und die o.g. Funktion erweitern.

Der betreffende Code ist folgender:

  <div class="field-items">
    <?php foreach ((array)
$node->field_produkt_dateien as $item) { ?>

      <div class="field-item"><?php print $item['view'] ?></div>

Wie mach ich das am Besten? Vielen Dank im Vorfeld für die Hilfe!

‹ [gelöst] Fehlermeldung [gelöst] Cron Job automatisieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

print_r

Eingetragen von stBorchert (6003)
am 08.03.2009 - 22:58 Uhr

Moin!
Mit

<?php
drupal_set_message
('<pre>'. print_r($item, 1) .'</pre>');
?>

kannst Du Dir ausgeben lassen, welche Daten so alles in $item stecken. Auf dieser Basis und unter Verwendung der Funktion l() sollte es ein Leichtes sein, die entsprechenden Links Deinen Wünschen entsprechend auszugeben.

hth,

 Stefan

PS: der Theme-Developer des devel-Moduls und/oder google hätten schneller zur Lösung geführt, als das Formulieren der Frage.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Stefan, zunächst vielen

Eingetragen von bauernfaenger (14)
am 10.03.2009 - 21:26 Uhr

Hi Stefan,

zunächst vielen Dank für die Antwort!

Den Theme-Developer des Develmoduls gibt es leider nicht für D5 :-\

Wenn ich den Code-Schnipsel in template.php oder in den Content,welcher so ein CCK-Form hat einfüge, ist leider kein Inhalt im

Welche Daten werden dann in der $item erwartet? Werte die in im Tab "Dev load" oder "Dev render" stehen sind m.M. nach nicht relevant, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

drupal_set_message

Eingetragen von stBorchert (6003)
am 10.03.2009 - 23:08 Uhr

Moin!

<?php
<div class="field-items">
  <?
php foreach ((array)$node->field_produkt_dateien as $item) { ?>

    <?php drupal_set_message('<pre>'. print_r($item, 1) .'</pre>'); ?>
    <div class="field-item"><?php print $item['view'] ?></div>
  <?php } ?>
</div>
?>

So meinte ich das. Dann werden Dir die Daten jedes Dateiobjektes ausgegeben.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Stefan, Drupal antwortet

Eingetragen von bauernfaenger (14)
am 12.03.2009 - 21:59 Uhr

Hi Stefan,

Drupal antwortet leider nur mit

Parse error: syntax error, unexpected '<' in /www/htdocs/XXXXX/XXXXX/includes/common.inc(1464) : eval()'d code on line 2

Wenn ich den Code in Content des Inhaltstypen eingebe... Woran könnte es liegen? :-x

  • Anmelden oder Registrieren um Kommentare zu schreiben

php

Eingetragen von stBorchert (6003)
am 12.03.2009 - 22:31 Uhr

Ok, dann formulieren wir das mal schnell um:

<?php
<div class="field-items">
  <?
php
   
foreach ((array)$node->field_produkt_dateien as $item) {
     
drupal_set_message('<pre>'. print_r($item, 1) .'</pre>');
      print
'<div class="field-item">'. print $item['view'] .'</div>';
    }
 
?>

</div>

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Stefan, traue mich schon

Eingetragen von bauernfaenger (14)
am 13.03.2009 - 12:32 Uhr

Hi Stefan,

traue mich schon fast nicht mehr zu antworten :-x Leider bekomme ich wieder ne Fehlermeldung

Parse error: syntax error, unexpected '<' in /www/htdocs/XXXXX/XXXXXX/includes/common.inc(1464) : eval()'d code on line 2

Habe mal den gesamten Inhaltstypen exportiert:

$content[type]  = array (
  'name' => 'Produkte',
  'type' => 'produkte',
  'description' => 'Neue Produkte erstellen',
  'title_label' => 'Produktbezeichnung',
  'body_label' => '',
  'min_word_count' => '0',
  'help' => '',
  'node_options' =>
  array (
    'status' => true,
    'promote' => false,
    'sticky' => false,
    'revision' => false,
  ),
  'upload' => '1',
  'image_attach' => '0',
  'image_attach_size_teaser' => '_original',
  'image_attach_weight_teaser' => '0',
  'image_attach_size_body' => '_original',
  'image_attach_weight_body' => '0',
  'old_type' => 'produkte',
  'orig_type' => '',
  'module' => 'node',
  'custom' => '1',
  'modified' => '1',
  'locked' => '0',
);
$content[groups]  = array (
  0 =>
  array (
    'label' => 'Übersicht',
    'settings' =>
    array (
      'form' =>
      array (
        'style' => 'fieldset',
        'description' => '',
      ),
      'display' =>
      array (
        'description' => '',
        'teaser' => 'no_style',
        'full' => 'no_style',
        'label' => 'above',
      ),
    ),
    'weight' => '1',
    'group_name' => 'group_bersicht',
  ),
  1 =>
  array (
    'label' => 'Unterseite',
    'settings' =>
    array (
      'form' =>
      array (
        'style' => 'fieldset',
        'description' => '',
      ),
      'display' =>
      array (
        'description' => '',
        'teaser' => 'no_style',
        'full' => 'no_style',
        'label' => 'above',
      ),
    ),
    'weight' => '2',
    'group_name' => 'group_unterseite',
  ),
);
$content[fields]  = array (
  0 =>
  array (
    'widget_type' => 'image',
    'label' => 'Produktbild',
    'weight' => '1',
    'max_resolution' => '350x350',
    'max_filesize' => 0,
    'max_number_images' => 0,
    'image_path' => 'produkte/produktbilder',
    'file_extensions' => 'jpg jpeg png gif',
    'custom_alt' => 1,
    'custom_title' => 0,
    'description' => '',
    'group' => 'group_unterseite',
    'required' => 1,
    'multiple' => 0,
    'use_default_image' => 0,
    'default_image_upload' => '',
    'default_image' => NULL,
    'field_name' => 'field_produkt_produktbild',
    'field_type' => 'image',
    'module' => 'imagefield',
    'display_settings' =>
    array (
      'label' =>
      array (
        'format' => 'hidden',
      ),
      'teaser' =>
      array (
        'format' => 'hidden',
      ),
      'full' =>
      array (
        'format' => 'imagefield_default',
      ),
    ),
  ),
  1 =>
  array (
    'widget_type' => 'image',
    'label' => 'Vorschaubild',
    'weight' => '1',
    'max_resolution' => '100x100',
    'max_filesize' => 0,
    'max_number_images' => 0,
    'image_path' => 'produkte/vorschaubilder',
    'file_extensions' => 'jpg jpeg png gif',
    'custom_alt' => 1,
    'custom_title' => 0,
    'description' => '',
    'group' => 'group_bersicht',
    'required' => 1,
    'multiple' => 0,
    'use_default_image' => 0,
    'default_image_upload' => '',
    'default_image' => NULL,
    'field_name' => 'field_produkt_vorschaubild',
    'field_type' => 'image',
    'module' => 'imagefield',
    'display_settings' =>
    array (
      'label' =>
      array (
        'format' => 'hidden',
      ),
      'teaser' =>
      array (
        'format' => 'imagefield_default',
      ),
      'full' =>
      array (
        'format' => 'hidden',
      ),
    ),
  ),
  2 =>
  array (
    'widget_type' => 'text',
    'label' => 'Produkt Beschreibung',
    'weight' => '2',
    'rows' => '15',
    'description' => '',
    'default_value' =>
    array (
      0 =>
      array (
        'value' => '',
      ),
    ),
    'default_value_php' => '',
    'default_value_widget' =>
    array (
      'field_produkt_beschreibung' =>
      array (
        0 =>
        array (
          'value' => '',
        ),
      ),
    ),
    'field_produkt_beschreibung' =>
    array (
      0 =>
      array (
        'format' => 1,
      ),
    ),
    'group' => 'group_unterseite',
    'required' => 1,
    'multiple' => 0,
    'text_processing' => '1',
    'max_length' => '',
    'allowed_values' => '',
    'allowed_values_php' => '',
    'field_name' => 'field_produkt_beschreibung',
    'field_type' => 'text',
    'module' => 'text',
    'display_settings' =>
    array (
      'label' =>
      array (
        'format' => 'hidden',
      ),
      'teaser' =>
      array (
        'format' => 'hidden',
      ),
      'full' =>
      array (
        'format' => 'default',
      ),
    ),
  ),
  3 =>
  array (
    'widget_type' => 'text',
    'label' => 'Vorschautext',
    'weight' => '2',
    'rows' => '8',
    'description' => 'Das ist der Vorschautext in der Produktübersicht.',
    'default_value' =>
    array (
      0 =>
      array (
        'value' => '',
      ),
    ),
    'default_value_php' => '',
    'default_value_widget' =>
    array (
      'field_produkt_vorschautext' =>
      array (
        0 =>
        array (
          'value' => '',
        ),
      ),
    ),
    'group' => 'group_bersicht',
    'required' => 1,
    'multiple' => 0,
    'text_processing' => '0',
    'max_length' => '145',
    'allowed_values' => '',
    'allowed_values_php' => '',
    'field_name' => 'field_produkt_vorschautext',
    'field_type' => 'text',
    'module' => 'text',
    'display_settings' =>
    array (
      'label' =>
      array (
        'format' => 'hidden',
      ),
      'teaser' =>
      array (
        'format' => 'default',
      ),
      'full' =>
      array (
        'format' => 'hidden',
      ),
    ),
  ),
  4 =>
  array (
    'widget_type' => 'text',
    'label' => 'Technische Informationen',
    'weight' => '3',
    'rows' => '15',
    'description' => '',
    'default_value' =>
    array (
      0 =>
      array (
        'value' => '',
      ),
    ),
    'default_value_php' => '',
    'default_value_widget' =>
    array (
      'field_produkt_techinfos' =>
      array (
        0 =>
        array (
          'value' => '',
        ),
      ),
    ),
    'field_produkt_techinfos' =>
    array (
      0 =>
      array (
        'format' => 1,
      ),
    ),
    'group' => 'group_unterseite',
    'required' => 0,
    'multiple' => 0,
    'text_processing' => '1',
    'max_length' => '',
    'allowed_values' => '',
    'allowed_values_php' => '',
    'field_name' => 'field_produkt_techinfos',
    'field_type' => 'text',
    'module' => 'text',
    'display_settings' =>
    array (
      'label' =>
      array (
        'format' => 'above',
      ),
      'teaser' =>
      array (
        'format' => 'hidden',
      ),
      'full' =>
      array (
        'format' => 'default',
      ),
    ),
  ),
  5 =>
  array (
    'widget_type' => 'image',
    'label' => 'Weitere Produktbilder',
    'weight' => '4',
    'max_resolution' => 0,
    'max_filesize' => 0,
    'max_number_images' => '6',
    'image_path' => 'produkte/weiterebilder',
    'file_extensions' => 'jpg jpeg png gif',
    'custom_alt' => 1,
    'custom_title' => 1,
    'description' => '',
    'group' => 'group_unterseite',
    'required' => 0,
    'multiple' => 1,
    'use_default_image' => 0,
    'default_image_upload' => '',
    'default_image' => NULL,
    'field_name' => 'field_produkt_weiterebilder',
    'field_type' => 'image',
    'module' => 'imagefield',
    'display_settings' =>
    array (
      'label' =>
      array (
        'format' => 'hidden',
      ),
      'teaser' =>
      array (
        'format' => 'hidden',
      ),
      'full' =>
      array (
        'format' => 'thickbox][weitereproduktbilder_vorschau',
      ),
    ),
  ),
  6 =>
  array (
    'widget_type' => 'file',
    'label' => 'Dateien',
    'weight' => '5',
    'file_extensions' => 'pdf mov wmv ',
    'file_path' => 'produkte/dateien',
    'description' => '',
    'group' => 'group_unterseite',
    'required' => 0,
    'multiple' => 1,
    'force_list' => 1,
    'field_name' => 'field_produkt_dateien',
    'field_type' => 'file',
    'module' => 'filefield',
    'display_settings' =>
    array (
      'label' =>
      array (
        'format' => 'hidden',
      ),
      'teaser' =>
      array (
        'format' => 'hidden',
      ),
      'full' =>
      array (
        'format' => 'default',
      ),
    ),
  ),
);

  • Anmelden oder Registrieren um Kommentare zu schreiben

php

Eingetragen von stBorchert (6003)
am 13.03.2009 - 14:10 Uhr

Ah, ähm. die erste Zeile meines Codes ("<?php") muss weg.
Probier das mal.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Stefan, so jetzt kommt

Eingetragen von bauernfaenger (14)
am 13.03.2009 - 14:54 Uhr

Hallo Stefan,

so jetzt kommt zumindest keine Fehlermeldung mehr, allerdings ist der Div bei der gespeicherten Site leer (

) Das Eingabeformat ist natürlich "PHP-Code".

  • Anmelden oder Registrieren um Kommentare zu schreiben

und weiter gehts...

Eingetragen von stBorchert (6003)
am 13.03.2009 - 15:05 Uhr

Ok, das ist doch schonmal ein Fortschritt :-).

<div class="field-items">
  <?php
    drupal_set_message
('<pre>'. print_r($node, 1) .'</pre>');
    foreach ((array)
$node->field_produkt_dateien as $item) {
      print
'<div class="field-item">'. print $item['view'] .'</div>';
    }
 
?>

</div>

Jetzt siehst Du, ob das Feld wirklich so heisst, und ob da nicht etwa noch [0] dahinter muss.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Stefan, zunächst hier

Eingetragen von bauernfaenger (14)
am 06.04.2009 - 22:05 Uhr

Hi Stefan,

zunächst hier der Inhalt, den Devel in dem Zusammenhang ausgibt:

field_produkt_dateien


Array
(
    [0] => Array
        (
            [fid] => 296
            [description] => xxx.pdf
            [list] => 1
            [nid] => 92
            [filename] => xxx.pdf
            [filepath] => files/produkte/dateien/xxx.pdf
            [filemime] => application/pdf
            [filesize] => 849990
        )

)

Hier die nun leicht erweiterte (es wurde hinzugefügt, dass nur eingeloggte User downloaden können) Anpassung von Attachments

<?php
/**
* Anpassung der Attachments
*/
function phptemplate_upload_attachments($files) {
 
$header = array(t('Attachment'), t('Size'));
 
$rows = array();
  foreach (
$files as $file) {
    if (
$file->list) {
      global
$user;
      if (
$user->uid) { // logged in users have uid > 0
       
$href = check_url(($file->fid ? file_create_url($file->filepath) : url(file_create_filename($file->filename, file_create_path()))));
       
$text = check_plain($file->description ? $file->description : $file->filename);
       
$rows[] = array(l($text, $href, array('target' => '_blank')), format_size($file->filesize));
        if (
count($rows)) {
          return
theme('table', $header, $rows, array('id' => 'attachments'));
        }
      }
 
// for anonymous users only show the name, not the link
     
$text = check_plain($file->description ? $file->description : $file->filename);
     
$rows[] = array($text, format_size($file->filesize));
      if (
count($rows)) {
        return
theme('table', $header, $rows, array('id' => 'attachments'))."<p><em>Sie m&uuml;ssen Sich <a href=\"/user\">einloggen/registrieren</a> um den Anhang betrachten zu k&ouml;nnen.</em></p>";
      }
    }
  }
}
?>

Wie müsste der fertige Code lauten? :-x Meine Versuche schlugen leider alle fehl :\

Die Funktion muss wahrscheinlich um die Variable $field_produkt_dateien[0] erweitert werden, bei foreach ist mir das allerdings ein Rätsel...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Frage könnte glatt von

Eingetragen von dawehner (2639)
am 11.04.2009 - 20:36 Uhr

Die Frage könnte glatt von jemand anders stammen ;)

<?php
/**
* Anpassung der Attachments
*/
function phptemplate_upload_attachments($files) {
 
$header = array(t('Attachment'), t('Size'));
 
$rows = array();
  foreach (
$files as $file) {
    if (
$file->list) {
      global
$user;
      if (
$user->uid) { // logged in users have uid > 0
       
$href = check_url(($file->fid ? file_create_url($file->filepath) : url(file_create_filename($file->filename, file_create_path()))));
       
$text = check_plain($file->description ? $file->description : $file->filename);
       
$rows[] = array(l($text, $href, array('attributes' => array('target' => '_blank'))), format_size($file->filesize));
        if (
count($rows)) {
          return
theme('table', $header, $rows, array('id' => 'attachments'));
        }
      }
 
// for anonymous users only show the name, not the link
     
$text = check_plain($file->description ? $file->description : $file->filename);
     
$rows[] = array($text, format_size($file->filesize));
      if (
count($rows)) {
        return
theme('table', $header, $rows, array('id' => 'attachments'))."<p><em>Sie m&uuml;ssen Sich <a href=\"/user\">einloggen/registrieren</a> um den Anhang betrachten zu k&ouml;nnen.</em></p>";
      }
    }
  }
}
?>

--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.de
SirFiChi ist auch dein Halbgott.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hmm, war schon ganz froh

Eingetragen von LarsD (22)
am 26.02.2010 - 08:49 Uhr

Hmm, war schon ganz froh einen Thread zu finden, der scheinbar eine Lösung für mein Problem parat hält. Leider funktioniert das Öffnen von Dateianhängen in einem neuen Fenster nicht mit dem u. g. Code in der template.php des entsprechenden Themes ... Ich benutze Drupal in Version 6.15. Was könnte ich falsch machen? Gibt es eine Alternative zu diesem Codebeispiel?

bauernfaenger schrieb

Hallo Zusammen,

durch

function phptemplate_upload_attachments($files) {
  $header = array(t('Attachment'), t('Size'));
  $rows = array();
  foreach ($files as $file) {
    if ($file->list) {
      $href = $file->fid ? file_create_url($file->filepath) : url(file_create_filename($file->filename, file_create_path()));
      $text = $file->description ? $file->description : $file->filename;
      $rows[] = array(l($text, $href, array('target' => '_blank')), format_size($file->filesize));
    }
  }
  if (count($rows)) {
    return theme('table', $header, $rows, array('id' => 'attachments'));
  }
}

in der Datei "template.php" im Themeordner des aktiven Themes wird der Anhang, welchen man an einen Node hängt (über "Dateianhänge" -> "Neue Datei anfügen:") in einem neuen Fenster geöffnet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 4 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association