This is an old revision of the document!
Soit :
dans le header.tpl
ligne 41 :
remplacer :
<div id="theHeader">{PAGE_BANNER}</div>
par :
<div id="theHeader"> <a href="{U_HOME}" title="{GALLERY_TITLE}"> <img src="/chemin/vers/votre/banière.png" alt="{GALLERY_TITLE}"> </a> </div>
Soit :
ajouter dans administration –> Général –> Bannière des pages le code :
<a href="{U_HOME}" title="{GALLERY_TITLE}"> <img src="/chemin/vers/votre/banière.png" alt="{GALLERY_TITLE}"> </a>
Vous devez aller dans template/yoga/footer.tpl (yoga ou le template que vous utilisez)
Vous pouvez rajouter des informations entre :
<div id="copyright"> <!-- BEGIN debug --> {lang:generation_time} {debug.TIME} ({debug.NB_QUERIES} {lang:sql_queries_in} {debug.SQL_TIME}) - <!-- END debug -->
et ce code
</div> <!-- copyright --> </div> <!-- the_page --> <!-- BEGIN debug --> {debug.QUERIES_LIST} <!-- END debug --> </body> </html>
Entre ces deux blocs, il y a déjà l'annonce de PhpWebGallery et le contact webmestre. Vous pouvez ajouter votre texte avant ou après l'annonce.
Ancienne documentation sous le nom : « Changer la couleur des polices et autres… »
En théorie quand on commence à changer les couleurs, il faut les changer toutes. C'est pourquoi le template standard yoga propose à partir de la 1.6 une gestion des couleurs regroupée par thèmes.
Vous souhaitez en changer, commencez par dupliquer un des répertoires des thèmes proposés.
Par exemple, /clear/ ou /dark/.
Supposons que vous souhaitiez un thème plutôt vert et appelons ce nouveau thème «greenery».
Nous aurons donc un nouveau sous-répertoire /template/yoga/theme/greenery/.
Avec 3 fichiers:
Commençons par modifier themeconf.inc.php:
<?php $themeconf = array( 'template' => 'yoga', 'theme' => 'greenery', 'icon_dir' => 'template/yoga/icon', 'admin_icon_dir' => 'template/yoga/icon/admin', 'mime_icon_dir' => 'template/yoga/icon/mimetypes/', 'local_head' => '<!-- no theme specific head content -->' ); ?>
Les explications sur les autres paramètres seront détaillés un peu plus loin mais déjà ce qui importe est de changer le nom du thème par celui que l'on désire (greenery dans notre cas).
Puis par modifier theme.css:
Tout l'art de savoir marier les nuances et couleurs réside dans ce fichier à vous de savoir l' adapter. Un extrait:
FIELDSET, INPUT, SELECT, TEXTAREA, #content DIV.comment A.illustration IMG, #infos, #content DIV.thumbnailCategory { border: 1px solid silver; } #comments DIV.comment BLOCKQUOTE { border-left: 2px solid #060; background-color: #ded; } #content UL.thumbnails SPAN.wrap2 { border: 1px solid #9a9; /* thumbnails border color and style */ -moz-border-radius: 4px; /* round corners with Geko */ border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ } #content UL.thumbnails SPAN.wrap2:hover { border-color: green; /* thumbnails border color when mouse cursor is over it */ } /* links */ A, .rateButton { color: #00895e; background: transparent; } A:hover { color: #458420; }
Pour ceux qui ne seraient pas encore des experts en css (Cascading Style Sheets) :
C'est un peu délicat mais les informations ci-dessus devraient suffire à la grande majorité des webmasters pour se repérer et changer rapidement les couleurs de PWG.
Votre thème est au point et il vous plait, partagez-le en plaçant le zip de ce répertoire dans Extensions
Paramètres de themeconf.inc.php
<?php $themeconf = array( 'template' => 'yoga', 'theme' => 'greenery', 'icon_dir' => 'template/yoga/icon', 'admin_icon_dir' => 'template/yoga/icon/admin', 'mime_icon_dir' => 'template/yoga/icon/mimetypes/', 'local_head' => '<!-- no theme specific head content -->' ); // Eventuellement ... $conf['level_separator'] = ' » '; $conf['paginate_pages_around'] = 7; ?>
'template' = Répertoire de css à inclure dans le généré (en principe un sous-répertoire de template, et répertoire parent du répertoire /theme/ quoique les utilisateurs avancés pourraient imaginer un jeu de template sans css dont les thèmes reprendraient les css de yoga par exemple). En général donc, on ne changera pas la valeur 'yoga'.
'theme' = Nom du sous-répertoire dans lequel PWG doit prendre theme.css, donc si on laisse le répertoire d'origne le fichier .css de notre nouveau thème sera ignoré.
En principe, on le changera.
'icon_dir' = indique où se trouve les icones à afficher. Si vous avez votre propre jeu d'icones, vous saurez ce qu'il vous reste à faire.
'admin_icon_dir' = idem, mais coté admin.
'mime_icon_dir' = indique où se trouve les fichiers mimes. En principe, on ne change pas de façon à bénéficier pour tous les thèmes de mimetypes de yoga.
'local_head' = ceci s'adresse aux concepteurs de templates, et va contenir du code HTML (les balises sont celles autorisées entre <head> et </head> uniquement. Par exemple, une balise Meta ou mieux une balise Script, inutile d'en dire plus cela servira par exemple à fabriquer des pages précisant les “tags” actifs de la page en cours.
Sans oublier que ce fichier (themeconf.inc.php) est un module php, il peut donc contenir d'autres choses comme des paramètres $conf liés aux changements d'apparence, et bien d'autres surprises sorties de l'imagination du créateur du template ou du thème.
Un exemple d'idée: L'alternance partielle de deux thèmes de couleurs.
Deux thèmes sont conçus (greenery et son sosie darkery, deux thèmes similaires au theme.css près), suivant l'heure du jour 'theme' pointera sur un css ou sur l'autre. Vous pourrez choisir l'un des deux thèmes, le résultat sera identique à une heure précise de votre serveur.
Aller dans include/page_tail.php et remplacer
if (!$user['is_the_guest']) { $template->assign_block_vars( 'contact', array( 'MAIL' => get_webmaster_mail_address() ) ); }
par
$template->assign_block_vars( 'contact', array( 'MAIL' => get_webmaster_mail_address() ) );
Pour éviter le spam et protéger votre adresse mail, il est possible de la crypter. Elle restera visible lors du survole de l'adresse mais dans le code source de la page elle sera cryptée.
Modifier include/function.inc.php et remplacer
function get_webmaster_mail_address() { global $conf; $query = ' SELECT '.$conf['user_fields']['email'].' FROM '.USERS_TABLE.' WHERE '.$conf['user_fields']['id'].' = '.$conf['webmaster_id'].' ;'; list($email) = mysql_fetch_array(pwg_query($query)); return $email; }
par
function get_webmaster_mail_address() { global $conf; $query = ' SELECT '.$conf['user_fields']['email'].' FROM '.USERS_TABLE.' WHERE '.$conf['user_fields']['id'].' = '.$conf['webmaster_id'].' ;'; list($email) = mysql_fetch_array(pwg_query($query)); $s = ""; for ($i=0;$i<strlen($email);$i++) { $s.="&#".ord($email{$i}).";"; } return $s; }
Suivant ce que vous voulez obtenir:
dans template-common/local-layout.css (à créer/modifier) ⇒ Tous les templates
dans template/yoga/local-layout.css (à créer/modifier) ⇒ Tous les thèmes de yoga
dans template/yoga/clear/theme.css (à modifier) ⇒ uniquement pour clear de yoga
FORM#quickconnect { display: none; }
dans template/yoga, ouvrir menubar.tpl
remplacer ligne 9 :
<li><a href="{links.link.URL}">{links.link.LABEL}</a></li>
par:
<li><a target="_blank" href="{links.link.URL}">{links.link.LABEL}</a></li> <!-- MyPWG -->
ATTN: Cette astuce n'est plus conforme aux recommandations du W3C.
Il faut modifier/créer un fichier local-layout.css dans /template-common/ si vous
voulez appliquer les mêmes paramètres à tous vos thèmes ou alors si vous n'avez qu'un seul thème! Pour les autres, il vous suffit de copier ce qui suit dans le fichier theme.css
#content UL.thumbnails SPAN.wrap2:hover { background-color: AntiqueWhite; color: black; } #content UL.thumbnailCategories DIV.thumbnailCategory:hover { background-color: AntiqueWhite; color: black; } #content UL.thumbnailCategories DIV.thumbnailCategory:hover A { background-color: AntiqueWhite; color: black; }
Fonctionne sous IE et FF.
“Joli” sous yoga/dark et yoga/clear!!\\
Et vous pouvez rajouter ceci:
border-color: yellow; /* thumbnails border color when mouse cursor is over it */
si vous désirez avoir une couleur de bordure differente
exemple:
#content UL.thumbnailCategories DIV.thumbnailCategory:hover { background-color: #30302f; color: #black; border-color: #8e0d16; /* thumbnails border color when mouse cursor is over it */ }
Pour ceux qui ont vraiment du mal avec le charabia css, quelques exemples à la volée, fait pour le yoga-dark: Auparavant, faire une copie de sauvegarde des fichiers à modifier par sécurité. Dans le fichier template/yoga/theme/dark/thème.css:
ligne 5 = couleur des nombres dans le menu, légende des catégories de la page de droite. ligne 9 = couleur du titre de la page d accueil, des titres des menus autres que les catégories ligne 21 = couleur de l encadrement général. ligne 24 = couleur du fond général ligne 28 = couleur du fond du cadre avec tous les thumbnails des catégories. ligne 72 = couleur de l encadrement des imagettes des catégories et des sous-catégories. ligne 90 = couleur des titres des menus de gauche, des rubriques à l intérieur des blocs du menu, titre des catégories et sous-catégories, des pages pictures, de la barre de navigation. ligne 94 = couleur du lien quand la souris passe dessus.
Autre exemple, mais valable pour toutes les variantes de yoga: dans le fichier template/yoga/default-color.css (faire une copie du fichier avant)
ligne 27 = couleur de fond des formulaires (mot de passe, nom d user, formulaire de recherche. ligne 85 = couleur des titres italiques (exemple: dans la page de recherche)
A votre bon coeur pour compléter cette liste. !!! pensez au nouveaux qui débarquent sur ce super programme !
Dans template/yoga/theme/dark/theme.css
Cherchez:
/* links */ A, .rateButton {color: #9900FF;} a:hover { text-decoration:none; color:#FF33ff;}
Complétez par: background:url(adresse_relative_vers_votre_fond)
Comme ceci par exemple:
/* links */ A, .rateButton {color: #9900FF;} a:hover { text-decoration:none; color:#FF33ff;background:url(adresse_relative_vers_votre_fond);}
Autre exemple pour tous vos liens:
/* links */ A {color: #9900FF;background:url(adresse_relative_vers_votre_fond);} .rateButton { color: #9900FF; } a:hover { text-decoration:none; color:#FF33ff;}
Voici un exemple sur lequel il y a un fond étoilé sur les liens survolés http://alexpomp42.ifrance.com/album/
Alors voilà vous avez envie de faire tomber un coeur ou autre sur votre album photo un peu comme celui la http://alexpomp42.ifrance.com/album/ c'est très simple je vais vous aidez a réaliser cette effet a votre album photo
Pour commancer vous devez telecharger ce fichier sur votre pc: http://alexpomp42.ifrance.com/album/template/yoga/theme/pink/images/base.js
Une fois le fichier sur votre pc vous devez l'ouvrir avec WordPad (ça fonctionne bien) puis vers la 11eme lignes vous devez trouver cette ligne là
url_gif[0]= “urldevotregifsanslaterminaison.gif”;
Vous devez modifier cette ligne par le gif de votre choix de préference pas trop gros c'est bien plus joli ^^ mais attention vous ne devez pas mettre la terminaison de votre gif soit éviter de mettre à la fin de votre url le .gif ou .jpg ou autre selon le format de votre image (penser à héberger votre image surtout )
ce qui devrait donner: url-gif[0]=“http://idata.over-blog.com/0/25/69/93/papillon-gif-006”;
une fois que vous avez mis l'url de votre gif vous fermez et vous enregistrez le nouveau base.js avec à l'intérieur votre gif à faire tomber sur votre album photo
Après avoir modifié votre fichier base.js vous devez l'héberger
Vous devez vous rendre dans le dossier Template/yoga/header.tpl , une fois que vous avez ouvert le fichier header.tpl vous devez ajouter (moi je l'ai mis au début en 4ème ligne environ)
[quote]<script src=“urldevotrebase.js” type=“text/javascript”></script>[/quote]
à vous de modifier ensuite urldevotrebase.js par la vraie url bien sûr
: On évitera de donner des conseils avec des url et on préfèrera conseiller des adresses relatives pour éviter un tas de corrections en cas de changement d'hébergeur.
Merci.
C'est pratiquement pareil que pour faire tomber un gif sans qu'il se multiplie
Attention ce n'est pas le meme fichier que dans mon autre article donc vous devez télécharger ce fichier au format .js http://alexpomp42.ifrance.com/album/template/yoga/theme/pink/images/base1.js
Vous devez ouvrir le fichier ci-dessus une fois téléchargé, une fois ouvert avec le logiciel WordPad par exemple vous devez trouver environ a la 8ème ligne une ligne qui resemble a ca var url_gif= “urldevotregif.gif”; adresse de l'image Il vous suffit de modifier l'urldevotreimage par la vrai url et cette fois ci par contre il faut bien mettre la terminaison de l'url soit le .gif vous devez vous retrouver avec une ligne une fois modifiée qui resemble a ça: var url_gif= “http://ddata.over-blog.com/xxxyyy/0/25/69/93/coe32.gif”; adresse de l'image
Une fois votre url modifié, enregistrez la base1.js . Pensez a bien heberger vos gif surtout
Maintenant vous devez heberger la base1.js
c'est la meme procedure que pour l'autre méthode que j'ai donner juste au dessus il vous suffit d'aller dans Template/yoga/hearder.tpl et de modifier le fichier hearder.tpl
Vous devez ajouter dans ce fichier cette ligne (chez moi elle se trouve sur la 4eme ligne environ)
<script src=“urldevotrebase1.js” type=“text/javascript”></script>
Modifier votre urldevotrebase1.js par la vrai url
Cette méthode est aussi compatible avec les blogs qui accepte le javascript sur mon blog j'ai mis le script dans mon entête
Alexpomp http://alexpomp42.ifrance.com/album/
: On évitera de donner des conseils avec des url et on préfèrera conseiller des adresses relatives pour éviter un tas de corrections en cas de changement d'hébergeur.
Merci.
Voila pour ceux qui veulent mettre un curseur personnel sur leur album photo c'est possible
Dans la partie de votre css Template/yoga/theme/dark/theme.css
dans la partie body
/* backgrounds */ BODY { background-color: #fffffF;color:#0000ff;}
Ajouter comme ci-dessous
/* backgrounds */ BODY { background-color: #fffffF;color:#0000ff; cursor:url("urlducurseur");}
Quand vous avez fait ca vous avez un joli curseur sur votre album photo mais quand vous allez passer sur un liens par contre vous allez malgré tout avoir le curseur de base soit une main si je me trompe pas c'est pour ca que ceux qui veulent aussi avoir un curseur sur les liens il faut aussi modifier la ligne a/hover de votre css comme si dessous :
a:hover { text-decoration:none; color:#FF33ff;}
ajouter comme ci-dessous
a:hover { text-decoration:none; color:#FF33ff; cursor:url("urldecurseur");}
Si vous mettez seulement votre curseur dans la partie body il fonctionnera quand même ou inversement si vous le mettez seulement dans la ligne a:hover De faire comme ca vous permet de mettre un curseur soit identique sur vos liens soit differents au passage sur vos liens (sur mon album il est identique)
Des conseils:
- Pensez a héberger vos curseurs pour eviter de les perdres si le site d'ou ils proviennent bug
- Un curseur se termine soit par .cur soit par .ani
- Pensez a modifier urlducurseur par la vraie url de votre curseur surtout ^^
- Suite a une remarque que l'on ma faite et que je savais et j'ai oublier de vous dire que les curseurs sont seulement visible sous IE car sous FF vous ne les verez pas ^^ (et oui meme si FF est super bien il a ces defauts ^^)
: On évitera de donner des conseils avec des url et on préfèrera conseiller des adresses relatives pour éviter un tas de corrections en cas de changement d'hébergeur.
Merci.
Adresse de site qui propose des curseurs:
http://dessinsonweb.free.fr/ http://www.website-promo.net/conseil/co … erpent.htm http://www.ticklishdesigns.com/cursgem.phtml http://patmax.info/curseurs/ http://dessinsonweb.free.fr/FMu.htm http://www.nollizua.com/curseurs.htm http://www.freegaia.com/ico-cur.php http://chez.marjo.vivi.free.fr/mescurseurs.htm http://www.toulouse-renaissance.net/c_o … mgcurs.htm http://www.clicpartout.com/curseurs/curseurs-animes.php http://curseurs.eurogif.com/
Pour ceux qui veulent créer eux même leur favicon j'ai trouvé un site qui n'est pas trop mal http://www.chami.com/html-kit/services/favicon/ avec ce site vous allez pouvoir créer votre propre favicon par rapport à un gif ou même une image de grande taille
Une fois créé vous allez trouver sur le disque dur de votre pc un fichier ayant le nom favicon.ico, il vous suffit s'il n'a pas ce nom de le modifier en favicon.ico puis de l'héberger dans template-common pour remplacer celui qui ci trouve déja comme ça après vous avez même pas à vous occuper de la partie ci-dessous normalement mais vous pouvez toujours allez vérifier si la ligne est bien présente
Dans le template/yoga/header.tpl vous devez avoir cette ligne là
<link rel=“shortcut icon” type=“image/x-icon” href=”{pwg_root}template-common/favicon.ico”>
ATTENTION le favicon n'est pas visible sous IE, sous FF très visible par contre. PS : Pour une visibilité du favicon sous IE, le mettre aussi à la racine du site.
(testé sur PWG 1.6.1 et template Yoga)
fichiers à modifier :
include/menubar.inc.php
include/config_local.inc.php
template/yoga/menubar.tpl
//-------------------------------------------------------------- external links if (count($conf['links']) > 0) { $template->assign_block_vars('links', array()); foreach ($conf['links'] as $url => $label) { $template->assign_block_vars( 'links.link', array( 'URL' => $url, 'LABEL' => $label ) ); } }
par :
//-------------------------------------------------------------- external links if ((count($conf['links']) > 0) or ((!$user['is_the_guest'] ) and (count($conf['userlinks']) > 0))) { $template->assign_block_vars('links', array()); /* Signifie mettre un seul titre dans les 2 cas */ } if (count($conf['links']) > 0) { foreach ($conf['links'] as $url => $label) { $template->assign_block_vars( 'links.link', array( 'URL' => $url, 'LABEL' => $label ) ); } } if ( !$user['is_the_guest'] ) { if (count($conf['userlinks']) > 0) { foreach ($conf['userlinks'] as $url => $label) { $template->assign_block_vars( 'links.userlink', array( 'URL' => $url, 'LABEL' => $label )); } } }
$conf['links'] = array( 'http://www.monsitepublic.com' => 'Mon site public' ); $conf['userlinks'] = array( 'http://www.monsiteprive.com' => 'Mon site privé', 'http://www.monautresiteprive.com' => 'Mon autre site privé' );
($conf['links'] renvoie vers un lien accessible à tous, tandis que $conf['userlinks'] établit des liens réservés aux utilisateurs enregistrés)
Penser à ajouter au besoin les balises php qui doivent englober le code.
<?php // le code php ?>
<!-- BEGIN links --> <dl id="mbLinks"> <dt>{lang:Links}</dt> <dd> <ul> <!-- BEGIN link --> <li><a href="{links.link.URL}">{links.link.LABEL}</a></li> <!-- END link --> </ul> </dd> </dl> <!-- END links -->
par :
<!-- BEGIN links --> <dl id="mbLinks"> <dt>{lang:Links}</dt> <dd> <ul> <!-- BEGIN link --> <li><a href="{links.link.URL}">{links.link.LABEL}</a></li> <!-- END link --> <!-- BEGIN userlink --> <li><a href="{links.userlink.URL}">{links.userlink.LABEL}</a></li> <!-- END userlink --> </ul> </dd> </dl> <!-- END links -->
Il faut modifier/créer un fichier local-layout.css dans /template-common/
Exemple :
/* 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: 152px; /* max thumbnail width + 2px */ } #content UL.thumbnails SPAN.wrap2, #content DIV.thumbnailCategory DIV.description { height: 152px; /* max thumbnail height + 2px */ } #content DIV.comment BLOCKQUOTE { margin-left: 172px; /*maximum thumbnail width + ~10px */ }
Adaptez ces marges (margin-left:), hauteurs (height:) et largeurs (width:), selon la taille de vos miniatures.
Dans upload.php, ligne 205 en principe, cherchez:
if ( sizeof( $error ) == 0 ) { $query = 'insert into '.WAITING_TABLE; $query.= ' (storage_category_id,file,username,mail_address,date,infos)'; $query.= ' values '; $query.= '('.$page['cat'].",'".$_FILES['picture']['name']."'"; $query.= ",'".htmlspecialchars( $_POST['username'], ENT_QUOTES)."'"; $query.= ",'".$_POST['mail_address']."',".time().",'".$xml_infos."')"; $query.= ';'; pwg_query( $query ); $page['waiting_id'] = mysql_insert_id(); } }
et remplacez par:
if ( sizeof( $error ) == 0 ) { $query = 'insert into '.WAITING_TABLE; $query.= ' (storage_category_id,file,username,mail_address,date,infos)'; $query.= ' values '; $query.= '('.$page['cat'].",'".$_FILES['picture']['name']."'"; $query.= ",'".htmlspecialchars( $_POST['username'], ENT_QUOTES)."'"; $query.= ",'".$_POST['mail_address']."',".time().",'".$xml_infos."')"; $query.= ';'; pwg_query( $query ); $page['waiting_id'] = mysql_insert_id(); $page['upload_successful'] = true; } }
Par défaut, et pour l'exemple, supposons qu'il s'agisse du template yoga.
1 - Remplacez (vers la ligne 62):
<dl> <dt>{lang:identification}</dt> <dd> <!-- BEGIN hello --> <p>{lang:hello} {USERNAME} !</p> <!-- END hello --> <ul>
par:
<dl class=identification> <dt class=identification>{lang:identification}</dt> <dd class=identification> <!-- BEGIN hello --> <p>{lang:hello} {USERNAME} !</p> <!-- END hello --> <ul class=identification>
2 - Créer ou compléter template-common/local-layout.css avec :
.identification { display: none; } #menubar DL.identification { display: none; } FORM#quickconnect { display: none; }
Vous pouvez toujours vous identifier par ./identification.php
(ne pas oubliez ce point pour passer en Administrateur, lequel doit utiliser un template différent pour pouvoir se déconnecter si nécessaire !!! Utilisation du PC d'un ami par exemple.)
Dans un local-layout.css, il faut mettre le code qui suit.
#menubar UL, #menubar HR, #menubar FORM, #menubar P, #menubar .totalImages {font-size: 100%;} A:link, A:visited, {font-size:9pt;} A:hover, A:active {text-decoration: underline; font-size:9pt;} #the_page { font-family:arial; font-size:9pt;}
Niveau de difficulté: Débutant.
Ce que vous allez apprendre sur les variables $conf dans cette astuce devrait être utilisé comme principe à chaque fois que vous aurez une $conf à modifier. Vous pouvez vous inspirer du contenu de /include/config_default.inc.php mais ne modifiez jamais directement ce fichier.
Vous allez créer ou modifier le fichier /include/config_local.inc.php.
Intérêt: Depuis la version 1.5.0 de PWG, vos changements ne seront plus perdus à chaque changement de version.
Principe: Le default contient toutes les variables. Le local ne contient que celles que vous avez voulu modifier. Le default est sollicité en premier, et s'il existe, le local applique les changements spécifiques à votre site.
Prenons le cas de nos liens, par default aucun lien n'existe.
En modifiant la variable (de type tableau) $conf['links'] et ceci au niveau du local, vous allez une fois pour toutes définir les liens spécifiques à votre site.
A quoi va ressembler le fichier /include/config_local.inc.php: tout simplement à n'importe quel module php, c'est à dire qu'il commence par «<?php » et se termine par « ?>». Entre ces deux marqueurs, et en respectant la même syntaxe que dans le default, c'est à dire la syntaxe du langage php, vous altèrerez les différentes valeurs du tableau $conf quelles qu'elles soient. Vous éviterez de reporter toutes les définitions de default ceci afin de faciliter le repérage des éventuelles différences.
Prenons donc exemple sur nos liens:
(Notez au passage) : un exemple du fichier local est fourni dans le répertoire /tools/ mais attention les paramètres proposés peuvent ne pas convenir à votre site, ce qui est en général le cas.
Donc pour nos liens, vous allez créer ou compléter le fichier /include/config_local.inc.php afin qu'il ressemble à ceci:
// links : liste des liens externes $conf['links'] = array( 'http://phpwebgallery.net' => 'L\'homepage PWG', 'http://forum.phpwebgallery.net' => 'Son forum', 'http://phpwebgallery.net/doc' => 'Sa documentation' );
Explications: $conf est un tableau indicé par des noms de paramètres prédéfinis connus de PWG et dans le cas présent, il s'agit de 'links'.
Pour notre exemple, vous ajouterez autant de lignes que de liens souhaités, en précisant:
à gauche l'URL et à droite le nom du lien.
Si vous avez besoin d'une apostrophe simple (quote en programmation), pensez à la faire précéder d'une barre oblique inversée “\” (anti-slash en programmation).
Vous venez de mettre en place :
Rappel: ne jamais effectuer de modification dans config_default.inc.php mais uniquement en local.
Toutes les cellules du tableau $conf peuvent contenir des valeurs selon les principes du langage PhP. C'est à dire:
Toute cellule de $conf référencée dans config_default.inc.php peut être ajustée au besoin de votre site dans config_local.inc.php.
Si vous ajustez plusieurs fois un des paramètres de $conf, seule la dernière valeur attribuée comptera.
Et pour finir, un exemple à ne pas suivre:
$conf['links'] = array( 'http://phpwebgallery.net' => 'PWG website', 'http://forum.phpwebgallery.net' => 'PWG forum', 'http://phpwebgallery.net/doc' => 'PWG wiki' ); $conf['links'] = array(); // Annule la mise à jour précédente
Dans chaque template mis à disposition des membres, modifiez par exemple \menubar.tpl
ajoutez après ceci:
<!-- $Id: menubar.tpl 1369 2006-06-19 18:16:39Z chrisaga $ --> <div id="menubar">
quelque chose comme ceci:
<A HREF="{U_HOME}" TITLE="{GALLERY_TITLE}"><IMG SRC='doc/logo_pwg.png' ALT='PWG Logo' STYLE='margin: 0px 2em 5px 4em;' /></A>
Pour l'exemple on a repris le logo de pwg qu'on a choisi de placer dans /doc/ mais ceci devrait être plus spécifique à chaque site, bien entendu.
Ceci n'est que pour vous donner une idée.
A la place de {U_HOME} vous pouvez mettre l'URL de votre site principal.
A celle de {GALLERY_TITLE}, vous aurez bien votre idée.
Si le résultat visuel n'est pas idéal, vous aurez une meilleure proposition, sans doute.
Une autre solution basée header.tpl n'est pas exclue.
Dans content.css au début
#content {
devient
#content, #edito {
pour positionner les marges, et à la fin, ajouter
.Edito { text-align: left; padding: 5px; }
et dans index.tpl, juste après
<!-- $Id: index.tpl 1386 2006-06-24 09:19:40Z chrisaga $ --> {MENUBAR}
dans le template yoga, vous ajoutez :
<div id="edito"> <div> <h2>Edito</h2> <p class="Edito">Mettez ici ce que vous voudrez ou remplacez par {PAGE_BANNER} si vous voulez que ce qui apparait dans le header apparaisse dans l'edito</p> </div> </div>
et dans le répertoire template-common, créer si besoin le fichier local-layout.css en ajoutant :
#edito { margin-left: 20em; /* = #menubar width + 2em */ }
Ne pas oublier de rajouter dans le theme.css (cas yoga dark)
#menubar DL, #content, #imageToolBar, #edito { background-color: le gris qui va bien; }
Une astuce de Jirian. Problem with edito
1. Dans template/yoga/index.tpl remplacer ceci:
<div id="edito"> <div> <h2>Edito</h2> <p class="Edito">Mettez ici ce que vous voudrez ou remplacez par {PAGE_BANNER} si vous voulez que ce qui apparait dans le header apparaisse dans l'edito</p> </div> </div>
Par:
<!-- BEGIN edito --> <div id="edito"> <div> <h2>Edito</h2> <p class="Edito">Mettez ici ce que vous voudrez ou remplacez par {PAGE_BANNER} si vous voulez que ce qui apparait dans le header apparaisse dans l'edito</p> </div> </div> <!-- END edito -->
2. Dans index.php ajouter:
//-------------------------------------------------------- Edito if (('categories' == $page['section']) and (!isset($page['category']))) { $template->assign_block_vars('edito',array()); }
après ceci:
//------------------------------------------------------ main part : thumbnails if (isset($page['thumbnails_include'])) { include(PHPWG_ROOT_PATH.$page['thumbnails_include']); }
Many thanks to Jirian.
Dans template-common, créer un local-layout.css et coller:
/* Category thumbnails on main page */ #content UL.thumbnailCategories LI { width: 33.3%; /* 49.9% for 2 per line, 33.3% for 3 per line*/ }
Mettre 24.5% pour quatre colonnes. A mon avis, trois colonnes au maximum, si on veut garder un bon look à la galerie.
Ensuite coller le bloc suivant pour diminuer un peu la largeur du menu de gauche.
/* Set the width of the menubar for the galery */ #menubar { width: 14em; } #content { margin-left: 16em; /* = #menubar width + 2em */ }
Bien mettre 2 d'écart entre width et margin left.
Suivant ce que vous voulez obtenir:
dans template-common/local-layout.css (à créer/modifier) ⇒ Tous les templates
dans template/yoga/local-layout.css (à créer/modifier) ⇒ Tous les thèmes de yoga
dans template/yoga/clear/theme.css (à modifier) ⇒ uniquement pour clear de yoga
.thumbElmt { margin: 2% 4% 2% 4%; }
Pour augmenter l'espacement, prenez un nombre plus grand (vous pouvez aussi exprimer ces valeurs en “em”, “px” et autres) .
Aller dans template-common, créer un local-layout.css et coller le bloc suivant, en mettant les valeurs choisies:
#content UL.thumbnails SPAN.wrap2, #content DIV.thumbnailCategory DIV.description { height: 160px; /* max thumbnail height + 2px */ } #content DIV.comment BLOCKQUOTE { margin-left: 170px; /*maximum thumbnail width + ~10px */ }
Comme indiqué ci-dessus, cette modif aura effet sur tous les templates
Pour chaque template utilisé dans menubar.tpl (exemple yoga)
Déplacez (ligne 3 et les lignes suivantes ci-dessous):
<!-- BEGIN links --> <dl> <dt>{lang:Links}</dt> <dd> <ul> <!-- BEGIN link --> <li><a href="{links.link.URL}">{links.link.LABEL}</a></li> <!-- END link --> </ul> </dd> </dl> <!-- END links -->
Avant (ou mieux après), ceci:
<dl> <dt>{lang:title_menu}</dt> <dd> <ul> <!-- BEGIN summary --> <li><a href="{summary.U_SUMMARY}" title="{summary.TITLE}" {summary.REL}>{summary.NAME}</a></li> <!-- END summary --> <!-- BEGIN upload --> <li><a href="{upload.U_UPLOAD}">{lang:upload_picture}</a></li> <!-- END upload --> </ul> </dd> </dl>
Cette astuce est applicable à d'autres blocs <dl>…</dl> si nécessaire.
dans /template/yoga/index.tpl
, avant
{MONTH_CALENDAR} {THUMBNAILS} {CATEGORIES}
insérez
<!-- BEGIN cat_infos --> <!-- BEGIN navigation --> <div class="navigationBar"> {cat_infos.navigation.NAV_BAR} </div> <!-- END navigation --> <!-- BEGIN comment --> <div class="additional_info">{cat_infos.comment.COMMENTS}</div> <!-- END comment --> <!-- END cat_infos -->
Vous aurez ainsi les liens vers les pages suivantes et précédentes au dessus et au dessous des vignettes. Attention, vous doublerez aussi le commentaire de la catégorie.
Pour enlever le commentaire, il suffit de remplacer
<div class="additional_info">{cat_infos.comment.COMMENTS}</div> par <!--<div class="additional_info">{cat_infos.comment.COMMENTS}</div>-->
Ajoutez le bout de code suivant:
TABLE.infoTable { display: none; }
- dans le fichier template/votre_template/theme/votre_theme/theme.css
pour masquer ces champs uniquement pour un thème particulier.
- dans le fichier template/votre_template/local-layout.css
pour les masquer pour un template complet (quelque soit le thème).
- dans le fichier template-common/local-layout.css
pour les masquer pour tous les templates.
Remarque: Dans le cas ou un de ces fichiers n'existe pas, il peut être créé au besoin.
Attention: cette astuce va cacher tous les champs, elle ne permet pas de choisir les champs que vous voulez cacher, y compris les metadonnées.
<table class="infoTable" summary="Some info about this picture">
<tr>
et fini par la balise </tr>
.<tr>
et </tr>
, et ceci grace à deux balises <
!
-
-
pour le début et -
-
>
pour la fin du commentaire.INFO_CREATION_DATE
voici donc ce qu'il faut commenter:<tr> <td class="label">{lang:Created on}</td> <td class="value">{INFO_CREATION_DATE}</td> </tr>
Et voila ce que ça donne une fois commenté.
<!-- <tr> --> <!-- <td class="label">{lang:Created on}</td> --> <!-- <td class="value">{INFO_CREATION_DATE}</td> --> <!-- </tr> -->
<!-- END info_rate --> </table>
En effet la suite concerne les informations données par les meta-données de l'image et fait l'objet d'une autre astuce.
Quand on a une galerie familiale, c'est souvent le webmestre du site qui crée les différents comptes utilisateurs pour l'ensemble de la famille.
Voici un exemple de quelques étapes pour le faire aisément:
Quand pour une galerie familiale, le webmestre souhaite laisser quelques photos sur la galerie publique afin que:
L'inconvénient réside dans le fait que ces images apparaîtront en double pour vos membres suivant la méthode de classement que vous aurez choisi.
L'idéal est d'avoir des catégories pour les visiteurs uniquement… Et des catégories différentes pour les membres…
C'est bien simple, fallait-il encore y penser, il suffit de:
INSERT INTO phpwebgallery_user_group ( user_id , group_id ) VALUES ( '2', '25' );
PWG t'es vraiment trop fort…
Cette modification va vous permettre de stocker dans un champs blob l’image. L’interêt est limité pour un usage sur le net car cela peu devenir très vite volumineux. J’ai eu besoin de faire cette modification pour permettre la récupération de l’image par Crystal Report, un générateur d’état.
ATTENTION, cette modification s’applique aux images ajoutées après la modification, je n’ai pas testé si une simple resynchronisation du contenu des répertoires permet la sauvegarde en base de la vignette, de même que je n’ai pas testé sur les sites distants !
Dans le fichier include/config_local.inc.php ajouté
// Active le stockage en base de la vignette. $conf['active_blob'] = true;
Dans le fichier admin/site_update.php ajouté ligne 448 après
// 2 cases : the element is a picture or not. Indeed, for a picture // thumbnail is mandatory and for non picture element, thumbnail and // representative are optionnal if ( isset( $conf['flip_picture_ext'][get_extension($filename)] ) ) { // if we found a thumnbnail corresponding to our picture... if (isset($fs[$path]['tn_ext'])) {
Ajouté
if($conf['active_blob']) { // génération de la vignette pour l'import dans la base (blob) $handle = fopen($dirname.'/thumbnail/'.$conf['prefix_thumbnail'].$filename, 'rb'); $contents = addslashes(fread($handle, filesize($dirname.'/thumbnail/'.$conf['prefix_thumbnail'].$filename))); fclose ($handle); }
Après
$insert = array( 'id' => $next_element_id++, 'file' => $filename, 'date_available' => CURRENT_DATE, 'tn_ext' => $fs[$path]['tn_ext'], 'path' => $path, 'storage_category_id' => $db_fulldirs[$dirname],
Ajouté
'contents' => $contents,
Le résultat final des modifications donne
if ( isset( $conf['flip_picture_ext'][get_extension($filename)] ) ) { // if we found a thumnbnail corresponding to our picture... if (isset($fs[$path]['tn_ext'])) { if($conf['active_blob']) { // génération de la vignette pour l'import dans la base (blob) $handle = fopen($dirname.'/thumbnail/'.$conf['prefix_thumbnail'].$filename, 'rb'); $contents = addslashes(fread($handle, filesize($dirname.'/thumbnail/'.$conf['prefix_thumbnail'].$filename))); fclose ($handle); } $insert = array( 'id' => $next_element_id++, 'file' => $filename, 'date_available' => CURRENT_DATE, 'tn_ext' => $fs[$path]['tn_ext'], 'path' => $path, 'storage_category_id' => $db_fulldirs[$dirname], 'contents' => $contents, );
Dans la table phpwebgallery_images ajouté un champs au format blob qui se nomme contents.
Dans le fichier register.php, remplacer :
if (isset($_POST['submit'])) { if ($_POST['password'] != $_POST['password_conf']) { array_push($errors, $lang['reg_err_pass']); } $errors = array_merge( $errors, register_user($_POST['login'], $_POST['password'], $_POST['mail_address']) ); if (count($errors) == 0) { $user_id = get_userid($_POST['login']); log_user( $user_id, false); redirect(make_index_url()); } }
Par :
if (isset($_POST['submit'])) { if ($_POST['password'] != $_POST['password_conf']) { array_push($errors, $lang['reg_err_pass']); } elseif($_POST['mail_address'] == '') { array_push($errors, $lang['reg_err_mail']); } else { $errors = array_merge( $errors, register_user($_POST['login'], $_POST['password'], $_POST['mail_address']) ); } if (count($errors) == 0) { $user_id = get_userid($_POST['login']); log_user( $user_id, false); redirect(make_index_url()); } }
Dans le fichier template/VOTRETEMPLATE/register.tpl, remplacer :
<span class="property"> <label for="mail_address">{lang:Mail address}</label> </span>
Par :
<span class="property"> <label for="mail_address">* {lang:Mail address}</label> </span>
Dans le fichier language/en_UK.iso-8859-1/common.lang.php, ajouter avant le ?>
$lang['reg_err_mail'] = 'Email address required';
Dans le fichier language/fr_FR.iso-8859-1/common.lang.php, ajouter avant le ?>
$lang['reg_err_mail'] = 'Adresse e-mail obligatoire';
# Mise en Page générale
# Mise en Page de “Category”
# Mise en Page de “Picture”
# Mode de fonctionnement (Comportement)