Wikini

ActionAttachDiscussion

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-161-191-254.compute-1.amazonaws.com

Discussion sur l'ActionAttach

A vous de me dire ce que vous en pensez !!!

J''ai quelques remarques et questions :
  1. pourquoi le nom du fichier, paramètre "file" est-il obligatoire ? Tout fichier possède déjà un nom. Je comprendrai que ce paramètre soit optionnel, car il se peut qu'un utilisateur veuille publier donner des noms différents à ses fichiers sur le serveur. Les inconvénients de le rendre obligatoire : 1. c'est un peu plus compliqué pour l'utilisateur ; 2. ce n'est pas nécessaire dans tous les cas.
    • Il est obligatoire car si tu attache plusieurs fichiers à la page, il faut bien identifier le fichier vers lequel le lien se fait. --GarfieldFr
  2. pourquoi la description du fichier "desc" est-elle obligatoire ? Là aussi, je comprend parfaitement que ce paramètre soit utile à des utilisateurs. Mais de là à le rendre obligatoire, je n'en voit pas la raison. Les inconvénients du caractère obligatoire : 1. c'est un peu plus compliqué pour l'utilisateur ; 2. ce n'est pas nécessaire dans tous les cas : par exemple lorsque j'attache le fichier "documentation_de_wikini.pdf" je ne pense pas qu'il y ai besoin de décrire plus le dit fichier.
    • Ce paramètre est obligatoire pour renseigner l'attibut alt de la balise <IMG> conformament au XHTML. --GarfieldFr
  3. le paramètre "link" pourrait s'appeler "href" pour rapeller l'attribut HTML (mais c'est un détail)
    • Link = lien , cela me semble plus claire que HREF qui n'est parlant qu'a ceux qui connaissent HTML. --GarfieldFr
  4. le paramètre "delete" me pose le plus de problèmes :
    • qui a le droit de l'utiliser ?
      • Ceux qui on le droit de modifier la page --GarfieldFr
    • efface-t'il le fichier du serveur ? [On pourrai par exemple le passer dans une "poubelle" mais le laisser sur le serveur ; la purge de la poubelle pourrait être effectuée : soit automatiquement au bout d'un certain nombre de jours ; soit par une action de l'administrateur fonctionnel. Un handler permettrai de voir ce qui est dans la poubelle mais ces fichiers ne serait pas vu sur la page "normale". Ce qui permettrai d'être sûr de ne pas effacer de fichiers importants ou par mégarde.]
      • Oui, cela efface le fichier sur le serveur. Mais si on envisage une gestion de version des fichiers, cela n'a plus d'importance car le fichier ne serait alors plus physiquement supprimer. Bonne idée que l'histoire de la poubelle. --GarfieldFr
  5. le paramètre "class" est très bien vu.
  6. Qui peut téléverser ? Tout le monde ? Ne peut-on imaginer que seuls les utilisateurs identifiés puissent téléverser. Ne pourrait-on indiquer qui a téléversé quel fichier ? Par exemple via une action {{recentuploads}} ?
    • Seul ceux qui ont le droit en écriture peuvent téléverser. L'action recentupload implique une modification de la base de données, ce qui était pour moi un interdit dans mon cahier des charges. --GarfieldFr
  7. On peut imaginer un paramètre "replace" qui remplace un fichier par un autre, le fichier remplacé étant archivé dans l'"archive" de page ; l'archive de la page pourrait être consultée par un handler.
    • Oui, c'est ce que j'appel la gestion de version des fichiers --GarfieldFr
  8. Existe-t'il un limite de taille pour le téléversement (me paraît indispensable, configurée dans le fichier de configuration).
    • Oui, entre autre dû au fait que PHP possède une limite dans son fichier de configuration. Sinon, il n'y a pas de limite dû à l'action elle même, mais c'est très facile à ajouter. --GarfieldFr
    • Ajouté dans la version du 2004-04-28 --GarfieldFr

Pour les points 1 et 2 je signale que le caractère facultatif de ces paramètres permettrait de simplifier fortement l'emploi de cette action, il suffirait alors d'indiquer : {{attach}}.

