Wikini

ActionAttach

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-82-217-75.compute-1.amazonaws.com

Sujet de cette page

Le but de cette page est de présenter pour discussion une action que j'ai écrite pour attacher un fichier à une page WikiNi.
2004-04-28 : L'action {{attach}} a été entierement réécrite.
Mise à jour le 2004-05-08 : Gestion de version des fichiers et gestionnaire de fichiers.
Lien pour tester l'action

Ce que fait cette action :


Syntaxe

L'action {{attach}} prend les paramètres suivants :

Exemples


Gestionnaire des fichiers attachés

Une action {{attachfm}} qui ne prend pas de paramètre permet d'afficher facilement un lien vers le gestionnaire des fichiers attachés à la page courante. Ce gestionnaire permet de mettre des fichiers à la poubelle, de vider la poubelle, de récuperer un fichier depuis la poubelle.

Installation
L'archive comprend 6 fichiers : attach.php, attach.class.php, attachfm.php, filemanager.php, download.php, upload.php.
  1. Copiez le fichier attach.php dans le répertoire des actions (/actions)
  2. Copiez le fichier attach.class.php dans le répertoire des actions (/actions)
  3. Copiez le fichier attachfm.php dans le repertoire des actions (/actions)
  4. Copiez le fichier filemanager.php dans le répertoire des handlers (/handlers/page)
  5. Copiez le fichier upload.php dans le répertoire des handlers (/handlers/page)
  6. Copiez le fichier download.php dans le répertoire des handlers (/handlers/page)
  7. Créez le répertoire racine des uploads sur le site du wiki. Si le SAFE_MODE de PHP est activé, vous devez créer vous même ce répertoire et autoriser l'écriture dans ce répertoire pour l'utilisateur et le groupe.
  8. Ouvrez le fichier wakka.config.php et ajoutez la configuration de l'action.
    • Tous les paramètres de configuration ont une valeur par défaut.
    • Le configuration par défaut est:
$wakkaConfig["attach_config"] = array(
        "upload_path" => 'files',                       //repertoire racine des uploads
        "ext_images" => 'gif|jpeg|png|jpg',             //extension des fichiers images
        "ext_script" => 'php|php3|asp|asx|vb|vbs|js',   //extension des script(non utilisé)
        "update_symbole" => '*',                        //symbole pour faire un update du fichier
        "max_file_size" => 1024*100,                    //taille maximum du fichier en octer (100Ko par défaut)
        "fmDelete_symbole" => 'Supr',			//symbole a afficher pour le lien "supprimer" dans le gestionnaire de fichier
        "fmRestore_symbole" => 'Rest',		//symbole a afficher pour le lien "restaurer" dans le gestionnaire de fichier
        "fmTrash_symbole" => 'Poubelle')		//symbole a afficher pour le lien "Poubelle" dans le gestionnaire de fichier

  1. Ajoutez la définition des classe CSS à utiliser pour les images. Le nom de la classe CSS doit commencer par .attach_. Voici quelques exemples de classe:
.attach_margin05em { margin: 0.5em;}             /* marge de 0.5 em autour de l'image*/
.attach_margin1em { margin: 1em;}                /* marge de 1em autour de l'image*/
.attach_left {float: left;}                      /* bloc flottant à gauche */
.attach_right {float: right;}                    /* bloc flottant à droite */
.attach_noborder {border-width: 0px;}            /* pas de bordure */
.attach_vmiddle {vertical-align: text-bottom;}   /* alignement vertical au milieu */


  1. Pour configurer l'aspect du gestionnnaire de fichier utiliser les classes de style .tableFM , tableFMCol1 et tableFMCol2. La classe tableFM est appliquée au tableau affichant les fichiers. Le tableau utilise les balises <THEAD>, <TFOOT> et <TBODY> conformes au HTML4.
Exemple :
.tableFM {border: thin solid Black; width: 100%;  }
.tableFM THEAD { background-color: Silver; font-weight: bold; text-align: center;   }
.tableFM TFOOT { background-color: Silver; font-weight: bold; text-align: left;   }
.tableFM TBODY TR { text-align: center;  }
.tableFMCol1 { background-color: Aqua; }
.tableFMCol2 { background-color: Yellow; }


Limitation

Actuellement l'action {{attach}} ne fonctionne pas si le mode rewrite est utilisé (paramètre rewrite_mode à 1 dans le fichier de configuration). Vous devez donc mettre le paramètre "rewrite_mode" => "0" dans le fichier de configuration.

Mode Réécriture d'URL

Il est tout à fait possible d'utiliser l'action avec la réécriture d'URL d'Apache sans aucune modification du code de l'action. Voici un test que je viens de réaliser, ne me demandez pas d'expliquer mais ca marche:
RewriteEngine on

#On n'applique pas les règles aux fichiers CSS
#  CSS dans handler
RewriteRule ^([^/]*)/(.*)\.css$ $2\.css [QSA,L,NC]
#  CSS dan sles pages normales
RewriteRule ^(.*)\.css$ $1\.css [QSA,L,NC]

#*******************************************************************************
#                   REGLES POUR L'ACTION ATTACH
#*******************************************************************************
#RewriteRule ^(.*)/filenamager$ wakka.php?wiki=$1/filemanager
#                   Regles pour l'affichage des images du filemanager
#Image dans le filemanager
RewriteRule ^([^/]*)/images/(.*)$ images/$2 [QSA,L,NC]

#Image "update"
RewriteRule ^images/(.*)$ images/$1 [QSA,L,NC]

#                   Regle pour l'affichage d'une image ou lien vers un fichier
RewriteRule ^uploads/(.*)$ uploads/$1 [QSA,L,NC]
#*******************************************************************************

#Regle générale pour les pages
#Page avec un handler
RewriteRule ^([^/]+)/(.*)$ wakka.php?wiki=$1/$2 [L,QSA,NC]
#page sans handler
RewriteRule ^(.*)$ wakka.php?wiki=$1 [L,NC,QSA]

NB: le flag NC dans les options indique que l'on fait les comparaisons sans considérer la casse. A supprimer éventuellement...

Dans cet exemple, j'ai considéré que l'on avait utilisé des images au lieu de mots pour les liens d'update et dans le filemanager(voir l'astuce chapitre suivant) et que ces images étaient dans le répertoire images à la racine du wiki.
Je pense que c'est la meilleure méthode car modifier le code implique que l'on considère une exploitation privilégiée de WikiNi avec Apache.

Astuces

Si vous voulez mettre des images pour le lien de mise à jour, de suppression et de restauration de fichier, vous pouvez mettre quelque chose comme ceci dans le fichier de configuration :

$wakkaConfig["attach_config"] = array(


Cette action semble être utilisée par plusieurs WikiNi car elle m'a été plusieurs fois demandée.

Strona

Download

Witryna



--GarfieldFr

Excellent et merci pour le travail effectué. --ThierryBazzanella

NOTA: Nicephore17 remarque qu'il y un problème au niveau du suivi des version, comment peut on reconnaître la version que l'on a installé et quelle est la dernière version de l'action?

ActionAttachDiscussion ActionAttachBug

| PageSuivieParGarfieldFr



Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]