Tutoriel d’intégration d’un plugin ImageManager pour TinyMCE

Contribution des utilisateurs
vincentbazot
Membre
Messages : 48
Inscription : 28 Sep 2010 18:55

Tutoriel d’intégration d’un plugin ImageManager pour TinyMCE

Messagepar vincentbazot » 17 Juil 2012 10:03

Démonstration du plugin: http://demo.phpletter.com/tinymce_test.php

Face à la problématique d’intégration d’images dans un article, en effet j’ai énormément de fichiers jpg, il était peu commode de devoir chercher tout le temps parmi la liste déroulante le bon fichier.

Donc j’ai cherché du côté de TinyMce si un plugin existait, et j’ai trouvé ImageManager mais en version payante.

Donc malgré la qualité de ce dernier, j’ai cherché une solution gratuite.

Et sur le forum allemand de contao, j’ai trouvé comment intégrer ajaxfilemanager directement dans tinymce sur le gestionnaire d’images.

URL du wiki :http://de.contaowiki.org/TinyMCE_und_AjaxFileManager

Tutoriel :

1/ Télécharger le plugin à cette adresse: http://www.phpletter.com/download_project_version.php?version_id=35

2/ Dézipper le fichier puis copier le dossier ajaxfilemanager dans plugins/tinymce/plugins

3/ Ouvrir le fichier plugins/tinymce/plugins/ajaxfilemanager/inc/config.base.php et remplacer aux lignes 57 et 58 :

Code : Tout sélectionner

define('CONFIG_SYS_DEFAULT_PATH', '../../../../uploaded/'); //accept relative path only
define('CONFIG_SYS_ROOT_PATH', '../../../../uploaded/');   //accept relative path only

par

Code : Tout sélectionner

define('CONFIG_SYS_DEFAULT_PATH', '../../../../tl_files/votresiteinternet/images'); //accept relative path only
define('CONFIG_SYS_ROOT_PATH', '../../../../tl_files/votresiteinternet/images');   //accept relative path only


4/ Ouvrir le fichier system/config/tinymce.php et remplacer à la ligne 52

Code : Tout sélectionner

 elements : "<?php echo $this->rteFields; ?> ",

par

Code : Tout sélectionner

  elements : "<?php echo $this->rteFields; ?>,ajaxfilemanager",


Toujours dans ce meme fichier, sous la ligne 75

Code : Tout sélectionner

theme_advanced_resizing : true,


ajouter

Code : Tout sélectionner

  file_browser_callback : "ajaxfilemanager",


Pour terminer, juste avant la balise </script>, ajouter :

Code : Tout sélectionner

// start ajaxfilemanager configuration
function ajaxfilemanager(field_name, url, type, win) {
            var ajaxfilemanagerurl = "plugins/tinyMCE/plugins/ajaxfilemanager/ajaxfilemanager.php";
            switch (type) {
                case "image":
                    break;
                case "media":
                    break;
                case "flash":
                    break;
                case "file":
                    break;
                default:
                    return false;
            }
       var view='thumbnail'; //alternativ: 'detail'
       var language='de';
            tinyMCE.activeEditor.windowManager.open({
                url: ajaxfilemanagerurl + '?view=' + view + '&language=' + language,
      title: "Ajax Dateimanager",
                width: 882,
                height: 540,
                inline : "yes",
                close_previous : "no"
            },{
                window : win,
                input : field_name,
      resizable: "yes"
            });
            return false;
        }
// end ajaxfilemanager configuration
Dernière édition par vincentbazot le 28 Nov 2012 15:07, édité 1 fois.

vincentbazot
Membre
Messages : 48
Inscription : 28 Sep 2010 18:55

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar vincentbazot » 17 Juil 2012 16:35

Fonctionne très bien en local sous wamp mais pas en ligne où les thumbnails ne sont pas visibles (le reste fonctionne et on voit les images en cliquant dessus) sur mon serveur Kimsufi (Gentoo Linux).

Le problème viendrait de l'absence de l'extension php_gd2.

vincentbazot
Membre
Messages : 48
Inscription : 28 Sep 2010 18:55

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar vincentbazot » 26 Juil 2012 16:05

En cours de modifications (ne fonctionne pas sur mon serveur)

vincentbazot
Membre
Messages : 48
Inscription : 28 Sep 2010 18:55

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar vincentbazot » 22 Nov 2012 16:03

Ça marche en fait :)

Brokenail
Nouveau
Messages : 1
Inscription : 05 Déc 2012 10:57
Localisation : Del Paris

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar Brokenail » 05 Déc 2012 11:00

Bon, c'est exactement le tuto dont j'ai besoin. TinyMCE vend son truc à images 32 euros. TRENTE-DEUX PUTAINS D'EUROS ! Je pourrais acheter plusieurs organes pour ce prix-là !

Cependant, aussi utile soit votre tuto,je ne trouve pas le fichier system/config/tinyMCE dont vous parlez. C'est quoi ce machin ? Ca se trouve où ?

Un grand merci pour le tuto en tout cas.

Broke

vincentbazot
Membre
Messages : 48
Inscription : 28 Sep 2010 18:55

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar vincentbazot » 05 Déc 2012 17:54

Lol c'est vrai que c'est pas donné 32€ mais je comprends le boulot qu'il y a derrière, parfois les développeurs doivent être payés pour leurs travaux (parfois hein faut pas exagérer non plus ^^).

