Publier des pdf avec Dolibarr module builder

Bonjour à tous !

Ça fait un petit moment que je me pose la question du fonctionnement de la publications des pdf dans Dolibarr, et débutant avec Module builder, j’essaye de standardiser certains documents afin de gagner du temps. Mais malgré les activations de fonctions dans mon module via module builder, j’ai toujours la même erreur :

TCPDF ERROR: Unable to create output file: error-diroutput-not-defined-for-this-object=diffusion/(PROV37)/(PROV37).pdf

Du coup, je viens chercher un peu d’aide…

Merci d’avance ! Bonne journée à tous !

Bonjour
Difficile de répondre avec juste un message d’erreur comme celui ci sans avoir le code.
Ça ressemble à un manque de chemin au moment de la génération du pdf.
@+

Ce que je ne comprend pas, c’est que je n’ai rien changé à la configuration de module builder, donc à priori, il devrait, soit me le créer au mauvais endroit, soit rien faire du tout. Mais je ne sais pas trouver où on définit l’emplacement d’enregistrement d’un pdf…

Bonjour,

Avez-vous réussi à résoudre le problème ?

J’ai la même chose de mon côté. Module créé avec le module builder. J’ai tenté des var_dump un peu partout et le $conf->notesinternes->dir_output contient bien un chemin valide (notesinternes est le nom de mon module vous l’aurez compris). Je n’arrive à comprendre ce qui cloche.

TCPDF ERROR: Unable to create output file: error-diroutput-not-defined-for-this-object=note/65489/65489.pdf

Bonjour,
En partie, il se génère, mais une fois supprimer, impossible de le générer de nouveau…

OK. De mon côté, en fouillant le fichier functions.lib.php du core de Dolibarr, j’en ai déduit qu’il fallait changer le $element de la classe du module. Pour moi ça donne ceci :

class Note extends CommonObject
{
	/**
	 * @var string 	ID of module.
	 */
	public $module = 'notesinternes';

	/**
	 * @var string 	ID to identify managed object.
	 */
	public $element = 'notesinternes'; // <-- 'note' avant, mais du coup ça bugue sur la fonction getMultidirOutput de functions.lib.php

Reste à savoir si ça ne va pas créer d’autres problèmes par ailleurs. Pour l’instant j’ai un PDF généré OK, mais il ne s’affiche pas sur la page “card”…

J’ai réussi à résoudre/contourner le problème grâce à la solution expliquée à mon message précédent puis en supprimant la référence à $object→element dans le fichier Card.

// fichier card nomdumodule_card.php

        // Documents

        if ($includedocgeneration) {

$objref = dol_sanitizeFileName($object->ref);

$relativepath = $objref.'/'.$objref.'.pdf';

$filedir = $conf->notesinternes->dir_output.'/'.$objref; // <-- ICI j'ai supprimé  $object→element

$urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id;

$genallowed = $permissiontoread; // If you can read, you can build the PDF to read content

$delallowed = $permissiontoadd; // If you can create/edit, you can remove a file on card


// ICI dans le 2e argument
print $formfile->showdocuments('notesinternes:Note', $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang);

        }

Je me demande juste si du coup il n’y a pas un bug dans le module builder (je suis sur la version 20).

Je vais essayer