Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Installation de la boutique _ CK Editor

Écrit par : Matthieu35 10 Feb 2010, 17:48

Bonjour,

Quelqu'un a-t-il essayé Ckeditor qui semble remplacer Fckeditor ?
http://ckeditor.com/
Cdt
Matt

Écrit par : Loch-Nar 15 Feb 2010, 15:12

Pas essayé mais il me semble très sympathique smile.gif
S'il est aussi joli que performant ^^

Écrit par : Gnidhal 20 Feb 2010, 18:03

Super top et facile à intégrer. smile.gif

Quand j'aurais 2 minutes je ferais peut-être un petit guide de mise en place.

Le plus par rapport à FCKeditor (du même auteur) c'est sa modernité de code (le procédé de codage ressemble assez à du jquery)
Il est compatible avec jquery (enfin en partie, il faut pas trop agiter les options)
les skins sont plus faciles à modifier.
On peut modifier l'affichage pour chaque bloc (pas besoin de taper un fichier de config à rallonge, tout peut se passer dans l'appel de l'éditeur)
Il est plus rapide et plus compatible avec les nouveaux navigteurs.

Le must c'est de l'intégrer avec ckfinder() pour l'insertion des images. Ok, la licence est payante pour ce dernier module mais ça vaut vraiment le coup.
(on peut l'essayer en démo full fonctionnelle, ça ajoute juste une ligne comme quoi c'est une version démo dans le browser d'images)

Petit problème rencontré assez bizarre mais résolu au final :
sous IE, lorsque je cliquais dans la fenêtre d'édition ça insérait ces caractères : ï» (&iulm;»)
j'ai passé des heures à comprendre ce que j'avais fait comme connerie.
=> j'avais simplement modifié le fichier ckeditor.js et enregistré en ISO alors que son format d'origine est UTF-8
En remettant la version d'origine de ckeditor.js, tout est redevenu normal wink.gif


Voilà, si ça peut servir...


Écrit par : audioshop 20 Feb 2010, 22:07

Bonsoir,

Je dirais tout simplement génial, comme dit Gnidhal accouplé avec CKFinder et c'est que du bonheur.
Je dirais même plus que "le procédé de codage ressemble assez à du jquery" il me semble que c'est fais avec jquery happy.gif

J'ai eu quelque déboire pour éditer des fichiers PHP , les balises était mal interprété et sa foutait le boxons, heureusement il suffisait de mettre une petite ligne dans le fichier de config et le tour était joué tongue.gif

Je recommande vraiment, mais je ne l'ai pas encore installé sur ma boutique, juste sur un petit site perso pour le moment en attendant de me plonger dedans pour l'intégrer à oscommerce.

Pour ceux qui veulent tester c'est par http://ckfinder.com/demo

Écrit par : audioshop 21 Feb 2010, 11:21

Re:

Et pour ceux qui ne souhaite pas payer de licence pour CKFinder j'ai trouvé ceci http://kfm.verens.com/Home

c'est ni plus ni moins qu'un CKFinder open source

cf:KFM is an online file manager which can be used on its own, or as a plugin for a rich-text editor such as http://ckeditor.com/, http://tinymce.moxiecode.com/ or http://fckeditor.net/. KFM is Open Source, and you are free to use it in any project, whether free or commercial !!!!




@++



Écrit par : Gnidhal 21 Feb 2010, 23:45

Super ce lien KFM !
je vais tester!

Pour ce qui est de ckeditor et ckfinder, non ça n'utilise pas la bibliothèque jquery.
Mais il faut reconnaitre que le codage js est assez pointu et dynamique.
Il y a une doc et un plugin fourni pour l'interfacer avec des commandes jquery. Mais d'après ce qu'on peut voir sur le forum et dans la doc, ça peut être sportif par moments smile.gif

Mais si on n'a pas jquery inutile de se prendre la tête, d'autant que les deux scripts ne semblent pas se gêner.
On peut utiliser ckeditor de son coté et utiliser jquery pour d'autres applis locales.
D'ailleurs jquery 1.4 sorti depuis 1 mois a apporté son lot de nouveautés : http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/
allez, au boulot ! biggrin.gif

Écrit par : Gnidhal 22 Feb 2010, 11:01

Quand je disais que c'est un jeu d'enfant à intégrer (pour ce qui est de l'éditeur ckeditor), je le prouve :

1/ copier le dossier ckeditor fourni (ckeditor_3.1.zip) dans admin/
2/ dans admin/ckeditor supprimer les dossiers _sample et _source inutiles ici et dangereux
3/ dans admin/categories.php insérer dans le <head> de page (vers la ligne 341)

Code
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>

4/ dans admin/includes/functions/html_output.php ajouter cette fonction :
Code
/// function textarea avec ckeditor  
  function tep_draw_textarea_ckeditor($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;
    if ($width < 100) $width = 700;
    if ($height < 100) $height = 200;
    $field = '<textarea name="' . tep_output_string($name) . '" ';
    if (tep_not_null($parameters)) $field .= ' ' . $parameters;
    $field .= '>';
    if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
      }
    } elseif (tep_not_null($text)) {
      $field .= tep_output_string_protected($text);
    }
    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        resize_minWidth : 500 ,
        resize_maxWidth : 850 ,
        width : '.$width.',
        height : '.$height.'
    });
            </script>';
    return $field;
  }

dans admin/categories.php modifier l'appel de textarea :
remplacer
Code
<?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?>
par :
Code
<?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?>
(vers la ligne 542)
notez au passage que la seule choce qui change dans cette ligne c'est tep_draw_textarea_field qui devient tep_draw_textarea_ckeditor


Et voilà !
Après il convient de personnaliser l'éditeur ckeditor (barre d'outils, skin, etc.) comme on veut à partir de la doc de ckeditor http://docs.cksource.com/CKEditor_3.x/Developers_Guide

Pour ce qui est de ckfinder et la gestion des images c'est un peu plus complexe, il faut, entre autres, modifier la ré-écriture du nom de fichier et surtout l'intégrer à ckeditor. Mais comme ce module est payant, je ne ferai pas de guide d'intégration ici.

@audioshop, si tu le sens de faire un tuto pour l'intégration de KFM, à toi la souris wink.gif
Cela dit, avant de se jeter sur ce module de gestion de fichiers distants, il est impératif de vérifier sa sécurité. Il ne faudrait pas que ça devienne une faille pour les hackers!

Écrit par : audioshop 22 Feb 2010, 12:03

Bonjour Gnidhal,

Merci pour ce tuto sa va me facilité l'intégration dans oscommerce smile.gif

Citation (Gnidhal @ 22 Feb 2010, 11:01) *
@audioshop, si tu le sens de faire un tuto pour l'intégration de KFM, à toi la souris wink.gif

Si j'ai 2 minutes dans la journée je ferais un petit fichier d'installation pour KFM (enfin fichier c'est 2 lignes à rjouter smile.gif ).

EDIT: Pour intégrer KFM il vous suffit de télécharger le paquet http://kfm.googlecode.com/files/kfm-1.4.5.zip
Décompresser mettre tout le dossier KFM dans le dossier includes de l'admin et remplacer la fonction de Gnidhal par celle-ci:
Noter que c'est exactement la même foncction j'ai juste rajouter l'appel de KFM
Code
/// function textarea avec ckeditor  
   function tep_draw_textarea_ckeditor($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
     global $HTTP_GET_VARS, $HTTP_POST_VARS;
     if ($width < 100) $width = 700;
     if ($height < 100) $height = 200;
     $field = '<textarea name="' . tep_output_string($name) . '" ';
     if (tep_not_null($parameters)) $field .= ' ' . $parameters;
     $field .= '>';
     if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
       if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
         $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
       } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
         $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
       }
     } elseif (tep_not_null($text)) {
       $field .= tep_output_string_protected($text);
     }
     $field .= '</textarea>';
         $field .=     '<script type="text/javascript">
         CKEDITOR.replace( \''.tep_output_string($name).'\',
     {
         resize_minWidth : 500 ,
         resize_maxWidth : 850 ,
         width : '.$width.',
         height : '.$height.',
         filebrowserBrowseUrl: "includes/kfm/index.php"
     });
             </script>';
     return $field;
   }


excl.gif j'ai pas testé mais normalement sa devrait le faire wink.gif

Citation (Gnidhal @ 22 Feb 2010, 11:01) *
Cela dit, avant de se jeter sur ce module de gestion de fichiers distants, il est impératif de vérifier sa sécurité. Il ne faudrait pas que ça devienne une faille pour les hackers!

Oui surtout que KFM utilise la base de donnée, il rajoute environs une dizaine de tables donc il faudrait vraiment que quelqu'un vérifie niveau sécurité, je ne suis pas assez bon hacker pour dire si ça va ou pas.

Je rajouterais juste que c'est vraiment un bel outils avec sa propre page d'administration ou on peux définir plein de paramètres mais c'est aussi une page à protéger via htaccess.
La base donnée sert entre autre à protéger les images en indiquant pas le lien direct mais un lien généré par KFM c'est biensur paramétrable dans l'admin KFM.

@++

Écrit par : Matthieu35 22 Feb 2010, 19:10

Salut à tous.
Si vous avez installé KFM.

Renommer le fichier configuration.dist.php par configuration.php

Voilà ce que j'ai mis pour la connexion à la base de données dans le fichier configuration.php

Code
$kfm_db_type = 'mysql';
// the following options should only be filled if you are not using sqlite/sqlitepdo as the database
$kfm_db_prefix   = 'xxxxx_'; // Mettre le préfixe
$kfm_db_host     = 'localhost';
$kfm_db_name     = 'xxxxx_xxxx';// Mettre le nom de votre base de données
$kfm_db_username = 'xxxxx_xxxx';// Mettre le nom de l'utilisateur
$kfm_db_password = 'xxxxxx';// Mettre le mot de passe de la base de données
$kfm_db_port     = '';

Remplacer cette ligne:
Code
$kfm_userfiles_address = '/home/kae/Desktop/userfiles';

par celle ci:
Code
$kfm_userfiles_address = $_SERVER["DOCUMENT_ROOT"].'/images';

Remplacer cette ligne:
Code
$kfm_userfiles_output = '/userfiles/';

Par celle-ci:
Code
$kfm_userfiles_output =  '/images/';



L'image "Uploadée" s'enregistre bien dans le répertoire image, par-contre, Dans la petite fenêtre de visu l'image ne s'affiche pas.
De mon côté je cherche, si vous avez une piste?

Cdt
Matt.


Écrit par : Gnidhal 23 Feb 2010, 00:09

modifie $kfm_userfiles_output = '/images/'; avec le chemin équivalent à HTTP_SERVER.DIR_WS_CATALOG_IMAGES
après redémarrage de mon serveur qui patinait un peu, la config de kfm peut se faire comme suit :

Code
require($_SERVER['DOCUMENT_ROOT']. 'admin/includes/configure.php');
// what type of database to use
// values allowed: mysql, pgsql, sqlite, sqlitepdo
$kfm_db_type = 'mysql';

// the following options should only be filled if you are not using sqlite/sqlitepdo as the database
$kfm_db_prefix   = 'kfm_';
$kfm_db_host     = DB_SERVER;
$kfm_db_name     = DB_DATABASE;
$kfm_db_username = DB_SERVER_USERNAME;
$kfm_db_password = DB_SERVER_PASSWORD;
$kfm_db_port     = '';

/**
* This setting specifies if you want to use the KFM security. If set to false, no login form will be displayd
* Note that the user_root_folder setting will not work when the user is the main user
*
* Please change this to 'true' if you want to use usernames and passwords.
*/
$use_kfm_security=false;

$kfm_userfiles_address = DIR_FS_CATALOG_IMAGES;

$kfm_userfiles_output = HTTP_SERVER.DIR_WS_CATALOG_IMAGES;

ça marche mais il faut savoir que KFM, bien que stable n'est pas bien fini!
La configuration est hasardeuse et il doit être placé dans un dossier protégé par un .htaccess sinon c'est clairement une faille de sécurité.
Normalement si vous avez bien fait les choses, le dossier admin d'oscommerce est protégé par un htaccess, ce qui interdit de fait d'utiliser l'option de redirection des images par KFM. Sinon chaque image intégrée demandera le pass admin pour s'afficher coté catalog mrgreen.gif

Voilà, bon code à tous smile.gif

Écrit par : enge 19 Mar 2010, 07:13

Bonjour a tous
C'est tres interrressant tout ça, je vais essayer aussi de remplacer le Fckeditor que j'ai installé et qui me fait de droles de choses (dans la partie mail, newsletter, pas de mise en forme HTML ou de prise en compte des images, et dans la partie newsletter pas de prise en compte des caracteres accentué, mais remplace par le code html !!!).
Avez-vous constaté de tets dysfonctionnements avec Ckeditor ?

En tout cas , j'essaie ....
Merci a tous

Écrit par : Gnidhal 19 Mar 2010, 08:50

ckEditor est la nouvelle version de fckEditor.
Elle est plus rapide, plus performante, avec des options plus sympas et aussi compatible avec les nouveaux navigateurs.
En effet, l'ancien fckEditor présente quelques problèmes avec ie8, le javascript étant un peu tiré par les cheveux.

Mais ça ne résoudra pas ton problème d'image inséré dans la NL qui doit être un problème de chemin vers les images.

Écrit par : enge 19 Mar 2010, 19:07

Bonjour,
J'ai essayé ckeditor. Est-ce normal que je n'ai plus la recherche des images natives comme dans fckeditor ? Il faut donc forcement installer le cfinder ou kfm ???
Là avec ckeditor, pour inserer l'image il faut la rentrer en url , on ne peut plus acceder à la recherche explorateur (en tout cas tel que j'ai installé.

Coté kfm : d'apres ce qui ce dit ici, c'est pas tres sur ?

Écrit par : Gnidhal 19 Mar 2010, 22:07

ckfinder fonctionne parfaitement en version démo.
ça te permet de te faire la main et pourquoi pas d'acheter une licence. C'est un très beau produit bien fini.
Dans la version démo, il y a juste un message "version demo" qui s'affiche dans l'explorateur de fichiers mais elle est complètement fonctionnelle.
Pour kfm, il faut être prudent et de toutes manières ne pas utiliser le système de réécriture des images à moins de sérieusement bricoler le code. (copier certaines fonctions dans la partie publique et garder le module de gestion des images protégé derrière un htaccess)

Écrit par : enge 26 Mar 2010, 21:41

mais est-ce normal, ou alors j'ai loupé quelque chose dans l'installation, je n'ai plus la possibilité d'aller chercher une image comme dans fckeditor ?
Je ne parle pas de ckfinder, mais uniquement ckeditor. Car avec fckeditor natif on peut aller sélectionner dans un explorateur (et pas uniquement une adresse URL) des images...

Maintenant, installer ckfinder, j'ai lu les instructions d'installation... ça me semble bien chaud !!! Si quelqu'un est a l'aise là dessus, merci de faire part de vos lumières....
Merci

Écrit par : Gnidhal 26 Mar 2010, 22:49

waip c'est pas si chaud que ça :

source d'info : http://docs.cksource.com/CKFinder/Developers_Guide/PHP/CKEditor_Integration exemple 3.
1 copier le dossier ckfinder dans le dossier ckeditor
2 dans ckeditor/config.js ajouter ces lignes juste après config.language = 'fr'; (ou plus bas)

Code
    config.toolbar = 'ImagesCatalog';
    config.toolbar_ImagesCatalog =
    [
        ['Source','Image','SelectAll']
    ];

3 dans functions/html_output.php
voici les fonctions d'intégration tep (les même qui citées en haut du post mais adaptées avec ckfinder)
Code
  function tep_draw_textarea_ckeditor($name, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
      }
    } elseif (tep_not_null($text)) {
      $field .= tep_output_string_protected($text);
    }

    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        filebrowserBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });

            </script>';

    return $field;
  }
  
  function tep_draw_imgarea_ckeditor($name, $width, $height, $text = '', $parameters = '') {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

      if (strlen($text)>20)$field .= '<img src="' . DIR_WS_CATALOG . DIR_WS_IMAGES .tep_output_string_protected($text). '" alt="" />';

    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        removePlugins : \'elementspath\',
        toolbar : \'ImagesCatalog\',
        resize_minWidth : 200 ,
        resize_maxWidth : 650 ,
        width : '.$width.',
        height : '.$height.',
        filebrowserBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });
            </script>';

    return $field;
  }

4 dans ckfinder/config.php modifier la ligne où il y a $baseUrl
Code
$baseUrl = ''.DIR_WS_CATALOG_IMAGES;

5 modifier le champ d'insertion d'image produit dans categories.php :
Code
              <tr>
                <td class="main" valign="top"><?php echo tep_image(DIR_WS_ADMIN . DIR_WS_IMAGES . 'scanner.gif'); ?>&nbsp;</td>
                <td class="main"><?php echo tep_draw_imgarea_ckeditor('products_image', '500', '200', $pInfo->products_image); ?></td>
              </tr>

et zouuu ça roule je crois.

Écrit par : nilegoff 27 Mar 2010, 11:53

Bonjour,

Je bloque sur CKFinder, qui m'indique sytematiquement:

Citation
L'interface de gestion des fichiers est désactivé. Contactez votre administrateur et vérifier le fichier de configuration de CKFinder.
des que je veux l'utiliser. J'ai verifié la configue et meme ecrit $baseUrl sous forme
Code
$baseUrl = 'http://www.xxxxx.com/images/';
sans succès. Il y a t il une activation en plus a faire ailleurs.

De plus pour CKeditor, dans admin/categories.php, il faut enlever 'soft', des variables de la fonction avec la nouvelle fonction de Gnidhal ce qui donne:


Code
<?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', '700', '300', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?>


nilegoff

Écrit par : Gnidhal 27 Mar 2010, 17:38

Oui, mais je pensais que tout le monde pouvait le lire dans le script smile.gif

Code
function CheckAuthentication()
{
    //WARNING : DO NOT simply return "true". By doing so, you are allowing
    //"anyone" to upload and list the files in your server. You must implement
    //some kind of session validation here. Even something very simple as...

    // return isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];

    //... where $_SESSION['IsAuthorized'] is set to "true" as soon as the
    //user logs in your system.

    return true;
}

Il est dit en bref que mettre cette valeur à true simplement est un risque de sécurité.
Mais comme bien sûr l'admin (comme nous le conseillons partout) est sécurisée par un .htaccess, on peut mettre à true.
Sinon il est impératif de modifier cette fonction en relation à la variable de session admin.
C'est vrai que si il n'y a pas de protection .htaccess, l'usage de ckeditor/ckfinder ou de tout autre gestionnaire de fichier est une vraie porte d'entrée pour les hackers.
Ceux qui ne prennent pas la précaution de protéger le rep admin (qui de plus devrait être renommé) le font sous leur propre responsabilité wink.gif

Écrit par : nilegoff 27 Mar 2010, 21:20

Désolé, mais je n'avais pas vu que return etait sur false par default.

Pour ceux comme moi qui ne sont pas des as absolus de la securité est ce que ca, peut suffir:

Code
   if(!isset($_SESSION['osCAdminID']))
      return true;
      else
      return false;


avec une htacces dans l'admin et un repertoir admin se nommant 'fsufbgjhsdf'

Merci de ta reponse.

nilegoff

Écrit par : Gnidhal 27 Mar 2010, 22:50

Parfait cette adaptation nilegoff biggrin.gif c'est au poil.
Un petit plus c'est de renommer carrément le répertoire de ckeditor.
Pas bien compliqué, on recherche dans tous les scripts "ckeditor/" et on remplace par le nom de son choix puis on renomme le répertoire du même nom.
Et là, si le dossier admin est renommé, si le rep de ckeditor est renommé... c'est mieux que de gagner à l'euromillion de trouver le chemin vers ckfinder! wink.gif

Écrit par : nilegoff 29 Mar 2010, 09:26

Par contre, il y a t il un interet particulier a garder le repertoire Thumbnails (_thumbs) à la racine du site?

nilegoff

Écrit par : Garga 1 Apr 2010, 11:47

Un grand merci à Gnidhal pour la facilité d'intégration de ce module biggrin.gif

Écrit par : Oliv33 4 Apr 2010, 00:11

Merci pour le petit tuto j'ai pu l'installer sans probléme. Le top serais de pouvoir l'integrer dans define_mainpage smile.gif

Écrit par : Matthieu35 4 Apr 2010, 08:56

Bonjour,
Essaie ceci:
remplace cette ligne dans admin/define_mainpage.php, environ la 136:

Code
<td class="main"><?php echo tep_draw_textarea_field('file_contents', 'soft', '80', '20', $file_contents, (($file_writeable) ? '' : 'readonly')); ?></td>

Par celle-ci:
Code
<td class="main"><?php echo tep_draw_textarea_ckeditor('file_contents', 'soft', '80', '20', $file_contents, (($file_writeable) ? '' : 'readonly')); ?></td>

Écrit par : Oliv33 4 Apr 2010, 20:34

Merci smile.gif

Mais marche pô

Écrit par : Gnidhal 4 Apr 2010, 21:16

ça devrait si tu insères dans le head du script d'édition

Code
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>

Écrit par : sebastien01 16 Apr 2010, 10:35

excl.gif hommage a vous les grands maitres du php ! J'ai bien suivis a la lettre tous les code donnée précedement mais cela ne m'aide pas des masse ,même si j'usqu'a présent j'ai résolu mes soucis moi même je me résoud a me diriger vers vous car avec ckeditor je clic sur box_tool_manager_j'obtiens cela dans la partie rajouter suivant les conseil de gnidhal
alors ayez pitié d'un petit pandawone et j'arrèterai de regarder STARWARS en boucle
AH AH AH
merci a tous

CODE
Fatal error: Class 'FCKeditor' not found in xxxxx/catalog/admin/includes/functions/html_output.php on line 344

Écrit par : Gnidhal 16 Apr 2010, 10:44

toi, tu n'essayerais pas de remplacer le vieux FCKeditor par le nouveau ckEditor ?
Tu dois encore utiliser les vieilles fonctions utilisées par FCK vu l'erreur.

Il convient de ne plus utiliser les mêmes fonctions pour ckEditor, mais celles que je donne en haut de ce tuto wink.gif
La classe ckeditor est chargée par le script PHP en haut de page, elle n'est plus nécessaire dans les fonctions d'appel textarea_field.

Écrit par : sebastien01 16 Apr 2010, 15:08

je le reconnais sans honte tu est un vrai maitre ,
c'est impressionnant comme cela fonctionne bien
merci par contre mes boutons sont vides alors je sais bien que je ne peu pas avoir le beurre la vache et la crémière mais bon peu être que tu sais ce qu'il ce passe?

Écrit par : lorem_ipsum 21 Apr 2010, 16:34

Bonjour à tous,

Je viens de faire une installe de kfm sur cKeditor, le tout tourne au poil en local et sur 90mutu d'ohvache.
Par contre l'upload plante complet et firefox avec, quand le htaccess de l'admin est présent.
Le popup souvre, me demande mon log et pass htaccess et ensuite plantage de firefox.....

Voici le contenu du htaccess

Code
Order Deny,Allow
Deny from all
AuthUserFile /mon paf à moi/.htpasswd
AuthName "Identification requise"
AuthType Basic
require valid-user
Satisfy Any

# $Id: .htaccess 1739 2007-12-20 00:52:16Z hpdl $
#
# This is used with Apache WebServers
#
# For this to work, you must include the parameter 'Options' to
# the AllowOverride configuration
#
# Example:
#
# <Directory "/usr/local/apache/htdocs">
#   AllowOverride Options
# </Directory>
#
# 'All' with also work. (This configuration is in the
# apache/conf/httpd.conf file)

# The following makes adjustments to the SSL protocol for Internet
# Explorer browsers

#<IfModule mod_setenvif.c>
#  <IfDefine SSL>
#    SetEnvIf User-Agent ".*MSIE.*" \
#             nokeepalive ssl-unclean-shutdown \
#             downgrade-1.0 force-response-1.0
#  </IfDefine>
#</IfModule>

# If Search Engine Friendly URLs do not work, try enabling the
# following Apache configuration parameter

# AcceptPathInfo On

# Fix certain PHP values
# (commented out by default to prevent errors occuring on certain
# servers)

# php_value session.use_trans_sid 0
# php_value register_globals 1


Pour le htaccess j'utilise Admin-PHP-Access.

Une idée ??

Merci pour toutes les infos ci-dessus, qui m'ont bien aidé!

Écrit par : Garga 21 Apr 2010, 22:27

Bonsoir,

Peut etre que je me trompe mais un Deny from all bloque tout non?
Il faut un Allow from ton IP publique en plus.

Je le redit, je suis pas sur mais à voir.... wink.gif


-------------Edit---------------------

Alors source: http://www.commentcamarche.net/contents/apache/apacht.php3

Citation
Empêcher l'accès à un répertoire par un domaine

La syntaxe pour bloquer l'accès d'un répertoire par un domaine est la suivante :

Allow (all, [liste de domaine])
Deny (all, [liste de domaine])
Order (Allow,Deny ou Deny,Allow)

Order Deny, Allow
Deny from ..LeNomDuDomaine.com

Toutes les personnes (requêtes) provenant du domaine .LeNomDuDomaine.com ne pourront avoir accès aux ressources comprises dans le répertoire et ses sous-répertoires. La commande Order sert à préciser explicitement que la commande Deny va bien annuler l'effet de Allow et non l'inverse.

Voici un exemple de restriction d'accès :

ErrorDocument 403 http://www.commentcamarche.net/accesrefuse.php3
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic
<LIMIT GET POST>

order deny,allow
deny from all
allow from 193.48.172.2
require user JFPillou
</LIMIT>

Dans ce cas, l'accès ne sera possible que pour l'utilisateur JFPillou à partir de l'adresse IP 193.48.172.2 et avec le bon mot de passe.

Écrit par : lorem_ipsum 23 Apr 2010, 11:08

Arf la galère! y a des jours où le cerveau doit faire des overdoses d'informations huh.gif


Pourrais tu me donner la syntaxe pour mon htaccess stp ?

Écrit par : Garga 23 Apr 2010, 18:08

A tester mais:

CODE
Order Deny,Allow
Deny from all
Allow from "ton IP publique"
AuthUserFile /mon paf à moi/.htpasswd
AuthName "Identification requise"
AuthType Basic
require valid-user
Satisfy Any


Bon code

Écrit par : lorem_ipsum 26 Apr 2010, 18:00

Merci pour l'info wink.gif mais l'erreur ne vient pas de là,

Après pas mallllllllll de test, je me suis décidé a quitter mon firefox 3.5.9 pour tester avec un autre navigateur....

Moralité : ne jamais faire confiance à FF à 100% angry.gif et puis faire les mises à jour de temps en temps aussi mrgreen.gif (d'après que ça sert à quelque chose....)

Écrit par : Didier_00 10 May 2010, 08:47

Mer sea à Gnidhal pour son aide précieuse

Écrit par : scientoufik 2 Jun 2010, 21:12

Citation (Gnidhal @ 26 Mar 2010, 22:49) *
waip c'est pas si chaud que ça :

source d'info : http://docs.cksource.com/CKFinder/Developers_Guide/PHP/CKEditor_Integration exemple 3.
1 copier le dossier ckfinder dans le dossier ckeditor
2 dans ckeditor/config.js ajouter ces lignes juste après config.language = 'fr'; (ou plus bas)
Code
    config.toolbar = 'ImagesCatalog';
    config.toolbar_ImagesCatalog =
    [
        ['Source','Image','SelectAll']
    ];

3 dans functions/html_output.php
voici les fonctions d'intégration tep (les même qui citées en haut du post mais adaptées avec ckfinder)
Code
  function tep_draw_textarea_ckeditor($name, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
      }
    } elseif (tep_not_null($text)) {
      $field .= tep_output_string_protected($text);
    }

    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        filebrowserBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });

            </script>';

    return $field;
  }
  
  function tep_draw_imgarea_ckeditor($name, $width, $height, $text = '', $parameters = '') {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

      if (strlen($text)>20)$field .= '<img src="' . DIR_WS_CATALOG . DIR_WS_IMAGES .tep_output_string_protected($text). '" alt="" />';

    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        removePlugins : \'elementspath\',
        toolbar : \'ImagesCatalog\',
        resize_minWidth : 200 ,
        resize_maxWidth : 650 ,
        width : '.$width.',
        height : '.$height.',
        filebrowserBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });
            </script>';

    return $field;
  }

4 dans ckfinder/config.php modifier la ligne où il y a $baseUrl
Code
$baseUrl = ''.DIR_WS_CATALOG_IMAGES;

5 modifier le champ d'insertion d'image produit dans categories.php :
Code
              <tr>
                <td class="main" valign="top"><?php echo tep_image(DIR_WS_ADMIN . DIR_WS_IMAGES . 'scanner.gif'); ?>&nbsp;</td>
                <td class="main"><?php echo tep_draw_imgarea_ckeditor('products_image', '500', '200', $pInfo->products_image); ?></td>
              </tr>

et zouuu ça roule je crois.


Bonjour,
J'ai installé ckeditor et ca fonctionne tres bien. Maintenant je tente d'installer ckfinder mais je bloque à l'etape 5 je ne vois pas quelle ligne il faut remplacer. Est ce ces lignes:
Code
<tr>
                <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?>&nbsp;</td>
                <td class="main"><?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>
              </tr>

Je n'ai pas bien compris ce que je devais faire à l'etape 5.

Merci d'avance.

Écrit par : voilier 9 Jun 2010, 16:26

Quelqu'un pourrait il m'aider à désinstaller proprement fckeditor avant d'installer ckeditor.
J'ai remarqué que les fonctions ne sont pas toutes identiques et ça m'égare !!!
Mille mercis

Je suis arrivé au même point que toi scientoufik
Est ce que c'est la ligne 542 ? précédemment modifiée ?

Pour ce qui est de fck editor, pour le moment je n'ai rien retiré sauf justement cette ligne modifiée.

