Forum CMS Made Simple FR

Version complète : [RESOLU] TinyMCE - Bouton image "Parcourir" manquant...
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.4.3
#~ Url du site :
#~ Hébergeur / Soft : OVH
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.9.4.2
#~ Installed Modules:
#~ CMSMailer: 2.0.1
#~ FileManager: 1.1.0
#~ MenuManager: 1.7.6
#~ ModuleManager: 1.4.2
#~ News: 2.11.3
#~ nuSOAP: 1.0.2
#~ Printing: 1.1.2
#~ Search: 1.6.10
#~ ThemeManager: 1.1.4
#~ TinyMCE: 2.9.1
#~ CGExtensions: 1.26.6
#~ CGSimpleSmarty: 1.4.8
#~ FrontEndUsers: 1.15.1
#~ CustomContent: 1.7.3
#~ CGBlog: 1.7.5
#~ SiteMapMadeSimple: 1.2.2
#~ CGFeedback: 1.3.5
#~ Uploads: 1.12
#~ Config Information:
#~ php_memory_limit: 128M
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 64000000
#~ default_upload_permission: 664
#~ url_rewriting: false
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale: fr_FR.utf8
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.2.17
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.49
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

de nouveau sur le forum pour tenter d'obtenir une solution à mon problème avec TinyMCE. Je m'explique...

Lorsque je suis dans le backoffice du CMS, à la section de gestion du module TinyMCE, j'ai accès à un onglet nommé "Zone de test" qui me permet d'avoir un aperçu du wysiwyg.
Si je clique sur le bouton "éditer/insérer une image", le pop-up monte correctement et je peux avoir accès au bouton "Parcourir", situé à droite du champs URL.

Malheureusement, je ne vois pas ce bouton lorsque je tente d'y accéder via le wysiwyg intégré dans ma page.
Si je saisie l'adresse url de mon image, il la trouve sans problème.
Ce bouton n'apparait pas quel que soient les changements et réinitialisation des paramètres. Même après une ré-installation complète du module...

J'ai passé la journée à chercher sur les différents forums et n'ai pas trouvé de réponse à ce cas.

Alors je tente ma chance ici... Big Grin

Merci d'avance
Bonjour,

Bizarre ce problème - tu es sur quel navigateur ? En as-tu essayé plusieurs ? As-tu un outil du type Firebug pour voir si le code du bouton est dans la source ?

Dans ton admin, tu es en compte admin, éditeur, designer, autre ?

Merci pour les infos
Bonjour et merci de me répondre...

Alors pour ce qui est des navigateurs, j'ai fais le test sous Firefox, IE, Chrome et Safari. Même résultats pour tous !

Avec Firebug, j'ai vérifié le code des popups du TinyMCE côté admin CMS et côté navigateur. Voici les résultats :

Lorsque je clique sur "éditer/insérer image" dans le wysiwyg depuis l'interface d'admin (partie du code correspondant au bouton "Parcourir")
Code :
<td colspan="2"><table cellspacing="0" cellpadding="0" border="0">
                                    <tbody><tr>
                                      <td><input type="text" onchange="ImageDialog.showPreviewImage(this.value);" class="mceFocus" value="" id="src" name="src" style="width: 260px;"></td>
                                      <td id="srcbrowsercontainer"><a class="browse" onmousedown="return false;" href="javascript:openBrowser('srcbrowser','src', 'image','theme_advanced_image_image_browser_callback');" id="srcbrowser_link"><span title="parcourir" id="srcbrowser">&nbsp;</span></a></td>
                                    </tr>
                                  </tbody></table></td>

Lorsque je clique sur "éditer/insérer image" dans le wysiwyg depuis le site (partie du code correspondant au bouton "Parcourir")
Code :
<td colspan="2"><table cellspacing="0" cellpadding="0" border="0">
                                    <tbody><tr>
                                      <td><input type="text" onchange="ImageDialog.showPreviewImage(this.value);" class="mceFocus" value="" id="src" name="src"></td>
                                      <td id="srcbrowsercontainer"></td>
                                    </tr>
                                  </tbody></table></td>


Visiblement, le premier me sort le code qui va bien pour afficher cette fonctionnalité. Pour le second, il manque tout ce qui correspond à "srcbrowsercontainer" dans le <td></td> concerné... :|

Dans l'admin du CMS je suis loggé en tant qu'admin.


