Je veux faire quelque chose comme iGoogle dans WordPress, dans lequel je peux glisser et déposer les widgets. Comment cela pourrait-il être fait en HTML 5?
C'est une question intéressante. De manière générale, je suis d’accord avec EAMann. Cela conviendrait mieux à une discussion plus générale. Comme vous le demandez ici, je vais toutefois vous donner une approche spécifique de Wordpress que vous voudrez peut-être utiliser.
Dans le contexte de Wordpress, "widget" a évidemment une signification spécifique. Le système de widgets de la barre latérale de Wordpress est extrêmement flexible et tire parti du fait qu’il est un système établi avec un grand nombre de widgets disponibles. Cela en fait un endroit judicieux pour commencer. Vous pouvez, par exemple, créer un modèle contenant plusieurs barres latérales disposées les unes à côté des autres.
Styliser vos widgets devrait être assez facile. Pour les rendre glisser-déposer, réduire, éditer, etc. Je recommande ce tutoriel , qui illustre ces techniques avec jQuery UI.
Cela devient un peu délicat. Je suppose que vous voulez que chaque utilisateur puisse configurer ses propres widgets et que ces modifications soient persistantes. (Si l'une ou l'autre de ces exigences est inutile, cela devient beaucoup plus facile.) C'est difficile: nous ne pouvons pas utiliser le système de widgets Wordpress pour stocker ces préférences, mais nous pouvons y accéder pour trouver de l'inspiration.
Si vous avez installé PhpMyAdmin (ou similaire), allez dans votre base de données wordpress et exécutez les opérations suivantes:
SELECT *
FROM `wp_options`
WHERE `option_name`
REGEXP '^widget_'
LIMIT 0 , 30
Vous devriez obtenir un tas de résultats avec les tableaux PHP stockés pour plus de détails. Si chaque utilisateur devait être en mesure de définir ses propres widgets, vous pouvez utiliser ce format, mais ajouter un ID utilisateur à la fin du nom de l'option. Vous pouvez écrire un simple script AJAXy pour envoyer les détails de la disposition des widgets chaque fois qu'il change. Le destinataire PHP mettrait alors la base de données à jour en conséquence.
C’est donc une façon de sauvegarder les données des utilisateurs, mais comment pouvons-nous les récupérer et les afficher à nouveau? Personnellement, je laisserais WordPress servir les valeurs par défaut normalement au début. (Eventuellement avec une superposition CSS et/ou une spinner de progression.) Ensuite, je déclencherais une autre demande AJAX et chargerais les widgets spécifiés par l'utilisateur. Plus précisément, je chargeais d'abord l'arrangement, puis individuellement les données (via AJAX à nouveau) dans chaque boîte. Cela accélérerait le temps de chargement perçu.
Alors on y va. Désolé, c'est une réponse de si haut niveau, mais c'est une question d'une grande portée. J'espère vous avoir donné quelques idées. Bonne chance!
PS Si cela fonctionne, je vous conseillerais de le distribuer sous forme de plugin.