Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-05-2008 10:14:01

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Avez vous déjà configurer FCK Editor dans le ZF ?

Bonjour,

Je souhaiterai que tous mes textarea soient pris en charge par FCKEditor. Dans mon header j'ai ajouté ce code, comme le montre l'exemple 2 dans les exemples fournis:

Code:

                    <script type="text/javascript" src="http://location//library/FCKeditor/fckeditor.js"></script>
                    
                    <script language="javascript" type="text/javascript">
                    window.onload = function()
                        {
                            // Automatically calculates the editor base path based on the _samples directory.
                            // This is usefull only for these samples. A real application should use something like this:
                             oFCKeditor.BasePath = '/http://location//library/FCKeditor//' ;    // '/fckeditor/' is the default value.
                            //var sBasePath = document.location.href.substring(0,document.location.href.lastIndexOf('_samples')) ;
                        
                            var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
                            //oFCKeditor.BasePath    = sBasePath ;
                            oFCKeditor.ReplaceTextarea() ;
                        }
                    </script>

J'ai mis les chemins en tant qu'URL. FCK est installé chez moi dans /library/FCKEditor.
Je voudrais que par défaut, tous mes Textareas avec un id particulier soit remplacer par l'éditeur.
Pourrais-je voir vos paramètres svp ?

Merci

Dernière modification par whitespirit (27-05-2008 10:20:03)

Hors ligne

 

#2 27-05-2008 20:29:27

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Utilise Jquery, qui est une bibliothèque javascript. Jquery te permet d'appliquer ce que tu veux a tout ce qui a tel ou tel ID, ou tel ou tel class.

http://jquery.com pour le site.

Il existe un plugin jquery pour FCKEDITOR que voici :


jquery.fckeditor.js

Code:

/*
 ### jQuery FCKEditor Plugin v1.21 - 2008-04-17 ###
 By Diego A., http://www.fyneworks.com/jquery/, diego@fyneworks.com
 
 Official Project: http://jquery.com/plugins/project/FCKEditor/
 Official Website: http://www.fyneworks.com/jquery/FCKEditor/
*/
// 25-Jul-2007 - v1.0 - it begins...
// 10-Aug-2007 - Added setHTML method
// 12-Jan-2008 - v1.1 - plugin now follows the jquery philosophy of $(selector).plugin();
// 12-Jan-2008 - the new structure allows multiple configurations on one page
// 20-Feb-2008 - fixed bug (option variable isolation): http://plugins.jquery.com/node/900
// 24-Feb-2008 - fixed bug: http://plugins.jquery.com/node/1701
/*
 USAGE:
  $('textarea').fck({ path:'/path/to/fck/editor/' }); // initialize FCK editor
 
 ADVANCED USAGE:
  $.fck.update(); // update value in textareas of each FCK editor instance
*/

