tinymce

Nouveau WRInaute
Bonjour,

Je souhaite utiliser tinymce pour un site en php. J'arrive a l'utiliser mais le problème est que j'aimerais que l'utilisateur puisse sauvegarder en ligne directement.
Comment puis-je procéder ?

Merci
 
WRInaute accro
et bien créer une base de données, une requête d insertion à la base de données après validation du formulaire, avec les contrôles adéquates. quel est ton niveau en php ?
 
Nouveau WRInaute
mes connaissances ne sont pas des plus terribles ;) j'avais déja vu un cms qui enregistrait directement dans un fichier txt, qui n'utilisait pas de BDD.. Qu'en pensez-vous ?
 
Nouveau WRInaute
Salut Erwan,
il faut bien différencier l'utilsiation de tinyMce et le stockage des données....
les problemes sont indépendants....

L'utilisation basique de TinyMce ne demande aucune connaissance ...
Toutes les configurations de base...aucune connaissance de base non plus...
Pour un comportement avance de tinyMce, bien sur, il te faudra des connaissance javascript pour le modifier.....

Mais pour le stockage de tes données...l'utilsation de TinyMce ne pose aucun espece de problème...je m'explique :
Tu dois créer un formulaire...puis enregistrer tes données... tinyMce ne fait que venir se greffer sur tes textarea...sans rien changer au formualire...
exemple : en rouge le code pour tinyMce :


ton formulaire de base :
<form action="adresse de ta page php ou autre qui va faire l'enregistrement" method="POST" name="addarticle">
<input type='text' name='article_title' id ='article_title' size='40'>
<textarea name='article_content' id ='article_content'></textarea>
</form>


en entete de tonfichier tu rajoutes le code pour tiny (ne pas utiliser celui là, il est configurer pour mon site, mais il y a des exemples http://wiki.moxiecode.com/examples/tinymce/installation_example_00.php )
tinyMCE.init({
//language: "fr",
// General options
mode : "textareas", theme : "advanced",
plugins : "safari,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,contextmenu,paste,directionality,fullscreen,noneditable,xhtmlxtras",

// Theme options
theme_advanced_buttons1 : "save,newdocument,|,undo,redo,|,cut,copy,paste,pastetext,pasteword,|,cleanup,removeformat,|,code,preview,fullscreen",
theme_advanced_buttons2 : "forecolor,backcolor,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,outdent,indent,blockquote,|,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons3 : "link,unlink,anchor,|,image,media,|,insertdate,inserttime,|,sub,sup,|,charmap,emotions,iespell,advhr,|,styleprops,|,cite,abbr,acronym,del,ins,attribs|,fullscreen",
theme_advanced_buttons4 : "tablecontrols,|,hr,visualaid",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,

// Example content CSS (should be your site CSS)
content_css : "css/contentCyc.css",

// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",

file_browser_callback : "fileBrowserCallBack",
//execcommand_callback : "myCustomExecCommandHandler",
debug : false,
convert_fonts_to_spans : true
});

function fileBrowserCallBack(field_name, url, type, win){
// This is where you insert your custom filebrowser logic
win.open("http://www.webarmenie.com/tools/medias/grenexplore.php", "", "scrollbars=0,resizable=0,width=800,height=600");
//alert("Example of filebrowser callback: field_name: " + field_name + ", url: " + url + ", type: " + type);
}

et la ligne rouge fera que tous tes textarea de la page seront des textarea avec tinyMCE dedans....
et ton problème reste donc le même, enregistrer les données...

Pour enregistrer tes données tu as plusieurs choix, tu préférerais le fichier texte parce que ca te parait moins compliqué, certes, mais des que ton fichier fera plusieurs dizaines de ligne, le traitement sera long, de plus, imaginiqe que tu dois enregistrer plusieurs information par ligne
nom de la personne, adresse de la personne, numéro de téléphone fixe, numéro de portable, etc....
tu va devoir les séparer par un séparateur, et apres récupérer chaque ligne , puis la couper suivant le séparateur et accéder à l'information numéro 3 (par exemple) c'est long, compliqué, et qui plus est tu ne pourra pas faire de tri complexes, sans recréé en mémoire une matrice en ayant lu toutes tes données.
Tandis qu'en DB c'est plus facile, 100 fois plus facile... voila....
tu fais ce que tu veux...mais vaut mieux prendre 4 heures pour comprendre et utiliser la db, faire du code facile a corriger et a comprendrE....
 
Nouveau WRInaute
Super !! Merci pour ta réponse très claire, je comprends mieux l'utilisation et c'est vrai que cela sera plus facile a gérer avec une BDD.
Je test et je te dis quoi ;)
 
Nouveau WRInaute
super ca marche !!

Mes données sont insérées dans une BDD MySql.

Question :

Comment dois-je faire pour modifier le texte qui est insérer dans la BDD ? tout en réutilisant tinyMce...
 
Nouveau WRInaute
1°) tu fait une requete pour recuperer tes enregistrements (Démo en PHP)
$query = "SELECT * FROM TA_TABLE";
2°)Tu te connectes a la base (tu as deja fait ca pour enregistrer dans la base)

3°) tu rempli ton recordset du style
$result = mysql_query($query); /// si tu as plusieurs enregistrements cad plusieurs lignes dans ta table

4°)Tu parcours tes enregistrements
while ($val = mysql_fetch_array($result)) {
->ici le code pour chacun des enregistrements....
}

5°) si on suppose que ton champ texte s'appele "identifiant" dans la table
alors
<textarea id='...' name='...'><?=$val["identifiant"]?></textarea>
$val etant défini a l'étape 4... tyniMCe se positionnera automatiquement dans ton textarea avec les valeurs de la db préremplis...tu les modifie, et tu soumet ton formulaire...
voilou
 
Nouveau WRInaute
voila j'y suis (enfin) arrivé ... :)

voici ma page modification.php


<?
$host = 'localhost';
$user = '';
$pass = '';
$db = '';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = 'SELECT * FROM base';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
echo '<textarea style="width:100%;height:500px;" id="article" name="article">'."\n";

while($row = mysql_fetch_array($result)) {

echo '<td bgcolor="#CCCCCC">'.$row["article"].'</td>';
echo '</tr>'."\n";
}
echo '</textarea>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);
?>


Encore quelques questions :

1) dans mon formulaire de départ, j'avais un INPUT TYPE="TEXT" , pour le titre de l'article, mais je n'arrive pas à l'intégrer dans mon fichier modification.php , si qqn a une solution....

2) comment faire pour enregistrer les modifications du texte ?

Merci à vous !
 
Discussions similaires
Haut