Modification page avec FCKEditor

Signaler
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Messages postés
3
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
26 février 2007
-
Bonjour tout le monde,

je suis en train d'essayer d'utiliser FCKEditor sur mon intranet afin de donner la possibilité à certains utilisateurs de modifier eux mêmes une partie de certaines pages.
J'arrive bien à récupérer les infos insérées dans ma base de données avec le code suivant :

<?php
// information pour la connection à le DB
include('Config.php');
$base = "cms";
//Connexion à la base de données


 $db = mysql_connect($host,$user,$password) or die("Impossible de se connecter");
 
 if (!mysql_select_db( "$base",$db))
 
  echo "Erreur  : impossible de sélectionner la base
";
  
$select = 'SELECT texte1 FROM news';
$req = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );


    while($row = mysql_fetch_array($req)) {
        echo '<tr>';
  $text = $row[0] ;
       }


$oFCKeditor = new FCKeditor('FCKeditor1');
$oFCKeditor->Width='78%';
$oFCKeditor->Height='50%';
$oFCKeditor->BasePath='/cms/';
$oFCKeditor->Value = htmlspecialchars(stripslashes($text));
$oFCKeditor->Create();
?>

Par contre, pourriez vous me dire de quel style doit être la page savedata.php qui va être appelée après avoir modifié le texte affiché via cette page...?

Merci d'avance!!

19 réponses

Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Alors c'est très simple, en faite quand tu fais $oFCKeditor = new FCKeditor('FCKeditor1') tu donne un nom au champ de texte que contient le FCKeditor il te suffit de mettre ceci dans une formulaire et récupérer les info avec un $news_mis_a_jour = $_POST['FCKeditor1'];

Je te met ici le code de tes deux pages:

Page qui affiche ta News dans le FCKeditor:

<html>
<head>
<title>Edition de news</title>
</head>

<form name="editNews" method="POST" action="saveDate.php">
<?php
// information pour la connection à le DB
include('Config.php');
$base = "cms";
//Connexion à la base de données

 $db = mysql_connect($host,$user,$password) or die("Impossible de se connecter");
 
 if (!mysql_select_db( "$base",$db))
 
  echo "Erreur  : impossible de sélectionner la base
";
 
$select = 'SELECT texte1 FROM news';
$req = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );

    while($row = mysql_fetch_array($req)) {
        echo '<tr>';
  $text = $row[0] ;
       }

$oFCKeditor = new FCKeditor('FCKeditor1');
$oFCKeditor->Width='78%';
$oFCKeditor->Height='50%';
$oFCKeditor->BasePath='/cms/';
$oFCKeditor->Value = htmlspecialchars(stripslashes($text));
$oFCKeditor->Create();
?>
</form>

</html>

Et ta page saveDate.php

$updatedNews = $_POST['FCKeditor1'];
$mysqlQuey = "UPDATE `news` SET  texte1='$updatedNews' ...
mysql_query() or die('MySQL error: '.mysql_error());

Voilà en gros ... si t'as des doutes hésites pas !

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Super, merci beaucoup, le code de ma page savedata donne donc ceci :

// information pour la connection à le DB
include('Config.php');
$base = "cms";
//Connexion à la base de données


 $db = mysql_connect($host,$user,$password) or die("Impossible de se connecter");
 
 if (!mysql_select_db( "$base",$db))
 
  echo "Erreur  : impossible de sélectionner la base
";
  
$updatedNews = $_POST['FCKeditor1'];
$mysqlQuery = "UPDATE `news` SET  texte1='$updatedNews'";
mysql_query($mysqlQuery,$db) or die('MySQL error: '.mysql_error());

Par contre, après avoir modifié mon texte, il est bien enregistré, mais quand je le réouvre avec FCKEditor, il me l'affiche en type "code" c'est à dire avec toutes les balises html, comment eviter ceci??
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Est ce qu'il est possible d'uploader les fichiers ou l'on veut sur notre serveur, et pas obligatoirement dans le repertoire userfiles?
Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Par contre, après avoir modifié mon texte, il est bien enregistré, mais
quand je le réouvre avec FCKEditor, il me l'affiche en type "code"
c'est à dire avec toutes les balises html, comment eviter ceci??
Il faut changer sa:
$oFCKeditor->Value = htmlspecialchars(stripslashes( $text));
en sa:
$oFCKeditor->Value = $text;

Tu n'as pas besoin de mettre un htmlspecialchars car dans le FCK editor il y a un déjà un htmlentities

Je crois que tu peux mettre le chemin de l'upload à la racine de ton site par exemple.. mais c'est pas conseillé!

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Merci beaucoup, c'est parfait!!
Par contre, ce qui m'ennuie un peu, c'est cette histoire d'upload..
J'ai par exemple une liste de dossiers a laquelle j'aimerais accéder et pouvoir y mettre des documents..
Tu crois que je peux faire un truc comme ça..?
Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

C'est pas vraiment le but du FCKeditor... Le but est simplement d'unploader des images ou des fichiers qui seront contenu dans la news... Tu as meilleur temps de mettre en place un gestionnaire de fichier.

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

C'est à dire un gestionnaire de fichier, qu'entends tu par là?
Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Regarde ça:

http://www.phpcs.com/recherche.aspx?r=gestionnaire+de+fichier&tr=source
http://www.phpcs.com/codes/GESTIONNAIRE-FICHIERS_29153.aspx

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
14
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2007

Salut,
Je suis un peu perdu avec fckeditor, je voudrais savoir quel script il faut inclure au début de laa page pour afficher le fckeditor ?
Merci de votre aide.
Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Moi je fais comme ceci:

require_once    'FCKeditor/fckeditor.php'; // Chemin depuis ta page jusqu'au fichier fckeditor.php

$oFCKeditor = new FCKeditor('newsEditor');
$oFCKeditor->BasePath = 'FCKeditor/'; // Chemin depuis l'index jusque dans le dossier FCKeditor
$oFCKeditor->Value = 'Veuillez écrire votre news ici'; // Valeur par défaut du champ texte
$oFCKeditor->Height = '500' ;    // Hauteur du champs de texte
$editor = $oFCKeditor->CreateHtml(); // Retourne le code HTML que je place ensuite dans une template..
echo $editor; // Mais un simple echo suffit pour afficher le FCKeditor.

Voilà c'est pas compliqué non ?

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Salut,

lorsque j'uploade un fichier, cela fonctionne du moment qu'il est petit (jusqu'a 200ko environ), par contre, cela ne fonctionne pas pour les fichiers plus volumineux...

Qq'un sait ou est ce qu'on peut paramétrer cela???

Merci beaucoup!
Messages postés
14
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2007

Merci [auteurdetail.aspx?ID=182015 Yoteco], j'avais pas capter le fichier php :-p
Ca marche nickel maintenant !
Pour l'upload j'en sais rien je n'utilise pas ce système.
Messages postés
14
Date d'inscription
vendredi 22 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2007

Dis moi [auteurdetail.aspx?ID=182015 Yoteco], Est ce-que tu saurais comment faire pour modifer les balises dites de "Format" (h1,h2,h3....) pour mettre celles que j'utilises dans ma feuille de style à la place ?

Merci!
Messages postés
111
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
5 novembre 2008

Je crois que tu dois créer un fichier XML de style. c'est expliquer dans la doc FCKeditor >>ici<<

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Hello, Yoteco, as tu une idée de comment on peut modifier la taille limite des fichiers que l'on veut uploader...?
Messages postés
3
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
26 février 2007

A l'aide ... sourire

Pour que tout soit clair mon but est de pouvoir éditer une page existante d'un site de la modifier et la remettre en ligne

j'ai pour commencer essayer

<?php
include("FCKeditor/fckeditor.php") ;
?>
<html> <head> <title>FCKeditor - Sample</title>
<meta http-equiv= "Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<form action="savedata.php" method="post">
<?php
$handle=fopen('FCKeditor/license.php','r');
$contents='';
while(!feof($handle)){
    $contents.=fread($handle, 8192);
}



$oFCKeditor->Value = $contents;
$oFCKeditor = new FCKeditor('FCKeditor1');
$oFCKeditor->BasePath = 'FCKeditor/'; // Chemin depuis l'index jusque dans le dossier FCKeditor
$oFCKeditor->Width='650px';
$oFCKeditor->Height='400px';
//$oFCKeditor->BasePath = 'FCKeditor/';
$oFCKeditor->Value = $contents;
$oFCKeditor->Create() ;
$oFCKeditor->Config['SkinPath'] = $sBasePath . 'editor/skins/' . htmlspecialchars($_GET['Skin']) . '/' ;



?>

</form></html>


Puis dnas mon fichier savedata.php :

<?php



if (isset( $_POST ))
   $postArray = &$_POST ;   // 4.1.0 or later
else
   $postArray = &$HTTP_POST_VARS ; // prior to 4.1.0



$fname="FCKeditor/license.php";



$nfile = fopen($fname, "w");



if($nfile != false)
{
 foreach ($postArray as $sForm => $value )
 {
  fwrite($nfile, $value );
 }



 fclose($nfile);




?>

Puis dans une page j'appel licence.php comme include
seulement voila ... le code est modifier et pein de \ sont ajouté donc les chemins des photos par exemple ne sont pas bon ...

en lisant ce post j'ai tenté de suivre la méthode je stock dnas une base de donnée lecontenue puis je l'appel en ligne .

ce qui me donne :

<?php
include("FCKeditor/fckeditor.php") ;
?>
<html>
<head>
<title>Edition de news</title>
</head>

<form name="editNews" method="POST" action="savedata10.php">
<?php
// information pour la connection à le DB
include('Config.php');
$base = "mabasededonnes";
//Connexion à la base de données



 $db = mysql_connect($host,$user,$password) or die("Impossible de se connecter");
 
 if (!mysql_select_db( "$base",$db))
 
  echo "Erreur  : impossible de sélectionner la base
";
 
$select = 'SELECT texte1 FROM news';
$req = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );



    while($row = mysql_fetch_array($req)) {
        echo '<tr>';
  $text = $row[0] ;
       }
$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = 'FCKeditor/'; // Chemin depuis l'index jusque dans le dossier FCKeditor
$oFCKeditor->Width='78%';
$oFCKeditor->Height='50%';
$oFCKeditor->Value = $text;
$oFCKeditor->Create();
?>

</form></html>

Puis dans le savedata.php

<?
// information pour la connection à le DB
include('Config.php');
$base = "mabasededonnees";
//Connexion à la base de données



 $db = mysql_connect($host,$user,$password) or die("Impossible de se connecter");
 
 if (!mysql_select_db( "$base",$db))
 
  echo "Erreur  : impossible de sélectionner la base
";
 
$updatedNews = $_POST['FCKeditor1'];
$mysqlQuery = "UPDATE `news` SET  texte1='$updatedNews'";
mysql_query($mysqlQuery,$db) or die('MySQL error: '.mysql_error());
?>

Mes questions sont

1 comment doit etre créer la Bdd (si vous aviez un exemple correspondant à mon besoin ... ca serait le top)
2 que dois je mettre dans ma page licence.php pour faire apparaite le contenu stocké dans la BDD au format html
3 le code indiqué ci dessus est il correct ?

Merci par avant de votre aide précieuse ... 4 jours que je m'arrache les cheveux dessus
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Salut!

Pour ta bdd, elle doit être de la structure suivante :

CREATE TABLE `nomdetatable` (
  `id` int(11) NOT NULL auto_increment,
  `nomduchamp` longtext,
  PRIMARY KEY  (`id`)
)  ;

Ta page licence.php devrait ressembler à ceci :

 <?php


// information pour la connection à le DB
include('Acces_securise/cms/Config.php');
$base = "mabasededonnees";
//Connexion à la base de données


 $db = mysql_connect($host,$user,$password) or die("Impossible de se connecter");
 
 if (!mysql_select_db( "$base",$db))
 
  echo "Erreur  : impossible de sélectionner la base
";


 $select = 'SELECT nomduchamp FROM nomdetatable';
 $req = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
     while($row = mysql_fetch_array($req)) {
        echo '<tr>';
  $text = $row[0] ;
  echo "$text";
       }
 
 
?>
Messages postés
3
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
26 février 2007

Un grand merci cela semble parfaitement fonctionner.
Messages postés
3
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
26 février 2007

Un grand merci cela semble parfaitement fonctionner.