Codulle - L'explorateur de code sources

Accueil>> AlBulle >> AlBulle0.1 >> medias

Informations fichier

Nom du fichier : util.class.php
Taille du fichier : 16 Ko (542 lignes)
Language : PHP

  1. span style="color: #808080; font-style: italic;">///////////////////////////////
  2. // LICENCE
  3. ///////////////////////////////
  4. //
  5. // © DUCARRE Cedric, Bubulles Creations, (28/09/2004)
  6. //
  7. // webmaster@jebulle.net
  8. // http://jebulle.net
  9. //
  10. // Ce logiciel est un programme informatique servant à gérer la mise en
  11. // ligne d'articles sur un site Internet grâce à une interface simplifiée.
  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. // INFOS FICHIER
  42. ///////////////////////////////
  43. //
  44. // Fichier : util.class.php
  45. // Creation : 06/07/2004
  46. // Auteur : SamRay1024
  47. // Bubulles Creations - http://jebulle.net
  48. //
  49. ///////////////////////////////
  50. //
  51. // DESCRIPTION
  52. // > contient differentes methodes inclassables qui servent d'utilitaires
  53. //
  54. ///////////////////////////////
  55. //
  56. // redimensionner une image
  57. //
  58. // >> Parametres d'entree :
  59. // > $img_src : RESOURCE / identifiant de l'image a redimensionner
  60. // > $larg_mini_max : INTEGER / largeur max de la redimension
  61. // > $haut_mini_max : INTEGER / hauteur max de la redimension
  62. //
  63. // >> Parametre de sortie : RESOURCE / identifiant de l'image redimensionnee
  64. // On recupere les dimensions de l'image que l'on souhaite redimensionner
  65. // si l'image est plus petite que les dimensions demandees, on ne redimensionne pas.
  66. // Pour cela, on force la valeur de la dimension souhaitee a la valeur de la taille de l'image
  67. // de sorte a creer un ratio de 1 pour la dimension
  68. // On calcule le ratio pour la largeur et la hauteur
  69. // Et on garde le plus petit afin de ne jamais depasser la taille maximale
  70. // Connaissant le ratio de la miniature, on peut donc obtenir ses dimensions reelles.
  71. // Ici, on utilise la fonction "round" pour avoir une valeur entiere. Cela nous donne le nombre de pixels que va faire la miniature.
  72. // Cree une image vierge de la dimension desiree. Cette fonction permet de ne pas etre limite a 256 couleurs contrairement a "ImageCreate"
  73. // On effectue une copie de l'image source vers la miniture
  74. //
  75. // traitement d'une image postee par formulaire pour ecriture dans un dossier
  76. //
  77. // Adaptee de http://lecyber.net
  78. //
  79. // DESCRIPTION
  80. // > cette methode permet de traiter une image envoyee par un formulaire. L'image est redimensionnee aux dimensions
  81. // > souhaitees (uniquement si elle est plus grande que les dimensions demandees), ecrite dans le dossier demande
  82. // > et son nom de fichier peut etre prefixe.
  83. //
  84. // >> Parametre d'entree :
  85. // > $type : STRING / type MIME de l'image envoyee (ie : 'image/gif', 'image.jpg', ...)
  86. // > $srcFile : STRING / chemin d'acces complet a l'image que l'on souhaite redimensionner
  87. // > $destFile : STRING / repertoire de destination de stockage de l'image redimensionnee
  88. // > [$larg_mini_max] : INTEGER / largeur max de la miniature
  89. // > [$haut_mini_max] : INTEGER / hauteur max de la miniature
  90. // > [$prefixe] : STRING / si ce champ est indique, on genere une miniature prefixe de la chaine que contient cette variable
  91. // > sinon, on ecrase le fichier d'entree si le dossier de destination est le meme que celui de l'image originale
  92. //
  93. // >> Parametre de sortie :
  94. // > renvoie le chemin d'acces a la miniature qui vient d'etre generee
  95. '' )
  96. {
  97. // Recuperation des infos du fichier de destination
  98. // chemin d'acces
  99. // nom du fichier
  100. // on reecrit le fichier de destination avec le prefixe et le chemin complet
  101. '/'// creation de l'image en fonction du type MIME
  102. 'image/pjpeg''image/jpeg''image/x-png''image/png''image/gif'// si les deux longeurs max sont nulles, alors on ne redimensionne pas l'image
  103. // Si un second parametre est indique a la fonction ImageJpeg, la miniature est sauvegardee mais elle ne sera pas affichee. Ex : ImageJpeg( $img_src, './miniatures/mini.jpg');
  104. 'image/pjpeg''image/jpeg':
  105. // ecriture de la miniature au format jpeg
  106. 'image/x-png''image/png':
  107. // ecriture de la miniature au format png
  108. 'image/gif':
  109. // ecriture de la miniature au format gif
  110. // destruction du tampon de l'image
  111. //
  112. // traitement d'une image pour la redimensionner
  113. //
  114. // Adaptee de http://lecyber.net
  115. //
  116. // DESCRIPTION
  117. // > Cette methode ne travaille que sur le contenu binaire d'une image.
  118. // > Pour redimensionner une image binaire, il faut cracher l'image sur le disque pour travailler sur ce fichier
  119. // > temporaire.
  120. //
  121. // >> Parametres d'entree :
  122. // > $type : STRING / type MIME de l'image envoyee (ie : 'image/gif', 'image.jpg', ...)
  123. // > $srcBin : BINARY / contenu binaire de l'image
  124. // > $nom : STRING / nom du fichier temporaire qui permettra la redimension
  125. // > $larg_mini_max : INTEGER / largeur max de la miniature
  126. // > $haut_mini_max : INTEGER / hauteur max de la miniature
  127. //
  128. // >> Parametre de sortie : aucun
  129. // ecriture d'un fichier temporaire a partir de la donnee binaire
  130. 'w'// On cree une image correspondant a l'image source
  131. 'image/pjpeg''image/jpeg''image/x-png''image/png''image/gif'// Si un second parametre est indique a la fonction ImageJpeg, la miniature est sauvegardee mais elle ne sera pas affichee. Ex : ImageJpeg( $img_src, './miniatures/mini.jpg');
  132. 'Content-type: $type''image/pjpeg''image/jpeg':
  133. // Envoie l'image vers le navigateur.
  134. 'image/x-png''image/png''image/gif'// On detruit l'image afin de liberer la memoire
  135. // on supprime le fichier temporaire
  136. '<pre>''</pre>';
  137. }
  138.  
  139.  
  140. //
  141. // generation d'une entete de page HTML
  142. //
  143. // DESCRIPTION
  144. // > genere l'entete d'un fichier HTML jusqu'a la balise ouvrante <body>.
  145. // > Indique le fichier css ainsi que le titre de la page
  146. //
  147. // >> Parametre d'entree :
  148. // > $cheminTpl : STRING / chemin du template utilise
  149. // > $nomTpl : STRING / nom du template utilise
  150. // > $titre : STRING / titre de la page parsee
  151. //
  152. // >> Parametre de sortie : aucun
  153. 'entete', 'index_header.html''CHEMIN_TEMPLATE''NOM_TEMPLATE' => $nomTpl,
  154. 'TITRE_PAGE' => $titre
  155. ) );
  156. $tpl->pparse( 'affichage', 'entete' );
  157. }
  158. //
  159. // Generation d'un pied de page HTML
  160. //
  161. // DESCRIPTION
  162. // > genere la fin d'une page HTML cad les balises fermante </body> et </html>.
  163. // > Affiche un texte d'informations avant de fermer la page (copyright, temps d'execution, ...)
  164. //
  165. // >> Parametre d'entree :
  166. // > $cheminTpl : STRING / chemin du template utilise
  167. // > $infos : STRING / texte libre a afficher en bas de page
  168. //
  169. // >> Parametre de sortie : aucun
  170. 'pied', 'index_footer.html''INFOS', $infos );
  171. $tpl->pparse( 'affichage', 'pied' );
  172. }
  173.  
  174. //
  175. // creation d'une balise <style> a partir d'un fichier css
  176. //
  177. // DESCRIPTION :
  178. // > ouvre un fichier css pour le lire et concatener une balise <style>...</style>
  179. //
  180. // >> Parametre d'entree :
  181. // > $chemin : STRING / chemin d'acces au fichier
  182. //
  183. // >> Parametre de sortie : STRING / chaine complete avec la balise CSS
  184. // ouverture du fichier
  185. 'r'"<style>\n<!--\n$contenu\n-->\n</style>";
  186. }
  187. //
  188. // prepare un blob pour l'enregistrement en base
  189. //
  190. // DESCRIPTION
  191. // >> Parametre d'entree :
  192. // > $file : STRING / nom du fichier a preparer
  193. //
  194. // >> Parametre de sortie : STRING / la chaine preparee
  195. ""//
  196. // permet de fermer certaines balises HTML dans un texte qui sont restees ouvertes
  197. //
  198. // DESCRIPTION
  199. // >> Parametre d'entree :
  200. // > $texte : STRING / texte dans lequel chercher les balises non fermees
  201. //
  202. // >> Parametre de sortie : STRING / le texte avec ses balises fermees
  203. // expressions regulieres des balises ouvrantes
  204. "/\<strong\>/",
  205. "/\<em\>/",
  206. "/\<u\>/",
  207. "/\<strike\>/",
  208. "/\<a .*\>/",
  209. "/\<font .*\>/",
  210. "/\<span .*\>/" );
  211.  
  212. // expressions regulieres des balises fermantes respectivement aux balises ouvertes
  213. "/\<\/strong\>/",
  214. "/\<\/em\>/",
  215. "/\<\/u\>/",
  216. "/\<\/strike\>/",
  217. "/\<\/a\>/",
  218. "/\<\/font\>/",
  219. "/\<\/span\>/" );
  220. // balises fermantes
  221. "</strong>",
  222. "</em>",
  223. "</u>",
  224. "</strike>",
  225. "</a>",
  226. "</font>",
  227. "</span>" );
  228. // pour chaque balise ouvrante
  229. // on regarde combien de fois elle apparait
  230. // si des occurences ont été trouvées
  231. // on regarde combien de fois la balise fermante correspondante apparait
  232. // si ce nombre n'est pas egal au nombre de balises ouvrantes c'est qu'il faut fermer la balise
  233. // on rajoute autant de balises fermantes qu'il faut
  234. //
  235. // liste le contenu d'un dossier
  236. //
  237. // DESCRIPTION
  238. // > La methode recoit un chemin de dossier, ouvre ce dossier et en donne la liste des elements ; ces elements peuvent etre
  239. // > tout le contenu, seulement les dossiers ou seulement les fichiers.
  240. // > La methode retourne un tableau contenant les elements du dossiers ou FALSE si le chemin est incorrect.
  241. //
  242. // >> Parametres d'entree :
  243. // > $dir : STRING / Chemin d'acces au dossier
  244. // > $mode : STRING / codes des differentes methodes de recherche
  245. // > 'DOSSIERS_SEULEMENT' => donne uniquement les dossiers
  246. // > 'FICHIERS_SEULEMENT' => donne uniquement les fichiers
  247. // > 'TOUT' => donne tous les elements (dossiers ET fichiers)
  248. //
  249. // >> Parametre de sortie : ARRAY / retourne un tableau contenant les elements demandes OU False en cas d'erreur
  250. // creation du tableau qui va contenir les elements du dossier
  251. // ajout du slash a la fin du chemin s'il n'y est pas
  252. "/^.*\/$/"'/';
  253. // Ouverture du repertoire demande
  254. // si pas d'erreur d'ouverture du dossier on lance le scan
  255. // Parcours du repertoire
  256. '.' && $item != '..')
  257. {
  258. // selon le mode choisi
  259. 'DOSSIERS_SEULEMENT''FICHIERS_SEULEMENT''TOUT' :
  260. $items[] = $item;
  261. }
  262. }
  263. }
  264. // Fermeture du repertoire
  265. //
  266. // suppression avancee d'un repertoire
  267. //
  268. // DESCRIPTION
  269. // > permet de supprimer un dossier meme s'il n'est pas vide. Le script explore tout le contenu et le supprime
  270. // > avant de supprimer le dossier.
  271. //
  272. // >> Parametres d'entree :
  273. // > $dir : STRING / chemin d'acces au dossier a supprimer
  274. //
  275. // >> Parametre de sortie : BOOLEEN / TRUE si dossier supprime, FALSE en cas d'erreur
  276. // ajout du slash a la fin du chemin s'il n'y est pas
  277. "/^.*\/$/"'/';
  278. // Ouverture du repertoire demande
  279. // si pas d'erreur d'ouverture du dossier on lance le scan
  280. // Parcours du repertoire
  281. "." && $item != ".."// Fermeture du repertoire
  282. // suppression du repertoire
  283.  

Liste des projets

Téléchargez Codulle

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