Codulle - L'explorateur de code sources
Informations fichier
Nom du fichier : explore.phpTaille du fichier : 30 Ko (652 lignes)
Language : PHP
span style="color: #808080; font-style: italic;">//////////////////////////////////////// // Encodage du fichier : UTF-8 // Utilisation des tabulations : Oui // 1 tabulation = 4 caractères // Fins de lignes = LF (Unix) //////////////////////////////////////// /////////////////////////////// // LICENCE /////////////////////////////// // // © DUCARRE Cédric (SamRay1024), Bubulles Créations, (09/05/2005) // // webmaster@jebulle.net // http://jebulle.net // // Albulle est un programme de galerie photos pour site 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. // /////////////////////////////// /** * Albulle - Galerie photos * * @author SamRay1024 * @copyright Bubulles Creations * @link http://jebulle.net * @name Albulle * @since 23/05/2007 * @version 1.0rc4 */ // Fonction qui affiche les erreurs et quitte le programme 'Content-type: text/html; charset=utf-8'' <p style="background-color: papayawhip; border: 3px solid #c33; margin: 20px; padding: 20px;"> <strong># ALBULLE #</strong> <strong style="color: #c33;">[ Erreur ]</strong> <br /><br /> <strong>»</strong> '.$sMessage. '</p> <p style="background-color: azure; border: 3px solid steelblue; margin: 40px; padding: 10px; text-align: center;"> N\'hésitez pas à vous rendre sur le forum d\'Albulle si vous n\'arrivez pas à trouver de solution à votre problème.<br /> <strong>»</strong> <a href="http://forums.jebulle.net" style="text-decoration: none; color: steelblue;">http://forums.jebulle.net</a> <strong>«</strong> </p>' ); } // Fonction qui permet d'inclure un fichier 'Impossible de trouver le fichier <em>'.$sFichier.'</em>. Ce fichier est nécessaire pour le fonctionnement d\'Albulle.'); } // Vérification que la racine est bien définie 'JB_AL_ROOT') ) erreur( 'La constante JB_AL_ROOT doit être définie et pointer sur une installation valide d\'Albulle.''_JB_INCLUDE_AUTH', 1 ); // ==================== // INCLUSION DES FICHIERS NECESSAIRES // inclure( 'config.php' ); inclure( 'core/includes/fonctions.php' ); inclure( 'core/includes/classes/url.class.php' ); inclure( 'core/includes/classes/util.class.php''core/includes/classes/panierdefichiers.class.php' ); // Vérifier si la galerie est ouverte 'lock'' <p style="background-color: azure; border: 3px solid steelblue; margin: 40px; padding: 10px; text-align: center;"> '' </p>' ); // ==================== // INITIALISATIONS // // Tableau qui contiendra toutes les variables nécessaires et disponibles pour l'affichage // Tableau qui contiendra les miniatures // Tableau qui contiendra les paramètres reçus dans l'URL // Tableau qui contiendra les paramètres reçus par les formulaires 's_version'] = '1.0rc4''s_acces_theme''s_arborescence''s_menu_panier'] = '''s_lien_panier_tout_ajouter''s_lien_panier_tout_supprimer'] = '''s_navigation''s_pagination'] = '''s_classe_css_vignette'] = '''s_texte_mode_affichage''s_lien_mode_affichage'] = '''b_defilement_auto''voir' => '' ); // Tableau des actions disponibles // Tableau qui contiendra la liste des dossiers du répertoire courant passé par l'url // Tableau qui contiendra la liste des photos pour la page courante 'rep', 'page', 'act', 'img', 'diapo', 'voir', 'diaporama', 'galerie''session.use_trans_sid', '0'); // Envoi des entêtes HTTP 'iso-8859-1' : 'utf-8''Content-type: text/html; charset='.$sCharset ); // Force l'encodage de sortie à l'UTF-8 // ==================== // VERIFICATIONS // // ==================== // LECTURE DES PARAMETRES PASSES DANS L'URL // 's_rep_courant''rep''rep'] )) : '''i_page_courante''page''page''s_action''act''act'] : '''s_image''img''img'] )) : '''s_diapo_courante''diapo''diapo'] )) : '''b_voir_panier''voir'] ); // ==================== // Gestion du mode diaporama // // Initialisation '''JB_AL_MODE_DIAPORAMA''JB_AL_MODE_DIAPORAMA'// Si mode diaporama demandé 'diaporama''JB_AL_MODE_DIAPORAMA''galerie''JB_AL_MODE_DIAPORAMA'// Sauvegarde du mode d'affichage dans le tableau des variables 'b_mode_diaporama''JB_AL_MODE_DIAPORAMA']; // ==================== // GESTION DU PANIER // 's_image']); // Lancement des actions. // L'action de télechargement est désormais située dans le fichier download.php (ou le nom que nous lui avez donné). 's_action''ajouter''supprimer''b_voir_panier'] && // Si on visionne le panier ... 'b_mode_diaporama'] && // ... en mode diaporama ... 's_image''s_diapo_courante'] // ... et que l'image supprimée du panier est celle visionnée ) // alors on efface la diapo courante ... pour ne pas réafficher l'image supprimée ;-) 's_diapo_courante'] = '''vider'// Gestion de l'exploration du panier : // si exploration du panier demandée et qu'il y a des fichiers dans le panier, on définit l'action pour l'url ; sinon // on désactive l'exporation du panier 'b_voir_panier'] && $oPanier->CompterFichiers() > 0) ? $aActions['voir'] = '&voir''b_voir_panier'// ==================== // GESTION DU CHEMIN PASSE EN PARAMETRE // // Nettoyage du chemin (pour éviter les failles d'accès) // On récupère la liste des dossiers de ce chemin pour pouvoir connaitre le niveau dans lequel on se trouve 's_rep_courant''s_rep_courant''s_rep_courant_url''s_rep_courant']); // Vérification que le dossier passé dans l'url existe sinon on l'efface // ce qui a pour effet de revenir à la page d'accueil. 's_rep_courant''s_rep_courant'] = '''s_rep_courant_url'] = ''; // ==================== // CALCUL NIVEAU DANS L'ARBORESCENCE // // ==================== // GESTION DE LA LISTE DES DOSSIERS DE PHOTOS // // Albulle permet de gérer une arborescence multi-niveaux de dossiers pour pouvoir classer plus finement les photos. // Répertoire racine 's_rep_courant'], // Répertoire demandé $iNiveau, // Niveau de profondeur du répertoire demandé // Dossiers à ne pas afficher 'gif', 'jpe', 'jpeg', 'jpg', 'png' ), // Fichier autorisés // Afficher le nombre de fichiers par dossier // Afficher le nombre de fichiers même si dossier vide // Dérouler tous les dossiers ou seulement celui demandé // Filtrage activé ou non (cf. explications dans includes/config.php) // Séparateur des filtres 's_arborescence'] = $aResultats['arborescence_html''s_rappel_sous_dossiers'] = $aResultats['dossiers_rep_courant''b_voir_panier'] ? $aResultats['fichiers_dossier_courant'] : $oPanier->obtenirPanier(); // ==================== // GESTION DE LA LISTE DES PHOTOS (si un répertoire est défini) // 's_rep_courant''s_rep_courant''b_voir_panier']) && $iNbPhotos > 0 ) { // Choix des dimensions des miniatures 'b_mode_diaporama''b_mode_diaporama'// calcul du nombre de pages // génération de la pagination 's_pagination''i_page_courante'], $oUrl->construireUrl( 'rep=''s_rep_courant_url'].$aActions['voir'] ) ); // CREATION DES VIGNETTES // compteur pour le tableau (il doit être indépendant du compteur de boucle) 'i_diapo_courante'] = 0; // vérification qu'on ne dépasse pas la taille du tableau 'i_page_courante''i_page_courante'// // Pour chaque image dans l'intervalle de la page // 'i_page_courante''i_page_courante''s_rep_courant']; // On utilise une variable car elle doit être modifiée en mode diaporama // Si on se trouve en mode exploration du panier, il faut définir $sRepCourant à chaque fois, // et écraser le chemin de l'image pour qu'il n'y ai que le nom de l'image. 'b_voir_panier''/', 1); // Troncature du dossier préfixe (photos ou originales ou centre) '/''/''/''/''/''/''/''/')); } // // Definition chemin de la photo courante et de sa miniature // '.''/''/''_''x''_''.'.$sExtension; // // Lectures infos image courante // ' Octets'' Ko'' (*)'; // // Création miniature // // Si l'image ne dépasse pas la limite de 5,3 millions de pixels, on peut lancer le traitement 'miniature'; // si la miniature n'existe pas ou que la photo est plus récente que la miniature => création ou remplacement ''// sinon, on écrase le chemin de la miniature pour afficher celle par défaut 'miniature_defaut''s_acces_theme'].(isIE() ? 'images/ie/miniature_defaut.gif' : 'images/miniature_defaut.png'); } // // Gestion du panier : si on demande la sélection de toutes les images de la page // avant d'afficher chaque vignette, on l'ajoute au panier. Idem si on demande le // retrait. // 's_action''tout''rien''b_voir_panier'// Définition des chaines d'ajout et de retrait de l'image dans le panier 's_diapo_courante'] !== '') ? '&diapo=''s_diapo_courante']) : ''; $sUrlAjout = $oUrl->construireUrl( 'rep=''s_rep_courant_url'].'&page=''i_page_courante'].$sParamDiapo.'&act=ajouter&img=''voir'] ); $sUrlRetrait = $oUrl->construireUrl( 'rep=''s_rep_courant_url'].'&page=''i_page_courante'].$sParamDiapo.'&act=supprimer&img=''voir'] ); } // // Sauvegarde l'indice de la photo visionnée si on est en mode diaporama // OU placement sur la première diapo s'il n'y en a pas de définie, uniquement quand on se trouve sur la 1ère itération de la boucle. // 'b_mode_diaporama''s_diapo_courante''s_diapo_courante''i_diapo_courante''s_diapo_courante''s_diapo_courante'// // Construction du lien de la vignette de la photo // // lien par défaut $sLienHrefJS = $sBaliseLightBox = ''; // Si ouverture des photos demandé avec target="_blank" ' target="_blank"' : ''; // Ouverture avec Javascript sans Lightbox 'b_mode_diaporama''b_mode_diaporama'// Détermination de la largeur et de la hauteur de la popup si demandé dans la config // Réajustement des dimensions ' onclick="javascript:popup( encodeURI(\'''\'), '', '' ); return false;"'; } // Ouverture avec Javascript et Lightbox (pas besoin d'écraser le lien mais il faut construire la balise rel) 'b_mode_diaporama''b_mode_diaporama''_', ' ''.', 1 ); $sBaliseLightBox = ' rel="lightbox''b_mode_diaporama''' : '[albulle]').'" title="['.$aImgInfos[0].' x '.$aImgInfos[1].' | '.$sPoids.'] » ''"'; } // En mode diaporama, il faut écraser le lien pour afficher les images 'b_mode_diaporama'] ) { $sLienHref = $oUrl->construireUrl( 'rep=''s_rep_courant_url']. '&page=''i_page_courante'] .$aActions['voir']. '&diapo=''marqueur' ); } // // Ajout de la vignette dans le tableau global // 'CHEMIN_PHOTO''CHEMIN_PHOTO_URL''LIEN_PHOTO''HREF' => $sLienHref, 'TARGET' => $sTargetBlank, 'JAVASCRIPT''b_mode_diaporama''', 'LIGHTBOX''b_mode_diaporama''', 'CHEMIN_MIN''CLASSE_CSS''ALT''NOM_PHOTO''b_mode_diaporama''''DIM_PHOTO'' x '.$aImgInfos[1] : '''SIZE_PHOTO''''TYPE_MIME''EXIF'// Lien pour l'ajout/retrait du panier 'PANIER']['MODE'] = 'retrait''PANIER']['URL''PANIER']['MODE'] = 'ajout''PANIER']['URL'] = $sUrlAjout; } } // Diapositive courante si mode diaporama actif 'b_mode_diaporama''LIEN_DIAPO''HREF''CHEMIN_PHOTO_URL'], 'TARGET' => $sTargetBlank, 'JAVASCRIPT' => $sLienHrefJS, 'LIGHTBOX''', 'ALT'// // Application filtres sur le nom de la photo // 'NOM_PHOTO''NOM_PHOTO''NOM_PHOTO''_', ' ''NOM_PHOTO''NOM_PHOTO''NOM_PHOTO'], '.', 1 ); $j++; } } //echo '<pre>'; //print_r($_MINIATURES); //echo '</pre>'; // ==================== // GESTION DES LIENS DU PANIER // // état du panier : plein ou pas, nombre de fichiers dans le panier, poids estimé de l'archive 'a_panier']['b_plein''a_panier']['i_nb_fichiers''a_panier']['s_poids_estime'' Octets'' Ko'; // création des liens si des fichiers se trouvent dans le panier 'a_panier']['i_nb_fichiers''a_menu_panier']['s_url_download''core/download.php''a_menu_panier']['s_url_voir'] = $oUrl->construireUrl( 'rep=''s_rep_courant_url'].'&voir''a_menu_panier']['s_url_vider'] = $oUrl->construireUrl( 'rep=''s_rep_courant_url''b_voir_panier'] ? '' : '&page=''i_page_courante']) .'&act=vider' ); } // Liens pour les ajouts / retraits globaux 's_lien_panier_tout_ajouter''b_voir_panier'] ) ? $oUrl->construireUrl( 'rep=''s_rep_courant_url'].'&page=''i_page_courante'].'&act=tout'.$aActions['voir'] ) : '''s_lien_panier_tout_supprimer''b_voir_panier'] ) ? $oUrl->construireUrl( 'rep=''s_rep_courant_url'].'&page=''i_page_courante'].'&act=rien'.$aActions['voir'] ) : ''; } // ==================== // INITIALISATIONS DIVERSES POUR L'HTML // 's_rep_courant''s_rep_courant''b_voir_panier''b_voir_panier']; // Nettoyage préfixe et tirets bas 's_rep_courant''b_voir_panier''_', ' ''panier''s_titre_meta''s_rep_courant'] ) ) ? 'Accueil' : "Photos de $sTitreFiltre"'b_voir_panier''s_titre_meta''de', 'dans le''s_titre_meta']); // Pour remplacer le 'de' de la ligne précédente quand on visionne le contenu du panier. // Construction de la chaine de navigation dans les dossiers 's_rep_courant''b_voir_panier''s_navigation'] = 'Accueil''''s_navigation'] = '<a href="''PHP_SELF'].'">Accueil</a> » ''b_voir_panier'] ; $i++ ) { // Nettoyage préfixe '/''s_navigation'] .= '<a href="'.$oUrl->construireUrl( 'rep='.$oOutils->preparerUrl($sLien).$aActions['voir'] ).'">''_', ' ''</a> » '; } // Nettoyage préfixe 'b_voir_panier''Photos dans le panier''s_navigation''_', ' '// Lien modes galerie / diaporama 'b_mode_diaporama'] ) { // Pour le défilement automatique 'DIAPORAMA_INTERVALLE''DIAPORAMA_INTERVALLE'] = 0; // Si lancement défilement demandé 'diaporama_intervalle''DIAPORAMA_INTERVALLE''diaporama_intervalle''DIAPORAMA_INTERVALLE''DIAPORAMA_INTERVALLE''DIAPORAMA_INTERVALLE'] : 0; // Si arrêt du défilement demandé 'arreter''DIAPORAMA_INTERVALLE'] = 0; // Sauvegarde du temps du défilement et définition du drapeau qui nous servira pour les futurs tests 'i_intervalle_tps''DIAPORAMA_INTERVALLE''b_defilement_auto''DIAPORAMA_INTERVALLE'] > 0); // Définition des attributs du bouton de défilement 'b_defilement_auto''s_defilement_submit_name'] = 'lancer''s_defilement_submit_value'] = 'Lancer !''s_defilement_submit_name'] = 'arreter''s_defilement_submit_value'] = 'Arrêter'; } // Construction liens précédente / suivante 's_url_img_precedente''s_url_img_suivante'] = ''; $sPagePrecedente = $sPageSuivante = '&page='; // S'il y a des images précédentes 'i_page_courante''i_page_courante''i_page_courante''i_page_courante''s_url_img_precedente'] = $oUrl->construireUrl( 'rep=''s_rep_courant_url'].$sPagePrecedente.$aActions['voir'].'&diapo=''marqueur'); } // S'il y a des images qui suivent 'i_page_courante''i_page_courante''i_page_courante''s_url_img_suivante'] = $oUrl->construireUrl( 'rep=''s_rep_courant_url'].$sPageSuivante.$aActions['voir'].'&diapo=''marqueur''DIAPORAMA_INTERVALLE''s_lien_mode_affichage'] = $oUrl->construireUrl( 'rep=''s_rep_courant_url'].'&page=''i_page_courante'].'&galerie'.$aActions['voir''s_texte_mode_affichage'] = 'Mode galerie''s_classe_css_vignette'] = 'vignetteDiapo''s_lien_mode_affichage'] = $oUrl->construireUrl( 'rep=''s_rep_courant_url'].'&page=''i_page_courante'].'&diaporama'.$aActions['voir'], 'marqueur''s_texte_mode_affichage'] = 'Mode diaporama''s_classe_css_vignette'] = 'vignette'; } } // ==================== // Affichage // //$oPanier->EtatPanier(); 's_acces_theme'].'html.php''s_acces_theme'].'html.php''includes/html.php'