Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[2.0.0] Mod Lien vers un fichier

Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3247
  • Inscrit : 01 Mars 2007
  Lien vers ce message 24 Aout 2007, 17:32

Reprise du dernier message

Bah tant que tu suis ce que fais déjà FSB c'est bon, faut regarder le code oui :D


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Flammeche
Avatar de nosmile
  • Age : 22 ans
  • Messages : 80
  • Inscrit : 22 Aout 2007
Message édité 1 fois, dernière édition par nosmile, 30 Aout 2007, 19:52     Lien vers ce message 30 Aout 2007, 19:46
Bon, j'y ai regardé cet après-midi et j'ai terminé la partie "fixe" (non paramétrable).

En gros, l'utilisateur upload un fichier via un ftp qui arrive dans un répertoire déterminé (paramètrable ultérieurement). Ensuite, pour l'ajouter au forum, il entre son nom dans un champ spécifique ajouté dans la partie "Joindre". Lorsque qu'il le soumet, le fichier est déplace (et renommé) dans le dossier normal d'upload et ajouté à la base de donnée. On efface donc le fichier de la même manière que les fichier uplooadé de la manière classique du forum.

j'ai également modifier la classe post pour que, si le fichier n'est pas présent, le lien affiche plutôt : Fichier non disponible, ainsi que le fichier forum_download.php au cas ou quelqu'un aurait fait un lien vers le fichier extérieurement.

Je démarre la partie "Administration". (Les options viendront s'ajouter dans la partie admin => configuration => message.)
La, j'hésite sur la procédure. Etant donné que tous les utilisateurs du ftp utilise le même compte, comment gérer le quota?
Option 1 : ajouter des paramètre de quota spécifique à ce groupe. Mais, dans ce cas, on limite l'intérêt de la chose si jamais l'admin voudrait envoyer un fichier plus gros...
Option 2 : On utilise une checkbox pour définir si le quota ftp est infini ou si il est compté avec le quota normal. Et, pour les difficiles, j'écrirais un autre mod qui perméttrait de définir des quota différent en fonction des groupes auquels on appartient. (si il y a des intéressés...)

Question :
- comment ajouter un groupe spécial à l'installation? (aka : Effectuer la requêtes sql qui ajoute un groupe spécial (g_type = 1))
- Quelle option préférez-vous?


Ça sert à rien mais ça me fait bien marrer :
http://www.uptimeprj.com/img/nosmile/54bcc3f47a2b67426c54d7cddfc768fd.png
 
Flammeche
Avatar de nosmile
  • Age : 22 ans
  • Messages : 80
  • Inscrit : 22 Aout 2007
  Lien vers ce message 30 Aout 2007, 20:03
Autre (bête) question : comment gérer l'activation/désactivation du mod en fsb2? C'est le même technique que pour fsb1? Si oui, comment désactiver une partie de code ajoutée dans un fichier .html?


Ça sert à rien mais ça me fait bien marrer :
http://www.uptimeprj.com/img/nosmile/54bcc3f47a2b67426c54d7cddfc768fd.png
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3247
  • Inscrit : 01 Mars 2007
Message édité 3 fois, dernière édition par BlackJowy, 30 Aout 2007, 20:22     Lien vers ce message 30 Aout 2007, 20:14
humm....

Quand tu crée un mod, il faut generer un fichier d'installation en XML, et celui ci est contenu dans un dossier, le nom du dossier sert de bascule au mod, sous rc4b c'est $GLOBALS['mods']['nomdumod'] (en RC5 fsb('mods')->is_active('nomdumod')), mais prend donc un de mes mods genre Présentation obligatoire, il est pas très long et te montrera la façon de faire :)

Pour ce qui est des quota, j'ai pas exactement compris ce qu'est ton mod dans ta tête, mais tu peux rajouter un champ à la table users pour gérer leur quota de fichiers uploadés ... Accesoirement tu peux très bien décider de ne pas tenir compte du quota si l'utilisateur est admin

Edit désactiver le mod dans la template : <switch name="ac_mods_nomdumod"> </switch>


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Equipe des MODS
Avatar de Houram
  • Age : 19 ans
  • Messages : 1243
  • Inscrit : 15 Juin 2005
  Lien vers ce message 30 Aout 2007, 20:14
J'ai un peu lut en diagonale, donc excuser moi si je dis une bétise, mais ça me paraitrait être une option à rajouter de base de pouvoir vérifier les fichiers qui n'existent plus depuis l'admin.
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3247
  • Inscrit : 01 Mars 2007
Message édité 1 fois, dernière édition par BlackJowy, 30 Aout 2007, 20:20     Lien vers ce message 30 Aout 2007, 20:18
Euh j'avais compris que c'était dans les posts surtout qu'il voulait voir si les fichiers manquaient, et donc c'est un peu plus lourd à gérer mais ça peut faire partie des mods inclus dans fsb2, à genova de voir ^^

Aucun intérêt à gerer ça dans la partie admin puisque sous FSB un fichier n'est censé manquer physiquement que si on l'a supprimé via le forum et donc supprimé aussi de la base de données, le problème de ce système c'est les liens qui restent dans les messages :)

Et lui il laisse la possibilité aux utilisateurs d'acceder a un repertoire de fichier joins via ftp, ce qui fait que les fichiers peuvent etre supprimés physiquement, mais restent alors dans la BDD


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Equipe des MODS
Avatar de Houram
  • Age : 19 ans
  • Messages : 1243
  • Inscrit : 15 Juin 2005
  Lien vers ce message 30 Aout 2007, 20:28
