################################################# EXPRESS INSTALLATION ################################################# * Copy files from ~CUSTOMERPORTAL source folder to the CUSTOMERPORTAL root folder and files from ~VTIGER source folder to the VTIGER root folder. * Rewrite if necessary. ************************************************************************************************************************************ ################################################# CUSTOM INSTALLATION ################################################# * FILE ~CUSTOMERPORTAL_ROOT/index.php * AROUND LINE 96 REPLACE $params = array('id' => "$id", 'block'=>"$block", 'contactid'=>"$customerid",'sessionid'=>"$sessionid"); $fileContent = $client->call('get_pdf', $params, $Server_Path, $Server_Path); $fileType ='application/pdf'; $fileContent = $fileContent[0]; $filesize = strlen(base64_decode($fileContent)); $filename = "$block.pdf"; * WITH FOLLOWING: $params = array('id' => "$id", 'block'=>"$block", 'contactid'=>"$customerid",'sessionid'=>"$sessionid", 'language'=>$_SESSION["portal_login_language"]); $fileContent = $client->call('get_pdfmaker_pdf', $params, $Server_Path, $Server_Path); //if something went wrong within the get_pdf_maker function then call the standard function get_pdf if($fileContent[0] != "failure") { $fileType ='application/pdf'; $filename = $fileContent[0]; $fileContent = $fileContent[1]; $filesize = strlen(base64_decode($fileContent)); } else { $params = array('id' => "$id", 'block'=>"$block", 'contactid'=>"$customerid",'sessionid'=>"$sessionid"); $fileContent = $client->call('get_pdf', $params, $Server_Path, $Server_Path); $fileType ='application/pdf'; $fileContent = $fileContent[0]; $filesize = strlen(base64_decode($fileContent)); $filename = "$block.pdf"; } ************************************************************************************************************************************ * FILE soap/customerportal.php * AROUND LINE 274 AFTER $server->register( 'get_pdf', array('id'=>'xsd:string','block'=>'xsd:string','contactid'=>'xsd:string','sessionid'=>'xsd:string'), array('return'=>'tns:field_datalist_array'), $NAMESPACE); * ADD FOLLOWING: $server->register( 'get_pdfmaker_pdf', array('id'=>'xsd:string','block'=>'xsd:string','contactid'=>'xsd:string','sessionid'=>'xsd:string','language'=>'xsd:string'), array('return'=>'tns:field_datalist_array'), $NAMESPACE); * AROUND LINE 1980 BEFORE function get_salesorder_name($id) * ADD FOLLOWING: function get_pdfmaker_pdf($id,$block,$customerid,$sessionid,$language) { if(!file_exists("modules/PDFMaker/models/checkGenerate.php")) return array("failure"); global $adb; global $vtiger_current_version, $site_URL; global $current_user,$log,$default_language; global $currentModule,$mod_strings,$app_strings,$app_list_strings; $log->debug("Entering customer portal function get_pdfmaker_pdf"); $isPermitted = check_permission($customerid,$block,$id); if($isPermitted == false) { return array("failure"); } if(!validateSession($customerid,$sessionid)) return array("failure"); require_once("config.inc.php"); $current_user = Users::getActiveAdminUser(); $currentModule = $block; $current_language = $default_language; $app_strings = return_application_language($current_language); $app_list_strings = return_app_list_strings_language($current_language); $mod_strings = return_module_language($current_language, $currentModule); $sql = "SELECT a.templateid FROM vtiger_pdfmaker AS a INNER JOIN vtiger_pdfmaker_settings AS b USING(templateid) WHERE a.module=? AND is_portal='1'"; $params = array($currentModule); $result = $adb->pquery($sql, $params); $templateid = $adb->query_result($result,0,"templateid"); if($templateid == "") return array("failure"); $_REQUEST['relmodule']= $block; $_REQUEST['record']= $id; $_REQUEST['commontemplateid']= $templateid; $_REQUEST['is_portal']= 'true'; if(file_exists("languages/".$language."/".$block.".php")) $_REQUEST['language'] = $language; else $_REQUEST['language'] = "en_us"; $request = new Vtiger_Request($_REQUEST, $_REQUEST); include_once("modules/PDFMaker/models/checkGenerate.php"); $checkGenerate = new PDFMaker_checkGenerate_Model(); $Data = $checkGenerate->generate($request); if (isset($Data["content"]) && $Data["content"] != "") { $filecontents[] = $Data["filename"]; $filecontents[] = base64_encode($Data["content"]); } else { return array("failure"); } $log->debug("Exiting customer portal function get_pdfmaker_pdf"); return $filecontents; }