De plus où mettre ce code ?

Citation
Désolé, mais je n'avais pas vu que return etait sur false par default.

Pour ceux comme moi qui ne sont pas des as absolus de la securité est ce que ca, peut suffir:

Code
if(!isset($_SESSION['osCAdminID']))
return true;
else
return false;


avec une htacces dans l'admin et un repertoir admin se nommant 'fsufbgjhsdf'

Merci de ta reponse.

Écrit par : scientoufik 13 Jun 2010, 17:10

Salut Voilier,

En fait il y a une erreur à l'etape 5:
Cette ligne est fausse:
<td class="main"><?php echo tep_draw_imgarea_ckeditor('products_image', '500', '200', $pInfo->products_image); ?></td>

En fait il faut garder le tep_draw_textarea_ckeditor par contre il faut retirer le 'soft' et bien sur modifier les dimensions ce qui donne:

<td class="main"><?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', '500', '200', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>

Écrit par : Gnidhal 13 Jun 2010, 17:39

@voilier : il ne faut plus utiliser les anciennes fonctions de fck_editor mais celle que j'ai donné dans la section 3/
quant au code donné par nilegoff, il convient de l'intégrer dans le ckfinder/config.php à la place de "return true;" dans cette section

Code
    //... where $_SESSION['IsAuthorized'] is set to "true" as soon as the
    //user logs in your system.

    return true;

à l'origine l'étape 5 concerne ces lignes dans le categories.php
Code
          <tr>
            <td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>
            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_file_field('products_image') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?></td>
          </tr>
qu'il faut remplacer par celles que je donne.
A voir à partir d'une version qui aurait fck déjà installé.
les lignes de code à modifier dans ce cas pourraient être celles là :
Code
              <tr>
                <td class="main" valign="top"><?php echo tep_image(DIR_WS_ADMIN . DIR_WS_IMAGES . 'scanner.gif'); ?>&nbsp;</td>
                <td class="main"><?php echo tep_draw_file_field_image_fckeditor('products_image', '500', '200', $pInfo->products_image); ?></td>
              </tr>


@scientoufik heuuu non, je ne vois pas en quoi l'étape 5 est fausse.
La http://www.oscommerce-fr.info/forum/index.php?s=&showtopic=65304&view=findpost&p=340558 de ce post parle de l'intégration de ckeditor, la http://www.oscommerce-fr.info/forum/index.php?s=&showtopic=65304&view=findpost&p=342514de l'ajout de ckfinder (qui est utilisable en version démo)
Alors
- on installe la première partie pour avoir l'éditeur de texte
puis
- on reprend la seconde partie pour installer ckfinder en plus.

L'autorisation d'accès aux fichiers est à corriger comme indiqué http://www.oscommerce-fr.info/forum/index.php?s=&showtopic=65304&view=findpost&p=342545 dans ckfinder/config.php
version plus sécurisé proposé par nilegoff dans le post qui suit.

Voilà... smile.gif

Écrit par : scientoufik 15 Jun 2010, 00:08

@Gnidhal,

En fait l'etape 5 pour l'installation de la version demo de ckfinder n'est pas tres clair. Tu dis:

5 modifier le champ d'insertion d'image produit dans categories.php : Code <tr>
<td class="main" valign="top"><?php echo tep_image(DIR_WS_ADMIN . DIR_WS_IMAGES . 'scanner.gif'); ?>&nbsp;</td>
<td class="main"><?php echo tep_draw_imgarea_ckeditor('products_image', '500', '200', $pInfo->products_image); ?></td>
</tr>


