IUT Cours 2014-2015 – CMS – Première partie
Bonjour,
Voici en ligne la première partie, version non définitive, des cours que nous entamons sur les systèmes de gestion de contenu.
Cliquez ici pour le récupérer.
Bonjour,
Voici en ligne la première partie, version non définitive, des cours que nous entamons sur les systèmes de gestion de contenu.
Cliquez ici pour le récupérer.
Cliquez ici pour avoir la version PDF.
Si vous avez des remarques, si vous voulez des ajouts, n’hésitez pas à laisser un commentaire !
Ecole des Mines de Gardanne : après cette journée passée de cours voici, à la demande de plusieurs élèves, les cours
Voici le lien vers le cours complet d’initiation à la programmation côté serveur d’un site Internet :
Voici une belle démonstration qui vient du site http://prezi.com/.
Ce qui me plaît beaucoup c’est que non seulement elle est très belle, mais en plus elle a du contenu !
Profitez-en, c’est un cours sympathique sur la typographie !
Options de lancement de Chrome si on veut pouvoir faire de l’AJAX avec les fichiers en local sans installer de serveur Web :
--allow-file-access-from-files
--incognito
-start-maximized
mysqldump -u root -pmysql wordpresslocal > 2013.12.19.wordpresslocal.sql
mysql -u root -pmysql -e "DROP DATABASE IF EXISTS wordpresslocal;" mysql -u root -pmysql -e "CREATE DATABASE wordpresslocal DEFAULT CHARACTER SET utf8;" mysql -u root -pmysql -e "USE wordpresslocal ; GRANT ALL PRIVILEGES ON wordpresslocal TO 'v69a6YK614454xA'@'localhost' IDENTIFIED BY 'nQ1e7NfDRXG2q6H';" mysql -u root -pmysql -e "USE wordpresslocal ; GRANT ALL PRIVILEGES ON wordpresslocal.* TO 'v69a6YK614454xA'@'localhost' IDENTIFIED BY 'nQ1e7NfDRXG2q6H';" mysql -u root -pmysql wordpresslocal < 2013.12.19.wordpresslocal.sql
Solution trouvée ici
Créer un fichier .htaccess
à la racine de ce que vous avez décompressé. Ce fichier doit contenir :
DirectoryIndex index.php index.html # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
J’ai expliqué qu’il fallait mettre, avant de faire le tout dernier ordre de sortie echo json_encode($resultat_final);
les headers JSON.
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
On m’a demandé à quoi servaient les entête de cache. J’ai expliqué que ça servait à s’assurer que les interrogations AJAX se feraient toujours (notez le futur), c’est à dire à demander au navigateur de ne rien garder en cache.
Comme toujours, ma mémoire me fait défaut mais mon expérience reste, et je savais qu’il faut éviter tout risque de problème cache.
J’ai retrouvé une explication concrète du problème : certaines versions du navigateur Safari sur iOS6 ne réinterrogent pas les appels AJAX.
Il suffit donc de faire deux choses :
Header set Cache-Control "no-cache"
$.ajaxSetup({
type: 'POST',
headers: { "cache-control": "no-cache" }
});
Toutes les solutions sont prises via le site de questions/réponses de reférence : en Anglais ici.
Si vous créez dynamiquement une liste en jQuery Mobile, et que la liste n’apparaît pas correctement, il faut demander à jQuery Mobile de la rafraîchir. La solution ? « Refresh ». Voici le code, avec en gras la ligne qu’il vous faut ajouter :
$(document).ready(function() { $.ajax("../php/monajax.php") .done(function(data) { /* Vider la liste avant de la remplir : */ $("#list").empty(); /* Remplir la liste : */ for (var i in data) { $('#list').append( $('<li />').append( $('<a />') .attr('title', tab[i].description) .html(tab[i].contenu) ) ); } $("#list").listview("refresh"); }); });