IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

iBrowser image library mutliuser [TinyMCE]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Invité
    Invité(e)
    Par défaut iBrowser image library mutliuser
    Bonjour,

    Je cherche à trouver un moyen d'enclaver mes utilisateurs connectés dans leurs répertoire d'images perso .

    Ce répertoire est défini grace à leur login
    Exemple le user 'toto' aura accès au répertoire '/media/toto/'
    le user 'tata' aura accès au répertoire '/media/tata/'

    seulement pour celà il faut configurer dans le config.inc.php du ibrowser un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	$cfg['ilibs'] = array (														
    		array (																		
    			'value'   	=> '/media/'.$_SESSION["user_en_cours"].'/',												
    			'text'    	=> 'Mes Images',
    		)
    	);
    où $_SESSION["user_en_cours"] contient bien sur la variable du login 'toto' ou 'tata' etc.

    Mais voilà le problème ! cette $_SESSION["user_en_cours"] est parfaitement accessible dans mon code du site, mais bisarrement, pas dans ibrowser, malgrès qu'elle soit en php !

    Je suppose après pas mal de reflexion, que ce problème est certainement dû au fait de passer par une simple déclaration d'un javascript, pour executer tout le code depuis le tiny_mce

    Mais alors comment faire ?

    Y'a t'il un moyen simple de passer en paramètre dans le tinyMCE.init() une variable javascript comme pour language : "fr", par exemple du genre :
    user : "toto",

    et ensuite de la transmettre au module ibrowser ?

    j'ai vu que l'on pouvais dans ibrowser/interface/common.js
    passer en paramêtre une variable de cette manière : (ligne 91)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var wnd = window.open(ib.baseURL + '?editor=' + ib.editor + '&callback=iBrowser_callback', 'ibrowser', 'status=no, modal=yes, width=625, height=530');
    ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var wnd = window.open(ib.baseURL + '?editor=' + ib.editor + '&callback=iBrowser_callback&user=toto', 'ibrowser', 'status=no, modal=yes, width=625, height=530');
    ensuite je peux facilement via le config.inc.php récupérer cette variable par un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	$cfg['ilibs'] = array (														
    		array (																		
    			'value'   	=> '/media/'.$_GET["user"].'/',												
    			'text'    	=> 'Mes Images',
    		)
    	);
    seulement j'aimerai bien pouvoir passer la variable user en paramètre depuis l'initialisation du tinymce, pour ensuite la récupérer sur ibrowser/interface/commons.js

    je suis pas assez calé en javascript pour le faire

    Merci de votre aide !

  2. #2
    Invité
    Invité(e)
    Par défaut
    bon j'ai trouvé !

    explication :

    passer la variable dans l'init de tiny_mce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    tinyMCE.init({
    ...
    language : "fr",
    user : "toto",
    ...
    Le code de l'init peut être modifier simplement en php lors d'un simple echo (idéal pour changer le user à la volée en fait, c'est le but !

    Créer plusieurs répertoires librairies pour l'upload avec ibrowser, et leur mettre les droits en écriture, exemple :
    /media/toto
    /media/tata
    /media/titi
    etc.. bref en fonction de vos utilisateurs du site

    ensuite dans le script tiny_mce.js on peut constater qu'il récupère les variables grace à la fonction
    soit pour notre exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tinyMCE.getParam('user')
    qui renverra "toto"

    cette fonction est aussi accessible à ma grande surpise dans les plugins, via le editor_plugin.js de tous les plugins magnifique !

    ce qui veut dire que dans le plugin d'ibrowser, je vais pouvoir recevoir cette valeur "user" et la traiter !

    ce qui donne dans editor_plugin.js : (ligne 46)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ib.baseURL = tinyMCE.baseURL + '/plugins/ibrowser/ibrowser.php';
    à remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ib.baseURL = tinyMCE.baseURL + '/plugins/ibrowser/ibrowser.php?user_home='+tinyMCE.getParam('user');
    cette méthode va tout simplement passer en paramètre url une variable "user_home" récupérable depuis le ibrowser.php, ou plutot le config.inc.php directement par simple $_GET["user_home"]

    Mais il faut corriger tout de même quelque chose dans le common.js car on viens un peu de changer le traitement par défaut, soit remplacer dans common.js (ligne 91) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var wnd = window.open(ib.baseURL + '?editor=' + ib.editor + '&callback=iBrowser_callback', 'ibrowser', 'status=no, modal=yes, width=625, height=530');
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var wnd = window.open(ib.baseURL + '&editor=' + ib.editor + '&callback=iBrowser_callback', 'ibrowser', 'status=no, modal=yes, width=625, height=530');
    le ? devient un & pour pas fausser les para de l'url

    Ce qui donne au final un ibrowser unique pour autant de user possible, qui peuvent ensuite accedér à leur répertoire perso d'image

    voilou

  3. #3
    Invité
    Invité(e)
    Par défaut
    je reviens de plus belle :/ je voudrai maintenant poffiner mon script avec que la librairie "/media/toto" définie dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cfg['ilibs'] = array (														
    array (																		
    	'value'  => '/media/toto/',
    	'text'	=> 'Mes Images',
    )
    );
    en effet 'toto' est en fait un lien symbolique vers le vrai repertoire du user '/home/toto/'

    Malheureusement même si apache fait bien suivre les liens et les permissions :/ ibrowser lui ne le fait pas :/

    j'ai donc tenté en vain de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cfg['ilibs'] = array (														
    array (																		
    	'value'  => '/home/toto/',
    	'text'	=> 'Mes Images',
    )
    );
    mais ibrowser le comprend bien sur comme '/home/userdusite/www/home/toto/' car il ajoute le document_root en plus

    je peine la !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Matrox Image Library
    Par Flow_75 dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 27/07/2017, 10h35
  2. PIL (Python Imaging Library)
    Par forum dans le forum Téléchargez
    Réponses: 0
    Dernier message: 08/07/2011, 16h58
  3. Generic Image Library
    Par forum dans le forum Téléchargez
    Réponses: 0
    Dernier message: 29/06/2011, 21h13
  4. [TinyMCE] Upload d'images avec IBrowser
    Par Baldy dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 27/11/2008, 10h05
  5. Réponses: 1
    Dernier message: 23/06/2006, 20h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo