Dotclear

Vous n'êtes pas identifié(e).

Annonce

#1 2020-05-19 16:23:37

rhackert
Membre
Inscription : 2008-07-21
Site Web

Recherche une partie du code de dotclear

Bonjour,

Pour l'écriture d'un plugin de conversion à la volée de billets en pdf, je voudrais pouvoir sélectionner les billets qui doivent être convertis et assemblés en un document pdf.

Je suis donc à la recherche du bout de code qui affiche d'une jolie facon coté administration la liste des messages.

Quelqu'un peut-il m'aiguiller sur le fichier à consulter  ?

Merci

Rémi

Hors ligne

#2 2020-05-20 16:02:47

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

La liste des billets, côté admin, est générée par dotclear/admin/posts.php, que tu peux dupliquer dans ton plugin.

Il me semble que tu pourrais même plus simplement ajouter une action "convertir en pdf" aux actions existantes (publier, mettre hors ligne, etc.)

Regarde du côté des behaviors comme adminPostsActions sur cette page

Hors ligne

#3 2020-05-22 13:49:20

rhackert
Membre
Inscription : 2008-07-21
Site Web

Re : Recherche une partie du code de dotclear

Merci Philippe, je regarde ça.

Hors ligne

#4 2021-05-20 15:34:57

rhackert
Membre
Inscription : 2008-07-21
Site Web

Re : Recherche une partie du code de dotclear

bonjour, j'ai un peu avancé sur mon plugin FPDF4dc2 qui fonctionne déjà coté public

A ce jour il peut générer le pdf d'un post (à condition que le code soit propre), le pdf des post d'une catégorie, le pdf des post contenant un tag .

Pour voir le résultat rendez vous par exemple sur ce site de test en développement :
https://www.montgeron.info/mec/index.php?tag/tribunes.
En cliquant alors sur l’icône PDF un document est généré avec ou sans table des matières cela est contrôlable sur la page d'administration du plugin , tout comme les fontes et la taille des titres.

Pour le voir en œuvre sur un document un peu plus complexe, essayer par exemple ici :
https://www.montgeron.info/mec/index.ph … e-scolaire

Il fonctionne donc sur un blog réglé en query_string et je dois encore regarder si cela marche dans l'autre mode path_info.

Je voulais donc ajouter une fonction convertir en pdf à la page d'administration des posts comme suggéré par Philippe. C'est ce que j'ai fait. Mais....

Lorsque je lance la conversion qui réutilise strictement le même code, celui produit une erreur sur l'insertion des images. D'ou ma question:
L'utilisation de  fonction comme getimagesize peut-il être dépendant d'une situation  public VS admin ??
Si je shunte l'affichage des images, le reste s'affiche très bien.  Je doute que ce soit le cas, et c'est vraisemblablement du à une subtile bétise de ma part, mais bon sait-on jamais ?
Une fois debloqué le plugin pourrait produire le pdf de chaque post qui pourrait alors être mis à disposition au téléchargement sans avoir a être régénéré dynamiquement (à la volee) chaque fois.

Hors ligne

#5 2021-05-20 16:57:51

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

rhackert a écrit :

L'utilisation de  fonction comme getimagesize peut-il être dépendant d'une situation  public VS admin ??

Il faut être sûr du chemin vers le fichier depuis l'admin. Ce sera différent de celui depuis la partie publique du blog. Pour info le chemin vers la médiathèque peut être récupéré avec ces deux lignes

$public_path = $core->blog->public_path;
$public_url = $core->blog->settings->system->public_url;

Hors ligne

#6 2021-05-21 09:28:19

rhackert
Membre
Inscription : 2008-07-21
Site Web

Re : Recherche une partie du code de dotclear

Merci Philippe et bonjour.

J'ai quelques questions:

1/ J'ai resolu mon probleme mais je ne comprends pas trop le pourquoi
En etant sur le fichier admin.php de mon plugin, le path vers les ilage doit comporter un ../ avant le path "public/.ETC.." Je peux le comprendre.
Mais lorsque je suis sur le fichier public.php de ce meme plugin et qui est rangé dans le même répertoire que admin.php alors plus beson de ../.

2/ dans la façon de recuperer les billets après la postactionpage je recupère les ids des post sélectionnés par

$posts_ids = $ap->getIDs();
        
foreach ($posts_ids as $ids) {

        $params['post_id']=$ids;
        $lepost = $core->blog->getPosts($params);

       ......
}

Cela fonctionne. Mais est-ce la façon normale de procéder ou bien il y a peut être un getPostByID possible,  je crois que cela existait avant ?

bonne journée

Hors ligne

#7 2021-05-22 06:53:08

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

rhackert a écrit :

        $params['post_id']=$ids;
        $lepost = $core->blog->getPosts($params);

   
Cela fonctionne. Mais est-ce la façon normale de procéder ou bien il y a peut être un getPostByID possible,  je crois que cela existait avant ?

Vu de mon côté ça me paraît être la bonne façon de faire ;)

Hors ligne

#8 2021-06-07 12:46:07

rhackert
Membre
Inscription : 2008-07-21
Site Web

Re : Recherche une partie du code de dotclear

Bonjour à la communauté,

encore quelques demandes...on approche de la fin.

1/ je viens de remarquer que sur mon serveur dotclear ne fonctionnait pas en path info. Ce n'est pas en soit un drame mais du coup je ne peux pas tester le fonctionnement de fpdf4dc2 sur un blog en path_info. Est ce que quelqu'un pourrait le faire et me faire un retour ? https://www.animals-in-motion.com/remih … -avec-fpdf

