[Résolu] Ouverture des documents dans une autre fenêtre

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je souhaite ouvrir tous les documents uploadés ou lié en CCK dans une nouvelle fenêtre (target:_blank).

Pour ouvrir les documents uploadés, j'ai surchargé la fonction upload_attachments en phptemplate_upload_attachments. Cela fonctionne.

J'ai un soucis car je ne parviens pas à ouvrir les documents liés à une view (création d'une view en affichage tableau avec les documents CCK liés).
Comment faire ?

Merci de votre aide si vous avez une idée ou même une solution.

Version de Drupal : 

Merci pour l'info mais j'ai essayé et je n'y parviens pas.

J'ai overridé la fonction theme_filefield_file : copie de la fonction complète dans le template.php de mon thème et j'ai renommé la fonction par montheme_filefield_file.

J'ai ajouté un array('target' => '_blank')dans les attributs du lien.

Help, merci...

Avec les templates de champs cck, tu peux faire autrement.
Tu mets le fichier content-field.tpl.php dans ton thème.

Ensuite tu crées un fichier content-field-mon_champ.tpl.php avec le même contenu que le premier fichier et où mon champ est le nom de variable de ton champs défini dans cck.

Et dans ton template de ton champ cck tu ajoutes les attributs html dont tu as besoin au bon endroit.

PS: Pour que cela fonctionne, il faut en général avoir les deux fichiers (le fichier content-field.tpl.php doit être aussi dans ton dossier de thème).

Merci mais je souhaite ouvrir tous les fichiers fieldfile de CCK dans une nouvelle fenêtre : _blank.
De ce fait, il est peut-être plus simple d'overrider la fonction filefield_file mais je n'y parviens pas.
Avez-vous une autre idée SVP. Merci,

Dans le fichier site/all/theme/monintranet/template.php, j'ai ajouté la fonction suivante :

function monintranet_filefield_file($file) {

// Views may call this function with a NULL value, return an empty string.
if (empty($file['fid'])) {
return '';
}

$path = $file['filepath'];
$url = file_create_url($path);
$icon = theme('filefield_icon', $file);

// Set options as per anchor format described at
// http://microformats.org/wiki/file-format-examples
// TODO: Possibly move to until I move to the more complex format described
// at http://darrelopry.com/story/microformats-and-media-rfc-if-you-js-or-css
$options = array(
'attributes' => array(
'type' => $file['filemime'] . '; length=' . $file['filesize'],
),
);

// Use the description as the link text if available.
if (empty($file['data']['description'])) {
$link_text = $file['filename'];
}
else {
$link_text = $file['data']['description'];
$options['attributes']['title'] = $file['filename'];
}

$options['attributes']['target'] = '_blank';

return '

'. $icon . l($link_text, $url, $options) .'

';
}

tu n'as pas mis le target au bon endroit. tu dois rajouter l'attribut target, donc :

  $options = array(
    'attributes' => array(
      'type' => $file['filemime'],
      'length' => $file['filesize'],
      'target' => "_blank",
    ),
  );

Là, ça va marcher

et sous D7 c'est

<?php
function theme_file_link($variables) {
 
$file = $variables['file'];
 
$icon_directory = $variables['icon_directory'];

 
$url = file_create_url($file->uri);
 
$icon = theme('file_icon', array('file' => $file, 'icon_directory' => $icon_directory));

 
// Set options as per anchor format described at
  // http://microformats.org/wiki/file-format-examples
 
$options = array(
   
'attributes' => array(
     
'type' => $file->filemime . '; length=' . $file->filesize,
    ),
  );

 
// Use the description as the link text if available.
 
if (empty($file->description)) {
   
$link_text = $file->filename;
  }
  else {
   
$link_text = $file->description;
   
$options['attributes']['title'] = check_plain($file->filename);
  }

  return
'<span class="file">' . $icon . ' ' . l($link_text, $url, $options) . '</span>';
}
?>