Coppermine Photo Gallery v1.5.x: Documentation et manuel

Table des matières

Modifiez theme.php

Chaque thème contient un fichier theme.php. Toutefois, pour la plupart des thèmes, ce fichier est presque vide. La raison est que seules les choses qui diffèrent du comportement par défaut de Coppermine doivent être définis dans theme.php. Les éléments supposés fonctionner "de la manière normale à Coppermine" sont définis dans le code du noyau central de Coppermine - le fichier theme.php de votre thème personnalisé contient les définitions de variables et de fonctions qui forcent les éléments identiques du code général.

Le fichier "theme.php" contient tous les gabarits HTML utilisés par le script. Vous pouvez les modifier à souhait. Lorsque vous faites des modifications de ces gabarits, soyez attentifs à ne pas modifier les lignes commençant par <!-- BEGIN xxx --> et <!-- END xxx -->. Ces lignes sont souvent utilisées pour identifier le début et la fin d'un bloc de code spécifique que le script utilise pour afficher la galerie.

Types d'éléments

A la base il peut y avoir trois sortes de types de contenus dans theme.php (du point de vue du programmeur PHP). Pas de panique, vous n'avez pas besoin d'être programmeur pour pouvoir être capable de modifier votre thème.

Le thème sample - un thème pour copier/coller

Votre installation de Coppermine inclue aussi un répertoire avec le thème "sample". Le thème "sample" inclue chacun de ces fichiers mais ne s'affiche pas dans la liste des thèmes sélectionnables dans l'affichage de votre galerie Coppermine. Le fichier theme.php du thème sample contient une copie de chaque fonction et gabarits utilisables, comme référence. Si vous décidez d'utiliser le thème "sample" pour commencer à créer votre propre thème, vous devrez suivre les instructions concernant theme.php dans la section "documentation pour la mise à jour des thèmes" et commencer par un fichier theme.php vide.

Pour être clair: vous ne devez pas modifier le thème sample (du fait qu'il n'est pas affiché), mais copiez les sections que vous souhaitez changer vers votre thème personnalisé. Ne copiez pas l'ensemble du contenu du fichier themes/sample/theme.php dans votre thème personnalisé, il ne fera qu'encombrer votre thème et rendra sa mise à jour très difficile par la suite. Ne copiez que les sections que vous souhaitez modifier depuis themes/sample/theme.php dans themes/votretheme/theme.php.

Ceci dit: vous ne devez pas commencer votre propre thème en copiant le thème sample - commencez par un fichier theme.php vide. N'utilisez themes/sample/theme.php que pour copier des sections particulières que vous voulez modifier dans votre thèmes personnalisé et ensuite modifiez les.

Les débutants ont souvent des problèmes pour comprendre ce qu'est une "section" ce qu'ils doivent copier depuis le thème sample - si vous n'avez pas assez de connaissances en PHP, il est parfois difficiles de comprendre ou commence une définition de fonction et ou elle se termine. C'est pourquoi nous avons "habillé" les sections individuelles qui contiennent plus qu'une ligne par des blocs de commentaires qui essayent d'attirer votre attention: une section commence par le bloc

