* Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2012-2107 Juanjo Menent * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/admin/pdf.php * \brief Page to setup PDF options */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; // Load translation files required by the page $langs->loadLangs(array('admin', 'languages', 'other', 'companies', 'products', 'members')); if (! $user->admin) accessforbidden(); $action = GETPOST('action', 'alpha'); $cancel = GETPOST('cancel', 'alpha'); /* * Actions */ if ($cancel) { $action=''; } if ($action == 'update') { dolibarr_set_const($db, "MAIN_PDF_FORMAT", $_POST["MAIN_PDF_FORMAT"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PDF_MARGIN_LEFT", $_POST["MAIN_PDF_MARGIN_LEFT"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PDF_MARGIN_RIGHT", $_POST["MAIN_PDF_MARGIN_RIGHT"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PDF_MARGIN_TOP", $_POST["MAIN_PDF_MARGIN_TOP"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PDF_MARGIN_BOTTOM", $_POST["MAIN_PDF_MARGIN_BOTTOM"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS", $_POST["MAIN_PROFID1_IN_ADDRESS"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", $_POST["MAIN_PROFID2_IN_ADDRESS"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", $_POST["MAIN_PROFID3_IN_ADDRESS"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DESC", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DESC"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INVERT_SENDER_RECIPIENT", $_POST["MAIN_INVERT_SENDER_RECIPIENT"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PDF_USE_ISO_LOCATION", $_POST["MAIN_PDF_USE_ISO_LOCATION"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_SECOND_TAX", $_POST["MAIN_PDF_MAIN_HIDE_SECOND_TAX"], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_THIRD_TAX", $_POST["MAIN_PDF_MAIN_HIDE_THIRD_TAX"], 'chaine', 0, '', $conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; } if ($action == 'activate_pdfsecurity') { dolibarr_set_const($db, "PDF_SECURITY_ENCRYPTION", "1", 'chaine', 0, '', $conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; } elseif ($action == 'disable_pdfsecurity') { dolibarr_del_const($db, "PDF_SECURITY_ENCRYPTION", $conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; } /* * View */ $wikihelp='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'; llxHeader('', $langs->trans("Setup"), $wikihelp); $form=new Form($db); $formother=new FormOther($db); $formadmin=new FormAdmin($db); $arraydetailsforpdffoot = array( 0 => $langs->transnoentitiesnoconv('NoDetails'), 1 => $langs->transnoentitiesnoconv('DisplayCompanyInfo'), 2 => $langs->transnoentitiesnoconv('DisplayCompanyManagers'), 3 => $langs->transnoentitiesnoconv('DisplayCompanyInfoAndManagers') ); print load_fiche_titre($langs->trans("PDF"), '', 'title_setup'); print ''.$langs->trans("PDFDesc")."
\n"; print "
\n"; $noCountryCode = (empty($mysoc->country_code) ? true : false); if ($action == 'edit') // Edit { print '
'; print ''; print ''; clearstatcache(); // Misc options print load_fiche_titre($langs->trans("DictionaryPaperFormat"), '', ''); print '
'; print ''; print ''; $selected=$conf->global->MAIN_PDF_FORMAT; if (empty($selected)) $selected=dol_getDefaultFormat(); // Show pdf format print ''; print ''; print ''; print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("DictionaryPaperFormat").''; print $formadmin->select_paper_format($selected, 'MAIN_PDF_FORMAT'); print '
'.$langs->trans("MAIN_PDF_MARGIN_LEFT").''; print ''; print '
'.$langs->trans("MAIN_PDF_MARGIN_RIGHT").''; print ''; print '
'.$langs->trans("MAIN_PDF_MARGIN_TOP").''; print ''; print '
'.$langs->trans("MAIN_PDF_MARGIN_BOTTOM").''; print ''; print '
'; print '
'; print '
'; // Addresses print load_fiche_titre($langs->trans("PDFAddressForging"), '', ''); print '
'; print ''; print ''; // Hide VAT Intra on address print ''; // Show prof id 1 in address into pdf if (! $noCountryCode) { $pid1=$langs->transcountry("ProfId1", $mysoc->country_code); if ($pid1 == '-') $pid1=false; } else { $pid1 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid1) { print ''; } // Show prof id 2 in address into pdf if (! $noCountryCode) { $pid2=$langs->transcountry("ProfId2", $mysoc->country_code); if ($pid2 == '-') $pid2=false; } else { $pid2 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid2) { print ''; } // Show prof id 3 in address into pdf if (! $noCountryCode) { $pid3=$langs->transcountry("ProfId3", $mysoc->country_code); if ($pid3 == '-') $pid3=false; } else { $pid3 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid3) { print ''; } // Show prof id 4 in address into pdf if (! $noCountryCode) { $pid4=$langs->transcountry("ProfId4", $mysoc->country_code); if ($pid4 == '-') $pid4=false; } else { $pid4 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid4) { print ''; } print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("ShowVATIntaInAddress").''; print $form->selectyesno('MAIN_TVAINTRA_NOT_IN_ADDRESS', (! empty($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS))?$conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS:0, 1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid1.''; print $form->selectyesno('MAIN_PROFID1_IN_ADDRESS', isset($conf->global->MAIN_PROFID1_IN_ADDRESS)?$conf->global->MAIN_PROFID1_IN_ADDRESS:0, 1, $noCountryCode); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid2.''; print $form->selectyesno('MAIN_PROFID2_IN_ADDRESS', isset($conf->global->MAIN_PROFID2_IN_ADDRESS)?$conf->global->MAIN_PROFID2_IN_ADDRESS:0, 1, $noCountryCode); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid3.''; print $form->selectyesno('MAIN_PROFID3_IN_ADDRESS', isset($conf->global->MAIN_PROFID3_IN_ADDRESS)?$conf->global->MAIN_PROFID3_IN_ADDRESS:0, 1, $noCountryCode); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid4.''; print $form->selectyesno('MAIN_PROFID4_IN_ADDRESS', isset($conf->global->MAIN_PROFID4_IN_ADDRESS)?$conf->global->MAIN_PROFID4_IN_ADDRESS:0, 1, $noCountryCode); print '
'; print '
'; print '
'; // Localtaxes $locales =''; $text=''; if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) { if ($mysoc->useLocalTax(1)) { $locales = $langs->transcountry("LT1", $mysoc->country_code); $text ='' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT1", $mysoc->country_code)) . ''; $text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_SECOND_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX : 0, 1); $text .= ''; } if ($mysoc->useLocalTax(2)) { $locales.=($locales?' & ':'').$langs->transcountry("LT2", $mysoc->country_code); $text.= '' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT2", $mysoc->country_code)) . ''; $text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_THIRD_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX : 0, 1); $text.= ''; } } $title = $langs->trans("PDFRulesForSalesTax"); if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) { $title.=' - '.$langs->trans("PDFLocaltax", $locales); } print load_fiche_titre($title, '', ''); print ''; print ''; // Hide any information on Sale tax / VAT print ''; // Locataxes print $text; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("HideAnyVATInformationOnPDF").''; print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))?$conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT:0, 1); print '
'; print '
'; // Other print load_fiche_titre($langs->trans("Other"), '', ''); print '
'; print ''; print ''; //Desc print ''; //Ref print ''; //Details print ''; // Place customer adress to the ISO location print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("HideDescOnPDF").''; print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DESC', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC:0, 1); print '
'.$langs->trans("HideRefOnPDF").''; print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_REF', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF:0, 1); print '
'.$langs->trans("HideDetailsOnPDF").''; print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS:0, 1); print '
'.$langs->trans("PlaceCustomerAddressToIsoLocation").''; print $form->selectyesno('MAIN_PDF_USE_ISO_LOCATION', (! empty($conf->global->MAIN_PDF_USE_ISO_LOCATION))?$conf->global->MAIN_PDF_USE_ISO_LOCATION:0, 1); print '
'.$langs->trans("ShowDetailsInPDFPageFoot").''; print $form->selectarray('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', $arraydetailsforpdffoot, $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS); print '
'; print '
'; print '
'; print ''; print '   '; print ''; print '
'; print '
'; print '
'; } else // Show { // Misc options print load_fiche_titre($langs->trans("DictionaryPaperFormat"), '', ''); print '
'; print ''; print ''; // Show pdf format print ''; print ''; print ''; print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("DictionaryPaperFormat").''; $pdfformatlabel=''; if (empty($conf->global->MAIN_PDF_FORMAT)) { include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; $pdfformatlabel=dol_getDefaultFormat(); } else $pdfformatlabel=$conf->global->MAIN_PDF_FORMAT; if (! empty($pdfformatlabel)) { $sql="SELECT code, label, width, height, unit FROM ".MAIN_DB_PREFIX."c_paper_format"; $sql.=" WHERE code LIKE '%".$db->escape($pdfformatlabel)."%'"; $resql=$db->query($sql); if ($resql) { $obj=$db->fetch_object($resql); $paperKey = $langs->trans('PaperFormat'.$obj->code); $unitKey = $langs->trans('SizeUnit'.$obj->unit); $pdfformatlabel = ($paperKey == 'PaperFormat'.$obj->code ? $obj->label : $paperKey).' - '.round($obj->width).'x'.round($obj->height).' '.($unitKey == 'SizeUnit'.$obj->unit ? $obj->unit : $unitKey); } } print $pdfformatlabel; print '
'.$langs->trans("MAIN_PDF_MARGIN_LEFT").''; print empty($conf->global->MAIN_PDF_MARGIN_LEFT)?10:$conf->global->MAIN_PDF_MARGIN_LEFT; print '
'.$langs->trans("MAIN_PDF_MARGIN_RIGHT").''; print empty($conf->global->MAIN_PDF_MARGIN_RIGHT)?10:$conf->global->MAIN_PDF_MARGIN_RIGHT; print '
'.$langs->trans("MAIN_PDF_MARGIN_TOP").''; print empty($conf->global->MAIN_PDF_MARGIN_TOP)?10:$conf->global->MAIN_PDF_MARGIN_TOP; print '
'.$langs->trans("MAIN_PDF_MARGIN_BOTTOM").''; print empty($conf->global->MAIN_PDF_MARGIN_BOTTOM)?10:$conf->global->MAIN_PDF_MARGIN_BOTTOM; print '
'; print '
'; print '
'; print load_fiche_titre($langs->trans("PDFAddressForging"), '', ''); print '
'; print ''; print ''; // Hide Intra VAT on address print ''; // Show prof id 1 in address into pdf if (! $noCountryCode) { $pid1=$langs->transcountry("ProfId1", $mysoc->country_code); if ($pid1 == '-') $pid1=false; } else { $pid1 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid1) { print ''; } // Show prof id 2 in address into pdf if (! $noCountryCode) { $pid2=$langs->transcountry("ProfId2", $mysoc->country_code); if ($pid2 == '-') $pid2=false; } else { $pid2 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid2) { print ''; } // Show prof id 3 in address into pdf if (! $noCountryCode) { $pid3=$langs->transcountry("ProfId3", $mysoc->country_code); if ($pid3 == '-') $pid3=false; } else { $pid3 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid3) { print ''; } // Show prof id 4 in address into pdf if (! $noCountryCode) { $pid4=$langs->transcountry("ProfId4", $mysoc->country_code); if ($pid4 == '-') $pid4=false; } else { $pid4 = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid4) { print ''; } print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("ShowVATIntaInAddress").''; print yn($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS, 1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid1.''; print yn($conf->global->MAIN_PROFID1_IN_ADDRESS, 1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid2.''; print yn($conf->global->MAIN_PROFID2_IN_ADDRESS, 1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid3.''; print yn($conf->global->MAIN_PROFID3_IN_ADDRESS, 1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid4.''; print yn($conf->global->MAIN_PROFID4_IN_ADDRESS, 1); print '
'."\n"; print '
'; print '
'; // Localtaxes $locales =''; $text=''; if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) { if ($mysoc->useLocalTax(1)) { $locales = $langs->transcountry("LT1", $mysoc->country_code); $text ='' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT1", $mysoc->country_code)) . ''; $text .= yn($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX, 1); $text .= ''; } if ($mysoc->useLocalTax(2)) { $locales.=($locales?' & ':'').$langs->transcountry("LT2", $mysoc->country_code); $text.= '' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT2", $mysoc->country_code)) . ''; $text.= yn($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX, 1); $text.= ''; } } // Sales TAX / VAT information $title=$langs->trans("PDFRulesForSalesTax", $locales); if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) $title.=' - '.$langs->trans("PDFLocaltax", $locales); print load_fiche_titre($title, '', ''); print ''; print ''; print ''; print $text; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("HideAnyVATInformationOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT, 1); print '
'; print '
'; // Other print load_fiche_titre($langs->trans("Other"), '', ''); print '
'; print ''; print ''; // Encrypt and protect PDF print ''; print ''; print ''; print '"; print ""; print ''; // Hide Desc print ''; // Hide Ref print ''; // Hide Details print ''; // Invert sender and recipient print ''; // Use French location print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; $text = $langs->trans("ProtectAndEncryptPdfFiles"); $desc = $form->textwithpicto($text, $langs->transnoentities("ProtectAndEncryptPdfFilesDesc"), 1); print $desc; print ''; if($conf->global->PDF_SECURITY_ENCRYPTION == 1) { print img_picto($langs->trans("Active"), 'tick'); } print ''; if (empty($conf->global->PDF_SECURITY_ENCRYPTION)) { print ''.$langs->trans("Activate").''; } else { print ''.$langs->trans("Disable").''; } print "
'.$langs->trans("HideDescOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC, 1); print '
'.$langs->trans("HideRefOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF, 1); print '
'.$langs->trans("HideDetailsOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS, 1); print '
'.$langs->trans("SwapSenderAndRecipientOnPDF").''; print yn($conf->global->MAIN_INVERT_SENDER_RECIPIENT, 1); print '
'.$langs->trans("PlaceCustomerAddressToIsoLocation").''; print yn($conf->global->MAIN_PDF_USE_ISO_LOCATION, 1); print '
'.$langs->trans("ShowDetailsInPDFPageFoot").''; print $arraydetailsforpdffoot[($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS ? $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS : 0)]; print '
'; print '
'; /* * Library */ print '
'; print load_fiche_titre($langs->trans("Library"), '', ''); print '
'; print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; print "\n"; print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; print "
'.$langs->trans("Name").''.$langs->trans("Value").'
'.$langs->trans("LibraryToBuildPDF").''; $i=0; $pdf=pdf_getInstance('A4'); if (class_exists('FPDF') && ! class_exists('TCPDF')) { if ($i) print ' + '; print 'FPDF'; print ' ('.@constant('FPDF_PATH').')'; $i++; } if (class_exists('TCPDF')) { if ($i) print ' + '; print 'TCPDF'; print ' ('.@constant('TCPDF_PATH').')'; $i++; } if (class_exists('FPDI')) { if ($i) print ' + '; print 'FPDI'; print ' ('.@constant('FPDI_PATH').')'; $i++; } if (class_exists('TCPDI')) { if ($i) print ' + '; print 'TCPDI'; print ' ('.@constant('TCPDI_PATH').')'; $i++; } print '
\n"; print '
'; print '
'; print ''.$langs->trans("Modify").''; print '
'; print '
'; } // End of page llxFooter(); $db->close();