Codulle - L'explorateur de code sources

Accueil>> AlBulle >> AlBulle0.5 >> medias

Informations fichier

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

  1. span style="color: #808080; font-style: italic;">///////////////////////////////
  2. // LICENCE
  3. ///////////////////////////////
  4. //
  5. // © DUCARRE Cedric, Bubulles Creations, (09/05/2005)
  6. //
  7. // webmaster@jebulle.net
  8. // http://jebulle.net
  9. //
  10. // Ce logiciel est une bibliothèque de fonctions utilitaires diverses.
  11. //
  12. // Ce logiciel est régi par la licence CeCILL soumise au droit français et
  13. // respectant les principes de diffusion des logiciels libres. Vous pouvez
  14. // utiliser, modifier et/ou redistribuer ce programme sous les conditions
  15. // de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
  16. // sur le site "http://www.cecill.info".
  17. //
  18. // En contrepartie de l'accessibilité au code source et des droits de copie,
  19. // de modification et de redistribution accordés par cette licence, il n'est
  20. // offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
  21. // seule une responsabilité restreinte pèse sur l'auteur du programme, le
  22. // titulaire des droits patrimoniaux et les concédants successifs.
  23. //
  24. // A cet égard l'attention de l'utilisateur est attirée sur les risques
  25. // associés au chargement, à l'utilisation, à la modification et/ou au
  26. // développement et à la reproduction du logiciel par l'utilisateur étant
  27. // donné sa spécificité de logiciel libre, qui peut le rendre complexe à
  28. // manipuler et qui le réserve donc à des développeurs et des professionnels
  29. // avertis possédant des connaissances informatiques approfondies. Les
  30. // utilisateurs sont donc invités à charger et tester l'adéquation du
  31. // logiciel à leurs besoins dans des conditions permettant d'assurer la
  32. // sécurité de leurs systèmes et ou de leurs données et, plus généralement,
  33. // à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
  34. //
  35. // Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
  36. // pris connaissance de la licence CeCILL, et que vous en avez accepté les
  37. // termes.
  38. //
  39. ///////////////////////////////
  40. // INFOS FICHIER
  41. ///////////////////////////////
  42. //
  43. // Fichier : util.class.php
  44. // Creation : 06/07/2004
  45. // Auteur : SamRay1024
  46. // Bubulles Creations - http://jebulle.net
  47. //
  48. ///////////////////////////////
  49. //
  50. // DESCRIPTION
  51. // > contient differentes methodes inclassables qui servent d'utilitaires
  52. //
  53. ///////////////////////////////
  54. //
  55. // redimensionner une image
  56. //
  57. // >> Parametres d'entree :
  58. // > $img_src : RESOURCE / identifiant de l'image a redimensionner
  59. // > $larg_mini_max : INTEGER / largeur max de la redimension
  60. // > $haut_mini_max : INTEGER / hauteur max de la redimension
  61. //
  62. // >> Parametre de sortie : RESOURCE / identifiant de l'image redimensionnee
  63. // On recupere les dimensions de l'image que l'on souhaite redimensionner
  64. // si l'image est plus petite que les dimensions demandees, on ne redimensionne pas.
  65. // Pour cela, on force la valeur de la dimension souhaitee a la valeur de la taille de l'image
  66. // de sorte a creer un ratio de 1 pour la dimension
  67. // On calcule le ratio pour la largeur et la hauteur
  68. // Et on garde le plus petit afin de ne jamais depasser la taille maximale
  69. // Connaissant le ratio de la miniature, on peut donc obtenir ses dimensions reelles.
  70. // Ici, on utilise la fonction "round" pour avoir une valeur entiere. Cela nous donne le nombre de pixels que va faire la miniature.
  71. // Cree une image vierge de la dimension desiree. Cette fonction permet de ne pas etre limite a 256 couleurs contrairement a "ImageCreate"
  72. // On effectue une copie de l'image source vers la miniture
  73. //
  74. // traitement d'une image postee par formulaire pour ecriture dans un dossier
  75. //
  76. // Adaptee de http://lecyber.net
  77. //
  78. // DESCRIPTION
  79. // > cette methode permet de traiter une image envoyee par un formulaire. L'image est redimensionnee aux dimensions
  80. // > souhaitees (uniquement si elle est plus grande que les dimensions demandees), ecrite dans le dossier demande
  81. // > et son nom de fichier peut etre prefixe.
  82. //
  83. // >> Parametre d'entree :
  84. // > $type : STRING / type MIME de l'image envoyee (ie : 'image/gif', 'image.jpg', ...)
  85. // > $srcFile : STRING / chemin d'acces complet a l'image que l'on souhaite redimensionner
  86. // > $destFile : STRING / repertoire de destination de stockage de l'image redimensionnee
  87. // > [$larg_mini_max] : INTEGER / largeur max de la miniature
  88. // > [$haut_mini_max] : INTEGER / hauteur max de la miniature
  89. // > [$prefixe] : STRING / si ce champ est indique, on genere une miniature prefixe de la chaine que contient cette variable
  90. // > sinon, on ecrase le fichier d'entree si le dossier de destination est le meme que celui de l'image originale
  91. //
  92. // >> Parametre de sortie :
  93. // > renvoie le chemin d'acces a la miniature qui vient d'etre generee
  94. '' )
  95. {
  96. // Recuperation des infos du fichier de destination
  97. // chemin d'acces
  98. // nom du fichier
  99. // on reecrit le fichier de destination avec le prefixe et le chemin complet
  100. '/'// creation de l'image en fonction du type MIME
  101. '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
  102. // 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');
  103. 'image/pjpeg''image/jpeg':
  104. // ecriture de la miniature au format jpeg
  105. 'image/x-png''image/png':
  106. // ecriture de la miniature au format png
  107. 'image/gif':
  108. // ecriture de la miniature au format gif
  109. // destruction du tampon de l'image
  110. //
  111. // traitement d'une image pour la redimensionner
  112. //
  113. // Adaptee de http://lecyber.net
  114. //
  115. // DESCRIPTION
  116. // > Cette methode ne travaille que sur le contenu binaire d'une image.
  117. // > Pour redimensionner une image binaire, il faut cracher l'image sur le disque pour travailler sur ce fichier
  118. // > temporaire.
  119. //
  120. // >> Parametres d'entree :
  121. // > $type : STRING / type MIME de l'image envoyee (ie : 'image/gif', 'image.jpg', ...)
  122. // > $srcBin : BINARY / contenu binaire de l'image
  123. // > $nom : STRING / nom du fichier temporaire qui permettra la redimension
  124. // > $larg_mini_max : INTEGER / largeur max de la miniature
  125. // > $haut_mini_max : INTEGER / hauteur max de la miniature
  126. //
  127. // >> Parametre de sortie : aucun
  128. // ecriture d'un fichier temporaire a partir de la donnee binaire
  129. 'w'// On cree une image correspondant a l'image source
  130. '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');
  131. 'Content-type: $type''image/pjpeg''image/jpeg':
  132. // Envoie l'image vers le navigateur.
  133. 'image/x-png''image/png''image/gif'// On detruit l'image afin de liberer la memoire
  134. // on supprime le fichier temporaire
  135. '<pre>''</pre>';
  136. }
  137.  
  138.  
  139. //
  140. // generation d'une entete de page HTML
  141. //
  142. // DESCRIPTION
  143. // > genere l'entete d'un fichier HTML jusqu'a la balise ouvrante <body>.
  144. // > Indique le fichier css ainsi que le titre de la page
  145. //
  146. // >> Parametre d'entree :
  147. // > $cheminTpl : STRING / chemin du template utilise
  148. // > $nomTpl : STRING / nom du template utilise
  149. // > $titre : STRING / titre de la page parsee
  150. //
  151. // >> Parametre de sortie : aucun
  152. 'entete', 'index_header.html''CHEMIN_TEMPLATE''NOM_TEMPLATE' => $nomTpl,
  153. 'TITRE_PAGE' => $titre
  154. ) );
  155. $tpl->pparse( 'affichage', 'entete' );
  156. }
  157. //
  158. // Generation d'un pied de page HTML
  159. //
  160. // DESCRIPTION
  161. // > genere la fin d'une page HTML cad les balises fermante </body> et </html>.
  162. // > Affiche un texte d'informations avant de fermer la page (copyright, temps d'execution, ...)
  163. //
  164. // >> Parametre d'entree :
  165. // > $cheminTpl : STRING / chemin du template utilise
  166. // > $infos : STRING / texte libre a afficher en bas de page
  167. //
  168. // >> Parametre de sortie : aucun
  169. 'pied', 'index_footer.html''INFOS', $infos );
  170. $tpl->pparse( 'affichage', 'pied' );
  171. }
  172.  
  173. //
  174. // creation d'une balise <style> a partir d'un fichier css
  175. //
  176. // DESCRIPTION :
  177. // > ouvre un fichier css pour le lire et concatener une balise <style>...</style>
  178. //
  179. // >> Parametre d'entree :
  180. // > $chemin : STRING / chemin d'acces au fichier
  181. //
  182. // >> Parametre de sortie : STRING / chaine complete avec la balise CSS
  183. // ouverture du fichier
  184. 'r'"<style>\n<!--\n$contenu\n-->\n</style>";
  185. }
  186. //
  187. // prepare un blob pour l'enregistrement en base
  188. //
  189. // DESCRIPTION
  190. // >> Parametre d'entree :
  191. // > $file : STRING / nom du fichier a preparer
  192. //
  193. // >> Parametre de sortie : STRING / la chaine preparee
  194. ""//
  195. // permet de fermer certaines balises HTML dans un texte qui sont restees ouvertes
  196. //
  197. // DESCRIPTION
  198. // >> Parametre d'entree :
  199. // > $texte : STRING / texte dans lequel chercher les balises non fermees
  200. //
  201. // >> Parametre de sortie : STRING / le texte avec ses balises fermees
  202. // expressions regulieres des balises ouvrantes
  203. "/\<strong\>/",
  204. "/\<em\>/",
  205. "/\<u\>/",
  206. "/\<strike\>/",
  207. "/\<a .*\>/",
  208. "/\<font .*\>/",
  209. "/\<span .*\>/" );
  210.  
  211. // expressions regulieres des balises fermantes respectivement aux balises ouvertes
  212. "/\<\/strong\>/",
  213. "/\<\/em\>/",
  214. "/\<\/u\>/",
  215. "/\<\/strike\>/",
  216. "/\<\/a\>/",
  217. "/\<\/font\>/",
  218. "/\<\/span\>/" );
  219. // balises fermantes
  220. "</strong>",
  221. "</em>",
  222. "</u>",
  223. "</strike>",
  224. "</a>",
  225. "</font>",
  226. "</span>" );
  227. // pour chaque balise ouvrante
  228. // on regarde combien de fois elle apparait
  229. // si des occurences ont été trouvées
  230. // on regarde combien de fois la balise fermante correspondante apparait
  231. // si ce nombre n'est pas egal au nombre de balises ouvrantes c'est qu'il faut fermer la balise
  232. // on rajoute autant de balises fermantes qu'il faut
  233. //
  234. // liste le contenu d'un dossier
  235. //
  236. // DESCRIPTION
  237. // > La methode recoit un chemin de dossier, ouvre ce dossier et en donne la liste des elements ; ces elements peuvent etre
  238. // > tout le contenu, seulement les dossiers ou seulement les fichiers.
  239. // > La methode retourne un tableau contenant les elements du dossiers ou FALSE si le chemin est incorrect.
  240. //
  241. // >> Parametres d'entree :
  242. // > $dir : STRING / Chemin d'acces au dossier
  243. // > $mode : STRING / codes des differentes methodes de recherche
  244. // > 'DOSSIERS_SEULEMENT' => donne uniquement les dossiers
  245. // > 'FICHIERS_SEULEMENT' => donne uniquement les fichiers
  246. // > 'TOUT' => donne tous les elements (dossiers ET fichiers)
  247. //
  248. // >> Parametre de sortie : ARRAY / retourne un tableau contenant les elements demandes OU False en cas d'erreur
  249. // creation du tableau qui va contenir les elements du dossier
  250. // ajout du slash a la fin du chemin s'il n'y est pas
  251. "/^.*\/$/"'/';
  252. // Ouverture du repertoire demande
  253. // si pas d'erreur d'ouverture du dossier on lance le scan
  254. // Parcours du repertoire
  255. '.' && $item != '..')
  256. {
  257. // selon le mode choisi
  258. 'DOSSIERS_SEULEMENT''FICHIERS_SEULEMENT''TOUT' :
  259. $items[] = $item;
  260. }
  261. }
  262. }
  263. // Fermeture du repertoire
  264. //
  265. // suppression avancee d'un repertoire
  266. //
  267. // DESCRIPTION
  268. // > permet de supprimer un dossier meme s'il n'est pas vide. Le script explore tout le contenu et le supprime
  269. // > avant de supprimer le dossier.
  270. //
  271. // >> Parametres d'entree :
  272. // > $dir : STRING / chemin d'acces au dossier a supprimer
  273. //
  274. // >> Parametre de sortie : BOOLEEN / TRUE si dossier supprime, FALSE en cas d'erreur
  275. // ajout du slash a la fin du chemin s'il n'y est pas
  276. "/^.*\/$/"'/';
  277. // Ouverture du repertoire demande
  278. // si pas d'erreur d'ouverture du dossier on lance le scan
  279. // Parcours du repertoire
  280. "." && $item != ".."// Fermeture du repertoire
  281. // suppression du repertoire
  282.  

Liste des projets

Téléchargez Codulle

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