Codulle - L'explorateur de code sources
Accueil |
AlBulle
AlBulle Informations fichier
Nom du fichier : panierdefichiers.class.phpTaille du fichier : 8 Ko (260 lignes)
Language : PHP
span style="color: #808080; font-style: italic;">/////////////////////////////// // LICENCE /////////////////////////////// // // © DUCARRE Cédric (SamRay1024), Bubulles Créations, (09/05/2005) // // webmaster@jebulle.net // http://jebulle.net // // Ce logiciel est un programme servant à gérer un panier de fichiers pour // sites internet. // // Ce logiciel est régi par la licence CeCILL soumise au droit français et // respectant les principes de diffusion des logiciels libres. Vous pouvez // utiliser, modifier et/ou redistribuer ce programme sous les conditions // de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA // sur le site "http://www.cecill.info". // // En contrepartie de l'accessibilité au code source et des droits de copie, // de modification et de redistribution accordés par cette licence, il n'est // offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, // seule une responsabilité restreinte pèse sur l'auteur du programme, le // titulaire des droits patrimoniaux et les concédants successifs. // // A cet égard l'attention de l'utilisateur est attirée sur les risques // associés au chargement, à l'utilisation, à la modification et/ou au // développement et à la reproduction du logiciel par l'utilisateur étant // donné sa spécificité de logiciel libre, qui peut le rendre complexe à // manipuler et qui le réserve donc à des développeurs et des professionnels // avertis possédant des connaissances informatiques approfondies. Les // utilisateurs sont donc invités à charger et tester l'adéquation du // logiciel à leurs besoins dans des conditions permettant d'assurer la // sécurité de leurs systèmes et ou de leurs données et, plus généralement, // à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. // // Le fait que vous puissiez accéder à cet en-tête signifie que vous avez // pris connaissance de la licence CeCILL, et que vous en avez accepté les // termes. // /////////////////////////////// /** * Classe de gestion de panier de fichiers. * * Permet d'ajouter des fichiers à un panier virtuel et de créer une archive * télechargeable de ces fichiers. * * @author SamRay1024 * @copyright Bubulles Creation - http://jebulle.net * @since 05/09/2006 * @version 0.8 (PHP4) * */ // nom de la variable du panier dans la session 'NOM_PANIER_SESSION', 'JB_PANIER_FICHIERS' ); // chemin d'accès à la librairie de compression 'COMPRESS_LIB', 'OMzip.php'/** * Nombre maximum de fichiers dans le panier. * * @var [INTEGER] * @access [PRIVATE] *//** * Poids maximum de l'archive en Mo. * * @var [FLOAT] * @access [PRIVATE] *//** * Constructeur de la classe. * * Peut recevoir un nombre maximum de fichiers pour limiter le contenu du panier. * Si aucun paramètre ou que le nombre passé vaut 0 ou est négatif le panier est illimité. * * @param [INTEGER] $iNbFichiersMax Nombre de fichiers que l'on peut mettre dans le panier. * @param [FLOAT] $fPoidsMax Poids maximum en Mo que peut prendre l'archive du panier. * @return [VOID] */// verification que le module de compression est actif sur le serveur 'zlib''# PANIER # <strong>[ Erreur fatale ]</strong> L\'extension \'zlib\' n\'est pas chargée. Impossible d\'utiliser le panier sans elle.'); // s'il n'y a pas de session démarrée, il faut la créer ''// creation du panier s'il n'existe pas déjà // initialisation du nombre max de fichiers /** * Ajoute un fichier au panier que s'il n'y est pas déjà et si le panier n'est pas plein. * La recherche si le fichier se trouve déjà dans le panier s'effectue * avec le chemin complet du fichier (autorise alors deux noms de fichiers * identiques mais dans des dossiers différents). * * @param [STRING] $sCheminFichier Chemin du fichier. * @return [BOOLEAN] TRUE si le fichier a été ajouté, FALSE sinon. */// ajout du fichier s'il n'y est pas déjà et si le panier n'est pas plein /** * Supprime le fichier spécifié du panier. * * @param [STRING] $sCheminFichier Chemin du fichier à supprimer. (Idem méthode d'ajout) * @return [BOOLEAN] TRUE si le fichier a été supprimé, FALSE sinon. */// si l'image se trouve bien dans le panier on la supprime // Mise-à-jour des index des éléments pour éviter les trous dans l'indexation /** * Vide le panier. * * @param [VOID] * @return [VOID] *//** * Création de l'archive qui contient les fichiers du panier. * * L'archive est générée à la volée pour être directement envoyée à la sortie standard, soit * le navigateur du client qui demande le téléchargement de son panier. * * @param [STRING] $sNomArchive Nom à donner à l'archive sans extension. Valeur par défaut : 'Panier'. * @param [ARRAY] $aChangerPanier Utilisez ce tableau si vous avez besoin de modifier les éléments du panier * sans modifier le panier pour que l'archive puisse être créée. * L'utilisation de ce tableau devient prioritaire sur le tableau * interne du panier. * @return [VOID] */'Panier'// inclusion de la librairie de compression zip // Initialisation tableau des éléments // tri des index du panier qui peuvent n'être plus bon aps des suppressions // Envoi de l'archive du panier OnTheFlyZIP( $sNomArchive.'.zip', $aElementsPourArchive ); } /** * Compte le nombre de fichiers dans le panier. * * @param [VOID] * @return [INTEGER] Retourne le nombre de fichiers dans le panier. *//** * Calcule le poids que fera l'archive qui contiendra les éléments du panier. * * @param [VOID] * @return [FLOAT] Retourne le poids du panier. */// On ramène le poids de l'archive à 97% de la taille totale (ratio généralement constaté pour zip & tar) } /** * Vérifie l'existence d'un fichier dans le panier. * * @param [STRING] $sCheminFichier Chemin du fichier à vérifier. * @return [MIXED] La position de l'élément dans le panier si existant, FALSE sinon. *//** * Permet de savoir si le panier est plein. * * @param [VOID] * @return [BOOLEAN] TRUE si le panier est plein, FALSE sinon. */// si un nombre max de fichiers a été défini et que le panier est plein /** * Retourne le contenu du panier. * * @param [VOID] * @return [ARRAY] Le tableau qui représente le contenu du panier. *//** * Affiche le contenu du panier. * Fonction utile uniquement pour du déboguage. * * @param [VOID] * @return [VOID] */'<pre>''</pre>'