Table des matières
Version de SMF: (toutes)
Intégration de Coppermine à SMF
adapté du tutoriel de Dominic Filteau
La procédure qui suit permet d'intégrer Coppermine et SMF de façon transparente. Ce n'est pas si compliqué, même si cela n'en a pas l'air à la vue de la longueur de cet article. Je n'ai rien inventé: cet article se veut être un regroupement des informations trouvées sur ce message et celui-ci, postés sur le forum de Simple Machines. J'ai aussi ajouté quelques infos supplémentaires.
Ce tutoriel a été conçu à l'aide de SMF 1.0.5, installé par le panneau de gestion Fantastico, et Coppermine 1.3.5. Il devrait toutefois fonctionner avec les autres versions de SMF.
Premièrement, installez SMF
Assurez-vous d'abord qu'il roule seul. Puis, dans le Centre d'administration → Paramètres du serveur
, changez le nom du témoin par quelque chose d'unique à votre site, afin d'éviter que les autres forums SMF que vous pourriez visiter et n'ayant pas changé le nom de leur cookie ne vous déconnectent !
Dans ce tutoriel, j'assumerai que SMF est installé dans le repertoire /smf
de votre compte d'hébergement.
Seconde étape: télécharger Coppermine et préparer l'intégration
<span style="color: red; font-style: italic;">NB: N'installez pas Coppermine à l'aide de Fantastico! Cela créerait une base de données MySQL pour Coppermine indépendante de celle de votre forum; or, les deux scripts doivent partager la même base de données afin que l'intégration fonctionne!</span>
Commencez par télécharger Coppermine sur votre ordinateur. Décompressez ensuite le contenu de cette archive sur votre disque dur.
Renommez le dossier de Coppermine ainsi décompressé: de cpg135
, transformez-le en gallery
(ou un autre nom de votre choix – rappelez-vous de ce nom!).
Et suivez ces instructions:
Dans /include/init.inc.php, cherchez:
// define('UDB_INTEGRATION', 'smf');
Remplacez par:
define('UDB_INTEGRATION', 'smf');
Dans /bridge/smf.inc.php, cherchez:
$path = '../smf';
Remplacez /smf
par le nom du répertoire dans lequel vous avez installé SMF, sans préfixe (du style public_html
ou www
, si c'est votre cas).
Quand les changements sont effectués, chargez Coppermine dans son propre répertoire (exemple: /public_html/gallery
).
Troisièmement, on récupère les informations de connexion à la base de données
Si vous avez installé manuellement SMF, vous vous souviendrez certainement des informations de connexion à la base de données que vous avez dû fournir afin de procéder à l'installation du forum. Ces informations exactes vous seront utiles pour la suite de l'installation de Coppermine. Si vous ne vous en souvenez plus ou si, comme pour mon cas, SMF a été installé à l'aide d'un panneau de gestion comme Fantastico, vous devrez récupérer les informations de connexion à votre base de données depuis les fichiers de configuration de SMF.
Ouvrez le fichier Settings.php
de votre forum SMF. Cherchez quelque chose ressemblant à:
########## Database Info ########## $db_server = 'localhost'; $db_name = 'identifiant_smf'; $db_user = 'identifiant'; $db_passwd = 'motdepasse';
Notez ces informations, vous en aurez besoin bientôt!
Quatrième étape: installation de Coppermine
Maintenant, dans votre navigateur web, exécutez le processus d'installation de Coppermine. Rendez-vous sur http://VotreSite.com/gallery/install.php
et suivez les indications à l'écran. (N'oubliez pas de remplacer VotreSite.com
par l'adresse de votre site et gallery
par le répertoire de Coppermine, si vous l'avez modifié!)
Lorsque l'installateur vous demande les informations concernant la base de donée, assurez-vous de donner les mêmes informations que celles de votre forum SMF (vous venez de les recueillir à l'étape précédente). Une fois installé, Coppermine va fonctionner et les groupes de membres et les utilisateurs seront communs à votre gallerie d'images et à votre forum SMF .
Aller plus loin: créer des boutons de navigation pour accéder à la gallerie à partir du forum
À l'aide de votre logiciel de traitement d'image préféré (MS Paint, The Gimp, Adobe Photoshop, …) ou à l'aide d'un générateur de boutons comme celui-ci, créez un bouton pour votre gallerie photo. Enregistrez-le sous le nom gallery.gif
et placez-le dans le dossier des images de langue du ou des thèmes que vous utilisez sur votre forum.
/Themes/default/images/french/
pour le thème par défaut/Themes/classic/images/french/
pour le YaBB SE Classic Theme/Themes/nom_du_thème/images/french/
pour les autres thèmes
Ouvrir la gallerie dans une nouvelle fenêtre ou dans le corps du forum?
Vous disposez de deux choix.
- Vous pouvez choisir d'ouvrir votre gallerie photo dans une nouvelle fenêtre de navigateur. Lorsqu'un visiteur cliquera sur le bouton de votre gallerie photo, une nouvelle fenêtre de navigateur s'ouvrira, laissant votre forum disponible dans une autre fenêtre en arrière-plan.
- Si vous préférez, vous pouvez charger votre gallerie photo au lieu du corps de votre forum. Coppermine utilisera alors votre entête et votre pied-de-page et conservera le même thème que votre forum.
Si vous choisissez d'ouvrir Coppermine dans une nouvelle fenêtre:
Ouvrez le fichier /Themes/votre_thème/index.template.php
(où votre_thème
est le répertoire de votre thème) avec un logiciel de traitement de texte simple (ex: Bloc-Notes sous Windows, BBEdit sous MacOS X, gEdit ou Kwrite sous Linux, …). Cherchez les lignes suivantes (habituellement, à la fin du fichier):
// Otherwise, they might want to [logout]... else { echo '<a href="', $scripturl, '?action=logout;sesc=', $context['session_id'], '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/logout.gif" alt="' . $txt[108] . '" style="margin: 2px 0;" border="0" />' : $txt[108]),'</a>';
Insérez ce qui suit entre le else{
et le echo '<a href=“', $scripturl, '?action=logout;sesc=', $context['session_id'],
echo '<a href="../gallery" >', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/gallery.gif" alt="Photo Gallery" style="margin: 2px 0;" border="0" />' : "Photo Gallery"),'</a>', $context['menu_separator'];
NB: changez le ”../gallery“ sur la premiere ligne pour mettre le dossier de Coppermine, si vous l'avez changé.
Placer le code à cet endroit va faire apparaître le bouton de la gallerie uniquement si l'utilisateur est authentifié sur le forum, à la fin de la série de boutons, juste avant le bouton de déconnexion.
Si vous préférez ouvrir la gallerie photo au lieu du corps votre forum:
- Ouvrez le fichier
index.php
se trouvant à la racine de votre forum. - Trouvez cette ligne:
'boardrecount' => array('Admin.php', 'AdminBoardRecount'),
À la suite de ce code, insérez ceci, sur une nouvelle ligne:
'coppermine' => array('Coppermine.php', 'Coppermine'),
- Créez un fichier nommé
Coppermine.php
à l'aide de votre logiciel de traitement de texte simple (Bloc-Notes, BBEdit, gEdit, Kwrite, …), ayant pour contenu ce code:<?php if (!defined('SMF')) die('Hacking attempt...'); function Coppermine() { // This is gonna be needed... loadTemplate('Coppermine'); } ?>
- Sauvez le fichier dans le répertoire
/Sources
de votre forum. - Créez un fichier nommé
Coppermine.template.php
, toujours à l'aide de votre logiciel de traitement de texte simple, et insérez-y ce code:<?php function template_main() { global $context, $settings, $options, $txt, $scripturl; echo ' <script language="JavaScript" type="text/javascript"><!-- function checkAll(onOff) { for (var i = 0; i < document.searchform.elements.length; i++) { if (document.searchform.elements[i].name.substr(0, 3) == "brd") document.searchform.elements[i].checked = onOff; } } // --></script> <form action="', $scripturl, '?action=search2" method="post" name="searchform" id="searchform"> <table width="80%" border="0" cellspacing="0" cellpadding="3" align="center"> <tr> <td>', theme_linktree(), '</td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder"> <tr class="titlebg"> <td>Galerie photo Coppermine</td> </tr><tr> <td class="windowbg">'; // load coppermine echo '<iframe width="100%" height="450" src="http://YourSite.com/gallery"></iframe>'; echo ' </td> </tr> </table> </form>'; } ?>
Notez l'adresse dans le code ci-haut, changez-la pour réfléter le nom du dossier de Coppermine et assurez-vous d'enlever le
www
pour assurer la compatibilité avec Firefox et IE. De plus, l'aide originale que j'ai trouvée adjoint/index.php
à la fin de l'URL: ne le mettez pas, car cela désactive la lecture du cookie automatiquement et fait apparaître la galerie comme membre non-enregistré. - Sauvez le fichier dans
/Themes/default/
- Dans ce même dossier, ouvrez
index.template.php
(ou/Themes/ThemeName/index.template.php
si vous utilisez un thème personnalisé) et cherchez ce code (vers la fin du fichier):// Otherwise, they might want to [logout]... else { echo '<a href="', $scripturl, '?action=logout;sesc=', $context['session_id'], '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/logout.gif" alt="' . $txt[108] . '" style="margin: 2px 0;" border="0" />' : $txt[108]),'</a>';
- Insérez ce code entre
else{
etecho '<a href=”', $scripturl, '?action=logout;sesc=', $context['session_id'],
://begin gallery code echo ' <a href="', $scripturl, '?action=coppermine"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/gallery.gif" alt="' . "Gallery" . '" style="margin: 2px 0;" border="0" /></a>', $context['menu_separator']; //end gallery code
Prévenir les erreurs à la navigation
Faites ceci, peu importe le type d'affichage choisi à l'étape précédente!
Afin de prévenir les erreurs de déconexion de la galerie ou de voir le forum s'afficher en boucle dans le cadre imbriqué dans lequel devrait s'afficher la gallerie, il faut modifier le fichier du thème de Coppermine que vous utilisez.
Si la gallerie ouvre dans une nouvelle page, faites ceci:
Ouvrez le fichier theme.php
que vous utilisez du dossier de thème de Coppermine (ex:/gallery/theme/classic/theme.php
) et remplacez tout ce qui se trouve entre les balises <!– BEGIN logout –>
et <!– END logout –>
pour que cela ait l'air de ceci:
<!-- BEGIN logout --> <a href="../forum/index.php">Retour au forum</a> | <!-- END logout -->
Ceci va fermer la gallerie et rediriger l'utilisateur vers l'accueil du forum, en se servant du cookie pour se souvenir de votre profil.
Si vous insérez la galerie dans le corps du forum, faites ceci:
Il est mieux de désactiver les boutons Profil et Déconexion de Coppermine, ainsi que le bouton S'enregistrer (vu que les enregistrements sont gérés par le forum). Pour ce faire, ouvrez le fichier theme.php
du dossier de thème de Coppermine que vous utilisez (ex:/gallery/theme/classic/theme.php
) et effacez les lignes entre les balises register
, login
et logout
, afin qu'il ressemble à ceci:
define('THEME_HAS_RATING_GRAPHICS', 1); // HTML template for main menu $template_main_menu1 = <<<EOT | <!-- BEGIN my_gallery --> <a href="{MY_GAL_TGT}" title="{MY_GAL_TITLE}">{MY_GAL_LNK}</a> | <!-- END my_gallery --> <!-- BEGIN allow_memberlist --> <a href="{MEMBERLIST_TGT}" title="{MEMBERLIST_TITLE}">{MEMBERLIST_LNK}</a> | <!-- END allow_memberlist --> <!-- BEGIN my_profile --> <!-- END my_profile --> <!-- BEGIN faq --> <a href="{FAQ_TGT}" title="{FAQ_TITLE}">{FAQ_LNK}</a> | <!-- END faq --> <!-- BEGIN enter_admin_mode --> <a href="{ADM_MODE_TGT}" title="{ADM_MODE_TITLE}">{ADM_MODE_LNK}</a> | <!-- END enter_admin_mode --> <!-- BEGIN leave_admin_mode --> <a href="{USR_MODE_TGT}" title="{USR_MODE_TITLE}">{USR_MODE_LNK}</a> | <!-- END leave_admin_mode --> <!-- BEGIN upload_pic --> <a href="{UPL_PIC_TGT}" title="{UPL_PIC_TITLE}">{UPL_PIC_LNK}</a> | <!-- END upload_pic --> <!-- BEGIN register --> <!-- END register --> <!-- BEGIN login --> <!-- END login --> <!-- BEGIN logout --> <!-- END logout --> EOT;
Et voilà ! ;-)
L'intégration de Coppermine à votre forum SMF est maintenant complète