Views 3 de type fichier

Conf générale du drupal 7

Le site transforme est un drupal 7.31 bilingue, qui a les modules (au 14 oct 2014):

  • Imagecache Token 1.x-dev, ckeditor 7.x-1.15 et ckeditor link 2.3, Language icons 1.1, pathauto 1.2 et transliteration 3.2, metatag 1.4, plupload integration module 1.6, variable views 2.5, views 3.8
  • Internationalization 7.x-1.11 (avec les sous modules: String trans, translation sets, variable translation, et block languages, contact translation, field trans, menu trans, multilingual content , multilingual select, path translation, syncro trans, taxonomy translation, translation redirect, user mail trans et views translation 3.x-dev)

Ce site a 2 types de contenu: Album (champs images: field_tofalb 6 maxi avec widget image) et Chantier (field_tofch 6 maxi en medium). Les taxonomies sont en "Translate" (termes différents selon langue).

On souhaite créer une vue qui affiche toutes les images pour un type de contenu (Album). Les premiers essais affichent les contenus en double à cause de la langue du contenu.

Création d'une vue, de type fichier

Créer une vue, de type page en tableau, avec le chemin /pimgalbum. Sauver.
Création views de type fichier - sans le module File entity

Views 3.8: Configurer la relation pour le choix des languesLes deux relations

Ajouter la relation sur field_tofalb en cochant "require this relation ship".

Si l'on ajoute que cette relation, tout sera en double voire quadruple => il faut ajouter une seconde relation.

Ajouter une relation sur Traduction du contenu: Translations qui utilise field_tofalb (voir image de doite).

Sauver.

Puis ajouter les champs (nom, ID, taille...)

field Conf (avec note éventuelle)
Les champs de la vue fichier (field_tofalb)
Nom Link this field to download the file (utile pour voir url complète au survol)
Chemin Note on a 2 cases à Cocher qui apparaissent ici (décochées):
- Display download path instead of file storage URI (will provide the full download URL rather than the internal filestream address.)
- Link this field to download the file (Enable to override this field's links)
Entity ID Sur relation translations
Rewrite result / Output this field as a link / link path: node/[id] absolute path cochée
Au survol d'un lien anglais, l'ID est à la 4e place. Pour les liens fr, de la forme pathauto (ex: fr/content/pathauto)
Image Sur relation translations: Style: thumb ou mini50x50, pas de lien.
Note Partie Plus: liste "Column used for click sorting" où on voit width et height
Langue Sur relation translations: cocher " Link this field to the original piece of content"
Taille en KB/MB ou Raw bytes, mais où trouver la taille (largeur et hauteur)?
probablement dans la table field_revision_field_tofalb ou field_data_field_tofalb
En recherchant sur le web, il faudrait le module file entity.

Note: avec la relation, on a que les images liée au node via le champs, et non les images ajoutée dans le body avec ckeditor.

Pour terminerLes champs et filtres configurés avec la bonne relation

Ajouter les filtres (et les exposer): langue contenu (avec relation Translations, sinon doublon) et promu en page d'accueil (avec relation Translations).

Puis ajouter le tri sur ces champs: partie Format/Paramètres (tri par défaut: Upload date du fichier).

La partie gauche de la vue doit donc ressembler à l'image de droite.

En PJ, l'export de la vue.

Diverses notes

Voir mes notes sur les tables.

Tokens de type fichiers

[filename] == Fichier: Nom
[uri] == Fichier: Chemin
[fid] == Fichier: Identifiant (ID) de fichier
[status] == Fichier: Statut
[filesize] == Fichier: Taille

Query générée

C'est très moche...

SELECT file_managed.filename AS file_managed_filename, file_managed.uri AS file_managed_uri, file_managed.fid AS fid, file_managed.status AS file_managed_status, file_managed.filesize AS file_managed_filesize, file_managed.timestamp AS file_managed_timestamp, node_node__file_usage.id AS node_node__file_usage_id, node_node.nid AS node_node_nid, node_node.language AS node_node_language, node_node.promote AS node_node_promote, 'node' AS field_data_field_tofalb_node_entity_type
FROM 
{file_managed} file_managed
INNER JOIN {field_data_field_tofalb} field_data_field_tofalb ON file_managed.fid =  field_data_field_tofalb.field_tofalb_fid AND 
(field_data_field_tofalb.entity_type = 'node' AND field_data_field_tofalb.deleted = '0')
INNER JOIN {node} field_tofalb_file_managed ON field_data_field_tofalb.entity_id = field_tofalb_file_managed.nid
INNER JOIN {node} node_node ON field_tofalb_file_managed.nid = node_node.tnid
LEFT JOIN {file_usage} node_node__file_usage ON node_node.nid = node_node__file_usage.id AND node_node__file_usage.type = 'node'
WHERE (( (node_node.promote = '0') ))
ORDER BY file_managed_timestamp ASC
LIMIT 10 OFFSET 0

add relationships de type content revision

Ajout d'une relation sur Content revision

Création d'une vue fichier avec le module File_entity

Création views de type fichier - AVEC le module File entity

Doc tek: 
Fichier attachéTaille
Plain text icon pimgalbum1.txt23.14 Ko