Je précise que j'ai tenté à peu près toutes les solutions proposées le long des forum que j'ai parcouru hier.
A savoir, vider les caches des navigateurs, vérifier les permissions chmod des dossier sur le ftp, celles des utilisateurs dans l'admin du CMS, déinstaller et réinstaller le module, downgrader le module en 2.7.2, en 2.7.3, réinitialiser tout les paramètres de TinyMCE, ... bref !

Je pense avoir fait le tour des solutions abordées, mais je ne vois toujours pas pourquoi ce module fonctionne au poil dans le backoffice et pas dans la partie publique du site.

J'ai suivi les conseils de Bess dans un autre post, concernant l'utilisation des contenus globaux afin de ne pas trop pourrir mon code.
C'est comme cela, d'ailleurs, que j'ai débuggé l'affichage systématique du wysiwyg en mode html. J'avais placé le script de Google Analytics dans les gabarit de mes pages, et même dans l'index.php du CMS :/ Rolleyes
En ayant ôté ce script de mes gabarits, TinyMCE retrouvait un comportement normal... en tout cas, en ce qui concerne son affichage en mode wysiwyg.

J'espère que ces renseignements vous permettront de me mettre sur la piste d'une solution... Smile
Un indice ?

Merci


[EDIT] J'ai oublié de préciser que j'ai fait aussi un test dans une nouvelle page et son gabarit en prenant soin de virer toutes les parties de code qui pourraient éventuellement créer un conflit avec le TinyMCE (module FEU et News). Même constat... Sad
Ahh c'est dans la partie publique ? Je crois effectivement que cette fonction est limitée sur la version de TinyMCE sur la partie publique, pour éviter que tout le monde puisse naviger dans l'arborescence des fichiers.

Je fais un test chez moi et je te dis ce qu'il en est...
Bon ben je confirme, il n'y a pas le bouton sur le frontend, sûrement pour raison de sécurité.

Cela étant, tu peux peut-être mettre en place un nouveau champ "image" ou "fichier" selon le module que tu utilises (fonctionne sur Articles ou CGBlog par exemple) - comme ca tu peux vraiment contrôler ce qui est mis en ligne par le visiteur.

Si quelqu'un d'autre a une solution ?
airelibre a écrit :Ahh c'est dans la partie publique ? Je crois effectivement que cette fonction est limitée sur la version de TinyMCE sur la partie publique, pour éviter que tout le monde puisse naviger dans l'arborescence des fichiers.

Je fais un test chez moi et je te dis ce qu'il en est...

Ah bon ? Parce-que lorsque je l'utilise (côté admin) je n'ai accès qu'au répertoire /uploads/images. Impossible de naviguer ailleurs...



airelibre a écrit :Bon ben je confirme, il n'y a pas le bouton sur le frontend, sûrement pour raison de sécurité.

ça va alors, ce n'est pas moi qui suis totalement cintré... :lol:



airelibre a écrit :Cela étant, tu peux peut-être mettre en place un nouveau champ "image" ou "fichier" selon le module que tu utilises (fonctionne sur Articles ou CGBlog par exemple) - comme ca tu peux vraiment contrôler ce qui est mis en ligne par le visiteur.

En fait, j'ai mis en place le module uploads pour permettre aux visiteurs d'envoyer un fichier, ou une image dans le but de pouvoir l'intégrer ou de placer un lien dans le corps de leur message.
C'est pour cela que j'ai besoin de ce bouton "Parcourir" dans le wysiwyg côté site... pour qu'ils puissent aller chercher le(s) document(s) sans avoir à entrer l'url : uploads/images/nomdufichier.
Mon client craint que les utilisateurs ne s'en sortent pas avec cette méthode... :/
Il préfèrerait une procédure simplifiée du style tout en un : Drag & drop pour l'upload des fichiers, et petit navigateur pour pointer le document à inclure dans le message.
Et si on pousse sa demande jusqu'au bout, l'idéal étant que l'upload de leurs fichiers se fassent dans un dossier qu'il leur serait propre.



J'ai bien lorgné du côté des solutions tierces, mais je me demande comment faire pour que celles-ci interagissent avec TinyMCE et que le fichier, une fois sélectionné, s'intègre en lieu et place dans le corps du message.

Peut-être existe t'il un module qui fasse tout en un ? Mais je n'ai trouvé que des modules d'upload ou des modules de navigateurs.

Une piste peut-être ? Wink
Et pourquoi ne pas bloquer le format de l'article en proposant :
- Un champ WYSIWYG pour le descriptif
- Le champ d'upload standard pour l'image ou le fichier

Et formater l'article selon que ce soit une image ou un fichier dans le gabarit du module Uploads ? Comme ca ton visiteur n'a même pas à gérer le placement de l'image ou du lien vers le fichier dans TinyMCE, c'est toi qui le détermine.

Tu vois ?
Euh, je ne suis pas sûr de comprendre ta suggestion... :/

Tu veux dire de faire un modèle de message type, dans lequel viendrait se positionner le fichier concerné ?

Le problème c'est que je ne peux pas connaitre à l'avance le forme et la mise en page du message qui sera posté par l'utilisateur.
Ni même si celui-ci y joindra un document ou non...

Mais j'ai peut-être mal saisi ton explication ! Big Grin
Pour en revenir à cette histoire de bouton "Parcourir" non présent dans le wysiwyg côté site, je m'en étonne toujours car j'ai pu voir ce bouton, au cours de mes recherches à ce sujet, actif dans certain modules de TinyMCE qui était en démo sur les sites...

Je vais parcourir mon historique de navigation afin de retrouver l'exemple et que tu puisse me donner ton avis. Wink
Ok pour l'exemple Wink

Pour ma suggestion, il s'agirait de fournir un gabarit pour le message posté (qui puisse s'adapter quel que soit la taille du message) qui comprendrait le message tapé sur TinyMCE (HTML) + un lien de téléchargement de fichier ou affichage de l'image par exemple sur la droite.

Exemple : le blog AOW : http://blog.aow.fr
Sur l'accueil, CGBlog gère l'affichage des articles - L'éditeur peut saisir un sommaire + entrer une image sous forme de fichier lors de l'édition. Et c'est le gabarit de CGBlog qui met en forme l'image flottante à gauche + le texte à droite, sans intervention de l'éditeur. De même, le lien vers le détail de l'article est placé automatiquement sur l'image par le gabarit.

Je ne sais pas si c'est plus clair ?

EDIT : et pour le cas où il n'y a pas de fichier, le texte peut alors prendre toute la place
Humm, effectivement cela pourrait convenir si il s'agissait de message pré-formaté.

Mais mon client voudrait que les utilisateurs puissent rédiger des articles et les mettre en page à loisir. Avec insertion d'image si besoin, ou de lien seulement pointant vers un document préalablement ulpoadé sur le site.

Je laisse ce post en suspend pour le moment... car j'ai un ami développeur qui me donne un coup de main sur ce problème cet aprèm.
On a déjà réussi à faire en sorte que le bouton apparaisse tout de même dans le popup côté site. Big Grin
Par contre, lorsque on clique sur le bouton "Parcourir" il demande les log et pass d'administration CMS pour accéder au dossier... :/

Je ne sais pas ce que ça vaut en terme de sécurité, mais on va pousser nos investigations pour voir si on parvient à débloquer ceci.
(je sens que je vais encore me faire jeter par Bess sur ce coup-là :lol: :lolSmile

Je vous tiens au courant de l'avancée un peu plus tard Wink
Oui tu peux toujours essayer de modifier le système en place, mais ca risque d'être un peu compliqué si tu veux changer la logique de fonctionnement Wink Et tu ne pourras plus mettre à jour TinyMCE lors de prochaines versions sans devoir mettre à jour ton développement. Ou alors dupliquer le plugin de gestion des images pour en faire un personnalisé.

Tiens-nous au courant Wink
Alors, pour être tout à fait honnête, je dirais que ce n'est pas du développement mais de l’élagage de code plutôt ! Big Grin
Pour ce qui est de la pérénité du système, si il est fonctionnel, cela ne devrait pas bouger avant un bon moment.


Voici ce que nous avons modifié pour rendre dans un premier temps le bouton "Parcourir" opérationnel dans le popup de TinyMCE, côté frontend : (bon je vous la joue un peu épique dans l'explication qui suit, mais ça me fait du bien après 48h de recherches intensives Cool)


- Dans le dossier tmp/templates_c/ nous avons découvert un fichier nommé : TinyMCE^%%B5^B5C^B5CF75EB%%module_file_tpl%3ATinyMCE%3Btinyconfig.tpl.php
Nous sommes tombés sur le bout de code suivant, pensant qu'il s'agissait bien de la partie autorisant l'accès au fameux bouton (filepicker) et avons fait un test en passant simplement le "if" et le "endif" en commentaire.
Citation :<?php //if ($this->_tpl_vars['isfrontend'] == 'false'): ?>
,file_browser_callback : 'CMSMSFilePicker'
<?php //endif; ?>
<?php echo '
});
'; ?>

