Catégories:
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.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Salut,
pour ouvrir dans une nouvelle fenêtre un champ cck filefield (qui permet un upload), inspire toi de ce post :
http://drupalfr.org/node/7713
Indépendante, mandats Drupal et PHP.
Migration Drupal 6 / Drupal 7
sahuni
972
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…
mimi19
111
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).
Mes tutos Drupal : http://www.davidpetit.com/tuto/drupal
DavP
105
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,
mimi19
111
Tu peux copier ta fonction ici ?
Indépendante, mandats Drupal et PHP.
Migration Drupal 6 / Drupal 7
sahuni
972
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) .’
’ ;
}
mimi19
111
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
Indépendante, mandats Drupal et PHP.
Migration Drupal 6 / Drupal 7
sahuni
972
lol, ça marche ;o))
Merci beaucoup et bonne journée…
mimi19
111
Super,
un petit résolu dans le titre pour fêter la victoire ?
Indépendante, mandats Drupal et PHP.
Migration Drupal 6 / Drupal 7
sahuni
972