Simple Machines Community Forum

SMF Support => Français (French) => Language Specific Support => FAQ et Tutoriels => Topic started by: hirsute on July 14, 2010, 05:21:15 PM

Title: Ajout d'un gestionnaire d'images
Post by: hirsute on July 14, 2010, 05:21:15 PM
Bonjour.

Utilisateur de SMF friand d'images, j'ai toujours regretté l'absence d'un système de gestion des images digne de ce nom.
Personnellement je préfère nettement confier mes images à mon propre site plutôt qu'à un service externe.
De plus la souplesse d'utilisation est incomparable avec certaine application.

Celle que j'ai choisit est très complète, fonctionne bien et surtout c'est la seule que j'ai réussit à intégrer à TyniMCE sur un site XOOPSé.
Il s'agit de "Ajax File/Image Manager" de phpletter (http://www.phpletter.com/Our-Projects/Ajax-File-Manager-Project/ (http://www.phpletter.com/Our-Projects/Ajax-File-Manager-Project/))

Avant toutes choses je signale que si c'est bien opérationnel, il manque encore un élément non négligeable : la sécurité.
En effet je n'est pas encore trouvé comment fonctionne le filtrage par groupe dans SMF alors je viens voir si il y aurait un peu d'aide ici  ;)

Petite précision mon SMF est une version 1.1.11.

Donc voilà, c'est assez simple en fait :
1) Dans l'archive "ajaxfilemanagerRC5.zip" téléchargée depuis le site de phpletter vous trouverez un répertoire "ajaxfilemanager". C'est celui ci que vous allez copier sur votre site à l'endroit de votre choix.
Personnellement je l'ai mis à la racine de SMF, il faudra adapter les liens ci dessous dans d'autres situations.

2) Le premier fichier à modifier est "/ajaxfilemanager/inc/config.base.php"
Il y a divers paramètres modifiables mais ce qui est indispensable c'est l'accès au répertoire des futurs fichiers uploadés.
Pour ce faire cherchez les deux lignes
define('CONFIG_SYS_DEFAULT_PATH', $_SERVER['DOCUMENT_ROOT'].'../uploaded/'); //accept relative path only
define('CONFIG_SYS_ROOT_PATH', $_SERVER['DOCUMENT_ROOT'].'../uploaded/'); //accept relative path only

et changez ../uploaded/ par votre chemin.
A titre indicatif si vous ne changez rien, il faut créer un répertoire "uploaded" à coté de(au même niveau que) "ajaxfilemanager".

A titre indicatif il y a plus bas la ligne
define('CONFIG_EDITOR_NAME', (CONFIG_QUERY_STRING_ENABLE && !empty($_GET['editor'])?secureFileName($_GET['editor']):'stand_alone'));
C'est 'stand_alone' que l'on remplace par 'tynimce' ou 'fckeditor' si nécessaire. Ceci appel un fichier javascript spécifique dans chaque cas (for_stand_alone.js, for_tinymce.js, etc.).
J'ai gardé 'stand_alone' car je ne sais pas comment fonctionne l'appel de ces fichiers.

3) Deuxième modification : "/ajaxfilemanager/jscripts/for_stand_alone.js"
Chaque fichiers "for....js" contient les scripts nécessaires à la gestion spécifique de l'éditeur ciblé.
Nous avons besoin essentiellement d'insérer l'image choisit dans l'éditeur de SMF.
Pour cela j'ai simplement utilisé une fonction de SMF existante : "replaceText()".
Il n'y a qu'à ajouter ce qui suit dans le fichier
function selectFile(url)
{
window.opener.replaceText("[img]"+url+"[/img]", window.opener.document.forms.postmodify.message);
      //window.close() ;
}


A noter la fonction "window.close()" qui ferme la fenêtre après l'inclusion. Je l'ai désactivé pour pouvoir insérer plusieurs images sans refaire toute la manoeuvre.

4) Dernière modification : l'appel du manager dans l'éditeur de SMF
C'est dans le fichier "Post.template.php" de votre thème.
J'ai inséré ce lien à la ligne 929
// Print an acces to the image manager
//if (...) // Filtre à trouver et adapter
    echo '&nbsp; &nbsp;<a href="./ajaxfilemanager/ajaxfilemanager.php" target="_blank"><b> Images +</b></a> ';

juste avant les lignes suivantes
echo '
</td>
</tr>';
}

// Now start printing all of the smileys.


ce qui le place à la droite des smileys dans l'éditeur.
On doit pouvoir facilement remplacer la balise classique mais j'ai préféré ne rien changer.

Utilisation du manager :
Cliquer sur le lien pour ouvrir une fenêtre. Là vous avez une liste d'images ou du moins de quoi la constituer.
Le bouton d'upload est en haut à droite.
Pour insérer une image :
- soit clic bouton droit, choix "select"
- soit activer la case à cocher à gauche de la ligne et cliquer sur le bouton qui apparait à gauche

Voilà je pense n'avoir rien oublié.

Si donc quelqu'un sait quoi faire pour filtrer les utilisateurs ce serait une très bonne chose !

Oualou. Amusez vous vous bien.