/*# AVOID COLLISIONS #*/
if(jQuery) (function($){
/*# AVOID COLLISIONS #*/

$.extend($, {
 fck:{
  waitFor: 10,// in seconds, how long should we wait for the script to load?
  config: { Config: {} }, // default configuration
  path: '/fckeditor/', // default path to FCKEditor directory
  list: [], // holds a list of instances
  loaded: false, // flag indicating whether FCK script is loaded
  intercepted: null, // variable to store intercepted method(s)
  
  // utility method to read contents of FCK editor
  content: function(i, v){
   try{
    var x = FCKeditorAPI.GetInstance(i);
    if(v) x.SetHTML(v);
    return x.GetXHTML(true);
   }catch(e){ return ''; };
  }, // fck.content function
  
  // inspired by Sebastián Barrozo <sbarrozo@b-soft.com.ar>
  setHTML: function(i, v){
   if(typeof i=='object'){
    v = i.html;
    i = i.InstanceName || i.instance;
   };
   return $.fck.content(i, v);
  },
  
  // utility method to update textarea contents before ajax submission
  update: function(){
   // Update contents of all instances
   var e = $.fck.list;
   for(var i=0;i<e.length;i++){
    var ta = e[i].textarea;
    var ht = $.fck.content(e[i].InstanceName);
    ta.val(ht).filter('textarea').text(ht);
    if(ht!=ta.val())
     alert('Critical error in FCK plugin:'+'\n'+'Unable to update form data');
   }
  }, // fck.update
  
  // utility method to create instances of FCK editor (if any)
  create: function(option){
   // Create a new options object
   var o = $.extend({}/* new object */, $.fck.config || {}, option || {});
   // Normalize plugin options
   $.extend(o, {
    selector: (o.selector || 'textarea.fck, textarea.fckeditor'),
    BasePath: (o.path || o.BasePath || $.fck.path)
   });
   // Find fck.editor-instance 'wannabes'
   var e = $(o.e);
   if(!e.length>0) e = $(o.selector);
   if(!e.length>0) return;
            // Accept settings from metadata plugin
            o = $.extend({}, o,
                ($.metadata ? e.metadata()/*NEW metadata plugin*/ :
                ($.meta ? e.data()/*OLD metadata plugin*/ : 
                null/*metadata plugin not available*/)) || {}
            );
   // Load script and create instances
   if(!$.fck.loading && !$.fck.loaded){
    $.fck.loading = true;
    $.getScript(
     o.BasePath+'fckeditor.js',
     function(){ $.fck.loaded = true; }
    );
   };
   // Start editor
   var start = function(){//e){
    if($.fck.loaded){
     //if(console) console.log(['fck.create','start',e,o]);
     $.fck.editor(e,o);
    }
    else{
     //if(console) console.log(['fck.create','waiting for script...',e,o]);
     if($.fck.waited<=0){
      alert('jQuery.fckeditor plugin error: The FCKEditor script did not load.');
     }
     else{
      $.fck.waitFor--;
      window.setTimeout(start,1);
     };
    }
   };
   start(e);
   // Return matched elements...
   return e;
  },
  
  // utility method to integrate this plugin with others...
  intercept: function(){
   if($.fck.intercepted) return;
   // This method intercepts other known methods which
   // require up-to-date code from FCKEditor
   $.fck.intercepted = {
    ajaxSubmit: $.fn.ajaxSubmit || function(){}
   };
   $.fn.ajaxSubmit = function(){
    $.fck.update(); // update html
    return $.fck.intercepted.ajaxSubmit.apply( this, arguments );
   };
  },
  
  // utility method to create an instance of FCK editor
  editor: function(e /* elements */, o /* options */){
   //if(console) console.log(['fck.editor','OPTIONS',o]);
   o = $.extend({}, $.fck.config || {}, o || {});
   // Default configuration
   $.extend(o,{
    Width: (o.width || o.Width || '750px'),
    Height: (o.height || o.Height|| '500px'),
    BasePath: (o.path || o.BasePath || $.fck.path),
    ToolbarSet: (o.toolbar || o.ToolbarSet || 'Default'),
    Config: (o.config || o.Config || {})
   });
   // Make sure we have a jQuery object
   e = $(e);
   //if(console) console.log(['fck.editor','E',e,o]);
   if(e.size()>0){
    // Local array to store instances
    var a = ($.fck.list || []);
    // Go through objects and initialize fck.editor
    e.each(
     function(i,t){
                        if((t.tagName||'').toLowerCase()!='textarea')
                            return alert(['An invalid parameter has been passed to the $.fckeditor.editor function','tagName:'+t.tagName,'name:'+t.name,'id:'+t.id].join('\n'));
      
      var T = $(t);// t = element, T = jQuery
      if(!t.name) t.name = 'fck'+($.fck.list.length+1);
      if(!t.id) t.id = t.name;
      if(t.id/* has id */ && !t.fck/* not already installed */){
       var n = a.length;
                            // create FCKeditor instance
       a[n] = new FCKeditor(t.name);
                            // Apply inline configuration
       $.extend(a[n], o, o.Config || {});
                            // Start FCKeditor
       a[n].ReplaceTextarea();
                            // Store reference to original element
       a[n].textarea = T;
                            // Store reference to FCKeditor in element
       t.fck = a[n];
      };
     }
    );
    // Store instances in global array
    $.fck.list = a;
   };
   // return jQuery array of elements
   return e;
  }, // fck.editor function
  
  // start-up method
  start: function(o/* options */){
   // Attach itself to known plugins...
   $.fck.intercept();
   // Create FCK editors
   return $.fck.create(o);
  } // fck.start
  
 } // fck object
 //##############################
 
});
// extend $
//##############################


$.extend($.fn, {
 fck: function(o){
  //(function(opts){ $.fck.start(opts); })($.extend(o || {}, {e: this}));
  $.fck.start($.extend(o || {}, {e: this}));
 }
});
// extend $.fn
//##############################

/*# AVOID COLLISIONS #*/
})(jQuery);
/*# AVOID COLLISIONS #*/

Ensuite tu appelle le plugin de cette façon :

jquery.fckeditor.load.js

Code:

 $(function(){
  $('.textarea').fck({path: '/javascript/FCKeditor/'}); });

Ainsi, tous les champs ayant pour class "textarea" seront "FCKeditoriés".

bien entendu, dans ton header appelle dans l'ordre :

- jquery.js
- jquery.fckeditor.js
- jquery.fckeditor.load.js


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#3 28-05-2008 10:52:42

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Excuse moi de n'avoir pas tout compris. Ton idée m'intéresse mais je ne n'ai jamais utilisé JQuery. Par ou commencer :

