getViewer($request);
$moduleName = $request->getModule();
$viewer->assign('QUALIFIED_MODULE', $moduleName);
$moduleName = $request->getModule();
if (!empty($moduleName)) {
$moduleModel = new PDFMaker_PDFMaker_Model('PDFMaker');
$currentUser = Users_Record_Model::getCurrentUserModel();
$userPrivilegesModel = Users_Privileges_Model::getInstanceById($currentUser->getId());
$permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId());
$viewer->assign('MODULE', $moduleName);
if (!$permission) {
$viewer->assign('MESSAGE', 'LBL_PERMISSION_DENIED');
$viewer->view('OperationNotPermitted.tpl', $moduleName);
exit;
}
$linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'));
$linkModels = $moduleModel->getSideBarLinks($linkParams);
$viewer->assign('QUICK_LINKS', $linkModels);
}
$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
$viewer->assign('CURRENT_VIEW', $request->get('view'));
if ($display) {
$this->preProcessDisplay($request);
}
}
public function preProcessTplName(Vtiger_Request $request)
{
return 'EditViewPreProcess.tpl';
}
/**
* @throws Exception
*/
public function process(Vtiger_Request $request)
{
global $theme, $image_path, $current_language;
PDFMaker_Debugger_Model::GetInstance()->Init();
$PDFMaker = new PDFMaker_PDFMaker_Model();
/** @var PDFMaker_Module_Model $PDFMakerModel */
$PDFMakerModel = Vtiger_Module_Model::getInstance('PDFMaker');
$viewer = $this->getViewer($request);
$cu_model = Users_Record_Model::getCurrentUserModel();
$mode = "";
$is_block = false;
if ($request->has("mode") && !$request->isEmpty("mode")) {
$mode = $request->get("mode");
}
if ($request->has('templateid') && !$request->isEmpty('templateid')) {
$templateid = $request->get('templateid');
$pdftemplateResult = $PDFMakerModel->GetEditViewData($templateid);
$recordModel = PDFMaker_Record_Model::getInstanceById($templateid);
$viewer->assign("PDF_TEMPLATE_RESULT", $pdftemplateResult);
$select_module = $pdftemplateResult["module"];
$select_format = $pdftemplateResult["format"];
$select_orientation = $pdftemplateResult["orientation"];
$nameOfFile = $pdftemplateResult["file_name"];
$PDF_password = $pdftemplateResult["pdf_password"];
$is_portal = $pdftemplateResult["is_portal"];
$is_listview = $pdftemplateResult["is_listview"];
$is_active = $pdftemplateResult["is_active"];
$is_default = $pdftemplateResult["is_default"];
$order = $pdftemplateResult["order"];
$owner = $pdftemplateResult["owner"];
$sharingType = $pdftemplateResult["sharingtype"];
$sharingMemberArray = $PDFMakerModel->GetSharingMemberEditArray($templateid);
$disp_header = $pdftemplateResult["disp_header"];
$disp_footer = $pdftemplateResult["disp_footer"];
if ($pdftemplateResult["type"] != "") {
$is_block = true;
if ($pdftemplateResult["type"]) {
$viewer->assign("TEMPLATEBLOCKTYPE", $pdftemplateResult["type"]);
$blocktype = vtranslate(ucfirst($pdftemplateResult["type"]), "PDFMaker");
$viewer->assign("TEMPLATEBLOCKTYPEVAL", $blocktype);
}
}
if (!$pdftemplateResult["permissions"]["edit"]) {
$PDFMakerModel->DieDuePermission();
}
if (PDFMaker_Module_Model::isModuleActive("ITS4YouStyles")) {
$ITS4YouStylesModuleModel = new ITS4YouStyles_Module_Model();
$Style_Files = $ITS4YouStylesModuleModel->getStyleFiles($templateid, "PDFMaker");
$viewer->assign("ITS4YOUSTYLE_FILES", $Style_Files);
$Style_Content = $ITS4YouStylesModuleModel->getStyleContent($templateid, "PDFMaker", "ASC");
$viewer->assign("STYLES_CONTENT", $Style_Content);
}
} else {
$recordModel = PDFMaker_Record_Model::getCleanInstance("PDFMaker");
if ($mode == "Blocks") {
$is_block = true;
}
$select_module = $templateid = $nameOfFile = "";
if ($request->has("return_module") && !$request->isEmpty("return_module")) {
$select_module = $request->get("return_module");
}
$select_format = 'A4';
$select_orientation = 'portrait';
$is_default = $is_portal = $is_listview = '0';
$is_active = $order = '1';
$owner = $cu_model->getId();
if (getTabId('ITS4YouMultiCompany') && PDFMaker_Module_Model::isModuleActive('ITS4YouMultiCompany')) {
$Company_Data = ITS4YouMultiCompany_Record_Model::getCompanyByUserId($cu_model->getId());
if ($Company_Data != null) {
$sharingType = 'share';
$companyId = $Company_Data->getId();
$sharingMemberArray['Companies'] = array('Companies:' . $companyId => $companyId);
} else {
$sharingType = 'private';
}
} else {
$sharingType = 'public';
$sharingMemberArray = array();
}
$disp_header = '3';
$disp_footer = '7';
$PDFMakerModel->CheckTemplatePermissions($select_module, $templateid);
$viewer->assign('PDF_TEMPLATE_RESULT', $PDFMakerModel->getDefaultEditViewData());
}
if (!$is_block) {
$Block_Types = array();
foreach (array("header", "footer") as $block_type) {
$selectedid = "";
if (isset($pdftemplateResult[$block_type . "id"]) && !empty($pdftemplateResult[$block_type . "id"])) {
$selectedid = $pdftemplateResult[$block_type . "id"];
}
$BRequest = new Vtiger_Request(array('mode' => 'Blocks', 'blocktype' => $block_type, 'select_module' => $select_module));
$BlockList = $PDFMakerModel->GetListviewData("templateid", "ASC", $BRequest);
$Block_Types[$block_type] = array("name" => vtranslate(ucfirst($block_type), "PDFMaker"), "selected" => ($selectedid != "" ? "fromlist" : "custom"), "selectedid" => $selectedid, "types" => array("custom" => vtranslate("Custom", "PDFMaker"), "fromlist" => vtranslate("From list", "PDFMaker")), "list" => $BlockList);
}
$viewer->assign("BLOCK_TYPES", $Block_Types);
}
$viewer->assign("IS_BLOCK", $is_block);
if ($PDFMakerModel->getVersionType() == "professional") {
$type = "professional";
} else {
$type = "basic";
}
$viewer->assign("TYPE", $type);
if ($request->has("isDuplicate") && $request->get("isDuplicate") == "true") {
$viewer->assign("FILENAME", "");
$viewer->assign("DUPLICATE_FILENAME", $pdftemplateResult["filename"]);
$viewer->assign('IS_DUPLICATE', true);
} else {
$viewer->assign("FILENAME", $pdftemplateResult["filename"]);
$viewer->assign('IS_DUPLICATE', false);
}
$viewer->assign("DESCRIPTION", $pdftemplateResult["description"]);
if (!$request->has("isDuplicate") or ($request->has("isDuplicate") && $request->get("isDuplicate") != "true")) {
$viewer->assign("SAVETEMPLATEID", $templateid);
}
if ($templateid != "") {
$viewer->assign("EMODE", "edit");
}
$viewer->assign("TEMPLATEID", $templateid);
$viewer->assign("MODULENAME", vtranslate($select_module, $select_module));
$viewer->assign("SELECTMODULE", $select_module);
$viewer->assign("BODY", $pdftemplateResult["body"]);
$this->cu_language = $cu_model->get('language');
$viewer->assign("THEME", $theme);
$viewer->assign("IMAGE_PATH", $image_path);
$app_strings_big = Vtiger_Language_Handler::getModuleStringsFromFile($this->cu_language);
$app_strings = $app_strings_big['languageStrings'];
$viewer->assign("APP", $app_strings);
$viewer->assign("PARENTTAB", getParentTab());
$modArr = $PDFMaker->GetAllModules();
$Modulenames = $modArr[0];
$ModuleIDS = $modArr[1];
$viewer->assign("MODULENAMES", $Modulenames);
// ****************************************** Company and User information: **********************************
$CUI_BLOCKS["Assigned"] = vtranslate("LBL_USER_INFO", 'PDFMaker');
$CUI_BLOCKS["Logged"] = vtranslate("LBL_LOGGED_USER_INFO", 'PDFMaker');
$CUI_BLOCKS["Modifiedby"] = vtranslate("LBL_MODIFIEDBY_USER_INFO", 'PDFMaker');
$CUI_BLOCKS["Creator"] = vtranslate("LBL_CREATOR_USER_INFO", 'PDFMaker');
$viewer->assign("CUI_BLOCKS", $CUI_BLOCKS);
$adb = PearDatabase::getInstance();
$sql = "SELECT * FROM vtiger_organizationdetails";
$result = $adb->pquery($sql, array());
$organization_logoname = decode_html($adb->query_result($result, 0, 'logoname'));
$organization_header = decode_html($adb->query_result($result, 0, 'headername'));
$organization_stamp_signature = $adb->query_result($result, 0, 'stamp_signature');
global $site_URL;
$path = $site_URL . "/test/logo/";
if (isset($organization_stamp_signature)) {
$organization_stamp_signature_img = "
";
$viewer->assign("COMPANY_STAMP_SIGNATURE", $organization_stamp_signature_img);
}
if (isset($organization_header)) {
$organization_header_img = "
";
$viewer->assign("COMPANY_HEADER_SIGNATURE", $organization_header_img);
}
if (getTabId('ITS4YouMultiCompany') && PDFMaker_Module_Model::isModuleActive('ITS4YouMultiCompany')) {
$ismulticompany = true;
$PDFMakerFieldsModel = new PDFMaker_Fields_Model();
$Acc_Info = $PDFMakerFieldsModel->getSelectModuleFields("ITS4YouMultiCompany", "COMPANY");
} else {
$ismulticompany = false;
$Settings_Vtiger_CompanyDetails_Model = Settings_Vtiger_CompanyDetails_Model::getInstance();
$CompanyDetails_Fields = $Settings_Vtiger_CompanyDetails_Model->getFields();
foreach ($CompanyDetails_Fields as $field_name => $field_type) {
if ($field_name == "organizationname") {
$field_name = "name";
} elseif ($field_name == "code") {
$field_name = "zip";
} elseif ($field_name == "logoname") {
continue;
}
$l = "LBL_COMPANY_" . strtoupper($field_name);
$label = vtranslate($l, 'PDFMaker');
if ($label == "" || $l == $label) {
$label = vtranslate($field_name);
}
$Acc_Info["COMPANY_" . strtoupper($field_name)] = $label;
}
}
$viewer->assign("ACCOUNTINFORMATIONS", $Acc_Info);
$organization_logo_img = '';
if ($ismulticompany) {
$organization_logo_img = '$COMPANY_LOGO$';
} elseif (isset($organization_logoname)) {
$organization_logo_img = "
";
}
$viewer->assign("COMPANYLOGO", $organization_logo_img);
$sql_user_block = "SELECT blockid, blocklabel FROM vtiger_blocks WHERE tabid = ? ORDER BY sequence ASC";
$res_user_block = $adb->pquery($sql_user_block, array('29'));
$user_block_info_arr = array();
while ($row_user_block = $adb->fetch_array($res_user_block)) {
$sql_user_field = "SELECT fieldid, uitype FROM vtiger_field WHERE block = ? and (displaytype != ? OR uitype = ?) ORDER BY sequence ASC";
$res_user_field = $adb->pquery($sql_user_field, array($row_user_block['blockid'], '3', '55'));
$num_user_field = $adb->num_rows($res_user_field);
if ($num_user_field > 0) {
$user_field_id_array = array();
while ($row_user_field = $adb->fetch_array($res_user_field)) {
$user_field_id_array[] = $row_user_field['fieldid'];
}
$user_block_info_arr[$row_user_block['blocklabel']] = $user_field_id_array;
}
}
$user_mod_strings = $this->getModuleLanguageArray("Users");
$b = 0;
$User_Types = array("a" => "", "l" => "R_", "m" => "M_", "c" => "C_");
foreach ($user_block_info_arr as $block_label => $block_fields) {
$b++;
if (isset($user_mod_strings[$block_label]) and $user_mod_strings[$block_label] != "") {
$optgroup_value = $user_mod_strings[$block_label];
} else {
$optgroup_value = vtranslate($block_label, 'PDFMaker');
}
if (count($block_fields) > 0) {
$sql1 = "SELECT * FROM vtiger_field WHERE fieldid IN (" . generateQuestionMarks($block_fields) . ") AND presence != '1'";
$result1 = $adb->pquery($sql1, $block_fields);
while ($row1 = $adb->fetchByAssoc($result1)) {
$fieldname = $row1['fieldname'];
$fieldlabel = $row1['fieldlabel'];
$option_key = strtoupper("Users" . "_" . $fieldname);
if (isset($current_mod_strings[$fieldlabel]) and $current_mod_strings[$fieldlabel] != "") {
$option_value = $current_mod_strings[$fieldlabel];
} elseif (isset($app_strings[$fieldlabel]) and $app_strings[$fieldlabel] != "") {
$option_value = $app_strings[$fieldlabel];
} else {
$option_value = $fieldlabel;
}
foreach ($User_Types as $user_type => $user_prefix) {
if ($fieldname == 'currency_id') {
$User_Info[$user_type][$optgroup_value][$user_prefix . $option_key] = vtranslate('LBL_CURRENCY_ID', 'PDFMaker');
$User_Info[$user_type][$optgroup_value][$user_prefix . "USERS_CURRENCY_NAME"] = $option_value;
$User_Info[$user_type][$optgroup_value][$user_prefix . "USERS_CURRENCY_CODE"] = vtranslate('LBL_CURRENCY_CODE', 'PDFMaker');
$User_Info[$user_type][$optgroup_value][$user_prefix . "USERS_CURRENCY_SYMBOL"] = vtranslate('LBL_CURRENCY_SYMBOL', 'PDFMaker');
} else {
$User_Info[$user_type][$optgroup_value][$user_prefix . $option_key] = $option_value;
}
}
}
}
//variable RECORD ID added
if ($b == 1) {
$option_value = "Record ID";
$option_key = strtoupper("USERS_CRMID");
foreach ($User_Types as $user_type => $user_prefix) {
$User_Info[$user_type][$user_prefix . $optgroup_value][$option_key] = $option_value;
}
}
//end
}
// ****************************************** END: Company and User information **********************************
$viewer->assign("USERINFORMATIONS", $User_Info);
$viewer->assign('INVENTORYTERMSANDCONDITIONS', PDFMaker_Fields_Model::getInventoryOptions());
//custom functions
$viewer->assign("CUSTOM_FUNCTIONS", $this->getCustomFunctionsList());
//labels
$global_lang_labels = @array_flip($app_strings);
$global_lang_labels = @array_flip($global_lang_labels);
asort($global_lang_labels);
$viewer->assign("GLOBAL_LANG_LABELS", $global_lang_labels);
$module_lang_labels = array();
if ($select_module != "") {
$mod_lang = $this->getModuleLanguageArray($select_module);
$module_lang_labels = @array_flip($mod_lang);
$module_lang_labels = @array_flip($module_lang_labels);
asort($module_lang_labels);
} else {
$module_lang_labels[""] = vtranslate("LBL_SELECT_MODULE_FIELD", 'PDFMaker');
}
$viewer->assign("MODULE_LANG_LABELS", $module_lang_labels);
list($custom_labels, $languages) = $PDFMaker->GetCustomLabels();
$currLangId = "";
foreach ($languages as $langId => $langVal) {
if ($langVal["prefix"] == $current_language) {
$currLangId = $langId;
break;
}
}
$vcustom_labels = array();
if (count($custom_labels) > 0) {
foreach ($custom_labels as $oLbl) {
$currLangVal = $oLbl->GetLangValue($currLangId);
if ($currLangVal == "") {
$currLangVal = $oLbl->GetFirstNonEmptyValue();
}
$vcustom_labels[$oLbl->GetKey()] = $currLangVal;
}
asort($vcustom_labels);
} else {
$vcustom_labels = vtranslate("LBL_SELECT_MODULE_FIELD", 'PDFMaker');
}
$viewer->assign("CUSTOM_LANG_LABELS", $vcustom_labels);
$viewer->assign('HEADER_FOOTER_STRINGS', PDFMaker_Fields_Model::getHeaderFooterStrings());
//PDF FORMAT SETTINGS
$viewer->assign('FORMATS', PDFMaker_Fields_Model::getFormatOptions());
if (strpos($select_format, ';') > 0) {
$tmpArr = explode(';', $select_format);
$select_format = 'Custom';
$custom_format['width'] = $tmpArr[0];
$custom_format['height'] = $tmpArr[1];
$viewer->assign('CUSTOM_FORMAT', $custom_format);
}
$viewer->assign('SELECT_FORMAT', $select_format);
//PDF ORIENTATION SETTINGS
$viewer->assign('ORIENTATIONS', PDFMaker_Fields_Model::getOrientationOptions());
$viewer->assign('SELECT_ORIENTATION', $select_orientation);
//PDF STATUS SETTINGS
$Status = array(
"1" => $app_strings["Active"],
"0" => vtranslate("Inactive", 'PDFMaker')
);
$viewer->assign("STATUS", $Status);
$viewer->assign("IS_ACTIVE", $is_active);
if ($is_active == "0") {
$viewer->assign("IS_DEFAULT_DV_CHECKED", 'disabled="disabled"');
$viewer->assign("IS_DEFAULT_LV_CHECKED", 'disabled="disabled"');
} elseif ($is_default > 0) {
$is_default_bin = str_pad(base_convert($is_default, 10, 2), 2, "0", STR_PAD_LEFT);
$is_default_lv = substr($is_default_bin, 0, 1);
$is_default_dv = substr($is_default_bin, 1, 1);
if ($is_default_lv == "1") {
$viewer->assign("IS_DEFAULT_LV_CHECKED", 'checked="checked"');
}
if ($is_default_dv == "1") {
$viewer->assign("IS_DEFAULT_DV_CHECKED", 'checked="checked"');
}
}
$viewer->assign("ORDER", $order);
if ($is_portal == "1") {
$viewer->assign("IS_PORTAL_CHECKED", 'checked="checked"');
}
if ($is_listview == "1") {
$viewer->assign("IS_LISTVIEW_CHECKED", 'yes');
}
//PDF MARGIN SETTINGS
if ($request->has("templateid") && !$request->isEmpty("templateid")) {
$Margins = array(
"top" => $pdftemplateResult["margin_top"],
"bottom" => $pdftemplateResult["margin_bottom"],
"left" => $pdftemplateResult["margin_left"],
"right" => $pdftemplateResult["margin_right"]
);
$Decimals = array(
"point" => $pdftemplateResult["decimal_point"],
"decimals" => $pdftemplateResult["decimals"],
"thousands" => ($pdftemplateResult["thousands_separator"] != "sp" ? $pdftemplateResult["thousands_separator"] : " ")
);
} else {
$Margins = array("top" => "2", "bottom" => "2", "left" => "2", "right" => "2");
$Decimals = array("point" => ",", "decimals" => "2", "thousands" => " ");
}
$viewer->assign("MARGINS", $Margins);
$viewer->assign("DECIMALS", $Decimals);
//PDF HEADER / FOOTER
$header = '';
$footer = '';
if (!$request->isEmpty('templateid')) {
$header = $pdftemplateResult['header'];
$footer = $pdftemplateResult['footer'];
}
$viewer->assign("HEADER", $header);
$viewer->assign("FOOTER", $footer);
$viewer->assign('HEAD_FOOT_VARS', PDFMaker_Fields_Model::getHeaderFooterOptions());
$viewer->assign('DATE_VARS', PDFMaker_Fields_Model::getDateOptions());
//PDF FILENAME FIELDS
$PDFMakerFieldsModel = new PDFMaker_Fields_Model();
$viewer->assign('FILENAME_FIELDS', $PDFMakerFieldsModel->getFilenameFields());
$viewer->assign('NAME_OF_FILE', $nameOfFile);
$viewer->assign('PDF_PASSWORD', $PDF_password);
//Sharing
$viewer->assign('TEMPLATE_OWNERS', get_user_array(false));
$viewer->assign('TEMPLATE_OWNER', $owner);
$viewer->assign('SHARINGTYPES', PDFMaker_Fields_Model::getSharingTypeOptions());
$viewer->assign('SHARINGTYPE', $sharingType);
$viewer->assign('CMOD', $this->getModuleLanguageArray('Settings'));
//Constructing the Role Array
$viewer->assign('SELECTED_MEMBERS_GROUP', $sharingMemberArray);
$viewer->assign('MEMBER_GROUPS', PDFMaker_Fields_Model::getMemberGroups());
//Ignored picklist values
$viewer->assign('IGNORE_PICKLIST_VALUES', PDFMaker_Fields_Model::getIgnoredPicklistValues());
//formatable VATBLOCK content
foreach (array('VAT', 'CHARGES') as $blockType) {
$viewer->assign($blockType . 'BLOCK_TABLE', PDFMaker_Fields_Model::getBlockTable($blockType, $app_strings));
}
//Product block fields start
// Product bloc templates
$viewer->assign('PRODUCT_BLOC_TPL', PDFMaker_Fields_Model::getProductBlockTplOptions());
$ProductBlockFields = $PDFMaker->GetProductBlockFields($select_module);
foreach ($ProductBlockFields as $viewer_key => $pbFields) {
$viewer->assign($viewer_key, $pbFields);
}
//Product block fields end
//Related block postprocessing
$viewer->assign('RELATED_BLOCKS', $PDFMaker->GetRelatedBlocks($select_module));
//Related blocks end
if (!empty($templateid) || !empty($select_module)) {
$SelectModuleFields = $PDFMakerFieldsModel->getSelectModuleFields($select_module);
$RelatedModules = $PDFMakerFieldsModel->getRelatedModules($select_module);
$viewer->assign('RELATED_MODULES', $RelatedModules);
$viewer->assign('SELECT_MODULE_FIELD', $SelectModuleFields);
$smf_filename = $SelectModuleFields;
if (in_array($select_module, ['Invoice', 'Quotes', 'SalesOrder', 'PurchaseOrder', 'Issuecards', 'Receiptcards', 'Creditnote', 'StornoInvoice'])) {
unset($smf_filename['Details']);
}
$viewer->assign('SELECT_MODULE_FIELD_FILENAME', $smf_filename);
}
// header / footer display settings
$disp_optionsArr = array('DH_FIRST', 'DH_OTHER');
$disp_header_bin = str_pad(base_convert($disp_header, 10, 2), 2, '0', STR_PAD_LEFT);
for ($i = 0; $i < count($disp_optionsArr); $i++) {
if ('1' == substr($disp_header_bin, $i, 1)) {
$viewer->assign($disp_optionsArr[$i], 'checked="checked"');
}
}
if ('3' === $disp_header) {
$viewer->assign('DH_ALL', 'checked="checked"');
}
$disp_optionsArr = array('DF_FIRST', 'DF_LAST', 'DF_OTHER');
$disp_footer_bin = str_pad(base_convert($disp_footer, 10, 2), 3, '0', STR_PAD_LEFT);
for ($i = 0; $i < count($disp_optionsArr); $i++) {
if ('1' == substr($disp_footer_bin, $i, 1)) {
$viewer->assign($disp_optionsArr[$i], 'checked="checked"');
}
}
if ('7' === $disp_footer) {
$viewer->assign('DF_ALL', 'checked="checked"');
}
$viewer->assign('LISTVIEW_BLOCK_TPL', PDFMaker_Fields_Model::getListViewBlockOptions());
$version_type = ucfirst($PDFMakerModel->getVersionType());
$viewer->assign('VERSION', $version_type . " " . PDFMaker_Version_Helper::$version);
$viewer->assign('CATEGORY', getParentTab());
if (!empty($select_module) && 'professional' === $type) {
$selectedModuleName = $select_module;
$viewer->assign('SELECTED_MODULE_NAME', $selectedModuleName);
$viewer->assign('SOURCE_MODULE', $selectedModuleName);
}
$viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize());
$viewer->assign('MAX_UPLOAD_LIMIT_BYTES', Vtiger_Util_Helper::getMaxUploadSizeInBytes());
$viewer->assign('WATERMARK', $recordModel->getWatemarkData());
$viewer->assign('FONTAWESOMECLASS', PDFMaker_FontAwesome_Helper::getStyles());
$viewer->assign('FONTAWESOMEICONS', PDFMaker_FontAwesome_Helper::getIcons());
$viewer->assign('SIGNATURE_HEIGHT', isset($pdftemplateResult['signature_height']) ? $pdftemplateResult['signature_height'] : 60);
$viewer->assign('SIGNATURE_WIDTH', isset($pdftemplateResult['signature_width']) ? $pdftemplateResult['signature_width'] : 150);
$fonts = PDFMaker_Fonts_Model::getInstance();
$viewer->assign('FONTS_FACES', $fonts->getFontFaces());
$viewer->assign('FONTS', $fonts->getFontsString());
$viewer->view('Edit.tpl', 'PDFMaker');
}
/**
* Function to get array with module languages
* @param module name
* @return - Array of Module languages
*/
public function getModuleLanguageArray($module)
{
if (file_exists("languages/" . $this->cu_language . "/" . $module . ".php")) {
$current_mod_strings_lang = $this->cu_language;
} else {
$current_mod_strings_lang = "en_us";
}
$current_mod_strings_big = Vtiger_Language_Handler::getModuleStringsFromFile($current_mod_strings_lang, $module);
return $current_mod_strings_big['languageStrings'];
}
/**
* Function to get array with available custom functions
* @param none
* @return - Array of Module languages
*/
public function getCustomFunctionsList()
{
$ready = false;
$function_name = "";
$function_params = array();
$functions = array();
$files = glob('modules/PDFMaker/resources/functions/*.php');
foreach ($files as $file) {
$filename = $file;
$source = fread(fopen($filename, "r"), filesize($filename));
$tokens = token_get_all($source);
foreach ($tokens as $token) {
if (is_array($token)) {
if ($token[0] == T_FUNCTION) {
$ready = true;
} elseif ($ready) {
if ($token[0] == T_STRING && $function_name == "") {
$function_name = $token[1];
} elseif ($token[0] == T_VARIABLE) {
$function_params[] = $token[1];
}
}
} elseif ($ready && $token == "{") {
$ready = false;
$functions[$function_name] = $function_params;
$function_name = "";
$function_params = array();
}
}
}
$customFunctions[""] = vtranslate("LBL_PLS_SELECT", 'PDFMaker');
foreach ($functions as $funName => $params) {
$parString = implode("|", $params);
$custFun = trim($funName . "|" . str_replace("$", "", $parString), "|");
$customFunctions[$custFun] = $funName;
}
return $customFunctions;
}
/**
* @param Vtiger_Request $request
* @return array
*/
public function getHeaderScripts(Vtiger_Request $request)
{
$headerScriptInstances = parent::getHeaderScripts($request);
$moduleName = $request->getModule();
$jsFileNames = array(
'libraries.jquery.ckeditor.adapters.jquery',
'libraries.jquery.jquery_windowmsg',
"modules.$moduleName.resources.AdvanceFilter"
);
if (PDFMaker_Module_Model::isModuleActive('ITS4YouStyles')) {
$jsFileNames[] = 'modules.ITS4YouStyles.resources.CodeMirror.lib.codemirror';
$jsFileNames[] = 'modules.ITS4YouStyles.resources.CodeMirror.mode.javascript.javascript';
$jsFileNames[] = 'modules.ITS4YouStyles.resources.CodeMirror.addon.selection.active-line';
$jsFileNames[] = 'modules.ITS4YouStyles.resources.CodeMirror.addon.edit.matchbrackets';
$jsFileNames[] = 'modules.ITS4YouStyles.resources.CodeMirror.addon.runmode.runmode';
}
return array_merge($headerScriptInstances, $this->checkAndConvertJsScripts($jsFileNames));
}
/**
* @param Vtiger_Request $request
* @return array
*/
public function getHeaderCss(Vtiger_Request $request)
{
$headerCssInstances = parent::getHeaderCss($request);
$cssFileNames = array(
'~/layouts/v7/modules/PDFMaker/resources/Edit.css',
);
if (PDFMaker_Module_Model::isModuleActive('ITS4YouStyles')) {
$cssFileNames[] = '~/modules/ITS4YouStyles/resources/CodeMirror/lib/codemirror.css';
}
return array_merge($headerCssInstances, $this->checkAndConvertCssStyles($cssFileNames));
}
}