Pour moi, les points les plus importants sont les 1, 2 et 4. Puis le point 6 et enfin le point 8. (Au passage, pardonne moi de n'avoir pas fait plus tôt tous ces commentaires ; ça fait longtemps que tu parles de cette action et peu d'entres nous s'étaient exprimé à ce sujet...[je te rassure, tu n'est pas le seul, personne ne s'ai exprimé dessus alors qu'elle est déjà utilisée par plusieurs personnes :'( snif! ).

Il y a encore un dernier point qui me gène beaucoup, c'est la disparité des données à sauvegarder : en utilisant le système de fichier, il faut alors faire deux sauvegardes alors que la base de données n'en demanderai qu'une seule.
-- CharlesNepote

Salut, je suis tout nouveau sur wikini, et je trouve les contrib attach et tableau carrement vitales pour un wiki ;-)
Cependant, je suis tombé sur un os pour attach : il me génère des urls incorrectes.
Apparemment, c'est l'utilisation de $_SERVER["SERVER_HOST"] dans la fonction GetScriptPath qui pose problème : si le site à des virtual hosts, ou un numéro de port, le résultat est incorrect. Par contre, avec $_SERVER["HTTP_HOST"] ça marche au poil.

Hope this helps, À+, PiIf.

Salut, je suis aussi nouveau sur wikini et je trouve que cette fonction attach est vraiment pratique. Je ferais seulement les remarques suivantes :
  1. Pourquoi ne pas uploader tous les fichiers dans le meme répertoire ? (avec éventuelement la possibilité au moment de l'attach de rajouter un chemin de sous répertoire). Ceci permettrait de pouvoir utiliser la meme image sur plusieurs pages (logo) et cela faciliterai aussi la gestion des fichiers quand il faudra faire du nettoyage!
    • Je trouve plus simple de maintenir les fichiers si il sont dans des répertoires distinct. Chaque page a un répertoire d'upload, si tu supprime une page tu supprime le répertoire associé. --GarfieldFr
  2. La petite * à coté de l'image permettant de la modifier pourrait donner acces à un formulaire plus complet permettant entre autre d'annuler l'action ou de supprimer physiquement l'image du serveur.
    • Désolé, la petit * à coté de l'image ou du fichier est utilisée pour faire une mise à jour du fichier sur le serveur. Par contre, j'envisage d'écrire un gestionnaire de fichier pour gérer les fichiers uploader sur une page, mais je pense d'abord ajouter une gestion de version des fichiers --GarfieldFr
a+ --GoubS 29-04-2004



Salut,

Super feature. J'en ai rêvé, GarfieldFr l'a fait (ok, c'est pas drole, mais ça dis ce que je veux dire).

Cependant, je me demande si le cas des RewriteRules? à été considéré ? J'ai pas vraiment le temps de prendre du temps pour expliquer bien en détails mon ex-problème, mais je te suggère d'aller lire mon compte-rendu sur mon site : http://www.ghosthack.net/~moku/wiki/WikiNi
Copié-collé : « L'utilisation de la réécriture d'URL et de cette action est un peu contraignante : le $_GET['file'] ne récupère pas le contenu assigné à la variable par l'URL comme il est censé le faire, ce qui résulte en un échec du déplacement du fichier uploadé dans le répertoire temporaire (/tmp) pour le mettre là où il doit être (files/.../fichier.ext) ». Ma solution, absolument immonde, est en ligne sur le-dit site (ça consiste à passer outre les fonction d'écriture d'URL de WikiNi et à les coder en dur...)

Si ça peut aider...

Quoiqu'il en soit, merci encore pour tout !

-- moku, 2004-08-11

Merci pour l'éloge. Pour ce qui est de la réécriture d'URL, je dois dire que je ne l'ai pas pris en compte lors du développement de cette action tous simplement parce que mon serveur de production est IIS. Je regarde ce que tu as écrit et si j'ai le temp je verais ce que je peux faire sur l'action. Mon problème sera surtout de mettre en place cette réécriture d'URL sur un serveur local. Au passage, pourrais tu me donner les règles de réécriture d'URL que tu as utilisées sans la modification pour que attach fonctionne ainsi que ce qu'il faut modifier pour que ça marche dans la configuration de Apache (je suis newbe dans la conf Apache).
--GarfieldFr

Voici le .htaccess avant :
Évidemment, remplace « /~moku/wiki/ » par ce qui te va bien, ou, mieux si tu es directement à la racine du serveur, ne mets que « / ».
le « style/ » c'est parceque j'ai mis les styles dans un répertoire plutôt qu'à la racine de WikiNi.
RewriteEngine on
RewriteBase /~moku/wiki/
RewriteRule ^style/.*$ - [L]
RewriteRule ^files/.*$ - [L]
RewriteRule ^wakka\.php.*$ - [L]
RewriteRule ^(.*)$ wakka.php?wiki=$1 [L]

Quant à l'indien, il faut autoriser l'utilisation du RewriteEngine? dans un .htaccess en ajoutant la directive « AllowOverride? All » dans la section qui va bien (chez moi, c'est dans « <Directory /home/*/public_html> »)
Je crois pas oublier grand chose.
A+

-- moku, 2004-08-12


Une question? La taille des fichiers pdf aurait-ellle une importance?
Chez moi, un fichier pdf de quelques K. fonctionne.
Mais avec un fichier d'environ 8 megs, Il ne se passe rien.
Attention, j'ai changé la variable concernant la taille des fichiers à télécharger, pas de problèmes, j'upload!
C'est pour voir le fichier...
Avez-vous une solution?

Laissez tomber, j'ai trouvé! Problème de config dans php.ini Quelquefois à penser tout haut, on trouve! Vive Google...

Merci pour la fonction c'est vraiment extra!

MiSouRis? 8 octobre 2004

J'ai beau changer la taille max autorisé en téléchargement, je n'arrive pas à télécharger un fichier de 4Mo. Cela peut-il être dû au FAI, free en loccurence ? Voir à un problème de time out ? -- JeanMorlet 27 octobre 2004
Un peu plus d'informations : Si je définie max_file_size à une valeur inférieur à 2Ko, tout est OK. Si cette valeur est supérieur, j'ai l'erreur "The document contains no data". Je pencherais donc plutôt pour une limitation chez free. Me trompe-je ?
D'autre part, sur un serveur local, j'obtiens un phénomère bizard. Le transfert d'un gros fichier s'interromp brutalement, et je me retrouve sur la page principal du wiki !? -- JeanMorlet

JmPhilippe - le 03/11/2004
Nouvel utilisateur Wikini depuis quelques mois pour le boulot, j'ai installé l'upload il y a quelques jours et je dois dire que ça me paraît une extension incontournable !
Bon en l'utilisant j'ai quand même fais quelques modifications, je vais essayer d'être concis et clair :
/**
	* Affiche un liens comme un fichier inexistant
	*/
	function showFileNotExits(){
		$output = "<span";
		$output = ($this->classes?"$output class=\"$this->classes\">":$output);
		echo $output.$this->file.'<a href="'.$this->wiki->href("upload",$this->wiki->GetPageTag(),"file=$this->file")."\">?</a>";
		echo "</span>\n";
	}

/* code CSS des actions attachées */
.attach {
  /* CSS des éléments attach basiques */
}
.attach.class1 {
  /* CSS des éléments attach de classe 1 */
}
.attach.class2 {
  /* CSS des éléments attach de classe 2 */
}
.attach.class1.class2 {
  /* CSS des éléments attach de classe 1 et 2 */
}
L'intérêt est que tu peux définir des classes globales, par exemple .souligne, .gras, .float, .right, etc. indépendantes de la classe .attach et les combiner ensuite de la sorte. Si tu ajoute un préfixe systématiquement, te voilà bon pour dupliquer à chaque fois tes classes globales... Et si tu veux légèrement modifier une combinaison de classes pour un élément donné (par ex. .attach), il n'y a qu'à reprendre le petit code CSS juste au-dessus. Dis-moi si mon propos n'est pas tout à fait clair. -- JmPhilippe
/**
	* Taille d'un fichier/répertoire en format le plus lisible
	*/
	function fsize($size){
		$a = array("octets", "ko", "Mo", "Go", "To", "Po");
		$pos = 0;
		while ($size >= 1024) {
			$size /= 1024;
			$pos++;
		}
		if ($size < 10) {
			return round($size,1)." ".$a[$pos];
		} elseif ($size < 100) {
			return round($size,0)." ".$a[$pos];
		} else {
			return round($size,-1)." ".$a[$pos];
		}
	}
	/**
	* Affiche le fichier lié comme un lien
	*/
	function showAsLink($fullFilename){
		$url = $this->wiki->href("download",$this->wiki->GetPageTag(),"file=$this->file");
		$output = "<span";
		$output = ($this->classes?"$output class=\"$this->classes\">":$output);
		echo $output.'<a href="'.$url.'">'.($this->desc?$this->desc:$this->file)."</a>";
		$this->showUpdateLink();
		$realpath = $this->GetFullFilename();
		echo '<span class="filesize">'.$this->fsize(filesize($realpath)).'</span>';
		echo "</span>\n";
	}



Ségo, le 01/02/2005

J'ai essayé d'ajouter l'action attach sur un wikini 0.1.1.0.3, et je bloque au niveau de l'étape 7. Le site est hébergé sur free.fr, et il n'y a pas de chmod possible chez Free et par défaut un répertoire crée l'est en 700. Comment alors obtenir un répertoire avec acces en écriture pour le groupe ou contourner le probleme ?


PageSuivieParGarfieldFr


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