Voilà, j'ai fini mes tests.
Donc voici le résumé de la modification à faire (version 1.4.9).
Dans le fichier functions.inc.php recherchez (vers les lignes 1890-1920):
function& get_pic_url(&$pic_row, $mode,$system_pic = false)
{
global $CONFIG,$THEME_DIR;
static $pic_prefix = array();
static $url_prefix = array();
if (!count($pic_prefix)) {
$pic_prefix = array(
'thumb' => $CONFIG['thumb_pfx'],
'normal' => $CONFIG['normal_pfx'],
'fullsize' => ''
);
$url_prefix = array(
0 => $CONFIG['fullpath'],
);
}
$mime_content = cpg_get_type($pic_row['filename']);
$pic_row = array_merge($pic_row,$mime_content);
$filepathname = null;
à la suite ajoutez l'adresse des sites externes :
$cheminsite1 = 'http://provostjulien.free.fr/albumtest/albums/';
$cheminsite2 = 'http://www.unautresite.fr/unrepertoire/';
(ici ce sont les mêmes, mais je ne me sers que du premier, mais comme ça le code est déjà prévu pour plusieurs serveurs externes.)
Donc on rajoute ici autant de site que l'on veut en continuant la numérotation de cheminsite
.
après les adresses des serveurs ajoutez le code permettant de faire les tests en fonction des nom d'albums :
if ( ($pic_row['filepath'] == '2005-10-08 Tour Eiffel/') // ici c'est le nom du répertoire sur le ftp.
or ($pic_row['filepath'] == 'blabla1/') // ici c'est le nom d'un autre répertoire sur le ftp (il n'existe pas, mais c'est pour prévoir le cas avec plusieurs albums).
or ($pic_row['filepath'] == 'blabla2/') // et encore un autre (qui n'existe pas non plus).
)
{ $filepathname = $cheminsite1.path2url($pic_row['filepath']. $pic_prefix[$mode]. $pic_row['filename']);}
elseif( ($pic_row['filepath'] == 'album100/') // ça ne sers à rien mais c'est pour prévoir l'utilisation de plusieurs serveurs externes
or ($pic_row['filepath'] == 'album200/') // ça ne sert toujours à rien
or ($pic_row['filepath'] == 'album300/') // et toujours pour rien
)
{ $filepathname = $cheminsite2.path2url($pic_row['filepath']. $pic_prefix[$mode]. $pic_row['filename']);}
else
{ $filepathname = $url_prefix[$pic_row['url_prefix']]. path2url($pic_row['filepath']. $pic_prefix[$mode]. $pic_row['filename']);}
Dans cette on fait un test en fonction du nom de répertoire qu va être appelé, et on affecte la valeur de filepathname en conséquence.
Le test se fait sur le nom du répertoire sur le serveur FTP, pas sur le nom de l'album dans Coppermine.
Il suffit donc de rajouter une ligne dans le test pour chaque album présent sur un serveur externe, et de rajouter un bloc "elseif" pour chaque nouveau serveur externe.
Le bloc else affecte la valeur par défaut à file pathname dans le cas où l'album se trouve en local. Donc si on n'utilise pas de serveurs externes, le code marche également sans problème, sans avoir à lui spécifier les albums en local.
Donc niveau utilisation, il faut donc rajouter l'ensemble du code ci dessus dans le fichier dessus et y déclarer les noms de vos albums et serveurs externes.
Pour mettre un album sur le serveur externe, il faut donc tout d'abord le mettre sur le serveur ou se trouve Coppermine, puis créer les vignettes et les images réduites. Ensuite, il suffit de coupier le dossier concerné depuis le serveur où se trouve Coppermine (dans mon cas .../Album2/albums/nomdu répertoire) et de le mettre sur le serveur externe (dans mon cas .../albumtest/albums).
L'avantage de cette solution est qu'elle nécessite peut de place sur le serveur ou est installé Coppermine (juste de quoi l'installer et de quoi mettre un répertoire de photo temporairement) et le reste des photos peut être stocké sur un autre serveur. Ainsi, on peut choisir un hébergeur de meilleure qualité pour la partie Coppermine, pour exécuter rapidement les commandes PHP et les requêtes SQL, sans avoir la nécessité d'un gros espace d'hébergement; et stocker les photos sur un hébergeur de plus grosse capacité mais de moins bonne qualité au niveau PHP et SQL. De plus, on peut y ajouter plusieurs serveurs et obtenir un espace de stockage confortable (10Go par site chez free par exemple).
Voici mon exemple
http://provost.julien.free.fr/Album2/, la gelerie Tour Eiffel se trouve sur un autre site free (provostjulien.free.fr au lieu de provost.julien.free.fr, je précise car la différence n'est pas flagrante). La seule différence que l'on peut noter par rapport aux autres albums c'est l'adresse indiquée lorsque que l'on fait un clic droit sur la photos pour regarder leurs propriétés.
Je pense continuer à travailler un peu sur ce code pour simplifier l'ajout de serveur et d'albums. J'aimerai faire un code qui regarde sur les différents serveurs proposés (en commançant par le local) et qui choisit le serveur en fonction de l'endroit ou se trouve le dossier. Je pense que c'est faisable, mais je ne connait pas suffisament le langage PHP pour exécuter une recherche de répertoire sur un serveur FTP donné. Donc si il y a des personnes qui peuvent m'aider, nh'ésitez surtout pas, et envoyé moi un message privé.
Je pense voir ça ce week-end.