/******************************************************************************
** Section <<<section_name>>> - START
******************************************************************************/
et se termine par
/******************************************************************************
** Section <<<section_name>>> - END
******************************************************************************/
ou le nom de la section (section_name dans l'exemple ci-dessus) est identique dans le bloc de début et dans le bloc de fin.

L'emplacement ou vous insérez la section que vous copiez depuis le thème sample n'a aucune importance, tant que vous faites attention à ne pas les coller dans une autre section, mais avant ou après une section existante dans votre thème personnalisé. Comme règle, vous pouvez sans risques coller une section dans une nouvelle ligne juste avant ?> dans votre thème personnalisé (themes/votretheme/theme.php)

Méthode

La méthode pour modifier tout fichier theme.php est réellement facile - suivez simplement ces simples étapes:

Champ d'application

Bien, qu'est ce qui peut être fait en modifiant theme.php? Seul le ciel est votre limite: seule votre imagination peut être une limite, mais la portée des modifications possibles dans le fichier theme.php est infinie. Néanmoins, les utilisateurs demandent généralement les cinq ou six fonctions ou changent tout le temps. C'est pourquoi nous avons créé une page avec des exemple de thèmes ou les modifications les plus courantes du fichier theme.php sont expliquées – assurez-vous de lire attentivement ces exemples avant de commencer à poser une nouvelle question sur le forum d'aide de Coppermine, vous risquerez sinon de vous voir renvoyer vers un lisez la documentation...

Nous essayons vraiment d'attirer votre attention sur ce bloc; merci de lire les pages d'exemple de thèmes après avoir lu cette page.

Liste des éléments de theme.php

Élément Type Description Dépendances
define('THEME_HAS_PROGRESS_GRAPHICS',1); Constante Coppermine affiche une icône "chargement en cours" lorsque le formulaire de téléchargement est soumis pour signaler qu'il ne doit pas y avoir d'interaction de l'utilisateur pendant que le script est occupé par le téléchargement. Lorsque cette constante est définie, le script va chercher l'icône "téléchargement en cours" dans le répertoire images du thème (themes/votretheme/images/loader.gif). Si cette constante n'est pas définie, l'image de chargement par défaut sera utilisée, prise dans le répertoire générique des images. Lors de la création de votre propre thème, assurez-vous que l'image de chargement existe lorsque vous définissez la constante. Si défini, un fichier nommé loader.gif doit se trouver dans le répertoire images du thème.
define('THEME_HAS_RATING_GRAPHICS',1); Constante L'emplacement des images d'évaluation. Si cette constante est définie, le script sera dirigé vers le répertoire images du thème (themes/votretheme/images/) et y cherchera les images d'évaluation. Si pas définie (défaut), les images d'évaluation seront prises dans le répertoire images qui se trouve dans le répertoire racine de Coppermine. Ressources graphiques des thèmes → Images d'évaluation
define('THEME_HAS_COMMENT_GRAPHICS',1); constant The location for the comment management graphics. When the constant is set, the script will be directed to the theme's images folder, subfolder 'icons', i.e. themes/yourtheme/images/icons/ and look for the comment management images there. If not defined (default), the comment management images will be taken from images/icons/. Graphic resources in themes → Comment management images
define('THEME_HAS_MENU_ICONS',16); Constante L'emplacement pour les icônes des menus qui sont affichées si l'option de configuration "Activer les icônes de menu" est activée. Si cette constante est définie, le script sera dirigé vers le répertoire images du thème, sous-répertoire 'icons', themes/votretheme/images/icons/ et y cherchera les icônes de menu. Si non définie (défaut), les icônes de menu seront prises dans images/icons/. A l'inverse de la plupart des autres constantes de thème, la valeur que vous assignez à cette constante a une importance définissez-la à la taille (en pixels) de vos icônes personnalisées. Les icônes personnalisées (comme les icônes par défaut) doivent être carrées.
Si vous décidez d'utiliser votre propre jeu d'icônes pour les menus de votre thème personnalisé, il est conseillé de copier le répertoire images/icons/ dans themes/votretheme/images/ pour avoir un jeu par défaut, puis commencez à les modifier une à une.
define('THEME_HAS_NAVBAR_GRAPHICS',1); Constante L'emplacement des barres de navigations graphiques ("ecard", "slideshow", "previous"/"next"). Lorsque cette constante est définie, le script sera dirigé vers le répertoire images de votre thème (themes/votretheme/images/) et y cherchera les images de la barre de navigation. Si non définie (défaut) les images des barres graphiques seront prises dans le répertoire images à la racine de Coppermine. Ressources graphiques des thèmes → Images de barre de navigation
define('THEME_HAS_FILM_STRIP_GRAPHIC',1); Constante L'emplacement pour les images du négatif de film. Lorsque cette constante est définie, le script sera dirigé vers le répertoire images de votre thème (themes/votretheme/images/) et y cherchera les images du négatif de film. Si non définie (défaut) les images du négatif de film seront prises dans le répertoire images à la racine de Coppermine. Si définie, un fichier nommé tile.gif doit se trouver dans le répertoire images du thème [Détails]
define('THEME_HAS_FILM_STRIP_GRAPHICS',1);
(Attention au S de fin qui est l'unique différence avec la constante précédente THEME_HAS_FILM_STRIP_GRAPHIC)
Constante L'emplacement pour le graphisme du négatif de film. Lorsque cette constante est définie, le script sera dirigé vers le répertoire images du thème, à savoir themes/yourtheme/images/ et regardera les images de négatif de film (tile1.gif pour la partie supérieure et tile2.gif pour la partie inférieur). S'il n'est pas défini (par défaut), les images du négatif de film seront prises à partir du dossier images qui se trouve dans le dossier racine de Coppermine. Si définie, un fichier nommé tile1.gif et un fichier nommé tile2.gif doivent résider dans le dossier images du thème [Détails]
define('THEME_HAS_NO_SYS_MENU_BUTTONS',1); Constante Si présent, le système ne cherchera pas à remplacer {BUTTONS} dans le gabarit SYS_MENU
define('THEME_HAS_NO_SUB_MENU_BUTTONS',1); Constante Si présent, le système ne cherchera pas à remplacer {BUTTONS} dans le gabarit SYS_MENU
function assemble_template_buttons($template_buttons,$buttons) Fonction Créer les boutons d'un gabarit en utilisant un tableau de conteneurs. Si cette fonction est utilisée dans ce fichier, elle doit être déclarée avant d'être appelée.
function addbutton(&$menu,$href_lnk,$href_title,$href_tgt,$block_id,$spacer) Fonction Créer un tableau de conteneurs utilisé par la fonction assemble_template_buttons. Si cette fonction est utilisée dans ce fichier, elle doit être définie avant d'être appelée.
function pageheader($section, $meta = '') Fonction Fonction d'écriture d'un en-tête de page. Le premier paramètre $section ne doit pas être touché. Le second paramètre $meta peut être utilisé pour y ajouter vos balises métas personnalisées. Pour ajouter des méta-balises statiques, modifiez template.html
function pagefooter() Fonction Fonction d'écriture du pied de page
function theme_javascript_head() Fonction Fonction pour le JavaScript dans la section <head>
function theme_credits() Fonction Fonction pour la section credits
function starttable($width = '-1', $title = '', $title_colspan = '1') Fonction Fonction pour commencer une table 'standard'/td>
function endtable() Fonction Fin d'une table standard function starttable()
function theme_main_menu($which) Fonction
function theme_admin_mode_menu() Fonction
function theme_display_message_block() Fonction Fonction pour le bloc theme_display_message_block. Le bloc de messages (à ne pas confondre avec le menu administrateur) affiche un message sur toutes les pages et un flux RSS depuis la page du projet Coppermine pour l'administrateur. Il est conseillé de ne pas la modifier sans savoir ce que vous faites. Cette fonction génère les sections individuelles du bloc.
function theme_display_cat_list($breadcrumb, &$cat_data, $statistics) Fonction Fonction d'affichage de la liste des catégories sur la page d'index. Contient une partie de la logique du noyau et ne doit être modifiée que très rarement.
function theme_display_breadcrumb($breadcrumb, &$cat_data) Fonction Fonction d'affichage de la barre de navigation (généralement pris comme "ligne de menu de base") qui indique dans quelle sous-structure se trouve le visiteur (racine de la galerie → catégorie → sous-catégorie → album).
function theme_display_album_list(&$alb_list, $nbAlb, $cat, $page, $total_pages) function Fonction qui affiche la liste des albums sur la page d'index. Contient une part de la logique du noyau qui n'a que rarement besoin d'être modifiée.
function theme_display_album_list_cat(&$alb_list, $nbAlb, $cat, $page, $total_pages) Fonction Fonction qui affiche l'album de premier niveau d'une catégorie.
function theme_display_thumbnails(&$thumb_list, $nbThumb, $album_name, $aid, $cat, $page, $total_pages, $sort_options, $display_tabs, $mode = 'thumb', $date='') Fonction Fonction qui affiche les vignettes aussi bien dans la vue des albums que des catégories ou des méta-albums
function theme_display_film_strip(&$thumb_list, $nbThumb, $album_name, $aid, $cat, $pos, $sort_options, $mode = 'thumb', $date='') Fonction Affiche le négatif de film Uniquement pris en compte si Affiche le négatif de film est activé dans la configuration.
function theme_no_img_to_display($album_name) Fonction Fonction qui génère l'affichage si un album est vide ou si un élément particulier est inaccessible quelque soit la raison (n'existe pas ou droits manquants)
function theme_display_image($nav_menu, $picture, $votes, $pic_info, $comments, $film_strip) Fonction Gabarit général de l'affichage de l'écran des images intermédiaires (displayimage.php).
function theme_html_picinfo(&$info) Fonction Gabarit qui génère les lignes individuelles de la table des informations des images sous les images intermédiaires La section information des images doit être déployée
function theme_html_picture() Fonction Affiche une image ou tout autre enregistrement se trouvant dans la base de donnée de Coppermine pour une vue individuelle.
function theme_html_img_nav_menu() Fonction
function theme_html_rating_box() Fonction
function theme_html_comments($pid) Fonction Affichage des commentaires pour une image spécifique
function theme_slideshow() Fonction
function theme_display_fullsize_pic() Fonction Affichage de l'image de grande taille
function theme_vanity() Fonction
function theme_display_bar($actualValue = 0, maxValue = '100', maxBarSizeInPixels = '400', textColor = 'black', textShadowColor = '', textUnit = '', leftBar = 'red', rightBar = '') Fonction Affiche une barre graphique
function theme_page_title($section) Fonction Créer les balises titres pour chaque page. Pour une bonne compatibilité avec les moteurs de recherche, la partie dynamique $section doit venir en premier
$template_sys_menu Variable Gabarit pour sys_menu
$template_sub_menu Variable Gabarit pour sys_menu
$template_sys_menu_spacer Variable Séparateur entre les éléments du sys menu (dans beaucoup de thèmes :: est utilisé)
$template_sys_menu_button Variable Modifiez celle-ci pour ajouter/changer les classes CSS pour les liens du sys-menu.
Le contenu par défaut est
  <!-- BEGIN {BLOCK_ID} -->
        <a href="{HREF_TGT}" title="{HREF_TITLE}">{HREF_LNK}</a>
        {SPACER}
  <!-- END {BLOCK_ID} -->
$template_sub_menu_spacer Variable Séparateur entre les éléments du sous menu. Par défaut, c'est le même séparateur que celui utilisé pour le sys menu.
$template_sub_menu_button Variable Modifiez la pour ajouter/Changer les classes CSS pour les liens menu-menu. Par défaut, la définition pour le sys-menu est prise en compte.
$template_gallery_admin_menu Variable Gabarit HTML pour le menu administrateur de la galerie
$template_user_admin_menu Variable Gabarit HTML pour le menu administrateur de l'utilisateur (le menu additionnel que l'utilisateur non administrateur verra une fois identifié et ayant le droit d'avoir sa galerie personnelle (les droits pour cela sont définis dans le panneau de gestion des groupes).
$template_cat_list Variable Gabarit HTML pour la liste des catégories
$template_breadcrumb Variable Gabarit HTML pour le menu de navigation (le chemin qui indique au visiteur ou il se trouve en terme de structure logique des catégories/albums)
$template_album_list Variable Gabarit HTML pour la liste des albums
$template_film_strip Variable Gabarit HTML pour l'affichage du négatif de film sur la page des images intermédiaires (displayimage.php)
$template_album_list_cat Variable Gabarit HTML pour la liste des albums
$template_album_admin_menu Variable Gabarit HTML pour le menu administrateur ALBUM affiché dans la liste des albums (les éléments de menu (boutons) qui sont affichés à coté de chaque vignette d'album si l'utilisateur identifié est le propriétaire de cet album. Généralement le cas pour l'administrateur.
$template_thumb_view_title_row Variable Gabarit HTML pour la ligne du titre de la vue des vignettes (titre de l'album + options de tri). C'est l'endroit pour effacer les options de tri si vous ne voulez pas les afficher.
$template_fav_thumb_view_title_row Variable Gabarit HTML pour la ligne de titre de la vue des vignettes favorites (titre de l'album + téléchargement).
$template_thumbnail_view Variable Gabarit HTML pour l'affichage des vignettes La fonction theme_display_thumbnails utilise les variables et définition des conteneurs {THUMB}, {CAPTION}, {ADMIN_MENU} et {TABS}
$template_no_img_to_display Variable Gabarit HTML pour la vue des vignettes si il n'y a pas d'images à montrer. Si votre galerie nécessite l'enregistrement des visiteurs pour voir les images, vous devrez les encourager à le faire en modifiant le contenu de cette section du thème. Le conteneur {TEXT} est complété et la variable est utilisée dans la fonction theme_no_img_to_display
$template_user_list_info_box Variable Gabarit HTML pour la boite d'informations de l'utilisateur dans la liste des utilisateurs
$template_img_navbar Variable Gabarit HTML pour les images de la barre de navigation: La navigation en haut des images intermédiaires vous permet d'aller à la page des vignettes, de déployer/cacher la section des informations des images, démarrer le diaporama, contient le lien vers les cartes électroniques, vous permets de rapporter un fichier à l'administrateur et affiche le lien vers l'image précédente ou suivante de l'album dans lequel se trouve le visiteur.
$template_display_media Variable Gabarit HTML pour l'affichage des images intermédiaires. C'est l'endroit ou les modifications d'aspect des images intermédiaires en relation avec le titre et la description doivent être ajoutées. La fonction theme_html_picture remplis les conteneurs {IMAGE}, {ADMIN_MENU}, {TITLE} et {CAPTION} et utilise cette variable
$template_image_rating Variable Gabarit HTML pour la section d'évaluation des images
$template_image_comments Variable Gabarit HTML pour l'affichage des commentaires
$template_add_your_comment Variable Gabarit HTML pour l'affichage du formulaire pour les commentaires
$template_cpg_die Variable Gabarit HTML utilisé par la fonction cpg_die, utilisée pour l'affichage des messages d'erreurs de toutes sortes au visiteur
$template_msg_box Variable Gabarit HTML utilisé par la fonction msg_box qui affiche les messages aux visiteurs en haut de la page (généralement pour donner le résultat des actions faites par l'utilisateur à l'écran précédant).
$template_ecard Variable Gabarit HTML pour les cartes électroniques
$template_ecard_plaintext Variable Gabarit plein texte pour les cartes électroniques (en remplacement des clients ne pouvant pas afficher de mails formatés en HTML)
$template_report Variable Gabarit HTML pour les rapports
$template_report_plaintext Variable Gabarit texte pour les rapports (pour les clients qui ne peuvent pas afficher les mails formatés en HTML)
$template_report_comment Variable Gabarit HTML pour afficher les rapports de commentaires
$template_report_comment_email Variable Gabarit texte pour les rapports (pour les clients qui ne peuvent pas afficher les mails formatés en HTML)
$template_tab_display Variable Gabarit utilisé pour l'affichage des tabulations
$template_vanity Variable Gabarit utilisé pour le pied de page de courtoisie (Vanity)
$template_sidebar Variable Gabarit HTML pour la barre latérale
$template_zipfile_plaintext Variable Gabarit texte pour le fichier lisez-moi optionnel à ajouter à l'archive lors de l'utilisation du téléchargement compressé des favoris

Exemples

Une liste d'exemples de modification qui sont souvent demandés se trouve dans la sectionExemples de thèmes.

Sommaire

Comprendre le processus d'éditer theme.php est vraiment important si vous voulez créer un thème personnalisé, il est donc obligatoire d'être familier avec ce qui a été expliqué sur cette page:

Pour modifier une fonctionnalité particulière d'un thème, jetez un œil à themes/votretheme/theme.php et faites une recherche de la section que vous souhaitez voir changer. Si cette section existe, modifier la comme bon vous semble. Si cette section n'existe pas dans votre thème personnalisé, copiez la section correspondante (et uniquement cette section) depuis themes/sample/theme.php dans une nouvelle ligne avant ?> du fichier themes/votretheme/theme.php. Puis commencer à éditer le code vous venez de coller.