Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 ?
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 ?
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 ?
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",
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....
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
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
<?
$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 ?