Trêve de plaisanterie(s), je faisais référence au fichier "tinymce.php", lequel est situé dans le dossier system/config de ton installation de contao (eg: http://127.0.0.1/tonsite/system/config/tinymce.php).

Il s'agit d'un dossier où il n'y a que des fichiers PHP. Je viens de vérifier, que ce soit sous la V2.x.x ou la V3 de Contao, ce sont les mêmes fichiers à priori (je dis bien à priori car je n'ai pas fais le test sous la V3, mais je ne vois pas pourquoi TinyMCE aurait changé par rapport à la V2).

Bonne soirée, je reste dans le coin si besoin :)

Vincent

Avatar de l’utilisateur
F2lt
Membre
Messages : 164
Inscription : 26 Mai 2011 09:24
Localisation : L'Isle sur Sorgue - Vaucluse (84)

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar F2lt » 04 Oct 2013 11:08

Bonjour,

Attention cette procédure d'installation ne prend pas du tout en compte la sécurité, c'est une porte ouverte à tous les internautes sur le "RootFolder".

Il suffit d'accéder à siteContao/plugins/tinyMCE/plugins/ajaxfilemanager/ajaxfilemanager.php pour s'en rendre compte :shock:
Oui, mais c'est parce que je me suis déjà connecté, hélas le résultat est exactement le même avec un navigateur "vierge". :(

Il faudrait au minimum vérifier que les requêtes ajax proviennent bien du navigateur d'un utilisateur Contoa connecté au BackEnd. :idea:

F2lt

Référence : http://fr.1337day.com/exploit/17204 et autre recherche de : ajaxfilemanager exploit
Je soutiens Mira Europe qui éduque et remet gratuitement des chiens guides d'aveugles aux enfants aveugles : http://www.miraeurope.org/

vincentbazot
Membre
Messages : 48
Inscription : 28 Sep 2010 18:55

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar vincentbazot » 08 Oct 2013 10:18

Merci ça c'est fait, effectivement la faille est pas mal!!!

Solution: éditer le fichier suivant: votresiteinternet/plugins/tinyMCE/plugins/ajaxfilemanager/inc/config.base.php

Ligne 26 et suivantes:

Code : Tout sélectionner

   
define('CONFIG_ACCESS_CONTROL_MODE', true);//passer ce paramètre à true    
define("CONFIG_LOGIN_USERNAME", 'identifiant');
define('CONFIG_LOGIN_PASSWORD', 'mot_de_passe');


Voilà désormais en vous connectant directement au fichier depuis un navigateur votresinternet/plugins/tinyMCE/plugins/ajaxfilemanager/ajaxfilemanager.php, un mot de passe et identifiant vous sera demandé. Il en est de même depuis le BO où il faudra saisir votre id/pass pour utiliser ce plugin avec TinyMCE.

Merci encore pour l'info à F2lt.

Vincent

Avatar de l’utilisateur
F2lt
Membre
Messages : 164
Inscription : 26 Mai 2011 09:24
Localisation : L'Isle sur Sorgue - Vaucluse (84)

Contao/tinyMCE/AjaxFileManager > Sécurité = Logged Back End

Messagepar F2lt » 14 Oct 2013 12:30

Bonjour,

J'ai réussi à mettre en oeuvre mon idée de départ, c'est-à-dire "lier" l'utilisation de AjaxFileManager à une connexion au backoffice de Contao avec des modifications mineurs des fichiers du plugin :
  • on active l'authenfication par login comme indiqué par Vincent
  • on redirige vers la connexion du backoffice de Contao si la connexion BE n'existe pas (pas de connexion direct possible)

Code : Tout sélectionner

Fichier : inc/config.base.php ligne 21
//Access Control Setting
   /**
    * turn off => false
    * by session => true
    */
    define('CONFIG_ACCESS_CONTROL_MODE', true);
    define('CONFIG_LOGIN_PAGE', '../../../../contao');

  • on modifie la méthode d'authentification de AjaxFileManager :

Code : Tout sélectionner

Fichier : inc/class.auth.php ligne 27
/**
 * check if the user has logged
 *
 * @return boolean
 */
function isLoggedIn()
{
        require('inc/class.contao_auth.php');
        $ContaoAuth=new ContaoAuth();
        return $ContaoAuth->isBEUserLoggedIn();
}

  • on crée un nouveau fichier contenant la classe d'authentification Contao utilisé maintenant par AjaxFileManager :

Code : Tout sélectionner

Fichier : inc/class.contao_auth.php
<?php
require('../../../../system/initialize.php');
require('../../../../system/modules/frontend/Frontend.php');
class ContaoAuth extends Frontend {
    public function __construct()
    {
      parent::__construct();
    }
    public function isBEUserLoggedIn() {
        return $this->getLoginStatus('BE_USER_AUTH');
    }
}
?>

Et c'est terminé vilains hackers :evil: , on ne peut utiliser le plugin que si l'on est connecté au backoffice de Contao. :lol:

Du moins, j'espère que c'est vrai :wink:
F2lt
Je soutiens Mira Europe qui éduque et remet gratuitement des chiens guides d'aveugles aux enfants aveugles : http://www.miraeurope.org/

vincentbazot
Membre
Messages : 48
Inscription : 28 Sep 2010 18:55

Re: Tutoriel d’intégration d’un plugin ImageManager pour Tin

Messagepar vincentbazot » 16 Oct 2013 16:07

Très sympa comme amélioration, du coup on n'est plus obligé de se logger à nouveau lorsque l'on veut utiliser le plugin.

Je vais tester tout ça assez vite!!!

Merci :)


Revenir vers « Tutoriels utilisateurs »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité