Modification page avec FCKEditor

flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009 - 8 janv. 2007 à 17:51
nightbird69 Messages postés 3 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 26 février 2007 - 26 févr. 2007 à 13:38
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

Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
8 janv. 2007 à 19:50
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)
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
9 janv. 2007 à 08:13
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??
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
9 janv. 2007 à 08:36
Est ce qu'il est possible d'uploader les fichiers ou l'on veut sur notre serveur, et pas obligatoirement dans le repertoire userfiles?
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
9 janv. 2007 à 10:05
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
9 janv. 2007 à 10:23
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..?
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
9 janv. 2007 à 10:33
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)
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
9 janv. 2007 à 11:02
C'est à dire un gestionnaire de fichier, qu'entends tu par là?
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
9 janv. 2007 à 11:11
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)
0
Jeuls Messages postés 14 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 22 juin 2007
28 janv. 2007 à 15:03
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.
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
28 janv. 2007 à 15:09
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)
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
29 janv. 2007 à 09:06
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!
0
Jeuls Messages postés 14 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 22 juin 2007
29 janv. 2007 à 18:45
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.
0
Jeuls Messages postés 14 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 22 juin 2007
29 janv. 2007 à 20:50
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!
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
29 janv. 2007 à 20:53
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)
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
30 janv. 2007 à 08:22
Hello, Yoteco, as tu une idée de comment on peut modifier la taille limite des fichiers que l'on veut uploader...?
0
nightbird69 Messages postés 3 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 26 février 2007
25 févr. 2007 à 19:13
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
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
26 févr. 2007 à 08:47
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";
       }
 
 
?>
0
nightbird69 Messages postés 3 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 26 février 2007
26 févr. 2007 à 13:38
Un grand merci cela semble parfaitement fonctionner.
0
nightbird69 Messages postés 3 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 26 février 2007
26 févr. 2007 à 13:38
Un grand merci cela semble parfaitement fonctionner.
0
Rejoignez-nous