idem un peu plus bas dans le code avec cette portion :
Citation :<?php //if ($this->_tpl_vars['isfrontend'] == 'false'): ?>
<?php echo '
function CMSMSFilePicker (field_name, url, type, win) {
'; ?>
et son endif tout en bas du code :
Citation :<?php //endif; ?>

Nous voici donc avec notre fameux bouton réactivé Wink

Mais malheureusement, non fonctionnel puisque lorsque nous cliquions dessus nous avions une jolie invite de connexion... :/ Vous savez, celle pour se logger à la partie administration du CMS Big Grin
Donc, pas bon si c'est pour permettre aux utilisateurs référencés sur le site via FEU d'accèder au dossier uploads/images/



- Deuxième étape : trouver le moyen de shunter cette authentification ! Rolleyes (j'entends déjà Bess qui aiguise sa hâche Tongue)
Je vous passe les hypothèses avancées, et recherches en tout genre dans les fichiers... mais on sentait bien qu'il fallait lorgner du coté de Filepicker.

Dans le dossier modules/Filemanager/ je jète un œil au fichier filepicker.php et je comprends que quelque chose se trame dans ce début de code. Notamment avec ceci :
Citation :check_login();
$userid = get_userid();

Ni une, ni deux je teste..; je supprime ces deux lignes et ça marche ! Smile
Plus de demande de log & pass lorsque je clique sur "Parcourir".



Inquiet tout de même de savoir si je n'ai pas trop casser de chose en faisant cela, j'effectue une série de vérif sur les différentes fonctionnalités du site et du CMS (connexion en admin dans le backoffice, connexion en user sur le site, accès au wysiwyg des deux côtés, utilisation du bouton "Parcourir" des deux côtés, etc...).
Apparemment, tout fonctionne correctement... et les users n'ont accès qu'au dossier uploads/images/.

J'espère ne pas avoir de grosse bêtise, surtout en terme de sécurité... :|
Mais je serais tenté de dire que de toute façon, l'accès à ce wysiwyg est réservé aux seuls adhérents déjà inscrit sur le site via FEU. Donc, à priori, non accessible depuis l'extérieur...


Je compte sur vous pour me donner votre avis sur la méthode employée, et éventuellement vos retours d'expérience si vous testez cela de votre côté.
Merci pour les infos, mais attention car le fichier dans le dossier template_c est un fichier compilé par smarty qui va être supprimé au prochain rafraîchissement du cache... donc tes modifs seront perdues !

Mieux vaut chercher dans le dossier /modules/TinyMCE/ où modifier cette fonction d'affichage du bouton.

Pour le reste, ca doit fonctionner, mais il faudra penser à remodifier les fichiers du coeur lors de chaque mise à jour Wink

Enfin, en terme de sécurité, il faut tester l'envoi de script malveillants par le frontend pour évaluer les attaques possibles. L'idéal serait dans un premier temps de limiter les types de fichiers et tester le contenu des fichiers textes lors de l'upload.

Bonne continuation Smile
Ok, j'en prends bonne note ! Smile

Pour le fichier dans template_c, ce n'est pas bien bien grave car c'est juste du passage en commentaire de quelques instructions php.
Je ne devrais pas avoir trop de mal à les modifier de nouveau.

Je vais, néanmoins, chercher assidument l'équivalent dans le dossier du module lui-même comme tu me le conseilles... Cool

Je garde un œil attentif au site pour la maintenance et les mise à jour de contenu, et je surveillerais particulièrement les pièces envoyées par les utilisateurs.

J'espère que mon expérience servira à d'autres, si toutefois elle n'est pas dangereuse pour la sécurité et le bon fonctionnement du CMS.

Encore 1000 fois merci pour m'avoir répondu et tenté de trouver une solution à mon problème...

[PS: Mode lèche ON Tongue : mon ami développeur m'a avoué connaitre ton site et ton travail Airlibre, et être admiratif de tes qualités de développeur Cool ]
Ah ben c'est sympa merci Wink Qui est ton ami développeur ? (tu peux m'écrire en message privé)

Pour le template_c, tu risques de devoir souvent revenir sur le template, donc mieux vaut trouver la solution dans les fichiers du module.

Sinon, si tout est Résolu, je t'invite à éditer ton premier post avec [Résolu] dans le titre !

A bientôt Wink
Pas faux... hihi

Pour mon ami, je ne pense pas qu'il soit contre le fait de lui faire un peu de pub ! Wink
Tu peux jeter un œil sur son site : http://camyo.net

Au plaisir... Tongue
Ok Wink Merci pour les coordonnées, et pas de soucis pour la pub

Je ferme la discussion, bonne continuation !