Table des matières

Personnalisez Piwigo

Dans certains cas, il est possible de personnaliser Piwigo par l'intermédiaire de fichiers spécifiques.

Ces fichiers sont à créer. Le contenu de ces fichiers, constituant les personnalisations, viendra compléter ou remplacer le contenu des fichiers originaux de PWG.

Il est très fortement conseillé d'utiliser ces fichiers plutôt que de modifier tout fichier original. Cela pour éviter les erreurs, garder intacte une configuration saine, mettre à jour plus facilement vos galeries en cas de passage à une version supérieure.

Nous vous conseillons d'utiliser le plugin LocalFiles Editor

Rendez vous dans [ Administration » Spéciales » Plugins » LocalFiles Editor ] et visitez les onglets.

Liste de ces fichiers utilisables :

  • ./include/config_local.inc.php : Une variable $conf, si elle doit être modifiée, devra figurer dans ce fichier (lequel respectera la syntaxe du langage php).
  • ./language/…./local.lang.php : Une variable $lang, si elle doit être modifiée, devra figurer dans ce fichier (lequel respectera la syntaxe du langage php).
  • ./template-common/local-layout.css : Toute modification générale de css devra être réalisée dans ce fichier en sachant que le thème pourra annuler celle-ci.
  • ./template/yoga/local-layout.css : Toute modification de css propre à ce template (yoga) devra être réalisée dans ce fichier en sachant que ./template-common/local-layout.css et le thème pourront annuler celle-ci.

Sans oublier :

  1. Vos thèmes ( [css] )
  2. Vos templates
  3. Et vos plugins personnels ( [PLUGIN] ).

Les template/thème

Vous pouvez personnaliser votre galerie :

  • En ajoutant de nouveaux templates, de nouveaux thèmes
  • En créant de nouveaux templates ou thèmes
  • En utilisant la nouvelle fonction template-extension

Pour trouvez des thèmes visitez la partie extension filtrer style

Utiliser un template-extension

Une des nouveautés de la version 2.0 c'est la mise en place de template extension. Si vous avez besoin de modifier un template, vous en créez un personnel (avec l'aide de LocalFiles Editor par exemple) et dans l'interface administration de Piwigo vous le désignez comme devant être utilisé à la place de celui d'origine.

Réaliser un template-extension (modèles)

Mise en page générale

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.

Ajout d'une bannière

Méthode 1 :

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.

Méthode 2 :

Niveau: Intermédiaire

:!: Nouveauté : Cette méthode vous permettra d'avoir une bannière différente et adaptée à chacun de vos thèmes par exemple… Ceux qui sont encore en 1.6 peuvent aussi tenter l'expérience ;-)

Dans ./template/…/theme/…./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é.

Pour le thème "Sylvia"

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 localfileseditor, onglet CSS, fichier Yoga/Sylvia/theme.css

/* 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.

Nom long d'une photo

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 localfileseditor, éditez le fichier template-common / local-layout.css
Ajoutez le code suivant :

/* Set defaults for thumbnails legend ( modifie le nbre de ligne 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.

Mettre en place un "Livre d'or"

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 (Voir Sa page).

  • Une fois téléchargé, installé et activé (Voir : plugins) il faut donc créer une page “Additionnelle”.
  • Vous aurez un éditeur qui va s'afficher.
  • Vous devrez voir dans l'angle supérieur gauche un bouton nommé “Source”. Cliquez dessus et recopiez le code suivant :
<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>
  • Il ne reste plus qu'à donner un titre à votre page, la configurer correctement au niveau des options et puis à valider.

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.

Enlever certaines icônes

Voir sur le forum lien.

Masquer les champs "Auteur", "Dimensions", ...

  • Niveau : Débutant
  • Description : Cette astuce va cacher tous les champs relatifs aux informations (métadonnées) concernant vos photos. Elle ne permet pas de choisir les champs que vous voulez cacher.

A l'aide de LocalFiles Editor, ajouter le code suivant :

TABLE.infoTable {
    display: none;
}

Ce code est à placer dans un des fichiers suivant :

Dans l'onglet CSS, fichier template-common/local-layout.css
⇒ Pour les masquer pour tous les templates.

Dans l'onglet CSS, fichier votre_template/local-layout.css
⇒ Pour les masquer pour un template complet (quelque soit le thème).

-Dans l'onglet CSS, fichier votre_template/votre_theme/theme.css
⇒ Pour masquer ces champs uniquement pour un thème particulier.

Modifier les champs "Auteur", "Dimensions", ...

Note : depuis la version 2.1.0 de Piwigo, pour ne plus voir affiché un champs, il suffit de se rendre sur la page [ Administration » Configuration » Options > Onglet “Affichage” ]

Le but étant de supprimer/modifier/rajouter les champs qui se trouve sous les vues normales des photos.
Nous utiliserons le plugin LocalFiles Editor ainsi qu'un template-extention du nom de my-picture.tpl qui ne sera autre qu'une copie de picture.tpl.

A l'aide de LocalFiles Editor, recherchez dans my-picture.tpl le bloc suivant :

<table id="standard" class="infoTable" summary="{'Some info about this picture'|@translate}">
  {if $display_info.author}
  <tr id="Author">
    <td class="label">{'Author'|@translate}</td>
    <td class="value">{if isset($INFO_AUTHOR)}{$INFO_AUTHOR}{else}{'N/A'|@translate}{/if}</td>
  </tr>
  {/if}
  {if $display_info.created_on}
  <tr id="datecreate">
    <td class="label">{'Created on'|@translate}</td>
    <td class="value">{if isset($INFO_CREATION_DATE)}{$INFO_CREATION_DATE}{else}{'N/A'|@translate}{/if}</td>
  </tr>
  {/if}
  {if $display_info.posted_on}
  <tr id="datepost">
    <td class="label">{'Posted on'|@translate}</td>
    <td class="value">{$INFO_POSTED_DATE}</td>
  </tr>
  {/if}
  {if $display_info.dimensions}
  <tr id="Dimensions">
    <td class="label">{'Dimensions'|@translate}</td>
    <td class="value">{if isset($INFO_DIMENSIONS)}{$INFO_DIMENSIONS}{else}{'N/A'|@translate}{/if}</td>
  </tr>
  {/if}
  {if $display_info.file}
  <tr id="File">
    <td class="label">{'File'|@translate}</td>
    <td class="value">{$INFO_FILE}</td>
  </tr>
  {/if}
  {if $display_info.filesize}
  <tr id="Filesize">
    <td class="label">{'Filesize'|@translate}</td>
    <td class="value">{if isset($INFO_FILESIZE)}{$INFO_FILESIZE}{else}{'N/A'|@translate}{/if}</td>
  </tr>
  {/if}
  {if $display_info.tags}
  <tr id="Tags">
    <td class="label">{'Tags'|@translate}</td>
    <td class="value">
      {if isset($related_tags)}
        {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}
        <a href="{$tag.URL}">{$tag.name}</a>{/foreach}
      {/if}
    </td>
  </tr>
  {/if}
  {if $display_info.categories}
  <tr id="Categories">
    <td class="label">{'Categories'|@translate}</td>
    <td class="value">
      {if isset($related_categories)}
      <ul>
        {foreach from=$related_categories item=cat}
        <li>{$cat}</li>
        {/foreach}
      </ul>
      {/if}
    </td>
  </tr>
  {/if}
  {if $display_info.visits}
  <tr id="Visits">
    <td class="label">{'Visits'|@translate}</td>
    <td class="value">{$INFO_VISITS}</td>
  </tr>
  {/if}
 
{if $display_info.average_rate and isset($rate_summary) }
	<tr id="Average">
		<td class="label">{'Average rate'|@translate}</td>
		<td class="value" id="ratingSummary">
		{if $rate_summary.count}
			{assign var='rate_text' value='%.2f (rated %d times)'|@translate }
			{$pwg->sprintf($rate_text, $rate_summary.average, $rate_summary.count) }
		{else}
			{'no rate'|@translate}
		{/if}
		</td>
	</tr>
{/if}
 
{if isset($rating)}
	<tr id="rating">
		<td class="label">
			<span id="updateRate">{if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this picture'|@translate}{/if}</span>
		</td>
		<td class="value">
			<form action="{$rating.F_ACTION}" method="post" id="rateForm" style="margin:0;">
			<div>&nbsp;
			{foreach from=$rating.marks item=mark name=rate_loop}
			{if !$smarty.foreach.rate_loop.first} | {/if}
			{if isset($rating.USER_RATE) && $mark==$rating.USER_RATE}
			  <input type="button" name="rate" value="{$mark}" class="rateButtonSelected" title="{$mark}">
			{else}
			  <input type="submit" name="rate" value="{$mark}" class="rateButton" title="{$mark}">
			{/if}
			{/foreach}
			<script type="text/javascript" src="{$ROOT_URL}themes/default/js/rating.js"></script>
			<script type="text/javascript">
			makeNiceRatingForm( {ldelim}rootUrl: '{$ROOT_URL|@escape:"javascript"}', image_id: {$current.id},
			updateRateText: "{'Update your rating'|@translate|@escape:'javascript'}", updateRateElement: document.getElementById("updateRate"),
			ratingSummaryText: "{'%.2f (rated %d times)'|@translate|@escape:'javascript'}", ratingSummaryElement: document.getElementById("ratingSummary") {rdelim} );
			</script>
			</div>
			</form>
		</td>
	</tr>
{/if}
 
{if $display_info.privacy_level and isset($available_permission_levels) }
	<tr id="Privacy">
		<td class="label">{'Who can see this photo?'|@translate}</td>
		<td class="value"> 
<script type="text/javascript">
{literal}function setPrivacyLevel(selectElement, rootUrl, id, level)
{
selectElement.disabled = true;
var y = new PwgWS(rootUrl);
y.callService(
	"pwg.images.setPrivacyLevel", {image_id: id, level:level} ,
	{
		method: "POST",
		onFailure: function(num, text) { selectElement.disabled = false; alert(num + " " + text); },
		onSuccess: function(result) { selectElement.disabled = false; }
	}
	);
}{/literal}
</script>
	<select onchange="setPrivacyLevel(this, '{$ROOT_URL|@escape:'javascript'}', {$current.id}, this.options[selectedIndex].value)">
		{foreach from=$available_permission_levels item=label key=level}
		<option label="{$label}" value="{$level}"{if $level == $current.level} selected="selected"{/if}>{$label}</option>
		{/foreach}
	</select>
	</td></tr>
{/if}
 
</table>

Les champs que vous recherchez se trouvent sur les lignes commençant par <td class=“label”>
Par exemple pour supprimer le champ Dimensions on supprimera le pavé :

  {if $display_info.dimensions}
  <tr id="Dimensions">
    <td class="label">{'Dimensions'|@translate}</td>
    <td class="value">{if isset($INFO_DIMENSIONS)}{$INFO_DIMENSIONS}{else}{'N/A'|@translate}{/if}</td>
  </tr>
  {/if}

Une fois que vous avez apporté vos modifications, rendez vous dans [Administration » Configuration » Templates (modèles) ]
Au niveau de la ligne /my-picture.tpl, assignez dans la colonne Templates d'origine le fichier picture.tpl et dans la colonne Template rattaché, le nom de votre template.

Enlever l'icône "Afficher les méta-données du fichier"

Solution 1

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;
}

Solution 2

Il faut modifier le fichier picture.tpl

Aussi reportez vous à la section template-extention pour plus d'informations sur les template-extentions afin de vous servir de votre propre fichier.

Recherchez la ligne :

<a href="{$U_METADATA}" title="{'picture_show_metadata'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/metadata.png" class="button" alt="metadata" /></a>

Et remplacez-la par :

<!-- <a href="{$U_METADATA}" title="{'picture_show_metadata'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/metadata.png" class="button" alt="metadata" /></a> -->

Miniatures qui débordent

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 > Liste déroulante: template-common / local-layout.css

Insérez :

/* Modification de la taille des vignettes */
/* Testé sur Piwigo v2.0.1 thème yoga/dark */
/* Ne fonctionne pas avec pas avec le thème Sylvia */
/* 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.

FIXME 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 */
}

Images HD à la place des images visualisées

Encadrer les miniatures

A l'aide de localfileseditor et du fichier local-layout.css insérez le code :

.content UL.thumbnails IMG {
    border: 1px solid #000000;
}

Pour encadrer les photos sur la page picture.php, utilisez le plugin Look Like GBO 2

Ajouter de la publicité via les catégories

  • Niveau : Moyen
  • Description : Via les template-extensions nous allons ajouter un bout de code comme une publicité dans les catégories à la fréquence de votre choix.
  • Lien vers le forum : lien
  • marche à suivre :

- 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>
...]

Ajout d'informations en pied de page

Le pied de page peut être modifié via le fichier footer.tpl Tout d'abord, afin de ne pas modifier le fichier footer.tpl original, vous allez prendre soin de le clôner avec la méthode du “Template-extension” décrite dans ce chapitre : Réaliser un template-extension (modèles).

Nous supposerons que votre fichier modifié se nommera my-footer.tpl Nous utiliserons LocalFiles Editor

Exemple 1) (Généralité)

Allez dans : [ Administration » Spéciales » Plugins » LocalFile Editor > Onglet: “Templates” ] Liste déroulante: ../my-footer.tpl

Insérez entre :

<div id="copyright">
 <a name="EoP"></a> <!-- End of Page -->

Et entre :

</div> <!-- copyright -->
</body>
</html>
Exemple 2) (Cas concret: affichage permanent du lien pour contacter le webmaster)

Recherchez dans my-footer.tpl :

{if isset($CONTACT_MAIL)}
  - {'send_mail'|@translate}
  <a href="mailto:{$CONTACT_MAIL}?subject={'title_send_mail'|@translate|@escape:url}">{'Webmaster'|@translate}</a>
  {/if}

Remplacez par :

  - {'send_mail'|@translate}
  <a href="mailto:votre_adresse@email?subject={'title_send_mail'|@translate|@escape:url}">{'Webmaster'|@translate}</a>

⇒ Bien faire attention de conserver le ? après votre_adresse@email

Modifications : Vous pouvez apporter les modifications que vous désirez mais en faisant attention de respecter la consigne qui se trouve inscrite dans le même fichier:

 {* Please, do not remove this copyright. If you really want to,
      contact us on http://piwigo.org to find a solution on how
      to show the origin of the script...
  *}

Affichage des tags

Ne montrer que les miniatures

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.

Sur le forum : lien

Nombre de catégories à afficher

Sujet d'origine : http://fr.piwigo.org/forum/viewtopic.php?id=17001
L'exemple porte sur le thème Yoga/Dark

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.

obpc.jpg\\


A l'aide de LocalFiles Editor Onglet ⇒ CSS et à la fin d'un des fichiers placer le code suivant :

/* Passer à un affichage avec 3 colonnes */
.content ul.thumbnailCategories li {
width:31%;
}

Déplacer un lien du menu

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}

Administration

Comment déplacer/renommer/ajouter un dossier

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')
;

Modifier l'adresse mail du webmaster

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 :

Modifier une phrase/expression/texte

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 Editor1) > Onglet “Langues” ]
Choisir “Français [FR]” > Cliquer sur “Editer”

Cliquer sur Afficher le fichier “common.lang.php”
Une fenêtre pop-up s'ouvre.
Rechercher2) 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.

Lien vers upload.php

Si dans votre galerie vous offrez la possibilité à vos visiteurs de pouvoir uploader leurs propres photos, il vous apparaîtra utile de voir le lien “Ajouter un image” dans l'un des menus de la colonne de gauche de votre site. Car en l'état actuel des choses, il faut se rendre sur la catégorie concernée pour voir ce lien apparaître : pas glop.

Donc l'astuce consiste tout simplement à créer un lien avec l'aide de [Plugin] Advanced Menu Manager et d'attribuer à ce lien l'adresse http://nom_de_votre_site/repertoire_piwigo_eventuel/upload.php

Gestion des utilisateurs

Les utilisateurs se gèrent de différentes manières. Au niveau individuel il faut déjà définir leurs statuts. On peut également définir leurs niveaux de confidentialité.

Gestion des catégories

Décocher la case "Simuler"

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>');
  }
}

[EXPÉRIMENTAL] Inscription des méta-données dans la base de données

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 ;-)

1) Le fichier config_local.inc.php

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 : 3)

'iptc_City'  => '2#090', 

Puis, sous :

$conf['use_iptc_mapping'] = array(

Ajoutez :

'iptc_City'  => '2#090',

2) Dans votre base de données

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.

3) Modification de .\picture.php

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');
}

4) Modification de .\template-extension\sample\my-picture.tpl

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>

5) Traduction

Dans votre fichier ..\language\fr_FR\local.lang.php recherchez :

<?php

Ajoutez après :4)

$lang['iptc_City']                                    = 'Ville';

Fonctions très limitées pour les simples visiteurs

Cacher le bloc principal

Changer la page d'accueil

Si la première page de présentation ne vous convient pas et que vous arrivez à trouver votre bonheur avec Additional Pages, Piwigo vous permet de changer votre page d'accueil par défaut.

  • Commencer donc par créer votre page sous Additional Pages.
  • Notez le numéro de votre document qui doit avoir une adresse du style index.php?/additional_page/1
  • Rendez vous dans [ Administration » Spéciales » Plugins » LocalFiles Editor > Onglet “Configuration locale”.
  • Ajoutez le code le code suivant dans la page :
$conf['random_index_redirect'] = array(
  PHPWG_ROOT_PATH.'index.php?/additional_page/1' => 'return true;'
);
  • A vous d'adapter le numéro de la page que vous souhaitez voir apparaître.

Personnalisation de la page d'upload

[PLUGIN] Ne plus demander la miniature

Niveau de difficulté : Intermédiaire
Connaissances requises :

Une grande majorité des visiteurs ne sait pas redimensionner correctement une image. Qu'un d'eux imagine proposer une miniature respectant la charte graphique de votre site, relèvera de l'exceptionnel (déjà que l'image normale…).

Alors pourquoi demander une miniature dans ces conditions ?
Afin d' “alléger” encore un peu la galerie, nous pouvons supprimer cette demande de miniature.

Dans [Exemple] Faire son plugin personnel, vous ajouterez :

/*
Plugin Name: Ne plus demander la miniature d'upload HTTP
Description: Va supprimer l'étape de la demande de miniature lors d'un upload via HTTP (visiteur).
Plugin URL: http://piwigo.org
Author:
Author URL:
*/
add_event_handler('loc_begin_page_header', 'Flush_thumbnail_upload');
 
function Flush_thumbnail_upload()
{
  global $page; // No thumbnail upload resquest    // Plus de demande de miniature
  if (isset($page['waiting_id']) and isset($page['body_id']) 
	    and  $page['body_id'] == 'theUploadPage')
  {
    $page['upload_successful'] = true;
  }
}

[PLUGIN] Un upload public général

Testé avec la v2.0.3

Niveau de difficulté : Intermédiaire
Connaissances requises :

Si vous proposez deux catégories en Upload par HTTP, par exemple “Alsace” et “Bretagne”, soyez-en certain vous aurez des images de St-Malo avec celles de Colmar où l'inverse.

Pour rectifier ces erreurs, nous avons la solution des catégories virtuelles. Sauf que ces catégories ne permettent plus à vos visiteurs de faire de l'upload HTTP.

Alors?

  1. Créez une catégorie physique “upload_publique”.
  2. Synchronisez ce dossier
  3. Verrouillez cette catégorie (Et laissez celle-ci verrouillée…)
  4. Renommez cette catégorie (en administration) en “unlock for upload : Upload unique pour tous”

Dans [Exemple] Faire son plugin personnel, vous ajouterez :

/*
Plugin Name: Upload publique
Description: Donner la posibilité à n'importe quel visiteur de vous envoyer des photos sur votre galerie. A vous après de les valider/trier ;)
Plugin URL: http://piwigo.org
Author:
Author URL:
*/
add_event_handler('init', 'set_Default_Upload_Cat');
 
function set_Default_Upload_Cat()
{
  // Create physical category ("All_uploaded_pictures")           // Créer
  // Lock category  "All_uploaded_pictures"                       // Verrouiller       
  // Rename "All uploaded pictures" in "unlock for upload All uploaded pictures"
                        // renommer en "unlock for upload All uploaded pictures"
 
  global $user, $page, $conf, $lang;
 
    // Try to find a category with name like "unlock for upload%"
    $query = 'SELECT id
                FROM '.CATEGORIES_TABLE.'
               WHERE name like \'unlock for upload%\';';
    $result = pwg_query($query);
    $upload_array = array();
    while ($row = mysql_fetch_array($result))
    {
      array_push($upload_array, $row['id']);
    }
    if (isset($upload_array[0])) { // First one: remove it from forbidden cats
      if (script_basename()=='upload') {
        $page['category']=$upload_array[0];      // Just for upload
        if ($user['forbidden_categories']!=='') {
          $forbidden_array = explode(',',$user['forbidden_categories'] );
          $forbidden_array = array_diff($forbidden_array,array($upload_array[0])); 
          $user['forbidden_categories'] = implode(',', $forbidden_array);
        }
      }
      $conf['links']['./upload.php?cat='.$upload_array[0]] = $lang['upload_picture'];  
    }
}

Pour ceux qui n'aurait pas compris, il suffit de tester. Pensez à vous déconnecter !!!

Personnalisation de la page d'enregistrement

Ajouter des CGU (Condition générales d'utilisation) lors de l'enregistrement des utilisateurs, c'est possible.
Sur forum : lien

1) Plugin LocalFiles Editor à installer et activer au préalable.
2) Pour rechercher rapidement, appuyer sur les touche “CTRL + F” de votre clavier.
3) , 4) Si cette ligne n'existe pas déjà !
 
Haut de page
pwg2/apprendre/personnalisation.txt · Dernière modification: 2011/01/23 23:27 par gotcha
 
 
twitter facebook google+ newsletter Faire un don Piwigo.org © 2002-2014 · Contact