Date de publication: le jeudi 14 mai 2009 à 11h36
Dernière modification: par Pascal BOYER le vendredi 3 février 2012 à 14h19
« Article précédent: eZ Publish : bpce_backupbdd - sauvegarde automatique de la base de données
» Article suivant: Random Anti-Spam Image - Image anti-spam aléatoire
L'extension eZ Multiupload
L'extension eZ Multiupload permet aux utilisateurs de télécharger simultanément plusieurs fichiers (images, documents, etc...) à partir de la barre d'outils Webin d'un siteaccess public ou de l'interface d'administration d'un site eZ Publish.
La page de présentation de l'extension:
Éléments requis
Pour que ezmultiupload fonctionne correctement, l'environnement logiciel suivant est nécessaire:
- Adobe Flash Player version 9.0.45 ou supérieure
- eZ Publish 4.1 ou supérieur (versions officiellement supportées)
- eZ Publish 4.0.x, mais alors l'extension ne fonctionnera pas à partir de l'interface d'administration.
Télécharger l'extension eZ Multiupload
Téléchargez l'extension à partir de la page suivante:
Installer l'extension eZ Multiupload
-
Extract the ezmultiupload archive to the extension folder.
Extrayez l'archive ezmultiupload dans le répertoire extension Enable the extension in site.ini.append.php
Activez l'extension dans le fichier site.ini.append.php de surcharge général ou du siteaccess public:[ExtensionSettings] ActiveExtensions[]=ezmultiupload
Alternatively, activate it in the Administration Interface. First, click the Extensions link in the Setup tab. Then, mark the checkbox corresponding to the “ezmultiupload” entry and click the Apply changes button.
Vous pouvez également activer l'extension dans l'interface d'administration. Pour cela, cliquez sur le lien Extensions dans l'onglet Administration puis cochez la case à cocher correspondant à ezmultiupload et validez avec le bouton Appliquer les changements.-
Grant access to the “ezmultiupload” module for the users and user groups who will need to use the eZ Multiupload functionality.
Attribuer l'accès à toutes les fonctions du module ezmultiupload aux utilisateurs et groupes d'utilisateurs qui devront utiliser eZ Multiupload ( Ndt: pour une utilisation à partir de l'interface public) Update autoload array by executing following command from eZ Publish root:
Mettez à jour le tableau d'autochargement en lançant la commande suivante à partir de la racine de eZ Publish ( Ndt: ou cliquez sur le bouton Regenerate autoload arrays for extensions):$ php bin/php/ezpgenerateautoloads.php -e
NOTE: Update script require eZ Components. See installation guide.
NOTE: ce script de mise à jour requière les composants eZ. Repportez-vous pour cela au guide d'installation .-
Clear the cache.
Videz les caches.
Upload interface is accessible by pointing your web browser to /ezmultiupload/upload/NODE_ID. For example: http://www.example.com/ezmultiupload/upload/2 or by including a following template parts/websitetoolbar/ezmultiupload.tpl {include uri='design:parts/websitetoolbar/ezmultiupload.tpl'} in website toolbar template. ezmultiupload icon will appear automatically in ezwebin 1.4 and higher website toolbar.
L'interface de upload est accessible via un URI de type /ezmultiupload/upload/NODE_ID, comme par exemple http://www.example.com/ezmultiupload/upload/2, ou bien en incluant, par le biais du code:
{include uri='design:parts/websitetoolbar/ezmultiupload.tpl'}
à placer dans le template extension/ezwebin/design/ezwebin/templates/parts/ website_toolbar.tpl, le template extension/ezmultiupload/design/standard/templates/parts/websitetoolbar/ ezmultiupload.tpl ( Ndt: je n'ai pas eu besoin d'ajouter ce code). Une icône ezmultiupload sera alors automatiquement affichée dans la barre d'outils des versions 4.1 ou supérieures de l'extension ezwebin.
Fig. 0: ezmultiupload inséré dans la barre d'outils de l'extension ezwebin
:
Une documentation au format PDF un peu plus complète est incluse dans le répertoire extension/ezmultiupload/doc/ de l'extension ezmultiupload.
Configurer eZ Multiupload pour l'interface d'administration
Une fois l'extension activée, les tableaux d'autochargement régénérés et les caches vidés, vous pouvez accéder à l'interface de téléchargement via un URI de type:
http://luxpopuli.fr/site_admin/ezmultiupload/upload/132
à condition, dans un premier temps, que 132 soit le ID d'un noeud encapsulant un objet de type folder ou gallery. Il n'existe actuellement aucun moyen d'accéder à cette interface par le biais d'une icône.
Voici à quoi ressemble l'interface:
Fig. 1: C'est sobre, mais terriblement efficace !
Fig. 2: Les vignettes des images téléchargées. Il en manque quelques unes...
Fig. 3: Les objets image créés. Eux, sont bien tous là !
Configurer les classes d'objet
Par défaut, l'extension ne s'affiche que lorsque le numéro de ID terminant l'URI correspond à un noeud de types folder ou gallery.
Pour que l'interface d'upload s'affiche pour d'autres classes, vous devez renseigner le fichier de surcharge extension/ezmultiupload/settings/ ezmultiupload.ini.append.php comme ceci:
[MultiUploadSettings] AvailableClasses[] AvailableClasses[]=album <== Nouvel identifiant de classe d'objet AvailableClasses[]=folder AvailableClasses[]=gallery
A prèsent, l'interface s'affichera également pour les noeuds liés à la classe d'objet album.
Configurer les noeuds autorisés
Plutôt que de définir des identifiants de classes d'objet, il est possible de définir les numéros de ID des noeuds pour lesquels s'affichera l'interface de téléchargement.
C'est alors le tableau AvailableSubtreeNode[] de la même section [MultiUploadSettings] qu'il faut renseigner:
AvailableSubtreeNode[] AvailableSubtreeNode[]=58 AvailableSubtreeNode[]=145
Configurer les types de fichier à télécharger
Pour chacune des classes d'objet et/ou chacun des noeuds spécifiés sous la section [MultiUploadSettings], vous pouvez définir le type de fichier que les utilisateurs seront autorisés à télécharger. Pour cela il suffit de créer une section nommée [FileTypeSettings_ identifiantDeLaClasse] ou [FileTypeSettings_ IDduNoeud] sur le même modèle que les deux sections déjà existantes:
[FileTypeSettings_folder] <== Section existant par défaut FileType[] FileType[]=*.odt FileType[]=*.flv FileType[]=*.xap FileType[]=*.doc [FileTypeSettings_gallery] <== Section existant par défaut FileType[] FileType[]=*.jpg FileType[]=*.png FileType[]=*.gif [FileTypeSettings_album] <== Nouvelle section liée à la classe « album » définie par la section [MultiUploadSettings] FileType[] FileType[]=*.mp3 [FileTypeSettings_58] <== Nouvelle section liée au noeud de ID=58 définie par la section [MultiUploadSettings] FileType[] FileType[]=*.flv FileType[]=*.avi
:
Si aucune section [FileTypeSettings_xxx] n'est définie pour un noeud ou une classe donnés, alors tous les types de fichier seront autorisés.
Configurer la classes des objets créés
Comme le montre la figure 3, les objets image créés sont par défaut des instances de la classe image, celle proposée par défaut par eZ Publish. Nous allons voir comment configurer le système pour forcer l'extension ezmultiupload à utiliser une classe image personnalisée.
eZ Publish contient un fichier de configuration permettant de paramétrer les classes d'objet à utiliser pour créer un objet eZ Publish après avoir téléchargé un fichier depuis notre disque dur local. Ce fichier est settings/ upload.ini.
Après avoir fait une copie de ce fichier dans le répertoire du siteaccess d'administration:
cp -p settings/upload.ini settings/siteaccess/ plain_site_admin/upload.ini.append.php
vous devez modifier la section [CreateSettings] et créer une section [xxxx_ClassSettings] comme suit:
3 [CreateSettings] 4 MimeClassMap[image]=image_music <== Nouvel idenifiant de classe associé aux fichiers de type MIME « image » 8 [image_music_ClassSettings] <== Nouvelle section liée au nouvel identifiant « images_music » 9 FileAttribute=image 10 NameAttribute=nom_image 11 NamePattern=<original_filename_base>
La capture d'écran ci-dessous vous aidera à comprendre le sens des paramètres de la section [image_music_ClassSettings]:
Fig. 4: Correspondance paramètre->identifiant pour la configuration du fichier upload.ini.append.php
:
Le nom de l'objet créé sera définit par la valeur du paramètre NameAttribute lui même calculé à partir de la valeur du paramètre NamePattern.
Quant au paramètre NamePattern voici les valeurs possibles:
- <original_filename> : le nom exact du fichier tel qu'il est sur le disque dur local.
- <original_filename_base> : le nom du fichier tel qu'il est sur le disque dur local amputé du suffixe.
- <original_filename_suffix> : uniquement le suffix du nom du fichier tel qu'il est sur le disque dur local.
- <mime_type> : le type MIME détecté.
Configurer l'affichage des vignettes
Si la nouvelle classe image_music est à présent utilisée, alors les vignettes présentées par la figure 2 ne s'affichent plus. Pour remédier à cela, il est nécessaire, dans un premier temps, de créer, dans le fichier de configuration extension/ezmultiupload/settings/ override.ini.append.php, une surcharge du template extension/ezmultiupload/design/standard/templates/ezmultiupload/ thumbnail.tpl :
3 [line_thumbnail_imageMusic] 4 Source=node/view/line_thumbnail.tpl 5 MatchFile=line_thumbnail/image_music.tpl 6 Subdir=templates 7 Match[class_identifier]=image_music
Le nouveau template de surcharge image_music.tpl sera une copie du template image.tpl et sera placé dans le même répertoire que ce dernier, à savoir:
extension/ezmultiupload/design/standard/override/templates/line_thumbnail/
Ne reste plus alors qu'à modifier la ligne 9 suivante de ce nouveau template:
9 <p>{attribute_view_gui attribute=$node.data_map.XXXX image_class=multiuploadthumbnail href=$node.url_alias|ezurl()}</p>
où XXXX sera remplacé par l'identifiant (en rouge figure 4) de l'attribut Image de la classe d'objet image_music.
Videz les caches.
Commentaires














