From d80d24c3482b36cc833f6a193a9be24de6370513 Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Fri, 15 Jul 2016 07:05:06 +0000 Subject: [PATCH] Disable PDF export if the PHP extension "GD" is not loaded. SVN:trunk[4307] --- application/utils.inc.php | 6 +++++- core/bulkexport.class.inc.php | 6 +++++- setup/setuputils.class.inc.php | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/application/utils.inc.php b/application/utils.inc.php index cd9c7fb05..45d6ee441 100644 --- a/application/utils.inc.php +++ b/application/utils.inc.php @@ -848,7 +848,11 @@ class utils // Bulk export actions $aResult[] = new JSPopupMenuItem('UI:Menu:CSVExport', Dict::S('UI:Menu:CSVExport'), "ExportListDlg('$sOQL', '$sDataTableId', 'csv', ".json_encode(Dict::S('UI:Menu:CSVExport')).")"); $aResult[] = new JSPopupMenuItem('UI:Menu:ExportXLSX', Dict::S('ExcelExporter:ExportMenu'), "ExportListDlg('$sOQL', '$sDataTableId', 'xlsx', ".json_encode(Dict::S('ExcelExporter:ExportMenu')).")"); - $aResult[] = new JSPopupMenuItem('UI:Menu:ExportPDF', Dict::S('UI:Menu:ExportPDF'), "ExportListDlg('$sOQL', '$sDataTableId', 'pdf', ".json_encode(Dict::S('UI:Menu:ExportPDF')).")"); + if (extension_loaded('gd')) + { + // PDF export requires GD + $aResult[] = new JSPopupMenuItem('UI:Menu:ExportPDF', Dict::S('UI:Menu:ExportPDF'), "ExportListDlg('$sOQL', '$sDataTableId', 'pdf', ".json_encode(Dict::S('UI:Menu:ExportPDF')).")"); + } } $aResult[] = new JSPopupMenuItem('UI:Menu:AddToDashboard', Dict::S('UI:Menu:AddToDashboard'), "DashletCreationDlg('$sOQL')"); $aResult[] = new JSPopupMenuItem('UI:Menu:ShortcutList', Dict::S('UI:Menu:ShortcutList'), "ShortcutListDlg('$sOQL', '$sDataTableId', '$sContext')"); diff --git a/core/bulkexport.class.inc.php b/core/bulkexport.class.inc.php index d6909fbb4..6d2532365 100644 --- a/core/bulkexport.class.inc.php +++ b/core/bulkexport.class.inc.php @@ -412,7 +412,11 @@ abstract class BulkExport // The built-in exports require_once(APPROOT.'core/tabularbulkexport.class.inc.php'); require_once(APPROOT.'core/htmlbulkexport.class.inc.php'); -require_once(APPROOT.'core/pdfbulkexport.class.inc.php'); +if (extension_loaded('gd')) +{ + // PDF export - via TCPDF - requires GD + require_once(APPROOT.'core/pdfbulkexport.class.inc.php'); +} require_once(APPROOT.'core/csvbulkexport.class.inc.php'); require_once(APPROOT.'core/excelbulkexport.class.inc.php'); require_once(APPROOT.'core/spreadsheetbulkexport.class.inc.php'); diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index c3fcc194c..f6c83019e 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -88,7 +88,7 @@ class SetupUtils $aMandatoryExtensions = array('mysqli', 'iconv', 'simplexml', 'soap', 'hash', 'json', 'session', 'pcre', 'dom', 'zip'); $aOptionalExtensions = array('mcrypt' => 'Strong encryption will not be used.', 'ldap' => 'LDAP authentication will be disabled.', - 'gd' => 'PDF export of impact/dependency diagrams will be disabled'); + 'gd' => 'PDF export will be disabled'); asort($aMandatoryExtensions); // Sort the list to look clean ! ksort($aOptionalExtensions); // Sort the list to look clean ! $aExtensionsOk = array();