- est-ce que j'ai toujours besoin de la librairie FCKEditor ? Si oui, comment je configure le header ?
- je dois ajouter tout le jquey ou un module ?
- ton petit plugin, je dois l'écrire ou ?

Voilà, ce serait super si tu pouvais me donner plus de détail, et j'en profiterai pour comprendre JQuery.

Merci d'avance.

Hors ligne

 

#4 28-05-2008 11:40:43

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

pour jquery, c'est simplement un fichier javascript, à inclure donc dans l'header.
Il te permet de jouer facilement avec du css.

Dans l'ordre tu dois donc inclure :

jquery
fckeditor
jquery.fckeditor
jquery.fckeditor.load

Ce sont tous des fichiers js.

Je te donnerai plus d'infos ce soir, n'étant pas chez moi actuellement.

Dernière modification par neojick (29-05-2008 20:54:30)


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#5 29-05-2008 18:43:17

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

ouhlà bien compliquer..jquery + fckeditor ça fait peur tout ça pour ça smile

Dans le code que tu montre regarde déjà cette ligne :

Code:

FCKeditor.BasePath = '/http://location//library/FCKeditor//' ;    // '/fckeditor/' is the default value.

Un chemin http pareil ça semble bizarre.... et à mon souvenir il faudrait que t'ai plutôt :

Code:

FCKeditor.BasePath = '/library/FCKeditor/' ;    // '/fckeditor/' is the default value.

Quelquechose du genre...


Société : Direct Info Service

Hors ligne

 

#6 29-05-2008 20:54:56

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Quand tu utilise déjà jquery pour le reste de ton appli, autant en profiter pour qu'il t'aide à appeler fckeditor


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#7 30-05-2008 08:43:57

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Je suis partant pour utiliser qq qui fonctionne smile

Le problème que j'ai avec : '/library/FCKeditor/'  est que je n'arrive pas à indiquer le chemin complet de ma librairie. Pour mes test j'ai essayer en relatif tel que "c:\wamp\...\library\fckeditor\ mais ça ne marche pas. Je pense que le pb est du au zf car au pire, quand j'ai quelque chose, je trouve mon site en iframe dans le textarea.

Je vais donc tenter la solution de neojick, mais je n'ai pas encore eu le temps de le faire. Par contre il y'a qq chose que je ne suis pas sur (sans tester) :

Code:

$('textarea').fck({ path:'/path/to/fck/editor/' }); // initialize FCK editor

Dans cette ligne, il s'agit bien du chemin du répertoire fck/editor. C'est donc à cet unique endroit que l'on spécifie un quelconque chemin ?

Hors ligne

 

#8 30-05-2008 10:02:16

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Je serais tenté de te répondre oui... mais n'étant pas chez moi, je ne l'ai pas sous les yeux. Logiquement voui ça doit être ça.


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#9 30-05-2008 13:06:06

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Peux tu détailler ton arborescence ?
Le problème viens surtout du fait que ton chemin est interprété par le bootstrap du Zf je pense...

Un début de solution http://www.developpez.net/forums/showth … p?t=251570

Et sur google Zend Framework + fckeditor ( http://www.google.com/search?ie=UTF-8&a … +fckeditor )

http://blog.ekini.net/2007/11/28/using- … r-enabled/

Dernière modification par yannux (30-05-2008 13:09:05)


Société : Direct Info Service

Hors ligne

 

#10 30-05-2008 14:21:42

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Ah voui dans ton .htaccess tu dois préciser que les demandes en /javascript/.... ne doivent pas être redirigé vers l'index.php !


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#11 31-05-2008 09:34:40

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

J'ai plus ou moins réussi à configurer FCK !!! Merci beaucoup!

Par contre tel quel je ne pourrais pas l'utiliser car il met 40secondes pour se charger entièrement que sous FireFox (pour une fois, je n'ai pas de pb pour IE) ! C'est normal ?
Mon basePath ressemble à quoi :

Code:

oFCKeditor.BasePath = "http://localhost/armature/library/FCKeditor/" ;

Pour l'instant je n'ai pas configuré les chemins dans le fichier config.php. Dans cette ligne, $Config['UserFilesPath'] = '/images/uploads/' ; le répertoire /image/uploads/ se trouve ou par rapport à la racine du site ?

Dernière modification par whitespirit (31-05-2008 10:06:27)

Hors ligne

 

#12 01-06-2008 00:11:59

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Bizarre pour FF, pour moi l'affichage est instantané.
Le répertoire "/image/uploads/" doit certainement être à la racine de la partie publique.


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#13 11-06-2008 10:24:53

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

neojick a écrit:

Ah voui dans ton .htaccess tu dois préciser que les demandes en /javascript/.... ne doivent pas être redirigé vers l'index.php !