En fait chez moi le tep_draw_imgarea_ckeditor( ... ne fonctionne pas il faut garder le tep_draw_textarea_ckeditor toutefois il faut virer le 'soft'.

Écrit par : Gnidhal 16 Jun 2010, 23:26

Citation (scientoufik @ 15 Jun 2010, 00:08) *
En fait chez moi le tep_draw_imgarea_ckeditor( ... ne fonctionne pas

Je veux bien, mais tu ne dis pas ce que ça génère comme erreur,
car à moins d'une grosse bourde de ma part, le code que je donne ici est fonctionnel.

As-tu installé la fonction comme indiqué à l'étape 3 ?


Écrit par : scientoufik 17 Jun 2010, 00:24


Bonjour Gnidhal,

Oui j'ai suivi ton tuto de A à Z. J'ai rencontré deux pbs.
pb 1 avec $baseUrl = ''.DIR_WS_CATALOG_IMAGES;

J'ai du mettre en dure le lien pour regler le pb. Et la plus de pb

pb 2: Une fois ckeditor et ckfinder installés lorsque je voulais uploader une photo de mon pc vers le serveur j'avais une erreur. Dememe lorsque je voulais naviguer sur le serveur. Pour corriger le pb il faut garder le tep_draw_textarea_ckeditor par contre il faut retirer le 'soft' et bien sur modifier les dimensions ce qui donne:

<td class="main"><?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', '500', '200', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>

Écrit par : Gnidhal 17 Jun 2010, 13:53

re smile.gif
en effet il y a un petit oubli dans toutes ces modifs concernant le chemin dans ckfinder
Dans \admin\ckeditor\ckfinder\core\connector\php\constants.php il faut ajouter en dernière ligne :

Code
require('../../../../../includes/configure.php');
et dans ce cas, le chemin image est bien pris en compte à partir de la statique.

En ce qui concerne la fonction pour le module image la cause est peut-être là aussi, car je ne vois pas pourquoi cette fonction "ne marche pas", en l'absence d'un message d'erreur précis...

Écrit par : scientoufik 29 Jun 2010, 23:17

Bonjour,

Quelqu'un sait il ce que veut dire le message qui s'affiche dans la popup ckfinder lorsqu'on veut ajouter une image:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.

De plus je cherche à retirer le bouton permettant d'explorer le serveur mais je ne trouve pas. Au secours !!!!!


Écrit par : polo 8 Jul 2010, 14:33

Citation (Gnidhal @ 22 Feb 2010, 00:45) *
Super ce lien KFM !
je vais tester!

Pour ce qui est de ckeditor et ckfinder, non ça n'utilise pas la bibliothèque jquery.
Mais il faut reconnaitre que le codage js est assez pointu et dynamique.
Il y a une doc et un plugin fourni pour l'interfacer avec des commandes jquery. Mais d'après ce qu'on peut voir sur le forum et dans la doc, ça peut être sportif par moments smile.gif

Mais si on n'a pas jquery inutile de se prendre la tête, d'autant que les deux scripts ne semblent pas se gêner.
On peut utiliser ckeditor de son coté et utiliser jquery pour d'autres applis locales.
D'ailleurs jquery 1.4 sorti depuis 1 mois a apporté son lot de nouveautés : http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/
allez, au boulot ! biggrin.gif



Salut !

Moi je trouve cela sympa, sauf que j'ai un peu de mal à comprendre le fonctionnement de KFM ??

quand j'upload une image , il ne me l'affiche pas et me donne plutôt un lien comme ceci:

/catalogue/images/get.php?id=395

C'est quoi ce get.php?id=395 ...???

Bref, ce n'est pas trop grave, je pense utiliser CKFinder, car si il faut donner le pass de l'admin , ce n'est pas très sérieux wacko.gif

Écrit par : polo 15 Jul 2010, 10:00

Salut !


Chez moi, ckeditor fonctionne plutôt bien, idem pour ckfinder (n'oubliez pas de mettre le slash dans les base dir...) , il doit y avoir également des plugin sympa comme des correcteurs orthographique et j'en passe. blush.gif

Écrit par : Rik2009 25 Jul 2010, 01:54

Bon je réédite ma question car je suis arriver à modifier ma toolbar (des fois on se complique la vie alors qu'il n'y a pas plus simple).
Bref il me reste un petit soucis.

Avant je me servais avec FCKeditor beaucoup de la fonction copier coller word (car je crée mes pages avec word puis j'utilisais FCKeditor se qui était très pratique).
avec CKeditor la fonction coller avec word fonctionne toujours, la mise en page est garder mais toute les couleurs ainsi que les tailles de police ne sont pas pris en compte comme si il supprimais tous les styles donc je suis obliger de refaire toute les couleurs ainsi que les taille de mes polices bref un peu chia....
J'aurai donc voulu savoir si quelqu'un avais su remedier à se petit soucis.

EDIT : J'ai trouver la solution alors pour se qui désire la même chose que moi copier le code si dessous dans votre fichier config.js:

Code
config.pasteFromWordRemoveStyles = false;<BR>config.pasteFromWordRemoveFontStyles = false;


Bon il ne reste que se dernier soucis:
J'ai modifier la liste dans format je voulais que le premier format qui apparaisse soit Normale (DIV) et pas Normal, j'y suis arriver en mettant se petit bout de code dans mon config.js
Code
CKEDITOR.config.format_tags = 'div;p;h1;h2;h3;h4;h5;h6;pre;address';
Et la impecable mais je voudrais que Normal (DIV) soit le format par default car la il est bien afficher en premier mais le format par default est toujours Normal

EDIT : J'ai aussi trouver comment mettre le format Normal(DIV) par default donc pour ce que sa interesse il faut rajouter le code suivant dans le fichier config.js:
Code
config.enterMode = CKEDITOR.ENTER_DIV;


Maintenant il ne me reste plus qua trouver comment changer la police par default car pour l'instant la police par default est Arial et je voudrais mettre verdana ou tahoma, j'ai bien trouver cette commande:
Code
config.font_defaultLabel = 'Tahoma';

mais elle met bien le nom de la police en premier mais la police Arial reste par default.
Donc si je trouve quelque chose je vous tiens au courant ou si quelqu'un à la solution je suis preneur


Merci à vous

Richard

Écrit par : Rik2009 26 Jul 2010, 03:52

Bon je reviens avec une autre petite question.
J'aurais voulus savoir si quelqu'un avais réussi à faire fonctionner CKeditor avec la fonction envoyer un email à partir de l'administration.
J'ai réussi a faire fonctionner la newsletter (si certain sont intéressé y a qua demander) mais pas avec les emails.
en fait tout est en dur quand ils arrive chez le client. Avec FCKeditor il fallait déjà faire des modif avec une contrib http://addons.oscommerce.com/info/5806 mais la rien ne fonctionne le mail et les images apparaisse bien dans le preview avant l'envoie final mais une fois envoyer les photos ne s'affiche pas et les styles de police (Couleur, taille, mise en page....) ne sont pas pris en compte.

Voila si quelqu'un à une petite idée
Merci

Écrit par : scientoufik 28 Jul 2010, 18:17


Bonjour Richard,

J'ai rajouté la ligne dans le config.js mais le coller depuis word ne conserve pas les couleurs. Peux tu me donner une copie de ton fichier config.js stp? Merci d'avance.

Écrit par : Rik2009 29 Jul 2010, 06:54

Bonjour sientoufik,
petite erreur dans le code enlève le <br> qui se trouve entre le false; et le config sa devrais fonctionner.
Le mieux pour être plus propre tu fais un retour à la ligne près le false; chez moi sa fonctionne très bien.

Par contre j'ai toujours pas réussi à le faire fonctionner avec la page des mail si quelqu'un réussi.
Bonne journée.

Richard

Écrit par : polo 29 Jul 2010, 09:30

Citation (Rik2009 @ 29 Jul 2010, 07:54) *
Bonjour sientoufik,
petite erreur dans le code enlève le <br> qui se trouve entre le false; et le config sa devrais fonctionner.
Le mieux pour être plus propre tu fais un retour à la ligne près le false; chez moi sa fonctionne très bien.

Par contre j'ai toujours pas réussi à le faire fonctionner avec la page des mail si quelqu'un réussi.
Bonne journée.

Richard



Salut Rik2009,


Juste une question , quand tu copie colle d'un fichier WORD, tu n'a pas une tonne de code parasite (genre microdaube truc par si par la..) ??? , car à une certaine époque , un de mes amis avait copié collé directement de WORD, résultat il avais des milliers de code parasite qui provoquait des problème d'affichages.

En fait, perso je colle en "source" (pour vider), sinon je me retrouve avec des balise MS toute les lignes blush.gif

@+

Écrit par : Rik2009 29 Jul 2010, 13:26

Bonjour Polo,
Après un test aucun soucis niveau code parasite mise à part les balise de style (mais sa je dirais normal et heuresement) je n'est donc pas de soucis avec CKeditor.
Voila pour l'info

Richard

Écrit par : scientoufik 1 Aug 2010, 01:44

Citation (Rik2009 @ 29 Jul 2010, 06:54) *
Bonjour sientoufik,
petite erreur dans le code enlève le <br> qui se trouve entre le false; et le config sa devrais fonctionner.
Le mieux pour être plus propre tu fais un retour à la ligne près le false; chez moi sa fonctionne très bien.

Par contre j'ai toujours pas réussi à le faire fonctionner avec la page des mail si quelqu'un réussi.
Bonne journée.

Richard

Merci Richard ça marche tip top !!

Écrit par : wen 12 Oct 2010, 09:55

Bonjour
j'ai installer la dernière version de ckeditor mais j'ai une erreur :

Code
Fatal error: Cannot instantiate non-existent class: fckeditor in /******/admin/includes/functions/html_output.php on line 347

voici les lignes concernées :
Code
// fckeditor
  function tep_draw_fckeditor($name, $width, $height, $text) {
    $ofckeditor = new fckeditor($name);
    $ofckeditor -> Width  = $width;
    $ofckeditor -> Height = $height;
    $ofckeditor -> BasePath    = '****/admin/fckeditor/';
    $ofckeditor -> Value = $text;
    $field = $ofckeditor->Create($name);
    return $field;
  }
// fckeditor

j'ai beau chercher je ne vois pas où est l'erreur.
merci d'avance
Wen

Ca y est ça marche en suivant les indications citées plus haut.

Écrit par : wen 12 Oct 2010, 21:33

Bonsoir
Je reviens vers vous car malgrés un bon fonctionnement, j'ai un soucis.

J'utilise cette contrib pour : define mainpage.
le problème c'est que je ne récupère pas la page qui existe déjà. Quand je vais dessus pour la modifier, j'ai toujours une page vierge.

Il doit manquer qqchose, mais quoi ?
merci de votre aide
Wen

Écrit par : Natacha31 22 Oct 2010, 12:29

Création du plugin CKEditor pour send html order v6

Bonjour à tous
je viens d'installer la dernière version de l'éditeur CKEditor sans problème pour tous les champs communs

restait en suspens le cas particulier de l'excellente contribution "send html order v6" qui utilise un "plugin"
bien entendu le nouveau code de l'éditeur à complétement changé et donc impossible de reprendre l'existant
je me suis donc penchée sur le développement de plugin CKEditor en voulant préserver la contribution et les noms des commandes existantes
les modifications concernent donc que la partie CKEditor et la génération du <textarea>

voici donc le fruit de mon travail (j'ai beaucoup transpiré car il y a peu de documentation)

Contraintes
avoir installé (avec succès) la nouvelle version de CKEditor (version Gnidhal )
avoir déjà en production send html order v6

ATTENTION sauvegardez vos fichiers !!

étape 1
créer le répertoire sho dans le répertoire ckeditor/plugins et y déposer le fichier plugin.js
créer le répertoire images et y copier sho.gif (provenant de l'ancienne contrib)
créer le répertoire lang et y déposer le fichier fr.js

Contenu du fichier plugin.js

Code
CKEDITOR.plugins.add('sho',
{
    requires: ['dialog'],
    lang : ['fr'],
    init: function(editor)
    {
        var pluginName = 'sho';

    editor.addCommand('shoZ', {exec:shoZcmd});
        editor.ui.addButton('shoZ',
            {
           label:editor.lang.sho.ShoZButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoZ'
            });

    editor.addCommand('shoY', {exec:shoYcmd});
        editor.ui.addButton('shoY',
            {
           label:editor.lang.sho.ShoYButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoY'
            });

    editor.addCommand('shoX', {exec:shoXcmd});
        editor.ui.addButton('shoX',
            {
           label:editor.lang.sho.ShoXButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoX'
            });

    editor.addCommand('shoV', {exec:shoVcmd});
        editor.ui.addButton('shoV',
            {
           label:editor.lang.sho.ShoVButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoV'
            });

    editor.addCommand('shoU', {exec:shoUcmd});
        editor.ui.addButton('shoU',
            {
           label:editor.lang.sho.ShoUButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoU'
            });

    editor.addCommand('shoT', {exec:shoTcmd});
        editor.ui.addButton('shoT',
            {
           label:editor.lang.sho.ShoTButton,
             icon: this.path + 'images/sho.gif',  
         command:'shoT'
            });

    editor.addCommand('shoS', {exec:shoScmd});
        editor.ui.addButton('shoS',
            {
           label:editor.lang.sho.ShoSButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoS'
            });

    editor.addCommand('shoR', {exec:shoRcmd});
        editor.ui.addButton('shoR',
            {
           label:editor.lang.sho.ShoRButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoR'
            });



function shoZcmd(editor)
{
  editor.insertHtml( ':*champ(Adresse de livraison)*:' );
}
function shoYcmd(editor)
{
  editor.insertHtml( ':*champ(Adresse de facturation)*:' );
}
function shoXcmd(editor)
{
  editor.insertHtml( ':*champ(Methode de paiement)*:' );
}

function shoVcmd(editor)
{
  editor.insertHtml( '<table width="600" cellspacing="1" cellpadding="3" border="0" bgcolor="#f9f9f9"><tbody><tr bgcolor="#4f4848" bordercolor="#FFFFFF"><td width="300" align="center" class="infoBoxHeading"><font color="#ffffff"><strong> Produits </strong></font></td><td width="160" align="center" class="infoBoxHeading"><font color="#ffffff"><strong> Mod&egrave;le </strong></font></td><td width="40" align="center" class="infoBoxHeading"><font color="#ffffff"><strong> Qt&eacute; </strong></font></td><td width="100" align="center" class="infoBoxHeading"><font color="#ffffff"><strong> Total :     </strong></font></td></tr><tr><td width="300" valign="top" align="left" class="infoBoxContents">:*champ(produit)*:</td><td width="160" valign="top" align="left" class="infoBoxContents">:*champ(modele)*:</td><td width="40" valign="top" align="center" class="infoBoxContents">:*champ(qte)*:</td><td width="100" valign="top" align="right" class="infoBoxContents">:*champ(total)*:</td></tr><tr height="14" ><td width="300" valign="top" height="14" align="left" class="infoBoxContents">D&eacute;tails tarifaires de votre commande</td><td width="300" valign="top" align="right" class="infoBoxContents" colspan="3">:*champ(sommes)*:</td></tr></tbody></table>' );
}
function shoUcmd(editor)
{
  editor.insertHtml( ':*champ(Commentaires)*:' );
}
function shoTcmd(editor)
{
  editor.insertHtml( ':*champ(Numero commande)*:' );
}
function shoScmd(editor)
{
  editor.insertHtml( ':*champ(Prenom Nom)*:' );
}
function shoRcmd(editor)
{
  editor.insertHtml( ':*champ(Date Commande)*:' );
}

    }
});


Contenu du fichier fr.js
Code
CKEDITOR.plugins.setLang("sho","fr",{
  sho:
    {
ShoZButton:'Adresse de livraison',
ShoYButton:'Adresse de facturation',
ShoWButton:'M&eacute;thode de paiement',
ShoVButton:'Tableau de commande',
ShoUButton:'Commentaires',
ShoTButton:'Num&eacute;ro de commande',
ShoSButton:'Pr&eacute;nom et Nom du client',
ShoRButton:'Date commande'
   }
});


étape 2
créez le fichier myconfig.js à la racine de CKEditor
Contenu du fichier myconfig.js

Code
CKEDITOR.editorConfig = function( config )
{

// This is actually the default value.
config.toolbar_Full =
[
    ['Source','-','Save','NewPage','Preview','-','Templates'],
    ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
    ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
    ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
    '/',
    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
    ['BidiLtr', 'BidiRtl' ],
    ['Link','Unlink','Anchor'],
    ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
    '/',
    ['Styles','Format','Font','FontSize'],
    ['TextColor','BGColor'],
    ['Maximize', 'ShowBlocks','-','About']
];

// déclaration du plugin
config.extraPlugins = 'sho';

// config des 3 barres de menu pour send html order v6
config.toolbar_checkout = [
  ['Source','-','Save','NewPage','Preview','-','Templates'],
  ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
  ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
  ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
  ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
  ['Link','Unlink','Anchor'],
  ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
    '/',
  ['shoR','shoT','shoZ','shoY','shoX','shoW','shoV','shoU','shoS']
];
config.toolbar = 'checkout';

config.toolbar_create_account = [
  ['Source','-','Save','NewPage','Preview','-','Templates'],
  ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
  ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
  ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
  ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
  ['Link','Unlink','Anchor'],
  ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
    '/',
  ['shoS']
];
config.toolbar = 'create_account';

config.toolbar_orders = [
  ['Source','-','Save','NewPage','Preview','-','Templates'],
  ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
  ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
  ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
  ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
  ['Link','Unlink','Anchor'],
  ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
    '/',
  ['shoR','shoU','shoX','shoT','shoQ']
];
config.toolbar = 'orders';
// fin config des 3 barres de menu pour send html order v6

};


éditez le fichier config.js et ajoutez
Code
config.customConfig = "myconfig.js";




étape 3
éditez le fichier html_output.php (admin)
Remplacez la fonction tep_draw_textarea_ckeditor() de Gnidhal (merci à lui) par celle ci ou toolbar : \'Full\', est ajouté afin de différencier les différentes barres

Code
function tep_draw_textarea_ckeditor($name, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if ( ($reinsert_value == true) && ( (isset($_GET[$name]) && is_string($_GET[$name])) || (isset($_POST[$name]) && is_string($_POST[$name])) ) ) {
      if (isset($_GET[$name]) && is_string($_GET[$name])) {
        $field .= tep_output_string_protected(stripslashes($_GET[$name]));
      } elseif (isset($_POST[$name]) && is_string($_POST[$name])) {
        $field .= tep_output_string_protected(stripslashes($_POST[$name]));
      }
    } elseif (tep_not_null($text)) {
      $field .= tep_output_string_protected($text);
    }

    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
    //<![CDATA[
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        toolbar : \'Full\',
        filebrowserBrowseUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });
    //]]>
            </script>';

    return $field;
  }


remplacez la fonction tep_draw_fckeditor_shot() par la nouvelle

Code
  function tep_draw_fckeditor_shot($name, $width, $height, $text, $barre) {

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';
    $field .= '>';
    $field .= tep_output_string_protected($text);
    $field .= '</textarea>';
    $field .=     '<script type="text/javascript">
    //<![CDATA[
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        toolbar : \''.$barre.'\',
        width : '.$width.',
        height : '.$height.',
        filebrowserBrowseUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.HTTP_SERVER . DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });
    //]]>
            </script>';

    return $field;
}


ne pas oublier d'ajouter dans le fichier shot.php entre les balises <head>

Code
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="ckeditor/ckfinder/ckfinder.js"></script>


Voila maintenant vous pouvez procéder aux tests de fonctionnement

Pour info
j'avais déjà créer des modules supplémentaires suivant les besoins de mes clients comme le champs Colisposte ou le lien vers la facture
il suffit de créer une nouvelle instance de bouton
exemple :
Code
    editor.addCommand('shoQ', {exec:shoQcmd});
        editor.ui.addButton('shoQ',
            {
           label:editor.lang.sho.ShoQButton,
             icon: this.path + 'images/sho.gif',  
             command: 'shoQ'
            });

et sa fonction
Code
function shoQcmd(editor)
{
  editor.insertHtml( ':*champ(Numero Colisposte)*:' );
}

ajout au fichier langue
Code
ShoQButton:'Num&eacute;ro Colisposte'


sur ce principe vous pouvez créer n'importe quel plugin
en espérant que ce tutoriel vous ai aidé bon code et bonne vacance

**************************************************

quelques références
http://docs.cksource.com/ckeditor_api/
http://www.voofie.com/content/2/ckeditor-plugin-development/version-1/
http://www.voofie.com/content/122/building-citation-footnote-plugin-for-ckeditor/

Écrit par : Gnidhal 22 Oct 2010, 17:34

Bravo Natacha et merci! excellent addons!

Écrit par : titi02330 12 Nov 2010, 04:23

Bonjour à tous,

Je suis en train de me faire une nouvelle version de mon ms2.2 avec laquelle j'ai lutté pour installer multi-stores car l'ancienne était une vrai usine à gaz pleine de codes qui ne servent à rien et ralentissent le système.

J'ai suivi avec un peu de peine le tuto pour installer ckeditor et ckfinder car j'ai eu les mêmes problèmes que scientoufik :

avec le fameux accès au dossier images (toujours un problème)
j'ai créé un nouveau define dans le configure.php de l'admin

Code
  define('DIR_WS_CATALOG_CK_IMAGES', 'http://www.monsite.com/images/');

et à la place de mettre le fameux :
Code
$baseUrl = ''.DIR_WS_CATALOG_IMAGES;

J'ai mis :
Code
$baseUrl = DIR_WS_CATALOG_CK_IMAGES;


Une autre erreur liée au define certainement, quand j'ouvre les popup pour importer une image, la grande fenêtre s'ouvre et là j'ai un message :
Citation
Ce dossier n'existe pas. Veuillez rafraîchir la page et réessayer


Et enfin ma deuxième erreur c'est que comme scientoufik (encore biggrin.gif ) pour appeler la fonction tep_draw_imgarea_ckeditor je suis obliger de mettre ceci :
Code
<?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', '500', '200', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?>

Mais du coup j'ai exactement le même champ que pour la description à la différence que celui pour l'image est vide...

Aidez moi s'il vous plait, je dois tout refaire et si je bloque là dessus c'est même pas la peine, je vais mettre 10 ans à tout refaire...

Merci d'avance.

Écrit par : titi02330 12 Nov 2010, 11:01

Re,

excusez moi mais ça me réussit pas trop d'écrire jusqu'à 4H30 du matin, j'ai oublié de dire que le seul code que j'ai mis dans html_output.php est celui donné par Gnidhal pour ckfinder :

Code
  function tep_draw_textarea_ckeditor($name, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

    if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
      }
    } elseif (tep_not_null($text)) {
      $field .= tep_output_string_protected($text);
    }

    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        filebrowserBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });

            </script>';

    return $field;
  }
  
  function tep_draw_imgarea_ckeditor($name, $width, $height, $text = '', $parameters = '') {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;

    $field = '<textarea name="' . tep_output_string($name) . '" style="width:' . tep_output_string($width) . 'px;height:' . tep_output_string($width) . 'px" rows="10" cols="10" ';

    if (tep_not_null($parameters)) $field .= ' ' . $parameters;

    $field .= '>';

      if (strlen($text)>20)$field .= '<img src="' . DIR_WS_CATALOG . DIR_WS_IMAGES .tep_output_string_protected($text). '" alt="" />';

    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        removePlugins : \'elementspath\',
        toolbar : \'ImagesCatalog\',
        resize_minWidth : 200 ,
        resize_maxWidth : 650 ,
        width : '.$width.',
        height : '.$height.',
        filebrowserBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html\',
        filebrowserImageBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Images\',
        filebrowserFlashBrowseUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/ckfinder.html?Type=Flash\',
        filebrowserUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
        filebrowserImageUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
        filebrowserFlashUploadUrl : \''.DIR_WS_ADMIN.'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'
    });
            </script>';

    return $field;
  }


Vu que si on mets celui de ckeditor + celui de ckfinder on a une erreur de redeclare


Y'a du nouveau ! si je remplace l'appel du champ image dans categories.php
J'ai remplacé le champ tep_draw par :
Code
<?php echo tep_draw_textarea_ckeditor('products_image', '700', '150', $pInfo->products_image); ?>

j'ai l'adresse de l'image qui apparait dans le champ :
dvd/blade_runner.gif

Merci.

Raison de l'edit : du nouveau...

Écrit par : Lamboboy 13 Nov 2010, 12:15

Bonjour,

Le grand Gnidhal n'est pas là ? On aurait besoin de toi stp..

Pour faire court j'ai les mêmes problèmes, voici les codes que j'ai mis :

admin/ckeditor/config.js

Code
CKEDITOR.editorConfig = function( config )
{
    // Define changes to default configuration here. For example:
    // config.language = 'fr';
    // config.uiColor = '#AADC6E';
};


admin/includes/functions/html_output.php
Code
Le code de l'étape 5 sans modifications


admin/categories.php
Code
//////Champ de description :
<?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', '800', '150', (isset($products_description[$languages[$i]['id']]) ? ereg_replace('& ', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?>

//////Champ d'image :
<?php echo tep_draw_textarea_ckeditor('products_image', '700', '150', $pInfo->products_image); ?>


admin/ckeditor/ckfinder/config.php
Code
require('../../../../../includes/configure.php');
$baseUrl = ''.DIR_WS_CATALOG_IMAGES;


admin/ckeditor/ckfinder/config.js
Code
CKFinder.customConfig = function( config )
{
    // Define changes to default configuration here. For example:
    // config.skin = 'v1';
    // config.language = 'fr';
    config.toolbar = 'ImagesCatalog';
    config.toolbar_ImagesCatalog =
    [
        ['Source','Image','SelectAll']
    ];
};


Tout ça me donne 2 champs ckeditor identiques (2 fois le même que products_descriptions)


et si je prends dans admin/ckeditor/ckfinder/config.js
Code
    config.toolbar = 'ImagesCatalog';
    config.toolbar_ImagesCatalog =
    [
        ['Source','Image','SelectAll']
    ];


et que je le mets dans admin/ckeditor/config.js de cette manière :
Code
CKEDITOR.editorConfig = function( config )
{
    // Define changes to default configuration here. For example:
    // config.language = 'fr';
    // config.uiColor = '#AADC6E';
        config.toolbar = 'ImagesCatalog';
    config.toolbar_ImagesCatalog =
    [
        ['Source','Image','SelectAll']
    ];
};


Alors je me retrouve toujours avec deux champs identiques mais cette fois ci la "Toolbar Images" fonctionne et je l'ai que 3 icones dans mes fenetres d'insertion, voici une capture d'écran :


Et le problème est moi aussi que quand je sauvegarde mon produit que le champ image est "www.monsite.com/images" et rien de plus !
Donc en plus ça ne sauvegarde pas mon image.

Help, please Help.

Écrit par : titi02330 17 Nov 2010, 03:26

Bonjour,

Je reviens sur ce topique pour demander un peu d'aide.

J'ai mis CKeditor, enfin j'ai essayé, pour pouvoir supprimer, renommer... les images depuis l'administration sans passer par le FTP, mais pour l'instant j'ai plus de problèmes qu'autre chose.

J'ai mis FCKeditor pour la description produit et CKeditor pour la product_image, et en effet il est plus sympa d'aller chercher les photos avec CKeditor, cependant quand j'ai créé ma fiche produit et que je décide de l'éditer sans toucher à l'image (déjà que c'est le nom de l'image qui apparait dans le champ au lieu de l'image elle même) et que je sauvegarde mon produit l'image n'est plus reconnue parce que CKeditor a mis des balises <p> et </p> dans le champ d'insertion et du coup le chemin de l'image n'est plus le bon...

Ça marche chez vous CKeditor ?
Si oui comment vous avec fait ?
Vous avez le product_description et le product_image géré par CKeditor ?

Yann.

Écrit par : Natacha31 17 Nov 2010, 09:57

Bonjour à tous


je n'utilise pas CKeditor pour les images produits
mais dans le tuto de Gnidhal la barre spécifique image s'appelle ImagesCatalog

il suffit donc de changer CKEDITOR.replace( 'toolbar_Full', de mon code par CKEDITOR.replace( 'ImagesCatalog', voir exemple
ne pas oublier config.enterMode = CKEDITOR.ENTER_BR;
config.entities_latin = false; pour ceux qui sont passé en utf-8
config.entities = false; pour supprimer les htmlentities
les autres servent à filtrer les copier/coller de word
et ça devrait fonctionner

dans config.js il vaut mieux déclarer chaque barre


Code
    
    config.toolbar_ImagesCatalog =
    [
        ['Source','Image','SelectAll']
    ];
config.toolbar = 'ImagesCatalog';

CKEDITOR.replace( 'ImagesCatalog',
    {
        on :
        {
            instanceReady : function( ev )
            {
                // Output paragraphs as <p>Text</p>.
                this.dataProcessor.writer.setRules( 'p',
                    {
                        indent : false,
                        breakBeforeOpen : false,
                        breakAfterOpen : false,
                        breakBeforeClose : false,
                        breakAfterClose : false
                    });
            }
        }
    });


voici une partie de mon code pour exemple

Code
CKEDITOR.editorConfig = function( config )
{
    // Define changes to default configuration here. For example:
    // config.uiColor = '#AADC6E';
       config.language = 'fr';
       config.entities = false;
           config.entities_latin = false;
       config.pasteFromWordRemoveStyles = false;
       config.pasteFromWordRemoveFontStyles = false;
       config.enterMode = CKEDITOR.ENTER_BR;

};

// This is actually the default value.
config.toolbar_Full =
[
    ['Source','-','Save','NewPage','Preview','-','Templates'],
    ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
    ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
    ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
    '/',
    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
    ['BidiLtr', 'BidiRtl' ],
    ['Link','Unlink','Anchor'],
    ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
    '/',
    ['Styles','Format','Font','FontSize'],
    ['TextColor','BGColor'],
    ['Maximize', 'ShowBlocks','-','About']
];


CKEDITOR.replace( 'toolbar_Full',
    {
        on :
        {
            instanceReady : function( ev )
            {
                // Output paragraphs as <p>Text</p>.
                this.dataProcessor.writer.setRules( 'p',
                    {
                        indent : false,
                        breakBeforeOpen : false,
                        breakAfterOpen : false,
                        breakBeforeClose : false,
                        breakAfterClose : false
                    });
            }
        }
    });





dans ckeditor/ckfinder/config.php
Pour $baseUrl j'ai résolu le problème en mettant le chemin en dur directement (mystère)
la bête ne supporte pas l'appel au fichier de configuration
$baseUrl = 'http://www.monsite.fr/images/ck/Images/';

bon code
Natacha

Écrit par : titi02330 18 Nov 2010, 18:24

Bonjour Natacha31,

Merci pour ta réponse, cependant cela ne marche pas mieux. J'ai défini les deux toolbar comme tu le conseille mais au final ma toolbar d'image est ressemble à celle d'une description, donc j'ai enlevé les éléments de menu superflux
exemple :

Code
['Cut','Copy','Paste','PasteText','PasteFromWord','


Mais la barre affiche toujours tous les boutons...

De plus, je ne peux plus utiliser mes images correctement, c'est à dire qu'il y a une histoire de balises (<p> ou <img src) qui ne me permet plus d'afficher l'image correspondante.

Le top du top serait que quelqu'un mette le code qu'il a mis dans :
admin/categories.php
admin/includes/functions/html_output.php
admin/CKeditor/config.js
ainsi que dire la version de CKeditor qu'il utilise...

Merci quand même Natacha31.

Bye.

Écrit par : thekinder 23 May 2011, 20:38

Bonjour à tous,

Je viens de mettre en place CKEditor et j'essaye de faire marcher KFM.

Quand je click sur "browse server" j'ai le message suivant:

Code
Forbidden

You don't have permission to access /test/admin/includes/kfm/index.php on this server.


Je ne comprends pas ce que je fais de mauvais.

si je rajoute "Allow from all" dans le .htaccess de fkm, j'obtiens une page blanche.

D'ou peux venir le probleme ?

Merci d'avance.

Cdlt,
Sebastien

Écrit par : AL1 11 Aug 2011, 12:20

Bonjour à tous,

Je vien d'installer cet excellent éditeur, en suivant la notice de Gnidhal... que du bonheur... Ckeditor fonctionne a merveille. Je me penche actuellement sur un "WARNING" avec ckfinder, "Attention : fichier non transféré.". et effectivement pas d'image dans la base et une croix rouge dans l'admin. Bon une recherche sur le forum m'a permis de dépoussiéré l'histoire. D'une part mes dossiers images sont bien en CHMOD 777, bien que sur les serveurs OVH, il me semble que cela n'est pas permis... Mon fichier html_output.php ne semble pas être corrompu, upload.php non plus, enfait cela ne marche ni en local, ni en distant. Je remet mon ancien categories.php avec fckeditor et tout refonctionne normalement... l'upload des images ce fait correctement.

Alors peut-être un bug dans mon fichier categories.php?

Alain

Écrit par : Gnidhal 11 Aug 2011, 13:29

as-tu vérifié cette modif : http://www.oscommerce-fr.info/forum/index.php?s=&showtopic=65304&view=findpost&p=345901

Écrit par : AL1 11 Aug 2011, 18:46

Absolument, j'ai bien ajouté cette ligne... Je pense que le problème va être plus complexe qu'il n'y parraît...

Écrit par : AL1 12 Aug 2011, 11:42

bon, j'avance... Je viens de m'appercevoir que l'image est correctement insérée lorsque je l'intègre dans la partie "description de produit". Donc la c'est bon. L'image est refoulée dans la partie "Image du produit ". Donc je creuse de ce coté...

Écrit par : Gnidhal 12 Aug 2011, 20:31

C'est vraisemblablement une affaire de chemin, voire de nom d'image.
Utilises-tu ckfinder aussi dans cette zone là ?
Entre la page de saisie et la mise à jour, il y a la page visu. Les données POST doivent être ré-écrites pour passer.
Mais si tu as un warning image non transféré, c'est que tu as oublié quelque chose lors de l'install de ta contrib sur ce champ.
Normalement, il n'y a pas de vérif de l'image transféré puisque c'est ckFinder qui fait l'upload.
Si ckFinder ne peut transférer l'image c'est qu'il a un problème de chemin.
Le blème peut venir de la concaténation chemin+ image.
l'upload de image.jpg se fait dans le sous-dossier de 'images/Image/dossier_eventuel/' et le nom de l'image enregistré en bdd va être Image/dossier_eventuel/image.jpg
Mais si tu as une erreur de nommage, tu peux essayer de transférer directement dossier_eventuel/image.jpg au lieu de image.jpg
Bon, c'est juste une piste hein...

Écrit par : crakpit 27 Nov 2011, 12:24

j'aimerai savoir si ces scripts sont toujours d'actualités avec OSC 2.3.1
comme expliqué au début de ce sujet si je prends admin/categories.php vers la ligne 341 on ne peut rien coller
merci

Écrit par : Danyx 29 Dec 2011, 14:57

Bonjour a tous
J'ai des petits problèmes avec ce modul
Gnidhal dit:
copier le dossier ckeditor fourni (ckeditor_3.1.zip) dans admin/
Mais je ne vois sur le site The CKEditor que la version ckeditor_3.6.2.zip
Cela vient t'il de la?
Je pensais bien faire en intégrant la derniere version... biggrin.gif

Écrit par : christian21 12 Jan 2012, 14:21

Bonjour

J'utilise "ckfinder" pour la description de mes articles et je me demandais s'il avait possibilité d'utiliser l'upload d'images avec classement dans des dossiers spécifiques au niveau du choix des images,
pour faire la même chose au niveau des images format "normal", "moyenne", et grande.

Je cherche le principe d'associer ckfinder uniquement pour l'upoload.


Merci de vos réponses eventuelles smile.gif

Écrit par : christian21 29 Jan 2012, 23:22

Bonjour

J'utilise ckeditor et ckfinder avec succés pour la partie rédactionnelle d'un article en illustration avec des images mais voilà quelques jours que j'essaie en plus de faire passer avec ckfinder une image d'article en page acceuil mais ca marche pas avec ce code de "Gnidhal" que je remercie au passage pour les nombreuses solutions qu'il nous a apporté aux fils de ce forum. smile.gif


CODE
function tep_draw_imgarea_ckeditor($name, $width, $height, $text = '', $parameters = '') {
global $HTTP_GET_VARS, $HTTP_POST_VARS;

$field = '<textarea name="' . tep_output_string($name) . '" id="' . tep_output_string($name) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"';

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name]))

|| (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
$field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
} elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
$field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
}
} elseif (tep_not_null($text)) {
$field .= tep_output_string_protected($text);
}

$field .= '</textarea>';

if (strlen($text)>30)$field .= '<img src="' . DIR_WS_CATALOG . DIR_WS_IMAGES .tep_output_string_protected($text). '" alt="" />';

$field .= '</textarea>';


$field .= '<script type="text/javascript">
CKEDITOR.replace( \''.tep_output_string($name).'\',
{
removePlugins : \'elementspath\',
toolbar : \'Basic\',


resize_minWidth : 200 ,
resize_maxWidth : 650 ,
width : '.$width.',
height : '.$height.',
filebrowserBrowseUrl : \''.DIR_WS_HTTP_ADMIN.'includes/javascript/ckeditor/ckfinder/ckfinder.html\',
filebrowserImageBrowseUrl : \''.DIR_WS_HTTP_ADMIN.'includes/javascript/ckeditor/ckfinder/ckfinder.html?Type=Images\',
filebrowserFlashBrowseUrl : \''.DIR_WS_HTTP_ADMIN.'includes/javascript/ckeditor/ckfinder/ckfinder.html?Type=Flash\',
filebrowserUploadUrl : \''.DIR_WS_HTTP_ADMIN.'includes/javascript/ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files\',
filebrowserImageUploadUrl : \''.DIR_WS_HTTP_ADMIN.'includes/javascript/ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images\',
filebrowserFlashUploadUrl : \''.DIR_WS_HTTP_ADMIN.'includes/javascript/ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash\'

<!-- filebrowserBrowseUrl : \''.DIR_WS_HTTP_ADMIN.'includes/javascript/kfm/index.php\', -->

});

</script>';

return $field;
}



Celà serait pourtant pratique de pouvoir aussi classer ces images dans des répertoires selon les thèmes.




Je joins deux photos pour une meilleur compréhension de mon problème, les photos sont donc issues de l'admin et c'est en page acceuil du site que j'ai le problème d'affichage.




Et malheureusement mes minces compétences en php me bloquent pour trouver une solution.

Si quelqu'un pouvait me mettre sur le chemin d"une soluce je lui en serais gré.

Merci à tous

Cordialement

Écrit par : christian21 16 Feb 2012, 16:19

Bonjour

Bon j'avance dans mes recherches et j'ai presque résolu l'affichage de mes images en suivant la solution de Gnidhal dans ce post Gnidhal

http://www.oscommerce-fr.info/forum/index.php?showtopic=69132&



Mais j'ai encore un soucis les répertoires ayant des mots avec espaces ne sont pas pris en compte si une image se trouve dedans.

J'ai aussi le même soucis avec les noms d'image qui ont aussi des espaces.

Celà doit avoir un rapport avec des filtres .... en fait je sais pas vers quoi m'orienter. Et bien qu'ayant parcouru le forum je ne pas dénicher la solution.

Une info à me transmettre peut être ??

Merci d'avance

Cordialement

Écrit par : Gnidhal 16 Feb 2012, 23:03

Oui, fichiers et dossiers ne doivent comporter ni espaces ni caractères accentués ni caractères qui ne sont pas ASCII de base.
En résumé un nom de fichier ou de dossier ne doit comporter que A-Za-z0-9.-_ qui pourrait s'écrire en regex `[A-Z0-9\.\-_]i`
Tout autre caractère est à proscrire (même si certains pourraient être ajoutés sans risque mais pas beaucoup) ou alors il faut bien savoir gérer les scripts qui ont la charge de lire ou d'écrire des fichiers

Écrit par : christian21 17 Feb 2012, 07:39

Merci Gnidhal pour le rappel de cette règle, effectivement c'est plus simple. smile.gif

Cordialement


Écrit par : christian21 2 Mar 2012, 08:02

Bonjour Gnidhal


Juste pour m'aider à comprendre


Quelles difference entre ce code de filtrage :


'

Code
("/(src=\")([^\"]+)/i",


et celui -ci :

Citation
En résumé un nom de fichier ou de dossier ne doit comporter que A-Za-z0-9.-_ qui pourrait s'écrire en regex `[A-Z0-9\.\-_]i`


Je maîtrise pas du tout et j'ai essayé de comprendre ca m'échappe

Merci de ton temps si tu peux me répondre.

Cordialement

Écrit par : Gnidhal 2 Mar 2012, 09:30

Bonjour
la portion de code que tu cites isole le nom de l'image qui se trouve dans la balise src="nom_de_l-image"
le regex cherche le texte qui commence par src=" jusqu'au prochain " pour le considérer comme le nom de l'image, la recherche étant insensible à la casse (option i) donc acceptant src= et/ou SRC=
Cela ne filtre en aucun cas un nom d'image qui comporterait des des caractères non conformes et on ne peut le faire à cet endroit car il est question de récupérer le nom image et son chemin pour stocker en bdd
L'image doit être précédemment choisie ou envoyée sur le serveur avec un nom conforme évitant les accents, les ponctuations et les espaces donc uniquement chiffres, lettres, tirets et point ce qu'on pourrait écrire dans un regex comme :
"`[a-z0-9_\-\.]`i" => pour plus d'infos sur les regex consulte cet excellent site : http://www.expreg.com/
Pour filtrer ce nom d'image il faudrait intégrer un regex remplaçant tous les caractères non conformes par des tirets par exemple dans la fonction/class upload d'osC ou de ckE ce qui est assez complexe à faire.
Maintenant, il me semble qu'une des options de ckE permet cela : à consulter la doc de ckE.
Sinon la fonction en php pourrait s'écrire :

Code
$img_saved = preg_replace("`[^a-z0-9_\-\.]`i",'_',$img_uploaded);

Écrit par : christian21 2 Mar 2012, 17:01

Merci Gnidhal de ta réponse et je vais étudier le lien smile.gif


Écrit par : fjacq 24 Jun 2012, 09:49

Bonjour, savez vous s'il est possible d'utiliser le "filemanager" qui étai dans FCKeditor avec CKeditor ?

Écrit par : fjacq 24 Jun 2012, 12:01

Encore une question sur le sujet ckeditor (je suis à fond dedans, désolé) :quelqu'un sait il si on peux utiliser PGRFileManager avec ckeditor ?

Écrit par : christian21 20 Jul 2012, 16:56

Bonjour

Perso j'ai opté pour ckeditor associé à ckfinder plus homogene , après avoir essayé filemanager et compagnie que j'ai abandonné.

Écrit par : pbpictures 1 Mar 2013, 18:17

Bonjour.

Un développeur me réalise mon site internet.
Voulant absolument installer un éditeur, j'ai installé CK editor qui ajoute systématiquement une balise <p>. Je suis donc obligé de la supprimer manuellement pour obtenir une mise en page correcte.
J'ai tenté plusieurs modifs afin de ne pas avoir ce problème et mon développeur me précise que c'est CK editor qui bloque tout et qu'il faut donc enlever ce composant.
Je trouve cela quand même étrange et je pense qu'une ligne d'écriture doit pouvoir modifier tout cela.
J'attends vos réponses avec impatience. Merci

Écrit par : equisol 19 Apr 2013, 10:55

Bonjour,

Voilà, je galère un peu pour installer cette contrib alors que ça a l'air pourtant si simple, malgré avoir parcouru plusieurs fois l'ensemble des tutos de ce sujet.
Comme base, MS2. Il s'agit de la première installation de CKEditor+CKFinder. Pour l'instant, je suis le tuto de Gnidhal du 22 février 2010.

Voici le rendu :


Les étapes :
1-j'ai téléchargé ckeditor via la builder (http://ckeditor.com/builder) avec comme options :
-> Full preset
-> quelques plugins
-> skin kama
-> langage fr
2-dossier "ckeditor" décompressé dans mon répertoire "gestion" (="admin")
3-ajout du script dans la page "categories.php" :

Code
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<style type="text/css"><!--
BODY { background: #ffffff; }
//--></style>
<link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
<script type="text/javascript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
<script type="text/javascript"><!--
  var dateAvailable = new ctlSpiffyCalendarBox("dateAvailable", "new_article", "articles_date_available","btnDate1","<?php echo $pInfo->articles_date_available; ?>",scBTNMODE_CUSTOMBLUE);
function updateGross() {}//--></script>
</head>

4-modification de html_output.php :
Code
/// function textarea avec ckeditor  
  function tep_draw_textarea_ckeditor($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
    global $HTTP_GET_VARS, $HTTP_POST_VARS;
    if ($width < 100) $width = 700;
    if ($height < 100) $height = 200;
    $field = '<textarea name="' . tep_output_string($name) . '" ';
    if (tep_not_null($parameters)) $field .= ' ' . $parameters;
    $field .= '>';
    if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
      if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
      } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
        $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
      }
    } elseif (tep_not_null($text)) {
      $field .= tep_output_string_protected($text);
    }
    $field .= '</textarea>';
        $field .=     '<script type="text/javascript">
        CKEDITOR.replace( \''.tep_output_string($name).'\',
    {
        resize_minWidth : 500 ,
        resize_maxWidth : 850 ,
        width : '.$width.',
        height : '.$height.'
    });
            </script>';
    return $field;
  }

5-modification de textarea dans categories.php :
Code
<?php echo tep_draw_textarea_ckeditor('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? preg_replace('/& /', '&amp; ', trim(stripslashes($products_description[$languages[$i]['id']]))) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?>

Où est-ce que j'ai fait n'importe quoi ?

MERCI !!!!!!

Écrit par : equisol 22 Apr 2013, 13:09

Bon, le truc est de ne pas passer par http://ckeditor.com/builder car la construction se fait à partir de la version 4.1 alors que le tuto se base sur la version 3.x (http://ckeditor.com/download)
Entre les 2, beaucoup de changements qui rendent le tuto inapproprié.
Du coup, ça fonctionne parfaitement.

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)