Un utilisateur peut supprimer un fichier qu'il a uploader depuis son panel, donc liens morts. Donc vérification depuis l'admin^^
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3247
  • Inscrit : 01 Mars 2007
  Lien vers ce message 30 Aout 2007, 20:35
Liens morts uniquement dans les messages (vu que si l'utilisateur les supprime, c'est sur le serveur et dans la bdd), donc dans ton panneau admin tu verifie tous les messages postés à la recherche de liens morts ? C'est une idée de procédure ça alors :)


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Flammeche
Avatar de nosmile
  • Age : 22 ans
  • Messages : 80
  • Inscrit : 22 Aout 2007
  Lien vers ce message 30 Aout 2007, 21:10
Pour les liens morts, j'ai modifié dans la classe post la fonction parse_fsbcode. J'ai remplacer le preg_replace des [attach= par un preg_split puis, j'utilise un foreach pour parcourir le tableau de découpage, repérer les balise attach et, quand j'en ai une, je fait une requêtes sql pour voir si le fichier est toujours présent dans la base upload. En fonction, j'affiche un lien ou le txt précité.

Avec mon mod, il n'y a effectivement pas d'intérêt à gérer ça dans la partie admin car, si un fichier n'est plus présent physiquement lors de le demande de téléchargement, la base se met à jour automatiquement.

@blackjowy : non, les utilisateur envoient leurs fichiers via un ftp qui leur est dédié, mais, une fois que le fichier a été lié au forum, il n'est plus possible de le supprimé via ce même ftp (vu que les fichier sont déplacés dans le dossier upload de fsb). (A moins que le ftp des utilisateurs n'ai également accès à ce dossier mais ça, c'est au webmaster de faire attention quand il paramètre le compte ftp...)

Pour les quota, je pensait simplement que le quota "ftp" pourrait (ou non) ne pas être compté avec le quota "web". (Et, créer un autre mod qui permettrait de gérer les quota selon les groupes auquel appartient le membre)


Ça sert à rien mais ça me fait bien marrer :
http://www.uptimeprj.com/img/nosmile/54bcc3f47a2b67426c54d7cddfc768fd.png
 
Flammeche
Avatar de nosmile
  • Age : 22 ans
  • Messages : 80
  • Inscrit : 22 Aout 2007
Message édité 1 fois, dernière édition par Grummfy, 31 Aout 2007, 22:45     Lien vers ce message 31 Aout 2007, 19:30
Je vous envoi une première beta du mod.

Il y a certainement encore beaucoup de chose à améliorer mais bon...

Fichier joint
Vous n'avez pas l'autorisation de télécharger ce fichier


edit : lien de téléchargement dans le premiers message ...


Ça sert à rien mais ça me fait bien marrer :
http://www.uptimeprj.com/img/nosmile/54bcc3f47a2b67426c54d7cddfc768fd.png
 
Flammeche
Avatar de nosmile
  • Age : 22 ans
  • Messages : 80
  • Inscrit : 22 Aout 2007
  Lien vers ce message 12 Septembre 2007, 12:23
Euh, je viens de me rendre compte d'un problème (connu?)

Si on installe le mod en envoyant le fichier zip avec l'interface normale, il ne le décompresse pas correctement, alors que si on décompresse en local et qu'on envoit en ftp le dossier du mod, tout marche normalement.

une idée?


Ça sert à rien mais ça me fait bien marrer :
http://www.uptimeprj.com/img/nosmile/54bcc3f47a2b67426c54d7cddfc768fd.png
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3247
  • Inscrit : 01 Mars 2007
  Lien vers ce message 12 Septembre 2007, 12:41
Ce doit être un ZIP en "normal", par exemple si tu le fais avec winrar, tu dois choisir "zip", et mode de compression "normal", sinon ça marche pas ...


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Flammeche
Avatar de nosmile
  • Age : 22 ans
  • Messages : 80
  • Inscrit : 22 Aout 2007
  Lien vers ce message 25 Octobre 2007, 22:47
Bon, j'ai enfin eu le temps de voir un peu ça.

J'ai corrigé un belle faille de sécurité (qui permettait de récupérer n'importe quel fichier présent sur le disque) et j'ai modifié forum_download afin de lui permettre d'envoyer des fichiers plus gros que la mémoire allouée à php.

Voila.
Fichier joint
Vous n'avez pas l'autorisation de télécharger ce fichier


Ça sert à rien mais ça me fait bien marrer :
http://www.uptimeprj.com/img/nosmile/54bcc3f47a2b67426c54d7cddfc768fd.png
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3247
  • Inscrit : 01 Mars 2007
  Lien vers ce message 26 Octobre 2007, 10:13
un coup de ini_set() ? Y'a des serveurs où ça n'aura aucun effet, mais y'a pas de solution passe partout en même temps V_v


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Flammeche
Avatar de nosmile
  • Age : 22 ans
  • Messages : 80
  • Inscrit : 22 Aout 2007
Message édité 3 fois, dernière édition par nosmile, 26 Octobre 2007, 12:55     Lien vers ce message 26 Octobre 2007, 12:16
non, j'ai simplement remplacé :

echo file_get_contents(ROOT . 'upload/' . $filename);


par :

if ($stream = fopen(ROOT . 'upload/' . $filename, 'r')) {
	while($cnt = fread($stream, 100*1024)) {
		printf('%s',$cnt);
   		ob_flush();
    	}
    	fclose($stream);
}


Ça sert à rien mais ça me fait bien marrer :
http://www.uptimeprj.com/img/nosmile/54bcc3f47a2b67426c54d7cddfc768fd.png
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3247
  • Inscrit : 01 Mars 2007
  Lien vers ce message 26 Octobre 2007, 12:23
Ah ok O_o

Ca marche ça ? :p


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Répondre


.