Suffit de mettre un htacces dans ton dossier fckeditor et du coller "RewriteEngine Off", pas besoin d'aller bidouiller celui à la racine du site !

Hors ligne

 

#14 11-06-2008 11:23:44

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

sebondus a écrit:

neojick a écrit:

Ah voui dans ton .htaccess tu dois préciser que les demandes en /javascript/.... ne doivent pas être redirigé vers l'index.php !

Suffit de mettre un htacces dans ton dossier fckeditor et du coller "RewriteEngine Off", pas besoin d'aller bidouiller celui à la racine du site !

Autant limité les utilisations d'htaccess ça bouffe en perf pour apache smile


Société : Direct Info Service

Hors ligne

 

#15 11-06-2008 12:59:41

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

C'est vraiment remarquable la différence de perf?
Je pense plutôt que c'est négligeable et qu'on fait pas la différence, mais si tu soutiens le contraire je veux bien te croire, je suis loin d'être un expert .

Hors ligne

 

#16 11-06-2008 13:20:13

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Ca dépend la fréquentation biensûr.
Mais autant faire les choses proprement en utilisant qu'un .htacess  ....


Société : Direct Info Service

Hors ligne

 

#17 11-06-2008 17:30:07

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Oui, je pense qu'il est préférable d'utiliser un seul htaccess, histoire de ne pas avoir à chercher à plusieurs endroits en cas de reprise du projet un an après.


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#18 16-06-2008 15:12:53

thomasb
Membre
Date d'inscription: 26-05-2008
Messages: 30

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Je suis bloqué concernant l'installation de FCKEditor avec une 8 erreurs sous FireBug :

j'ai rajouté ce code dans ma vue :

Code:

<?php $this->headScript()->prependFile($this->layout()->getView()->baseurl.'squelettes/script/fckeditor/fckeditor.js',$type='text/javascript'); ?> 
  window.onload = function()
    {        
        
        if(document.getElementById('content_text')) {
            
            var oFCKeditor = new FCKeditor('content_text') ;
            oFCKeditor.BasePath = <?=$this->baseurl;?>.'/squelettes/script/fckeditor/';
            oFCKeditor.Height = 100;
            oFCKeditor.ReplaceTextarea() ;
        }
    }

et voici les erreurs :

uncaught exception: Permission refusée de modifier la propriété Window.FCK_STATUS_NOTLOADED
[Break on this error] undefined
FCKBrowserInfo has no properties
[Break on this error] if ( FCKBrowserInfo.IsGecko && !FCKBrowserInfo.IsOpera )
fckeditor.html (line 231)
FCKLang is not defined
[Break on this error] window.document.dir = FCKLang.Dir ;
fckeditor.html (line 165)
uncaught exception: Permission refusée d'obtenir la propriété Window.FCKeditorAPI
[Break on this error] undefined
FCK has no properties
[Break on this error] FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener...
fckeditorcode_gec... (line 105)
FCKConfig has no properties
[Break on this error] var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.B...
fckeditorcode_gec... (line 33)
FCKBrowserInfo has no properties
[Break on this error] if ( FCKBrowserInfo.IsAIR )
fckeditor.html (line 94)
FCKConfig has no properties
[Break on this error] FCKConfig.CustomConfigurationsPath = '' ;

Dernière modification par thomasb (16-06-2008 15:13:26)

Hors ligne

 

#19 17-06-2008 06:53:50

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Si t'es sûr que ton

Code:

<?php $this->headScript()->prependFile($this->layout()->getView()->baseurl.'squelettes/script/fckeditor/fckeditor.js',$type='text/javascript'); ?>

revient à écrire qq chose comme ça

Code:

<script type="text/javascript" src="'.$path_js.'fckeditor.js"></script>
                    
                    <script language="javascript" type="text/javascript">

Alors j'ai le même code que toi à ce niveau

Hors ligne

 

#20 17-06-2008 11:28:50

thomasb
Membre
Date d'inscription: 26-05-2008
Messages: 30

Re: Avez vous déjà configurer FCK Editor dans le ZF ?

Je vais essayer d'etre clair, smile

Mon appli est appelée par une url comme celle ci  :

http://serveur1/client/crud

Je suis en conf virtuel sur apache et contraint de respecter certaines specs techniques; mes CSS, JScripts(etc..)  sont eux accessibles via une autre URL du type :

http://serveur2/scripts/fckeditor/

Ca ne plait pas trop à FCKEditor. En déplacant mon repertoire FCKEditor de manière à l'attaquer par une url du type http://serveur1/scripts/fckeditor/ tout est rentré dans l'ordre...

En espérant que cela permettra à certains de ne pas perdre le temps que j'y ai perdu smile



ZF Rulaz smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages