From f22da0f41c942b5100d85c8070381b3aac0607b7 Mon Sep 17 00:00:00 2001 From: THIVET Simon Date: Wed, 4 Oct 2023 10:14:02 +0200 Subject: [PATCH] Add pdf hook for tickets tab --- inc/ticket.class.php | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/inc/ticket.class.php b/inc/ticket.class.php index 6cef51e..a5fe566 100644 --- a/inc/ticket.class.php +++ b/inc/ticket.class.php @@ -345,7 +345,7 @@ static function pdfMain(PluginPdfSimplePDF $pdf, Ticket $job) { $pdf->setColumnsSize(100); $pdf->displayLine( "".sprintf(__('%1$s: %2$s'), __('Title')."", $job->fields["name"])); - + $content = Glpi\RichText\RichText::getTextFromHtml($job->fields['content']); $content = Glpi\Toolbox\Sanitizer::unsanitize(Html::entity_decode_deep( $job->fields['content'])); $content = preg_replace('#data:image/[^;]+;base64,#', '@', $content); @@ -459,6 +459,7 @@ static function pdfStat(PluginPdfSimplePDF $pdf, Ticket $job) { function defineAllTabsPDF($options=[]) { + global $PLUGIN_HOOKS; $onglets = parent::defineAllTabsPDF($options); unset($onglets['ProjectTask_Ticket$1']); @@ -474,14 +475,34 @@ function defineAllTabsPDF($options=[]) { $onglets['_inforequester_'] = __('Requester information', 'pdf'); } + $tabname = "Tab_".$this->obj->getTypeName(); + if (isset($PLUGIN_HOOKS['plugin_pdf'][$tabname])) { + $plugin = $PLUGIN_HOOKS['plugin_pdf'][$tabname]; + if (isset($PLUGIN_HOOKS['plugin_pdf'][$tabname]) + && class_exists($PLUGIN_HOOKS['plugin_pdf'][$tabname])) { + $itempdf = new $PLUGIN_HOOKS['plugin_pdf'][$tabname]($this); + $name = $itempdf::getTypeName(); + $onglets[$plugin] = $name; + } + } + return $onglets; } static function displayTabContentForPDF(PluginPdfSimplePDF $pdf, CommonGLPI $item, $tab) { + global $PLUGIN_HOOKS; $private = isset($_REQUEST['item']['_private_']); - + $tabname = "Tab_".$item->getTypeName(); + if (isset($PLUGIN_HOOKS['plugin_pdf'][$tabname])) { + if (isset($PLUGIN_HOOKS['plugin_pdf'][$tabname]) + && class_exists($PLUGIN_HOOKS['plugin_pdf'][$tabname]) + && $tab == $PLUGIN_HOOKS['plugin_pdf'][$tabname]) { + $itempdf = new $PLUGIN_HOOKS['plugin_pdf'][$tabname]($item); + return $itempdf::pdfForTicket($pdf, $item); + } + } switch ($tab) { case '_private_' : // nothing to export, just a flag @@ -534,7 +555,7 @@ static function displayTabContentForPDF(PluginPdfSimplePDF $pdf, CommonGLPI $ite PluginPdfTicket_Contract::pdfForTicket($pdf, $item); break; - default : + case 'default' : return false; } return true;