Codulle - L'explorateur de code sources

Accueil>> AlBulle >> Albulle1.0rc4 >> core >> includes

Informations fichier

Nom du fichier : panierdefichiers.class.php
Taille du fichier : 10 Ko (311 lignes)
Language : PHP

  1. span style="color: #808080; font-style: italic;">///////////////////////////////
  2. // LICENCE
  3. ///////////////////////////////
  4. //
  5. // © DUCARRE Cédric (SamRay1024), Bubulles Créations, (09/05/2005)
  6. //
  7. // webmaster@jebulle.net
  8. // http://jebulle.net
  9. //
  10. // Ce logiciel est un programme servant à gérer un panier de fichiers pour
  11. // sites internet.
  12. //
  13. // Ce logiciel est régi par la licence CeCILL soumise au droit français et
  14. // respectant les principes de diffusion des logiciels libres. Vous pouvez
  15. // utiliser, modifier et/ou redistribuer ce programme sous les conditions
  16. // de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
  17. // sur le site "http://www.cecill.info".
  18. //
  19. // En contrepartie de l'accessibilité au code source et des droits de copie,
  20. // de modification et de redistribution accordés par cette licence, il n'est
  21. // offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
  22. // seule une responsabilité restreinte pèse sur l'auteur du programme, le
  23. // titulaire des droits patrimoniaux et les concédants successifs.
  24. //
  25. // A cet égard l'attention de l'utilisateur est attirée sur les risques
  26. // associés au chargement, à l'utilisation, à la modification et/ou au
  27. // développement et à la reproduction du logiciel par l'utilisateur étant
  28. // donné sa spécificité de logiciel libre, qui peut le rendre complexe à
  29. // manipuler et qui le réserve donc à des développeurs et des professionnels
  30. // avertis possédant des connaissances informatiques approfondies. Les
  31. // utilisateurs sont donc invités à charger et tester l'adéquation du
  32. // logiciel à leurs besoins dans des conditions permettant d'assurer la
  33. // sécurité de leurs systèmes et ou de leurs données et, plus généralement,
  34. // à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
  35. //
  36. // Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
  37. // pris connaissance de la licence CeCILL, et que vous en avez accepté les
  38. // termes.
  39. //
  40. ///////////////////////////////
  41.  
  42. /**
  43. * Classe de gestion de panier de fichiers.
  44. *
  45. * Permet d'ajouter des fichiers à un panier virtuel et de créer une archive
  46. * télechargeable de ces fichiers.
  47. *
  48. * @author SamRay1024
  49. * @copyright Bubulles Creation - http://jebulle.net
  50. * @since 22/05/2007
  51. * @version 1.0rc3
  52. *
  53. */
  54.  
  55. // nom de la variable du panier dans la session
  56. 'NOM_PANIER_SESSION', 'JB_PANIER_FICHIERS' );
  57.  
  58. // chemin d'accès à la librairie de compression
  59. 'COMPRESS_LIB', 'OMzip.php'/**
  60. * Dossier racine où sont stockés les fichiers ajoutés au panier.
  61. *
  62. * @var [STRING]
  63. * @access [PRIVATE]
  64. */'';
  65. /**
  66. * Nombre maximum de fichiers dans le panier.
  67. *
  68. * @var [INTEGER]
  69. * @access [PRIVATE]
  70. *//**
  71. * Poids maximum de l'archive en Mo.
  72. *
  73. * @var [FLOAT]
  74. * @access [PRIVATE]
  75. *//**
  76. * Constructeur de la classe.
  77. *
  78. * Peut recevoir un nombre maximum de fichiers pour limiter le contenu du panier.
  79. * Si aucun paramètre ou que le nombre passé vaut 0 ou est négatif le panier est illimité.
  80. *
  81. * @param [STRING] $sRoot Dossier racine où se situent les fichiers du panier.
  82. * @param [INTEGER] $iNbFichiersMax Nombre de fichiers que l'on peut mettre dans le panier.
  83. * @param [FLOAT] $fPoidsMax Poids maximum en Mo que peut prendre l'archive du panier.
  84. * @return [VOID]
  85. */// verification que le module de compression est actif sur le serveur
  86. 'zlib''# PANIER # <strong>[ Erreur fatale ]</strong> L\'extension \'zlib\' n\'est pas charg&eacute;e. Impossible d\'utiliser le panier sans elle.');
  87.  
  88. // s'il n'y a pas de session démarrée, il faut la créer
  89. '''/';
  90.  
  91. // creation du panier s'il n'existe pas déjà
  92. // initialisation du nombre max de fichiers
  93. /**
  94. * Ajoute un fichier au panier que s'il n'y est pas déjà et si le panier n'est pas plein.
  95. * La recherche si le fichier se trouve déjà dans le panier s'effectue
  96. * avec le chemin complet du fichier (autorise alors deux noms de fichiers
  97. * identiques mais dans des dossiers différents).
  98. *
  99. * @param [STRING] $sCheminFichier Chemin du fichier.
  100. * @return [BOOLEAN] TRUE si le fichier a été ajouté, FALSE sinon.
  101. */// ajout du fichier s'il n'y est pas déjà et si le panier n'est pas plein
  102. // Vérification chemin
  103. /**
  104. * Supprime le fichier spécifié du panier.
  105. *
  106. * @param [STRING] $sCheminFichier Chemin du fichier à supprimer. (Idem méthode d'ajout)
  107. * @return [BOOLEAN] TRUE si le fichier a été supprimé, FALSE sinon.
  108. */// si l'image se trouve bien dans le panier on la supprime
  109. // Mise-à-jour des index des éléments pour éviter les trous dans l'indexation
  110. /**
  111. * Vide le panier.
  112. *
  113. * @param [VOID]
  114. * @return [VOID]
  115. *//**
  116. * Création de l'archive qui contient les fichiers du panier.
  117. *
  118. * L'archive est générée à la volée pour être directement envoyée à la sortie standard, soit
  119. * le navigateur du client qui demande le téléchargement de son panier.
  120. *
  121. * @param [STRING] $sNomArchive Nom à donner à l'archive sans extension. Valeur par défaut : 'Panier'.
  122. * @param [ARRAY] $aNomsInternes Utilisez ce tableau si la structure interne de l'archive doit être différente de la structure
  123. * des fichiers d'origine. Pour fonctionner, ce tableau doit contenir autant d'éléments que
  124. * le panier. Chacun d'eux correspond au nouveau chemin + nom de l'élément dans l'archive.
  125. * @return [VOID]
  126. */'Panier'// inclusion de la librairie de compression zip
  127. // Création du tableau avec les chemins réels des fichiers présents dans le panier
  128. // On place tous les éléments du panier dans un dossier racine du même nom que l'archive si aucune surcharge des chemins du panier n'est demandée
  129. '/'// tri des index du panier qui peuvent n'être plus bon aps des suppressions
  130. // Envoi de l'archive du panier
  131. OnTheFlyZIP( $sNomArchive.'.zip'/**
  132. * Compte le nombre de fichiers dans le panier.
  133. *
  134. * @param [VOID]
  135. * @return [INTEGER] Retourne le nombre de fichiers dans le panier.
  136. *//**
  137. * Calcule le poids que fera l'archive qui contiendra les éléments du panier.
  138. *
  139. * @param [VOID]
  140. * @return [FLOAT] Retourne le poids du panier.
  141. */// On ramène le poids de l'archive à 97% de la taille totale (ratio généralement constaté pour zip & tar)
  142. }
  143.  
  144. /**
  145. * Vérifie l'existence d'un fichier dans le panier.
  146. *
  147. * @param [STRING] $sCheminFichier Chemin du fichier à vérifier.
  148. * @return [MIXED] La position de l'élément dans le panier si existant, FALSE sinon.
  149. *//**
  150. * Permet de savoir si le panier est plein.
  151. *
  152. * @param [VOID]
  153. * @return [BOOLEAN] TRUE si le panier est plein, FALSE sinon.
  154. */// si un nombre max de fichiers a été défini et que le panier est plein
  155. /**
  156. * Retourne le contenu du panier.
  157. *
  158. * @param [VOID]
  159. * @return [ARRAY] Le tableau qui représente le contenu du panier.
  160. *//**
  161. * Vérifie que l'adresse d'un fichier donné se trouve bien dans le dossier racine.
  162. *
  163. * Cette vérification est nécessaire pour prévénir l'utilisation des './' ou '../' dans l'adresse
  164. * d'un fichier pour tenter de remonter à des fichiers sensibles.
  165. *
  166. * @param [STRING] $sChemin Adresse à vérifier.
  167. * @return [BOOLEAN] True si le chemin est correct et que le fichier existe, false dans le cas contraire.
  168. *//**
  169. * Vérifie que les fichiers présents dans le panier existent.
  170. *
  171. * @param [VOID]
  172. * @return [VOID]
  173. *//**
  174. * Affiche le contenu du panier.
  175. * Fonction utile uniquement pour du déboguage.
  176. *
  177. * @param [VOID]
  178. * @return [VOID]
  179. */'<pre>''</pre>'

Liste des projets

Téléchargez Codulle

Publié par Codulle - v0.1.1 - © Bubulles Creations