arpit
7 February 2015 09:47
1
I have done the below steps:
Here’s a detailed guide to how to generate a PDF out of a custom module for future reference
Add your Custom Module in the Type dropdown of PDF Template. This will help you select your custom module for creating a sample. You do this by editing the “'pdf_template_type_dom” through the dropdown editor from the admin panel. The “item name” must be the name of the module directory.
Add the default “Generate Letter” link in the actions dropdown in the detail view page of the custom module. To do this, you have to first edit the /custom/modules/Custom_Module/metadata/detailviewdefs.php file of the custom module and include
‘AOS_GENLET’ =>
array (
‘customCode’ => ‘’,
),
in the buttons array.
Next on, add the generate letter functionality. To do this, edit the view.detail.php file in custom/module//Custom_Module/views directory. If there is no such file or directory create it. You can look at archive.h2ik.co/2012/03/sugarcrm-upgrade...way-to-extend-views/ to how to create the file. Now add the following piece of code in the display() method,
require_once(‘modules/AOS_PDF_Templates/formLetter.php’);
formLetter::DVPopupHtml(‘Custom_Module’);
Now, generate letter option seems visible but when i click on that noting is happen .
might be it is unable to call any function
please help…
adr
7 February 2015 10:15
2
HI ,
i if i assume correctly you are trying to add print as PDF option in custom module
see the post
See the last post it works for me !
i hope this helps !
Thanks for your time and support
arpit
9 February 2015 08:47
3
Hi,
As you suggested
please find the attached screenshot for the files which i have modified to add the print pdf functionality
adr
9 February 2015 09:18
4
Hi arpit ,
As i have suggested the post , i think you did not follow the third step :dry:
anyways try to add this to function displaypopuphtml(); and populateQuotetemplates()
here it is
function populateQuoteTemplates(){
global $app_list_strings, $current_user;
$sql = "SELECT id, name FROM aos_pdf_templates WHERE deleted=0 AND type='o_order' AND active = 1";
$res = $this->bean->db->query($sql);
$app_list_strings['template_ddown_c_list'] = array();
while($row = $this->bean->db->fetchByAssoc($res)){
if($row['id']){
$app_list_strings['template_ddown_c_list'][$row['id']] = $row['name'];
}
}
}
function displayPopupHtml(){
global $app_list_strings,$app_strings, $mod_strings;
$templates = array_keys($app_list_strings['template_ddown_c_list']);
if($templates){
echo ' <div id="popupDiv_ara" style="display:none;position:fixed;top: 39%; left: 41%;opacity:1;z-index:9999;background:#FFFFFF;">
<form id="popupForm" action="index.php?entryPoint=generatePdf" method="post">
<table style="border: #000 solid 2px;padding-left:40px;padding-right:40px;padding-top:10px;padding-bottom:10px;font-size:110%;" >
<tr height="20">
<td colspan="2">
<b>'.$app_strings['LBL_SELECT_TEMPLATE'].':-</b>
</td>
</tr>';
foreach($templates as $template){
if(!$template){
continue;
}
$template = str_replace('^','',$template);
$js = "document.getElementById('popupDivBack_ara').style.display='none';document.getElementById('popupDiv_ara').style.display='none';var form=document.getElementById('popupForm');if(form!=null){form.templateID.value='".$template."';form.submit();}else{alert('Error!');}";
echo '<tr height="20">
<td width="17" valign="center"><a href="#" onclick="'.$js.'"><img src="themes/default/images/txt_image_inline.gif" width="16" height="16" /></a></td>
<td><b><a href="#" onclick="'.$js.'">'.$app_list_strings['template_ddown_c_list'][$template].'</a></b></td></tr>';
}
echo ' <input type="hidden" name="templateID" value="" />
<input type="hidden" name="task" value="pdf" />
<input type="hidden" name="module" value="'.$_REQUEST['module'].'" />
<input type="hidden" name="uid" value="'.$this->bean->id.'" />
</form>
<tr style="height:10px;"><tr><tr><td colspan="2"><button style=" display: block;margin-left: auto;margin-right: auto" onclick="document.getElementById(\'popupDivBack_ara\').style.display=\'none\';document.getElementById(\'popupDiv_ara\').style.display=\'none\';return false;">Cancel</button></td></tr>
</table>
</div>
<div id="popupDivBack_ara" onclick="this.style.display=\'none\';document.getElementById(\'popupDiv_ara\').style.display=\'none\';" style="top:0px;left:0px;position:fixed;height:100%;width:100%;background:#000000;opacity:0.5;display:none;vertical-align:middle;text-align:center;z-index:9998;">
</div>
<script>
function showPopup(task){
var form=document.getElementById(\'popupForm\');
var ppd=document.getElementById(\'popupDivBack_ara\');
var ppd2=document.getElementById(\'popupDiv_ara\');
if('.count($templates).' == 1){
form.task.value=task;
form.templateID.value=\''.$template.'\';
form.submit();
}else if(form!=null && ppd!=null && ppd2!=null){
ppd.style.display=\'block\';
ppd2.style.display=\'block\';
form.task.value=task;
}else{
alert(\'Error!\');
}
}
</script>';
}
else{
echo '<script>
function showPopup(task){
alert(\''.$mod_strings['LBL_NO_TEMPLATE'].'\');
}
</script>';
}
}
and don’t forget to call it under display function like this
$this->populateQuoteTemplates();
$this->displayPopupHtml();
parent::display();
don’t forget to generate PDFtemplate for respective module under PDFtemplate module !
you can also include the file above the class .
and add file mpdf.php if you are useing it !
and i hope u need to understand the solution and use it according to your needs . the post link is working fine try to understand it instead of copy paste !