Page Integrator – un plugin pour DotClear
C’est mon premier plugin pour DotClear!!
Lors de la Personnalisation de DotClear j’avais regretté de ne pas pouvoir intégrer des pages PHP personnelles dans DotClear (en gardant la même interface graphique). Et bien ce problème est résolu, je viens de faire Integrator Page 1.0.0. Page Integrator 1.0.1[1]Page Integrator 1.0.2[2]Page Integrator 1.0.3[3]1.0.4[4]1.0.5[5]1.0.6[6] :
- le
package habituel - le
package habituel - le
package habituel - le package habituel
- l’
archive .tar.gz - l’
archive .tar.gz - l’
archive .tar.gz - l’archive .tar.gz
- l’
archive .zip - l’
archive .zip - l’
archive .zip - l’archive .zip
Lors du développement du plugin, j’ai installé ces 2 plugins pour me simplifier la vie :
Packager de thèmes & pluginsPackager de thèmes & plugins modifié pour générer des archives téléchargeables- DotBabel
Notes
[1] Voir le ChangeLog pour plus d’information.
[2] Meilleure gestion des URLs.
[3] Un grand merci à Julien pour son aide et ses remarques!!
[4] La version précédente contient quelques ratés. Je devais être très fatigué quand je l’ai écrit. Par exemple vérifiez que Page Integrator n’a pas enregistré ses paramètres dans le fichier de configuration de DotClear. Encore désolé pour la boulette… :-/
[5] Est-ce la version finale??
[6] La version précédente est stable. Celle-çi ajoute une nouvelle option pour la masquage des extensions et la documentation a été améliorée.
https://blog.lecacheur.com/2004/11/05/integrator-page-un-plugin-pour-dotclear/DotClear ZoneC'est mon premier plugin pour DotClear!! Lors de la Personnalisation de DotClear j'avais regretté de ne pas pouvoir intégrer des pages PHP personnelles dans DotClear (en gardant la même interface graphique). Et bien ce problème est résolu, je viens de faire Integrator Page 1.0.0. Page Integrator 1.0.1Page Integrator 1.0.2Page Integrator...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Merci pour ton plugin, je me réjouis de l’essayer.
Si je peux me permettre une légère remarque, tu devrais utiliser le packager de plugins "spécial feignasses" de Pep : http://www.callmepep.org/blog/20...
Cela te permettra de mettre à disposition des versions .tar.gz et .zip de ton plugin pour ceux qui ne peuvent pas utiliser l’installeur de plugins de Dotclear (oui, ca existe).
(Tiens, c’est marrant… les options "activer le plugin" et "mode debug" me rappellent vaguement quelque chose 😉 )
Ah bin tiens, je viens de constater un petit bug. J’ai le sentiment qu’il doit venir du fichier que tu fournis par défaut dans l’installation. Pour le répertoire des pages, il devrait automatiquement par défaut mettre la concaténation du $app_path et ‘/share’ et non pas "forcer" /blog/share. Idéalement, il faudrait donc que le fichier .ini que tu fournis dans le .pkg.gz ne contienne pas cette variable et que ton plugin construise la bonne valeur si elle n’est pas définie dans le fichier ini.
Autre chose : il manque la documentation du format du fichier mapping.ini et son utilité… Ã€ quoi qu’il sert ce truc ?
Et pendant que j’y suis, je continue sur les bugs : le mode debug ne semble servir à rien… À mon avis, il ne faut donc pas afficher cette case à cocher dans la page d’admin du plugin.
Et il manque encore un autre truc dans la documentation du plugin : quelles sont les règles que doivent respecter les pages que l’on veut inclure (oui, je sais, tu l’as dit sur le forum de DotClear, mais il se peut fort bien que les gens l’oublient ou ne voient même pas le message sur le forum.)
Les options pour activer le plugin ou le debug ne sont pas utilisées (je viens de les enlever). J’avoue les avoir piqué à ton excellent plugin ShedulePost. J’en profite pour te dire qu’il est très pratique pour anti-dater les billets. 😉
Je suis en train de tester (jusqu’à maintenant je n’avais fait que lire une partie du code), et je constate quelques problèmes. J’utilise le path_info, et la fonction makeLink retourne toujours un lien à la racine du site… alors qu’il faudrait un lien commençant par l’URL vers le weblogue (je ne sais plus comment se nomme exactement cette variable). J’ai le sentiment que le même problème va se passer avec le postcon.php (ce qui expliquerait pourquoi je n’arrive pas à le faire fonctionner chez moi) où tu vérifies que le path_info débute avec ‘show’, sans tenir compte de l’éventuelle URL du weblogue.
Oublie ce que je viens de dire sur le postcon. Dans le postcon.php en path_info, le problème est différent. Cela vient du fait que la variable $custom_query début avec un ‘/show’ quand on est en mode path_info et que tu testes si elle début par ‘show’ en réalité.
Je viens de corriger la valeur par défault du répertoire des pages. Pour cela je récupère la valeur de ‘dc_app_url’ dans le fichier de configuration de DotClear.
Le fichier de mapping sert à masquer le nom réel des pages. Le fichier possède une liste de clé/valeur où la clé est utilisée par le lien et la valeur est le nom de la page à insérer. Je l’expliquerai dans la documentation plus tard… 🙂
J’ai corrigé la détection du mode « show » en path_info (je n’ai pas ce mode donc je ne peux pas le tester). Par contre je ne suis pas sur d’avoir suivi, la fonction makeLink() est-elle correcte en path_info??
Bon, je viens d’installer la version 1.0.3… deux problèmes que j’ai constaté (sans avoir encore testé) : le répertoire des pages est vide par défaut (à voir le commentaire numéro 7, ce n’est pas ce que tu souhaitais) ; et il y a un problème avec le fichier mapping : Le répertoire ecrire/tools/pageintegrator/ip_plugin_mapping_file n’est pas modifiable. (Ça ne devrait pas plutôt être …/mapping.ini 😉 )
Ah, un autre truc que je viens de remarquer (pas grave du tout, mais ça fait pas joli), c’est que, dans la partie informations sur les fichiers, tu écris "Le répertoire toto est modifiable", alors qu’il s’agit de fichiers… 😉
Autre bug, beaucoup plus embêtant, je modifie le répertoire des pages, puis je clique sur le bouton enregistrer, mais la modification n’est pas prise en compe 🙁 J’ai dû aller modifier le fichier ini à la main pour que la modif soit prise en compte.
Pour la fonction MakeLink, j’ai répondu sur le forum de DotClear, car c’est là que j’ai vu en premier ta question.
Tu sembles également avoir renommé tes variables de configuration dans ton fichier .ini, mais pas partout dans tes fichiers .php (et particulièrement pas de manière uniforme dans fonctions.php). Il reste encore plein de ip_plugin* un peu partout (c’est notamment à cela qu’est dû le problème du fichier mapping.ini dans les tests d’accès que j’ai signalé avant).
Le problème du répertoire des pages est assez embêtant, car il suffit que je recharge la page d’index du plugin, pour qu’il remette la valeur par défaut et supprime du coup la valeur que j’avais mise… :-/
Voilà, je crois avoir fait le tour des problèmes de la version 1.0.3 😉
Julien,
J’ai enfin corrigé toutes tes remarques. J’espère que c’est bon c’est fois (surtout pour le path_info que je ne peux pas tester). Merci pour ta patience et ton aide.
Allez, cette fois-ci je crois que c’est le dernier… En mode path_info, la config par défaut fait que la constante de configuration dc_blog_url se termine par un ‘/’, il ne faut donc pas que ta fonction makeLink ajoute un ‘/’ avant show. Avec cette dernière modification, tout devrait fonctionner en path_info.
Note : je n’ai pas du tout testé le fichier mapping, ni le mode query_string 😉
J’ai corrigé la fonction dcIntegrator::makeLink() dans le cas où la variable dc_blog_url se termine par un ‘/’ (en path_info et en query_string au cas où). Merci!!
De mon côté j’ai testé le query_string et le mapping : c’est la configuration que j’utilise pour mon weblogue. 😉
OK, cette fois-ci tout semble fonctionner du premier coup. Bon boulot ! Et merci…
Un grand merci pour ce plugin. Je ne l’utilise pas personnellement, mais il m’a servit de base pour mon plugin gallery.
Bonjour
Ok, ca semble etre une super idée, je me posais justement la question de savoir commentf aire pour intégrer des pages comme ca, donc j’ai installé le plug-in, par contre on fat comment pour l’utiliser???
Pardonné mon ignorance!!! LOL
Merci pour vos réponses
non bah c bon g trouvé!!!
Trust,
Je vois que tu as été plus rapide que moi. Néanmoins n’hésites pas à reposer des questions si tu rencontres des soucis.
Bonjour,
Ce plugin me tente beaucoup mais voilà : j’ai une page html constituée par tableau de graphiques. Lorsque j’y accède directement, pas de problèmes, les cellules sont correctement réparties.
Lorsque je la fait passer par integrator, la disposition des cellules change.
D’où cela peut il provenir ?
Ce problème ne vient-il pas de feuille de style manquantes ou non trouvées ?
Salut,
Je viens d l’installer sur mon site (sans problème); mais lorsque j’ouvre une page, je n’ai pas les styles que j’ai défini dans mon thème.. En fait, j’avais par le passé une feuille de style communce à toutes mes pages. J’ai donc intégré les styles dans ma feuille de style, mais pas de mise en page….
Y’aurai-t-il un truc que j’ai raté…
Merci
Les pages que tu intègres ne doivent contenir seulement ce que l’on trouve dans le tag body habituellement. Es-tu sûr d’avoir supprimé le tag html, la section head et le tag body??
Ta page est-t-elle disponible quelque part??
Bonsoir,
J’ai intalle ce plugin sur mon site mais j’ai un petit souci au niveau de la configuration où quelque chose doit m échapper.
Lorsque je clique sur le lien il me dit toujours qu’il ne trouve pas la page (test.php not found) alors qu’elle est bien présente dans le bon repertoire.
Fredo,
Le paramétrage de Page Integrator remonte à loin… Mais je vais essayer de me rappeler comment tout cela fonctionne.
Peux-tu me donner le contenu des fichiers pageintegrator.ini et mapping.ini. Peux-tu également me transmettre le lien sur lequel tu cliques stp ?
Merci,