1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| <?php
// Racine de la distribution dojo (a adapter a votre arborescence de site)
$dojoRoot = "/cours/ajax/toolkits/dojo-1.0.2";
// Nom du fichier a sauver (ou mettre a jour) dans le meme repertoire que la page PHP
$file = "editorContent.html";
// Chemin de ce fichier
$path = dirname($_SERVER["SCRIPT_FILENAME"])."/$file";
if (array_key_exists("editorContent", $_POST)) {
// Contenu au format par defaut des editeurs (ici, sous windows)
$contentFile = mb_convert_encoding($_POST["editorContent"], "windows-1252", "UTF-8");
// Nouvelle taille du fichier
$nbOctets = file_put_contents($path, $contentFile);
// Reponse Ajax
print "Fichier <a href='$file'>$file</a> mis à jour ($nbOctets caractères)";
}
else {
// Recuperer le contenu du fichier a mettre a jour
$contentFile = file_get_contents($path) or "";
// Afficher le formulaire contenant l'editeur
print<<<END
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Edition du fichier $file</title>
<style type="text/css">
@import "$dojoRoot/dijit/themes/tundra/tundra.css";
@import "$dojoRoot/dojo/resources/dojo.css";
</style>
<script src="$dojoRoot/dojo/dojo.js"
type="text/javascript" djConfig="parseOnLoad: true"></script>
<script src="$dojoRoot/dijit/dijit.js"
type="text/javascript"></script>
<script type="text/javascript">
dojo.require("dijit.Editor");
function editorSave() {
// Mettre le contenu de l'editeur dans le champ cache
dojo.byId("editorContent").value = dijit.byId("editorField").getValue();
// Soumettre le formulaire via Ajax
dojo.xhrPost( {
url: "$_SERVER[PHP_SELF]", // Programme cote serveur
handleAs: "text",
timeout: 5000, // Delai d'attente maximal en millisecondes
load: function(response, ioArgs) { // Reaction si succes
dojo.byId("message").innerHTML = response;
//return response;
},
error: function(response, ioArgs) { // Reaction si echec
dojo.byId("message").innerHTML = "Erreur HTTP " + ioArgs.xhr.status;
//return response;
},
form: "editorForm"
});
}
dojo.addOnLoad(function() {
dojo.connect(dojo.byId("editorSaveButton"), "onclick", editorSave);
});
</script>
</head>
<body class="tundra">
<div id="message">Mise à jour du fichier <a href='$file'>$file</a></div>
<hr />
<form id="editorForm" action="javascript:">
<input type="hidden" name="editorContent" id="editorContent" />
<textarea id="editorField" height="100px" dojoType="dijit.Editor" >
$contentFile
</textarea>
<input type="button" value="Sauver" id="editorSaveButton" />
</form>
</body>
</html>
END;
}
?> |
Partager