Cette page est actuellement non finalisée. Vous ne trouverez donc pas tout son contenu. Nous sommes désolé pour la gène occasionnée.
Raisons :
Pour nous aider à compléter la documentation, consulter cette page (Section “wiki”).
Il est tout à fait possible de personnaliser Piwigo selon certains de vos souhaits.
Cette page est un recueille de plusieurs types de personnalisations. Cette page n'est pas exhaustive et en cas de demande spécifique vous pouvez toujours poser votre question sur le forum.
Mise en garde…
Ne modifiez jamais manuellement des fichiers qui sont livrés lors de l'installation de votre galerie Piwigo.
Vous risquerez de de déstabiliser le programme, de rencontrer des problèmes par la suite et aussi de perdre vos modifications lors d'une mise à jour de Piwigo.
Un plugin est spécialement développé pour modifier certains fichiers de votre galerie. Il s'agit du plugin LocalFiles Editor.
Rendez-vous dans [ Administration » Plugins » LocalFiles Editor ]1) et visitez les onglets.
Pour trouvez des thèmes à utiliser avec votre galerie, rendez vous dans [ Administration » Configuration » Thèmes ]
Renvoi : [Page] Thèmes
C'est un moyen assez technique de s'approprier le contenu d'un fichier pour le modifier à sa guise.
Pour utiliser une métaphore, c'est comme si vous vouliez vous approprié la charpente d'une maison pour la copier et ainsi mieux la modifier à votre goût.
Renvoi : Réaliser un template-extension (modèles)
Tout est à faire et à réinventer…
Copier toute astuce de la 1.7 qui marche dans cette page.
L'équipe s'occupera de la replacer au bon endroit si nécessaire.
Niveau: super débutant
Dans administration –> Général –> Bannière des pages
ajoutez le code :
<a href="http://monsite.com/" title="C'est mon site" style="border: 0px;"> <img src="/chemin/vers/votre/bannière.png" alt="C'est ma bannière"> </a>
/chemin/vers/votre/bannière.png sera bien entendu conforme à votre besoin.
Niveau: Intermédiaire
Cette méthode vous permettra d'avoir une bannière différente et adaptée à chacun de vos thèmes par exemple…
Dans ./piwigo/themes/…./themeconf.inc.php et avant le ?>
Vous allez pouvoir ajouter quelque chose comme ceci:
global $conf; $conf['page_banner'] = '<a href="http://http://phpwebgallery.net"' . ' title="La plus innovante des galeries">' . '<img src="http://phpwebgallery.net/graphics/pwg125x100.png" border=0' . ' alt="PhpWebGallery est toujours en avance au rendez-vous de l\'imagination."/></a>';
Et sur un autre thème vous pourrez choisir quelque chose de différent.
Les personnes qui veulent à tout prix placer du php dans leur bannière peuvent simplement compléter la variable $conf['page_banner'] sans la moindre difficulté.
Certains auront la désagréable surprise de voir leur bannière mal intégrée à leur galerie. Pourquoi ? Tout simplement parce que le thème Sylvia (thème par défaut) est prévu pour une bannière de 110px de hauteur maximale. De plus, la fioriture dans l'angle supérieur gauche demanderai à ce qu'une grande bannière soit décalée.
Il est néanmoins possible d'intégrer votre grande bannière comme suit :
Avec LocalFiles Editor, onglet CSS, fichier Sylvia
/* Mise en page de la bannière pour le thème Sylvia */ #theHeader { min-height:280px !important; height:280px !important; padding-left: 230px; }
280px est un exemple à adapter à votre besoin pour la hauteur. 230px est un exemple à adapter à votre besoin pour le décalage horizontal.
Certains auront besoin de modifier l'affichage qui se situe sous une miniature car le nom de cette dernière est trop long et prend de la place au détriment des informations en dessous.
Vous voyez que à droite l'affiche est correcte tandis qu'à gauche, il manque des informations.
Pour résoudre ce souci, à l'aide de LocalFiles Editor onglet “CSS
”, éditez le fichier local / css / rules.css
Ajoutez le code suivant :
/* Set defaults for thumbnails legend (modifie le nombre de lignes sous les vignettes)*/ #content UL.thumbnails SPAN.thumbLegend { display: block; /* display: none; if you don't want legend */ height: 5em; /* legend height (don't set auto to be Gecko friendly)*/ }
height: 5em; représente en quelque sorte l'espace à adopter. Faites vos propres réglages pour connaître sa valeur chez vous.
Par exemple utilisation de Alex Guestbook
Il existe une multitude de scripts pour cela, nous vous laissons faire votre propre choix. Nous allons vous expliquer ici comment l'intégrer à Piwigo.
Pour commencer, il faut un plugin : Additionnal Page.
<script type="text/javascript"> function setHeight(){ var hauteur; var monFrm = document.getElementById('forum'); if(document.all){ hauteur = monFrm.contentWindow.document.body.scrollHeight 30; }else{ hauteur = monFrm.contentWindow.document.body.offsetHeight 30; } monFrm.setAttribute("height", hauteur); } </script> <iframe id="forum" name="Livre d'Or" onload="setHeight()" src="XXX" width="100%" scrolling="no" FRAMEBORDER="no"> </iframe>
Si votre livre d'or contient des règles CSS ou bien s'il en utilise, il vous faudra ajouter le code suivant en l'adaptant à votre script :
<link rel="stylesheet" type="text/css" href="../dossier/lien_vers_votre_fichier.css" />
Veuillez donc adapter ce qui se trouve entre les guillemets de href=
et placer ce code avant celui énoncé juste en dessus.
Ici, pas besoin d'avoir un script externe compliqué à mettre en place, nous allons utiliser Piwigo tout simplement.
A partir de là, il est possible d'utiliser le plugin Advanced Menu Manager pour faire apparaître un lien directement dans votre menu pointant vers votre livre d'or.
Renvoi : onglet_affichage
Renvoi : onglet_affichage
A l'aide de LocalFiles Editor, ajouter le code CSS suivant :
TABLE.infoTable { display: none; }
A l'aide de LocalFiles Editor, éditer l'un de vos fichier .css
Ajouter à la fin, le code suivant :
/* Suppression de l'icône de "Afficher les méta-data" */ #imageToolBar img[alt="metadata"] { display: none; }
Cette icône permet de visualiser les photos récentes.
Voici le code CSS :
/* Supprimer l'icône "Images récentes" */ img[alt="(!)"] { display: none; }
La taille des miniatures est fixée à 128×128 pixels de côté par défaut. Vous voudriez peut-être modifier cette valeur pour, par exemple, agrandir vos miniatures. Nous utiliserons LocalFiles Editor
Allez dans :
[ Administration » Plugins » LocalFile Editor > Onglet: “CSS” ]
Dans la liste déroulante, choisissez le fichier en rapport avec votre thème (ou alors vous pouvez impactez tous les thèmes en choisissant le fichier local / css / rules.css
)
Dan notre exemple, nous prendrons le fichier local / css / dark-rules.css
Insérez :
/* Modification de la taille des vignettes */ /* Testé sur Piwigo v2.0.1x à v2.1.x thème yoga/dark */ /* Ne fonctionne pas avec pas avec le thème Sylvia et les thèmes "Simple" */ /* Set some sizes according to your maximum thumbnail width and height */ .content UL.thumbnails SPAN, .content UL.thumbnails SPAN.wrap2 A, .content UL.thumbnails LABEL, .content DIV.thumbnailCategory DIV.illustration { width: 166px; /* max thumbnail width 6px */ } .content UL.thumbnails SPAN.wrap2, .content DIV.thumbnailCategory DIV.description { height: 166px; /* max thumbnail height 6px */ }
Modifications : Dans mon exemple, la taille de mes miniatures fait au maximum 160px de côté. Pour une question d'esthétique, vous pouvez majorer votre dimension maximum en ajoutant XXpixels. Faites vos propres réglages en n'oubliant pas de vider le cache de votre navigateur pour que le nouveau réglage soit correctement pris en compte puis en rafraîchissant votre page comportant les miniatures.
En attente d'une solution pour le thème Sylvia
Sylvia fonctionne par exemple avec template-common / local-layout.css et le code suivant :
/* Set some sizes according to your maximum thumbnail width and height */ .content UL.thumbnails SPAN, .content UL.thumbnails SPAN.wrap2 A, .content UL.thumbnails SPAN.wrap2 LABEL, .content DIV.thumbnailCategory DIV.illustration { width: 192px; /* max thumbnail width 2px */ } .content UL.thumbnails SPAN.wrap2, .content DIV.thumbnailCategory DIV.description { height: 192px; /* max thumbnail height 2px */ } .content DIV.comment BLOCKQUOTE { margin-left: 172px; /*maximum thumbnail width ~10px */ }
- Recherchez et copiez le fichier suivant template/yoga/mainpage_categories.tpl
- Collez le dans template-extension/pub/ (bien entendu créez le dossier)
- modifiez comme indiqué mais ne recopiez pas les commentaires :
<ul class="thumbnailCategories"> {foreach from=$category_thumbnails item=cat} {counter assign=mavar print=false} // à chaque passage sur cette ligne de code due à la boucle foreach, counter met +1 en valeur dans mavar. Équivaut donc à l'incrémentation i++; {if $mavar==valeur} // à partir de la 'valeur' énième catégories, on affiche la pub ma pub : Votez pour moi ! {assign var='mavar' value='0'}// pour remettre à 0 mavar, si plusieurs pubs tous les 'valeur' de fois, sont souhaitées. Ex si 'valeur' vaut 2, toutes les 2 catégories la pub sera affichée. {/if} // fin de ma pub <li> <div class="thumbnailCategory"> <div class="illustration"> [... le restant de mainpage_categories.tpl qui se finit par {/foreach} </ul> ...]
Renvoi : http://fr.piwigo.org/forum/viewtopic.php?pid=121037#p121037
Renvoi : http://fr.piwigo.org/forum/viewtopic.php?id=20809
Le principe consiste à ne montrer que les miniatures aux utilisateurs non enregistrés. Ces derniers, en cliquant sur la miniature seront redirigés vers la page d'identification (identification obligatoire - peux importe le compte - pour voir la photo).
Remarques : Après être identifiés, l'utilisateur reviendra sur l'index de la galerie et n'accédera pas à la page demandée avant son identification.
Sujet d'origine : http://fr.piwigo.org/forum/viewtopic.php?id=17001
Par défaut, Piwigo affichera sur les catégories de manière à n'en n'afficher que 2 par ligne.
L'astuce suivante permet de vous montrer que cette affichage n'est définitif. Par exemple, pour afficher 3 catégories par ligne.
A l'aide de LocalFiles Editor Onglet ⇒ CSS et à la fin du fichier qui porte le même nom que votre thème, ajouter les lignes suivantes :
/* Passer à un affichage avec 3 colonnes */ .content ul.thumbnailCategories li { width:31%; }
.thumbnailCategories li { width: 31%; }
Vue sur le forum : http://fr.piwigo.org/forum/viewtopic.php?pid=147813#p147813
Le but ici étant de déplacer le lien “Contact” en-dessous de ”Notification” (Exemple : http://www.kayak-en-liberte.org/index.php? )
Créer un template-extension de menubar.tpl et insérez-y dedans :
{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"} {html_head} {literal} <script type="text/javascript"> jQuery(document).ready( function($) { $("#menubar li a[href*=notification.php]").parent().after($("#menubar li a[href*=contact]").parent()); } ); </script> {/literal} {/html_head}
Problème :
Comment proposer des catégories sous la forme de simples miniatures?
L'affichage des albums et celui des photo se fait à l'aide de miniatures.
Pour l'affichage d'albums, il y a de la place sur le coté de la miniature pour diverses informations. Il est possible de faire apparaître ces albums sous la même forme que de simples images.
<ul class="thumbnails"> {foreach from=$category_thumbnails item=cat} <li> <span class="wrap1"> <span class="wrap2"> <a href="{$cat.URL}"> <img class="thumbnail" src="{$cat.TN_SRC}" alt="{$cat.TN_ALT}" title="{$cat.NAME|@replace:'"':' '} - {'hint_category'|@translate}" /> </a> </span> <span class="thumbLegend"> {$cat.NAME} {$cat.ICON_TS} </span> </span> </li> {/foreach} </ul>
Pour les experts : Vous pouvez n’utiliser ce modèle que pour une partie de votre galerie. Le « Paramètre facultatif de l’URL » vous le permettra.
À la catégorie parente (« Catégories taille S »), un lien permanent « size_S » a été associé. Ce dernier présent dans l’URL permet d’activer le template proposé ci-dessus uniquement pour cette catégorie.
Ainsi dans « Catégories taille S », vous trouverez 2 catégories d’une image chacune (inversées), présentées sous forme de 2 miniatures (en mode paysage), et également 2 miniatures d’images (en mode portrait).
Source : http://fr.piwigo.org/forum/viewtopic.php?pid=109887#p109887
Par défaut, Piwigo n'autorise pas le compte webmaster à accéder aux albums privés à moins que ce soit le webmaster qui ait créé le dit album.
Le webmaster étant assimilé à n'importe quel utilisateur lorsqu'il faut accéder à un album, pour certaines personne ce portement est abusif.
Nous vous proposons de réaliser un petit plugin personnel qui une fois activé vous donnera (vous = status webmaster) un accès à tous les albums.
En gros, les droits divins pour la visualisation des albums…
<?php add_event_handler('user_init', 'all_permissions_for_admin'); function all_permissions_for_admin() { global $user; if (in_array($user['status'], array('admin', 'webmaster'))) { $user['forbidden_categories'] = -1; $user['image_access_list'] = -1; // delete user cache $query = ' DELETE FROM '.USER_CACHE_CATEGORIES_TABLE.' WHERE user_id = '.$user['id']; pwg_query($query); $user_cache_cats = get_computed_categories($user, null); include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); mass_inserts( USER_CACHE_CATEGORIES_TABLE, array( 'user_id', 'cat_id', 'date_last', 'max_date_last', 'nb_images', 'count_images', 'count_categories', ), $user_cache_cats ); } } ?>
Sujet d'origine : http://fr.piwigo.org/forum/viewtopic.php?pid=153333#p153333
Fonctionne aussi avec le dossier ./upload de pLoader.
Le contexte : vous souhaitez renommer un dossier physique, ou bien vous désirez déplacer un dossier physique. Il est possible de réaliser cette opération en sécurité.
Imaginez que vous souhaiteriez renommer votre dossier ./galleries/machin en ./galleries/machintruc. Il faudra vous rendre dans votre phpMyAdmin et exécuter la requête SQL suivante :
UPDATE piwigo_images SET path = REPLACE(path, './galleries/machin', './galleries/machintruc') ;
C'est l'email qui est affiché en pied de page de Piwigo et sur les emails envoyés.
[Administration » Identification » Utilisateurs ] se rendre à la ligne concernant le webmaster (normalement id #1) et cliquer sur l'icône :
Niveau de difficulté : simple
Si certaines formulations de Piwigo ne vous conviennent pas, il est tout à fait possible d'en modifier la source.
Pour commencer, rendez vous dans [ Administration » Spéciales » LocalFiles Editor2) > Onglet “Langues” ]
Choisir “Français [FR]” > Cliquer sur “Editer”
Cliquer sur Afficher le fichier “common.lang.php”
Une fenêtre pop-up s'ouvre.
Rechercher3) le nom que vous souhaitez remplacer.
Dans notre cas on recherchera par exemple “Notification”
Vous devriez trouver la ligne :
$lang['Notification'] = 'Notification';
Ce qui nous intéresse le plus c'est ce qui est noté après le signe ” = ” (égal) car c'est ce que l'on recherche.
Copiez-là et vous pouvez fermer la pop-up.
De retour sur votre précédente page, collez dedans le résultat de votre recherche avant la dernière ligne qui est ?>
Vous n'avez plus qu'à changer la valeur qui se trouve après le signe ” = ” (égal) par le nom qu'il vous plaira.
Attention tout même si votre expression comporte un signe ” ' ” (apostrophe). Il faudra le faire précéder du signe ” \ ” (antislash).
Attention à ce que votre expression soit bien comprise entre un signe ” ' ” (apostrophe) en début et en fin.
Enregistrez.
Si la modification n'est pas prise en compte, videz le cache de votre navigateur.
Renvoi : http://fr.piwigo.org/forum/viewtopic.php?pid=165810#p165810
En plugin perso, ajoutez ceci :
add_event_handler('loc_begin_admin', 'add_caddie_link'); function add_caddie_link() { global $template; $template->set_prefilter('admin', 'add_caddie_link_prefilter'); } function add_caddie_link_prefilter($content, $smarty) { $search = '<li><a href="{$U_BATCH}">{\'Batch Manager\'|@translate}</a></li>'; $caddie_link = '<li><a href="{$U_BATCH}&cat=caddie">{\'Caddie\'|@translate}</a></li>'; return str_replace($search, $caddie_link.$search, $content); }
Créez un plugin personnel avec le code suivant :
add_event_handler('loc_begin_page_tail', 'personal_sync_not_simulate'); function personal_sync_not_simulate() { global $page, $template; if ( isset($page['page']) and $page['page'] == 'site_update' ) { $template->append('footer_elements', '<script type="text/javascript"> document.getElementsByName("simulate")[0].checked = false; </script>'); } }
— Gotcha 2009/05/22 14:53 Réalisé sur la base de Piwigo v2.0.2
Le but recherché étant de stocker des informations EXIF-ITPC pour pouvoir les ressortir sur la page de présentation de l'image, mais de façon totalement indépendante de la gestion des méta-données.
L'exercice est réservé aux utilisateurs avertis.
Rappelons qu'il est nécessaire de faire des sauvegardes de vos fichiers que nous allons modifier ainsi que de la base de données.
A vous d'adapter cet exercice à vos besoins
Si vous n'avez pas encore regardé les possibilités qu'offre le fichier config_local.inc.php
je vous demande de lire la page gestion_meta pour vous familiariser avec les champs et termes que nous allons voir. C'est la base de toutes manipulations.
Bien, maintenant que votre config_local.inc.php
est préalablement rempli, nous allons pouvoir le compléter.
Ce qui suit n'est qu'un exemple inspiré de ajout_de_champs_iptc et plus loin de nous : v1.5
Admettons que je veuille enregistrer dans ma BDD (Base De Données) le résultat de iptc_City
Dans config_local.inc.php
recherchez :
$conf['show_iptc_mapping'] = array(
Ajoutez à la suite : 4)
'iptc_City' => '2#090',
Puis, sous :
$conf['use_iptc_mapping'] = array(
Ajoutez :
'iptc_City' => '2#090',
Dans la BDD, via votre administration, exécutez la requête SQL suivante :
ALTER TABLE `piwigo_images` ADD `iptc_City` varchar(255) COLLATE latin1_general_ci DEFAULT NULL
Explications:
Dans la table piwigo_images
on va ajouter un champ nommé iptc_City
avec les caractéristiques citées aux dessus.
D'ores et déjà, vous pouvez mettre à jour vos photos car le nouveau champ est vierge pour le moment. Faites une synchronisation habituelle avec les méta-données.
Gardez à l'esprit que lors d'une mise à jour de Piwigo, les modifications apportées à ce fichier peuvent être perdues ! |
---|
Recherchez:
//--------------------------------------------------------- picture information
Et ajoutez à la suite:
// iptc_City if (!empty($picture['current']['iptc_City'])) { $infos['INFO_IPTC_CITY'] = $picture['current']['iptc_City']; } else { $infos['INFO_IPTC_CITY'] = l10n('N/A'); }
Reportez vous à la section templates-modeles pour plus d'informations sur les template-extensions. |
---|
Partez donc de la base de picture.tpl et dupliquez-le en my-picture.tpl
Je vais simplement ajouter le champ à la liste déjà présente.
Recherchez :
<table class="infoTable" summary="Some info about this picture">
Ajoutez après :
<tr> <td class="label">{'iptc_City'|@translate}</td> <td class="value">{$current.iptc_City}</td> </tr>
Dans votre fichier ..\language\fr_FR\local.lang.php
recherchez :
<?php
Ajoutez après :5)
$lang['iptc_City'] = 'Ville';
en cours de rédaction.
http://fr.piwigo.org/forum/viewtopic.php?pid=110584#p110584
en cours de rédaction.
http://fr.piwigo.org/forum/viewtopic.php?pid=137974#p137974
(Voir aussi lien.)
Ajouter des CGU (Condition générales d'utilisation) lors de l'enregistrement des utilisateurs, c'est possible.
Sur forum : lien