Example #1
0
 public function process(Vtiger_Request $request)
 {
     $db = PearDatabase::getInstance();
     if ($request->get('file') == 'ShowModuleIdField') {
         $html = ShowModuleIdField($request->get('selected_module'));
         $response = new Vtiger_Response();
         $response->setResult($html);
         $response->emit();
     } elseif ($request->get('file') == 'CheckForTemplates') {
         include "modules/OSSPdf/CheckForTemplates_function.php";
         $value = check();
         $response = new Vtiger_Response();
         $response->setResult($value);
         $response->emit();
     } elseif ($request->get('file') == 'PDFExport') {
         include "modules/OSSPdf/PDFExport.php";
     } else {
         if ($request->get('mode') == 'Popup') {
             $html = Popup($request);
             $response = new Vtiger_Response();
             $response->setResult($html);
             $response->emit();
         }
     }
 }
Example #2
0
function Popup($request)
{
    $db = PearDatabase::getInstance();
    $site_URL = vglobal('site_URL');
    $templates_dir = "modules/OSSPdf/templates";
    if ($request->get('filename') != NULL && $request->get('filename') != '') {
        $filename = $templates_dir . "/" . $_REQUEST['filename'];
        $handle = fopen($filename, "rb");
        print fread($handle, filesize($filename));
        fclose($handle);
    } else {
        if ($request->get('selected_module') != NULL && $request->get('selected_module') != '' && $request->get('selected_module') != 0 && $request->get('selected_module') != '') {
            $moduleid = $request->get('selected_module');
        } elseif ($request->get('moduleid') == NULL || $request->get('moduleid') == 0) {
            $wynik = $db->query("select tabid,name from vtiger_tab where isentitytype='1' and presence<> '2'", true);
            $moduleid = $db->query_result($wynik, 0, "tabid");
        } else {
            $moduleid = $request->get('moduleid');
        }
        $chosenid = $moduleid;
        $productmodule = 'yes';
        $pobierz = $db->query("select name from vtiger_tab where tabid = '{$moduleid}'", true);
        $modulename = $db->query_result($pobierz, 0, "name");
        $chosen_module = $modulename;
        $pobierz_bloki = $db->query("select blockid, blocklabel from vtiger_blocks where tabid = '{$moduleid}'", true);
        $field_list = array();
        for ($k = 0; $k < $db->num_rows($pobierz_bloki); $k++) {
            $blockid = $db->query_result($pobierz_bloki, $k, "blockid");
            $label = $db->query_result($pobierz_bloki, $k, "blocklabel");
            $pobierz_pola = $db->query("select fieldname,fieldlabel from vtiger_field where block='{$blockid}' and tabid = '{$moduleid}'", true);
            for ($i = 0; $i < $db->num_rows($pobierz_pola); $i++) {
                $field_list[vtranslate($label, $modulename)][$i]['name'] = $db->query_result($pobierz_pola, $i, "fieldname");
                $field_list[vtranslate($label, $modulename)][$i]['label'] = vtranslate($db->query_result($pobierz_pola, $i, "fieldlabel"), $modulename);
            }
        }
        $uitypelist = array('10', '58', '51', '57', '68', '59', '75', '80', '76', '73', '81', '53', '52', '78');
        $uitype2module = array('58' => 'Campaigns', '51' => 'Accounts', '57' => 'Contacts', '68' => 'Accounts;Contacts', '59' => 'Products', '75' => 'Vendors', '80' => 'SalesOrder', '76' => 'Potentials', '73' => 'Accounts', '81' => 'Vendors', '53' => 'Users', '52' => 'Users', '78' => 'Quotes');
        $pobierz = $db->query("select fieldid,uitype from vtiger_field where tabid = '{$moduleid}'", true);
        for ($i = 0; $i < $db->num_rows($pobierz); $i++) {
            $uitype = $db->query_result($pobierz, $i, "uitype");
            $fieldid = $db->query_result($pobierz, $i, "fieldid");
            if (in_array($uitype, $uitypelist)) {
                if ($uitype == '10') {
                    $wynik = $db->query("select relmodule from vtiger_fieldmodulerel where fieldid = '{$fieldid}'", true);
                    for ($k = 0; $k < $db->num_rows($wynik); $k++) {
                        $list[$db->query_result($wynik, $k, "relmodule")] = vtranslate($db->query_result($wynik, $k, "relmodule"), $db->query_result($wynik, $k, "relmodule"));
                    }
                } else {
                    $zmienna = $uitype2module[$uitype];
                    $zmienna = explode(';', $zmienna);
                    foreach ($zmienna as $value) {
                        $list[$value] = vtranslate($value, $value);
                    }
                }
            }
        }
        $modulename = '';
        if ($request->get('relatedmoduleid') != NULL) {
            $modulename = $request->get('relatedmoduleid');
        } else {
            if (count($list) > 0) {
                foreach ($list as $name => $record) {
                    $modulename = $name;
                    break;
                }
            }
        }
        //echo $modulename;
        if ($modulename != '') {
            $pobierz = $db->query("select tabid from vtiger_tab where name = '{$modulename}'", true);
            $moduleid = $db->query_result($pobierz, 0, "tabid");
            $pobierz_bloki = $db->query("select blockid, blocklabel from vtiger_blocks where tabid = '{$moduleid}'", true);
            $relatedfield_list = array();
            for ($k = 0; $k < $db->num_rows($pobierz_bloki); $k++) {
                $blockid = $db->query_result($pobierz_bloki, $k, "blockid");
                $label = $db->query_result($pobierz_bloki, $k, "blocklabel");
                $pobierz_pola = $db->query("select fieldname,fieldlabel from vtiger_field where block='{$blockid}' and tabid = '{$moduleid}'", true);
                for ($i = 0; $i < $db->num_rows($pobierz_pola); $i++) {
                    if ($modulename == 'Users' && ($db->query_result($pobierz_pola, $i, "fieldname") == 'accesskey' || $db->query_result($pobierz_pola, $i, "fieldname") == 'user_password' || $db->query_result($pobierz_pola, $i, "fieldname") == 'confirm_password')) {
                    } else {
                        $relatedfield_list[vtranslate($label, $modulename)][$i]['name'] = $db->query_result($pobierz_pola, $i, "fieldname");
                        $relatedfield_list[vtranslate($label, $modulename)][$i]['label'] = vtranslate($db->query_result($pobierz_pola, $i, "fieldlabel"), $modulename);
                    }
                }
            }
        }
        if (count($list) == 0) {
            $list[0] = vtranslate('LBL_empty', 'OSSPdf');
        }
        $templates = array();
        if (is_dir($templates_dir)) {
            if ($handle = opendir($templates_dir)) {
                while ($file = readdir($handle)) {
                    if (strstr($file, ".html")) {
                        $templates[] = $file;
                    }
                }
                closedir($handle);
            }
        }
        $pobierz = $db->query("select logoname from vtiger_organizationdetails", true);
        $logo = $db->query_result($pobierz, 0, "logoname");
        $company = array('company_organizationname' => vtranslate('LBL_ORGANIZATION_NAME', 'OSSPdf'), 'storage/Logo/' . $logo => vtranslate('LBL_ORGANIZATION_LOGO', 'OSSPdf'), 'company_address' => vtranslate('LBL_ORGANIZATION_ADDRESS', 'OSSPdf'), 'company_city' => vtranslate('LBL_ORGANIZATION_CITY', 'OSSPdf'), 'company_state' => vtranslate('LBL_ORGANIZATION_STATE', 'OSSPdf'), 'company_code' => vtranslate('LBL_ORGANIZATION_CODE', 'OSSPdf'), 'company_country' => vtranslate('LBL_ORGANIZATION_COUNTRY', 'OSSPdf'), 'company_phone' => vtranslate('LBL_ORGANIZATION_PHONE', 'OSSPdf'), 'company_fax' => vtranslate('LBL_ORGANIZATION_FAX', 'OSSPdf'), 'company_vatid' => vtranslate('LBL_ORGANIZATION_VAT', 'OSSPdf'), 'company_website' => vtranslate('LBL_ORGANIZATION_WEBSITE', 'OSSPdf'));
        $modtab = array(20, 21, 22, 23);
        // lista funkcji specjalnych które mają pojawić się tylko w nietórych modułach
        $funtab = array('amount_in_words', 'replaceProductList', 'replaceProductTable', 'replaceProductTableNP');
        $PRODMODULE = array();
        $dir = dir("modules/OSSPdf/special_functions");
        while ($file = $dir->read()) {
            if ($file != '.' && $file != '..' && $file != 'example.php') {
                include "modules/OSSPdf/special_functions/" . $file;
                $functionname = str_replace(".php", "", $file);
                if (in_array('all', $permitted_modules)) {
                    $PRODMODULE["#special_function#{$functionname}#end_special_function#"] = vtranslate($functionname, "OSSPdf");
                } else {
                    if (in_array(getTabModuleName($chosenid), $permitted_modules)) {
                        $PRODMODULE["#special_function#{$functionname}#end_special_function#"] = vtranslate($functionname, "OSSPdf");
                    }
                }
            }
        }
        $pobierz = "select vtiger_reportmodules.reportmodulesid as id, vtiger_report.reportname as name from vtiger_reportmodules\n        INNER JOIN vtiger_report on (vtiger_report.reportid = vtiger_reportmodules.reportmodulesid ) where vtiger_reportmodules.primarymodule like '%{$chosen_module}'\tOR vtiger_reportmodules.secondarymodules like '%{$chosen_module}%'";
        $zapytanie = $db->query($pobierz, true);
        $reports = array();
        for ($i = 0; $i < $db->num_rows($zapytanie); $i++) {
            $reports[$db->query_result($zapytanie, $i, "id")] = vtranslate($db->query_result($zapytanie, $i, "name"), "Reports");
        }
        $viewer = new Vtiger_Viewer();
        $viewer->assign("MODULE", $modulename);
        $viewer->assign("TABLIST", ShowModuleIdField($request->get('selected_module'), true));
        $viewer->assign("SELECTED_MODULE", $request->get('selected_module'));
        $viewer->assign("PRODMODULE", $PRODMODULE);
        $viewer->assign('ProductModule', $productmodule);
        $viewer->assign("ChosenModule", $request->get('selected_module'));
        $viewer->assign("RELMODULE", $list);
        $viewer->assign("DEFAULT_FIELDS", $field_list);
        $viewer->assign("RELATEDFIELDS", $relatedfield_list);
        $viewer->assign("TEMPLATES", $templates);
        $viewer->assign("COMPANY", $company);
        $viewer->assign("REPORTS", $reports);
        $viewer->assign("LBL_Label", vtranslate("LBL_Label", 'OSSPdf'));
        $viewer->assign("LBL_Field", vtranslate("LBL_Field", 'OSSPdf'));
        $viewer->assign("LBL_CHOSENMODULE", vtranslate("LBL_CHOSENMODULE", 'OSSPdf'));
        $viewer->assign("LBL_INSERTREPORT", vtranslate("LBL_INSERTREPORT", 'OSSPdf'));
        $viewer->assign("LBL_COMPANY_DETAILS", vtranslate("LBL_COMPANY_DETAILS", "Settings"));
        $viewer->assign("LBL_PRODUCT_MODULE", vtranslate("LBL_PRODUCT_MODULE", 'OSSPdf'));
        $viewer->assign("LBL_DEFAULT_FIELDS", vtranslate("LBL_DEFAULT_FIELDS", 'OSSPdf'));
        $viewer->assign("LBL_RELATED_MODULE", vtranslate("LBL_RELATED_MODULE", 'OSSPdf'));
        $viewer->assign("LBL_RELATED_FIELDS", vtranslate("LBL_RELATED_FIELDS", 'OSSPdf'));
        $viewer->assign("LBL_GET_VARIABLE", vtranslate("LBL_GET_VARIABLE", 'OSSPdf'));
        $viewer->assign("LBL_SET_DEFAULT_TEMPLATE", vtranslate("LBL_SET_DEFAULT_TEMPLATE", 'OSSPdf'));
        $viewer->assign("LBL_SELECT_TEMPLATE", vtranslate("LBL_SELECT_TEMPLATE", 'OSSPdf'));
        $viewer->assign("LBL_SELECT_FIELD", vtranslate("LBL_SELECT_FIELD", 'OSSPdf'));
        if ($request->get('changedindex') == 'true') {
            return $viewer->fetch('modules/OSSPdf/selectlist.tpl');
        } elseif ($request->get('changerelatedmodule') == 'true') {
            return $viewer->fetch('modules/OSSPdf/newvalues.tpl');
        } else {
            return $viewer->fetch('modules/OSSPdf/popup.tpl');
        }
    }
}