====== Bonnes pratiques pour les créateurs et développeurs de thèmes et de plugins ====== ===== Thèmes ===== FIXME ===== Plugins ===== ==== Côté admin ==== * Un flag d'activation pour la gestion multi-blogs : il peut être utile pour ne plus afficher un widget, définir un nouvel urlHandler, créer un nouveau menu dans le tableau de bord, appeler des behaviours... FIXME exemple de code * A quel endroit ajoutez-vous le namespace ? Le fichier _prepend.php est un bon candidat. * Toujours déclarer les settings en global lors de l'installation puis les enregistrer en local dans la configuration du plugin * Usez de l'autoload pour vos classes. Le fichier ne sera ainsi pas inclus systématiquement si la classe n'est pas instanciée, moins de risque d'inclusion récursive, d'oubli d'inclusion ou de redéclarations. * Si le plugin a une table, penser également à implémenter les behaviors pour l'import et l'export. * tester avec le niveau maximal d'erreur de PHP * tester avec MySQL et PostgreSQL ==== Côté public ==== * appeler les différents fichiers JavaScripts avec le behaviour publicFooterContent FIXME justifier * si vous ajoutez du contenu, existe-t-il un mode non automatique ou peut-on positionner soi-même le nouveau contenu avec un ou plusieurs tpl ? * peut-on ne pas ajouter la feuille de style du plugin pour éviter une harmonie farfelue entre les couleurs du blog et les règles du plugin ? FIXME ou l'ajouter avant ... ==== Côté readme, changeset & co ==== * la liste exhaustive des nouveaux settings avec le namespace * le ou les fichiers template inclus * les variables et les blocks tpl inclus dans votre plugin et leurs attributs. * Dans les infos à communiquer, il me parait aussi indispensable de donner les nouveaux types d'UrlHandlers. FIXME pas compris ===== Juste avant de faire le zip ===== * valider le XHTML (côté admin et public, avec le plugin Web Developer par exemple) * vérifier les traductions (les chaînes sont-elles toutes bien traduites ?) * Minifier la ou les feuilles CSS incluses : pas de petit profit. * Minifier les fichiers javascript inclus dans le plugin (un fork du plugin packager est disponible ici pour automatiser cette opération ainsi que pour les feuilles de style) //(merci à lipki pour la première version de cette page)//