2/ quelqu'un peut-il m'expliquer comment produire l'ouverture d'un popup type médiathèque pour recuperer le chemin vers une image dans un formulaire de la page d'admin du plugin. J'ai fouillé mais cela reste très obscur..Il y a peut-etre un tuto quelque part ? Ce serait plus convivial que de rentrer un chemin à la main.

Merci.

Rémi

Hors ligne

#9 2021-06-08 14:06:53

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

Je ne sais pas pour la première question, et si tu trouves la réponse à la seconde, je suis très intéressé :)

Hors ligne

#10 2021-06-11 09:40:20

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Recherche une partie du code de dotclear

Faut que je pense à faire un billet sur ce sujet…


Dotclear addicted since 2004

Hors ligne

#11 2021-06-11 10:46:31

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

Oh oui, un billet ! Un billet !

Hors ligne

#12 2021-06-17 16:36:00

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

@rhackert : je termine un thème qui permet en page d'admin de choisir des images de la médiathèque. Il faudra le simplifier si tu n'as besoin que d'une image. Tu peux t'en inspirer pour ton plugin. Si tu as des questions n'hésite pas.

PS le thème ne marche que sur la version de dev de dotclear (2.19), car il manquait la prise en compte d'un behavior dans admin/media-item.php. Mais le code marche normalement pour un plugin

Hors ligne

#13 2021-06-18 10:02:25

rhackert
Membre
Inscription : 2008-07-21
Site Web

Re : Recherche une partie du code de dotclear

Très chouette thème, épuré comme je les aime, ...
Je viens de l'installer mais pour le moment lorsque je vais dans la personnalisation image par défaut et clique sur changer, il ne se produit rien . Pas de pop up. C'est bien le fonctionnement de ce mécanisme que tu me conseilles de comprendre pour choisir une image ? Je vais jeter un œil.
Je trouve néanmoins dommage de ne pas profiter du popup médiathèque pour cela et j'attends avec impatience le billet de Franck Paul ;-).
Pour le moment je fais s'ouvrir le popup médiathèque pour que l'utilisateur puisse regarder si besoin le chemin vers l'image mais après il faut le retaper à la main...
mais comme ce popup communique avec une fenêtre appelante portant un nom particulier (toolbar) , à part créer une fenêtre portant ce nom qui appellerait à son tour le popup mediatheque... bref tout cela reste flou dans ma tête. Faut que ça décante?

Hors ligne

#14 2021-06-18 14:25:55

rhackert
Membre
Inscription : 2008-07-21
Site Web

Re : Recherche une partie du code de dotclear

je viens seulement de lire tes echanges avec Franck.

Hors ligne

#15 2021-06-18 15:18:04

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

@rhakert : le thème ne marche pas avec la version actuelle de dotclear, il marche avec la version de développement (2.19-dev). C'est normal car jusqu'à maintenant dotclear ne prévoyait pas d'utiliser ces behaviors pour un thème. Mais pour un plugin, oui ;)

Donc le behavior marche avec un plugin sous dotclear 2.18. Et tu peux utiliser ainsi la popup standard de la médiathèque avec toutes ses fonctionnalités.

Ce qu'il te faut c'est récupérer le mécanisme :

- dans _config.php (ce sera probablement index.php pour un plugin) le formulaire pour récupérer et enregistrer le retour de la popup
- un fichier _prepend.php pour enregistrer le behavior adminPostMedia pour le plugin
- un lien vers la popup (le javascript window.open('media.php?plugin_id etc. avec pour plugin_id le nom de ton plugin
- un fichier javascript qui, appelé par le behavior adminPostMedia, sera ajouté dans media-item.php et te permettra de renvoyer l'url du média dans ta page de configuration du plugin

Regarde aussi les plugins dcCKEditor et ou dcLegacyEditor qui font cela aussi.

Hors ligne

#16 2021-06-20 09:12:17

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

@rhackert : pour plus de clarté, je t'ai fait un plugin sur la base du plugin exemple de la doc.

Ça marche avec dotclear 2.18. C'est ici pour le télécharger

Le premier champ de l'onglet 1 a un bouton "Changer" qui ouvre la popup de la médiathèque et récupère l'url du média dans le champ.

J'ai ajouté au plugin d'exemple :

- un fichier prepend.php avec les behaviors nécessaires
- deux fichiers javascript : admin.js et popup_media.js
- un champ et un bouton dans la page de configuration pour expérimenter


À partir de là tu devrais pouvoir te débrouiller :)

Hors ligne

#17 2021-06-22 16:11:29

rhackert
Membre
Inscription : 2008-07-21
Site Web

Re : Recherche une partie du code de dotclear

Merci Philippe effectivement ça marche.

si j'ai plusieurs path vers des fichiers a récuperer sur la même page d'admin, je dois trouver un moyen de  passer en paramètre l'id du champ de texte car sinon media_popup.js renvoie la sélection vers un même champ de texte c'est ça ?

Merci en tous les cas, c'est quand même bien plus pratique ;-) !

Hors ligne

#18 2021-06-22 16:35:02

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche une partie du code de dotclear

Si tu as plusieurs images, ajoute un champ caché sur ta page d'admin, tu pourras ensuite savoir quel bouton a été cliqué. Regarde sur le thème grayscale le champ caché #change-button-id dans _config.php, rempli par admin.js, et récupéré dans popup_media.js ;)

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map