Example #1
0
 function save_module()
 {
     global $adb;
     //in ajax save we should not call this function, because this will delete all the existing product values
     if ($_REQUEST['action'] != 'QuotesAjax' && $_REQUEST['ajxaction'] != 'DETAILVIEW' && $_REQUEST['action'] != 'MassEditSave' && $_REQUEST['action'] != 'ProcessDuplicates' && $_REQUEST['action'] != 'SaveAjax' && $this->isLineItemUpdate != false) {
         //Based on the total Number of rows we will save the product relationship with this entity
         saveInventoryProductDetails($this, 'Quotes');
     }
     // Update the currency id and the conversion rate for the quotes
     $update_query = "update vtiger_quotes set currency_id=?, conversion_rate=? where quoteid=?";
     $update_params = array($this->column_fields['currency_id'], $this->column_fields['conversion_rate'], $this->id);
     $adb->pquery($update_query, $update_params);
     $tot_no_prod = $_REQUEST['totalProductCount'];
     $calculationList = array();
     for ($i = 1; $i <= $tot_no_prod; $i++) {
         $calculationsid = vtlib_purify($_REQUEST['calculationId' . $i]);
         $calculationsid_old = vtlib_purify($_REQUEST['old_calculationId' . $i]);
         if ($calculationsid_old != '' && !in_array($calculationsid_old, $calculationList) && $calculationsid != $calculationsid_old) {
             $this->delete_related_module('Quotes', $this->id, 'Calculations', $calculationsid_old);
         }
         if ($calculationsid != '') {
             $calculationList[] = $calculationsid;
             $this->save_related_module('Quotes', $this->id, 'Calculations', $calculationsid);
         }
     }
 }
Example #2
0
 public function requestForgotPassword($request)
 {
     $request = new Vtiger_Request($request);
     $adb = PearDatabase::getInstance();
     $username = vtlib_purify($request->get('user_name'));
     $result = $adb->pquery('select id,email1 from vtiger_users where user_name = ? ', array($username));
     if ($adb->num_rows($result) > 0) {
         $email = $adb->query_result($result, 0, 'email1');
     }
     if (strcasecmp($request->get('emailId'), $email) === 0) {
         $userId = $adb->query_result($result, 0, 'id');
         $time = time();
         $options = array('handler_path' => 'modules/Users/handlers/ForgotPassword.php', 'handler_class' => 'Users_ForgotPassword_Handler', 'handler_function' => 'changePassword', 'handler_data' => array('username' => $username, 'email' => $email, 'time' => $time, 'hash' => md5($username . $time)));
         $trackURL = Vtiger_ShortURL_Helper::generateURL($options);
         $data = ['sysname' => 'UsersForgotPassword', 'to_email' => $email, 'module' => 'Users', 'record' => $userId, 'trackURL' => $trackURL];
         $recordModel = Vtiger_Record_Model::getCleanInstance('OSSMailTemplates');
         $status = $recordModel->sendMailFromTemplate($data);
         $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login';
         if ($status === 1) {
             header('Location:  ' . $site_URL . '&status=1');
         } else {
             header('Location:  ' . $site_URL . '&statusError=1');
         }
     } else {
         $site_URL = vglobal('site_URL') . 'index.php?modules=Users&view=Login';
         header('Location:  ' . $site_URL . '&fpError=1');
     }
 }
function vtDeleteWorkflow($adb, $request)
{
    $util = new VTWorkflowUtils();
    $module = new VTWorkflowApplication("deltetask");
    $mod = return_module_language($current_language, $module->name);
    if (!$util->checkAdminAccess()) {
        $errorUrl = $module->errorPageUrl($mod['LBL_ERROR_NOT_ADMIN']);
        $util->redirectTo($errorUrl, $mod['LBL_ERROR_NOT_ADMIN']);
        return;
    }
    $wm = new VTTaskManager($adb);
    $wm->deleteTask($request['task_id']);
    if (isset($request["return_url"])) {
        $returnUrl = vtlib_purify($request["return_url"]);
    } else {
        $returnUrl = $module->editWorkflowUrl($wf->id);
    }
    ?>
		<script type="text/javascript" charset="utf-8">
			window.location="<?php 
    echo $returnUrl;
    ?>
";
		</script>
		<a href="<?php 
    echo $returnUrl;
    ?>
">Return</a>
		<?php 
}
function RBSearch($module)
{
    global $log;
    $log->debug("Entering RBSearch(" . $module . ") method ...");
    $url_string = '';
    if (isset($_REQUEST['search_field']) && $_REQUEST['search_field'] != "") {
        $search_column = vtlib_purify($_REQUEST['search_field']);
    }
    if (isset($_REQUEST['search_text']) && $_REQUEST['search_text'] != "") {
        $search_string = $_REQUEST['search_text'];
    }
    if (isset($_REQUEST['searchtype']) && $_REQUEST['searchtype'] != "") {
        $search_type = vtlib_purify($_REQUEST['searchtype']);
        if ($search_type == "BasicSearch") {
            $where = basicRBsearch($module, $search_column, $search_string);
        } else {
        }
        $url_string = "&search_field=" . $search_column . "&search_text=" . $search_string . "&searchtype=BasicSearch";
        if (isset($_REQUEST['type']) && $_REQUEST['type'] != '') {
            $url_string .= "&type=" . vtlib_purify($_REQUEST['type']);
        }
        return $where . "#@@#" . $url_string;
        $log->debug("Exiting RBSearch method ...");
    }
}
Example #5
0
 /**
  * Function to get relation query for particular module with function name
  * @param <record> $recordId
  * @param <String> $functionName
  * @param Vtiger_Module_Model $relatedModule
  * @return <String>
  */
 public function getRelationQuery($recordId, $functionName, $relatedModule, $relationModel = false)
 {
     if ($functionName === 'get_activities') {
         $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
         $query = "SELECT CASE WHEN (vtiger_users.user_name not like '') THEN {$userNameSql} ELSE vtiger_groups.groupname END AS user_name,\n\t\t\t\t\t\tvtiger_crmentity.*, vtiger_activity.activitytype, vtiger_activity.subject, vtiger_activity.date_start, vtiger_activity.time_start,\n\t\t\t\t\t\tvtiger_activity.recurringtype, vtiger_activity.due_date, vtiger_activity.time_end, vtiger_activity.visibility,\n\t\t\t\t\t\tCASE WHEN (vtiger_activity.activitytype = 'Task') THEN (vtiger_activity.status) ELSE (vtiger_activity.eventstatus) END AS status\n\t\t\t\t\t\tFROM vtiger_activity\n\t\t\t\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid\n\t\t\t\t\t\tLEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid\n\t\t\t\t\t\tLEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\t\t\t\t\tWHERE vtiger_crmentity.deleted = 0 AND vtiger_activity.process = " . $recordId;
         $time = vtlib_purify($_REQUEST['time']);
         if ($time == 'current') {
             $query .= " AND ((vtiger_activity.activitytype='Task' and vtiger_activity.status not in ('Completed','Deferred'))\n\t\t\t\tOR (vtiger_activity.activitytype not in ('Emails','Task') and vtiger_activity.eventstatus not in ('','Held')))";
         }
         if ($time == 'history') {
             $query .= " AND ((vtiger_activity.activitytype='Task' and vtiger_activity.status in ('Completed','Deferred'))\n\t\t\t\tOR (vtiger_activity.activitytype not in ('Emails','Task') and  vtiger_activity.eventstatus in ('','Held')))";
         }
         $relatedModuleName = $relatedModule->getName();
         $query .= $this->getSpecificRelationQuery($relatedModuleName);
         $instance = CRMEntity::getInstance($relatedModuleName);
         $securityParameter = $instance->getUserAccessConditionsQuerySR($relatedModuleName);
         if ($securityParameter != '') {
             $sql .= $securityParameter;
         }
     } elseif ($functionName === 'get_mails' && $relatedModule->getName() == 'OSSMailView') {
         $query = OSSMailView_Record_Model::getMailsQuery($recordId, $relatedModule->getName());
     } else {
         $query = parent::getRelationQuery($recordId, $functionName, $relatedModule, $relationModel);
     }
     return $query;
 }
Example #6
0
 /**
  * Function to get relation query for particular module with function name
  * @param <record> $recordId
  * @param <String> $functionName
  * @param Vtiger_Module_Model $relatedModule
  * @return <String>
  */
 public function getRelationQuery($recordId, $functionName, $relatedModule, $relationModel = false)
 {
     if ($functionName === 'get_activities') {
         $focus = CRMEntity::getInstance($this->getName());
         $focus->id = $recordId;
         $entityIds = $focus->getRelatedContactsIds();
         $entityIds[] = $recordId;
         $entityIds = implode(',', $entityIds);
         $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
         $query = "SELECT CASE WHEN (vtiger_users.user_name not like '') THEN {$userNameSql} ELSE vtiger_groups.groupname END AS user_name,\n\t\t\t\t\t\tvtiger_crmentity.*, vtiger_activity.activitytype, vtiger_activity.subject, vtiger_activity.date_start, vtiger_activity.time_start,\n\t\t\t\t\t\tvtiger_activity.recurringtype, vtiger_activity.due_date, vtiger_activity.time_end, vtiger_activity.visibility, \n\t\t\t\t\t\tvtiger_activity.status AS status\n\t\t\t\t\t\tFROM vtiger_activity\n\t\t\t\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid\n\t\t\t\t\t\tLEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid\n\t\t\t\t\t\tLEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\t\t\t\tWHERE vtiger_crmentity.deleted = 0 AND vtiger_activity.link IN (" . $entityIds . ')';
         $time = vtlib_purify($_REQUEST['time']);
         if ($time == 'current') {
             $stateActivityLabels = Calendar_Module_Model::getComponentActivityStateLabel('current');
             $query .= " AND (vtiger_activity.activitytype NOT IN ('Emails') AND vtiger_activity.status IN ('" . implode("','", $stateActivityLabels) . "'))";
         }
         if ($time == 'history') {
             $stateActivityLabels = Calendar_Module_Model::getComponentActivityStateLabel('history');
             $query .= " AND (vtiger_activity.activitytype NOT IN ('Emails') AND vtiger_activity.status IN ('" . implode("','", $stateActivityLabels) . "'))";
         }
         $relatedModuleName = $relatedModule->getName();
         $query .= $this->getSpecificRelationQuery($relatedModuleName);
         $instance = CRMEntity::getInstance($relatedModuleName);
         $securityParameter = $instance->getUserAccessConditionsQuerySR($relatedModuleName, false, $recordId);
         if ($securityParameter != '') {
             $query .= $securityParameter;
         }
         // There could be more than one contact for an activity.
         $query .= ' GROUP BY vtiger_activity.activityid';
     } elseif ($functionName === 'get_mails' && $relatedModule->getName() == 'OSSMailView') {
         $query = OSSMailView_Record_Model::getMailsQuery($recordId, $relatedModule->getName());
     } else {
         $query = parent::getRelationQuery($recordId, $functionName, $relatedModule, $relationModel);
     }
     return $query;
 }
 /**
  * Process the request for Folder opertions
  * @global <type> $list_max_entries_per_page
  * @param MailManager_Request $request
  * @return MailManager_Response
  */
 function process(MailManager_Request $request)
 {
     global $list_max_entries_per_page, $current_user;
     $response = new Vtiger_Response();
     if ('open' == $request->getOperationArg()) {
         $q = $request->get('q');
         $foldername = $request->get('_folder');
         $type = $request->get('type');
         $connector = $this->getConnector($foldername);
         $folder = $connector->folderInstance($foldername);
         if (empty($q)) {
             $connector->folderMails($folder, intval($request->get('_page', 0)), $list_max_entries_per_page);
         } else {
             if (empty($type)) {
                 $type = 'ALL';
             }
             if ($type == 'ON') {
                 $dateFormat = $current_user->date_format;
                 if ($dateFormat == 'mm-dd-yyyy') {
                     $dateArray = explode('-', $q);
                     $temp = $dateArray[0];
                     $dateArray[0] = $dateArray[1];
                     $dateArray[1] = $temp;
                     $q = implode('-', $dateArray);
                 }
                 $query = date('d M Y', strtotime($q));
                 $q = '' . $type . ' "' . vtlib_purify($query) . '"';
             } else {
                 $q = '' . $type . ' "' . vtlib_purify($q) . '"';
             }
             $connector->searchMails($q, $folder, intval($request->get('_page', 0)), $list_max_entries_per_page);
         }
         $folderList = $connector->getFolderList();
         $viewer = $this->getViewer();
         $viewer->assign('TYPE', $type);
         $viewer->assign('QUERY', $request->get('q'));
         $viewer->assign('FOLDER', $folder);
         $viewer->assign('FOLDERLIST', $folderList);
         $viewer->assign('SEARCHOPTIONS', self::getSearchOptions());
         $viewer->assign("JS_DATEFORMAT", parse_calendardate(getTranslatedString('NTC_DATE_FORMAT')));
         $response->setResult($viewer->fetch($this->getModuleTpl('FolderOpen.tpl')));
     } elseif ('drafts' == $request->getOperationArg()) {
         $q = $request->get('q');
         $type = $request->get('type');
         $page = intval($request->get('_page', 0));
         $connector = $this->getConnector('__vt_drafts');
         $folder = $connector->folderInstance();
         if (empty($q)) {
             $draftMails = $connector->getDrafts($page, $list_max_entries_per_page, $folder);
         } else {
             $draftMails = $connector->searchDraftMails($q, $type, $page, $list_max_entries_per_page, $folder);
         }
         $viewer = $this->getViewer();
         $viewer->assign('MAILS', $draftMails);
         $viewer->assign('FOLDER', $folder);
         $viewer->assign('SEARCHOPTIONS', MailManager_DraftController::getSearchOptions());
         $response->setResult($viewer->fetch($this->getModuleTpl('FolderDrafts.tpl')));
     }
     return $response;
 }
Example #8
0
/**	function used to show the error message occured during import process
 *	@param	string	$message - Error message to display in the screen, where the passed error message will be displayed in screen using Importerror.tpl file
 */
function show_error_import($message)
{
    global $import_mod_strings;
    global $theme;
    global $log;
    global $mod_strings;
    global $app_strings;
    $theme_path = "themes/" . $theme . "/";
    $image_path = $theme_path . "images/";
    $log->info("Upload Error");
    $smarty = new vtigerCRM_Smarty();
    $smarty->assign("MOD", $mod_strings);
    $smarty->assign("APP", $app_strings);
    if (isset($_REQUEST['return_module'])) {
        $smarty->assign("RETURN_MODULE", vtlib_purify($_REQUEST['return_module']));
    }
    if (isset($_REQUEST['return_action'])) {
        $smarty->assign("RETURN_ACTION", vtlib_purify($_REQUEST['return_action']));
    }
    $smarty->assign("THEME", $theme);
    $category = getParenttab();
    $smarty->assign("CATEGORY", $category);
    $smarty->assign("IMAGE_PATH", $image_path);
    $smarty->assign("PRINT_URL", "phprint.php?jt=" . session_id() . $GLOBALS['request_string']);
    $smarty->assign("MODULE", vtlib_purify($_REQUEST['module']));
    $smarty->assign("MESSAGE", $message);
    $smarty->display('Importerror.tpl');
}
Example #9
0
 /**
  * Get key value (otherwise default value)
  */
 function get($key, $defvalue = '')
 {
     $value = $defvalue;
     if (isset($this->valuemap[$key])) {
         $value = $this->valuemap[$key];
     }
     if ($value === '' && isset($this->defaultmap[$key])) {
         $value = $this->defaultmap[$key];
     }
     $isJSON = false;
     if (is_string($value)) {
         // NOTE: Zend_Json or json_decode gets confused with big-integers (when passed as string)
         // and convert them to ugly exponential format - to overcome this we are performin a pre-check
         if (strpos($value, "[") === 0 || strpos($value, "{") === 0) {
             $isJSON = true;
         }
     }
     if ($isJSON) {
         $oldValue = Zend_Json::$useBuiltinEncoderDecoder;
         Zend_Json::$useBuiltinEncoderDecoder = false;
         $decodeValue = Zend_Json::decode($value);
         if (isset($decodeValue)) {
             $value = $decodeValue;
         }
         Zend_Json::$useBuiltinEncoderDecoder = $oldValue;
     }
     //Handled for null because vtlib_purify returns empty string
     if (!empty($value)) {
         $value = vtlib_purify($value);
     }
     return $value;
 }
Example #10
0
 function process(Mobile_API_Request $request)
 {
     $mode = $request->get('mode');
     $module = $this->cachedModule($request->get('module'));
     $searchIn = $this->cachedSearchFields($module->name());
     if ($mode == 'update') {
         $searchIn = array();
         foreach ($_REQUEST as $k => $v) {
             if (preg_match("/field_(.*)/i", $k, $m)) {
                 $searchIn[] = vtlib_purify($m[1]);
             }
         }
         $this->cacheSearchFields($module->name(), $searchIn);
         header("Location: index.php?_operation=listModuleRecords&module={$module->name()}&mode=search");
         exit;
     }
     $request->setDefault('record', "{$module->id()}x0");
     $wsResponse = parent::process($request);
     $wsResponseResult = $wsResponse->getResult();
     $templateRecord = Mobile_UI_ModuleRecordModel::buildModelFromResponse($wsResponseResult['record']);
     $viewer = new Mobile_UI_Viewer();
     $viewer->assign('_MODULE', $module);
     $viewer->assign('_RECORD', $templateRecord);
     $viewer->assign('_SEARCHIN', $searchIn);
     $viewer->assign('_SEARCHIN_ALL', empty($searchIn));
     $response = $viewer->process('generic/SearchConfig.tpl');
     return $response;
 }
function vtSaveWorkflowTemplate($adb, $request)
{
    $util = new VTWorkflowUtils();
    $module = new VTWorkflowApplication("savetemplate");
    $mod = return_module_language($current_language, $module->name);
    if (!$util->checkAdminAccess()) {
        $errorUrl = $module->errorPageUrl($mod['LBL_ERROR_NOT_ADMIN']);
        $util->redirectTo($errorUrl, $mod['LBL_ERROR_NOT_ADMIN']);
        return;
    }
    $title = vtlib_purifyForSql($request['title']);
    $workflowId = $request['workflow_id'];
    $wfs = new VTworkflowManager($adb);
    $workflow = $wfs->retrieve($workflowId);
    $tm = new VTWorkflowTemplateManager($adb);
    $tpl = $tm->newTemplate($title, $workflow);
    $tm->saveTemplate($tpl);
    $returnUrl = vtlib_purify($request['return_url']);
    ?>
		<script type="text/javascript" charset="utf-8">
			 window.location="<?php 
    echo $returnUrl;
    ?>
";
		</script>
		<a href="<?php 
    echo $returnUrl;
    ?>
">Return</a>
	<?php 
}
 public function process(Vtiger_Request $request)
 {
     // SalesPlatform.ru begin
     require_once 'includes/SalesPlatform/NetIDNA/idna_convert.class.php';
     // SalesPlatform.ru end
     $outgoingServerSettingsModel = Settings_Vtiger_Systems_Model::getInstanceFromServerType('email', 'OutgoingServer');
     $loadDefaultSettings = $request->get('default');
     if ($loadDefaultSettings == "true") {
         $outgoingServerSettingsModel->loadDefaultValues();
     } else {
         $outgoingServerSettingsModel->setData($request->getAll());
     }
     $response = new Vtiger_Response();
     // SalesPlatform.ru begin
     $idn = new idna_convert();
     $server_username = $idn->encode(vtlib_purify($request->get('server')));
     $from_email_field = $idn->encode(vtlib_purify($request->get('from_email_field')));
     $request->set('server_username', $server_username);
     $request->set('from_email_field', $from_email_field);
     // SalesPlatform.ru end
     try {
         $id = $outgoingServerSettingsModel->save($request);
         $data = $outgoingServerSettingsModel->getData();
         $response->setResult($data);
     } catch (Exception $e) {
         $response->setError($e->getCode(), $e->getMessage());
     }
     $response->emit();
 }
Example #13
0
function vtSaveTask($adb, $request)
{
    $util = new VTWorkflowUtils();
    $module = new VTWorkflowApplication("savetask");
    $mod = return_module_language($current_language, $module->name);
    if (!$util->checkAdminAccess()) {
        $errorUrl = $module->errorPageUrl($mod['LBL_ERROR_NOT_ADMIN']);
        $util->redirectTo($errorUrl, $mod['LBL_ERROR_NOT_ADMIN']);
        return;
    }
    $tm = new VTTaskManager($adb);
    if (isset($request["task_id"])) {
        $task = $tm->retrieveTask($request["task_id"]);
    } else {
        $taskType = vtlib_purifyForSql($request["task_type"]);
        $workflowId = $request["workflow_id"];
        $task = $tm->createTask($taskType, $workflowId);
    }
    $task->summary = $request["summary"];
    if ($request["active"] == "true") {
        $task->active = true;
    } else {
        if ($request["active"] == "false") {
            $task->active = false;
        }
    }
    if (isset($request['check_select_date'])) {
        $trigger = array('days' => ($request['select_date_direction'] == 'after' ? 1 : -1) * (int) $request['select_date_days'], 'field' => $request['select_date_field']);
        $task->trigger = $trigger;
    } else {
        $task->trigger = null;
    }
    $fieldNames = $task->getFieldNames();
    foreach ($fieldNames as $fieldName) {
        $task->{$fieldName} = $request[$fieldName];
        if ($fieldName == 'calendar_repeat_limit_date') {
            $task->{$fieldName} = DateTimeField::convertToDBFormat($request[$fieldName]);
        }
    }
    $tm->saveTask($task);
    if (isset(vtlib_purify($request["return_url"]))) {
        $returnUrl = vtlib_purify($request["return_url"]);
    } else {
        $returnUrl = $module->editTaskUrl($task->id);
    }
    ?>
		<script type="text/javascript" charset="utf-8">
			window.location="<?php 
    echo $returnUrl;
    ?>
";
		</script>
		<a href="<?php 
    echo $returnUrl;
    ?>
">Return</a>
		<?php 
}
Example #14
0
function vtWorkflowSave($adb, $request)
{
    $util = new VTWorkflowUtils();
    $module = new VTWorkflowApplication("saveworkflow");
    $mod = return_module_language($current_language, $module->name);
    $request = vtlib_purify($request);
    // this cleans all values of the array
    if (!$util->checkAdminAccess()) {
        $errorUrl = $module->errorPageUrl($mod['LBL_ERROR_NOT_ADMIN']);
        $util->redirectTo($errorUrl, $mod['LBL_ERROR_NOT_ADMIN']);
        return;
    }
    $description = from_html($request["description"]);
    $moduleName = $request["module_name"];
    $conditions = $request["conditions"];
    $taskId = $request["task_id"];
    $saveType = $request["save_type"];
    $executionCondition = $request['execution_condition'];
    $wm = new VTWorkflowManager($adb);
    if ($saveType == 'new') {
        $wf = $wm->newWorkflow($moduleName);
        $wf->description = $description;
        $wf->test = $conditions;
        $wf->taskId = $taskId;
        $wf->executionConditionAsLabel($executionCondition);
        $wm->save($wf);
    } else {
        if ($saveType == 'edit') {
            $wf = $wm->retrieve($request["workflow_id"]);
            $wf->description = $description;
            $wf->test = $conditions;
            $wf->taskId = $taskId;
            $wf->executionConditionAsLabel($executionCondition);
            $wm->save($wf);
        } else {
            throw new Exception();
        }
    }
    if (isset($request["return_url"])) {
        $returnUrl = $request["return_url"];
    } else {
        $returnUrl = $module->editWorkflowUrl($wf->id);
    }
    ?>
		<script type="text/javascript" charset="utf-8">
			window.location="<?php 
    echo $returnUrl;
    ?>
";
		</script>
		<a href="<?php 
    echo $returnUrl;
    ?>
">Return</a>
		<?php 
}
Example #15
0
 function get($key, $defvalue = '', $purify = true)
 {
     if (isset($this->valuemap[$key])) {
         return $purify ? vtlib_purify($this->valuemap[$key]) : $this->valuemap[$key];
     }
     if ($defvalue === '' && isset($this->defaultmap[$key])) {
         $defvalue = $this->defaultmap[$key];
     }
     return $defvalue;
 }
Example #16
0
 function get($key, $defvalue = '')
 {
     $value = $defvalue;
     if (isset($this->valuemap[$key])) {
         $value = $this->valuemap[$key];
     }
     if (!empty($value)) {
         $value = vtlib_purify($value);
     }
     return $value;
 }
 function getFromContext($key, $purify = false)
 {
     if ($this->context) {
         $value = $this->context[$key];
         if ($purify && !empty($value)) {
             $value = vtlib_purify($value);
         }
         return $value;
     }
     return false;
 }
Example #18
0
 function getString($key)
 {
     if (isset($this->valuemap[$key])) {
         $value = $this->valuemap[$key];
         if (Zend_Json::decode($value) != null) {
             return $this->valuemap[$key];
         } else {
             return vtlib_purify($this->valuemap[$key]);
         }
     }
     return '';
 }
Example #19
0
function vtWorkflowEdit($adb, $request, $requestUrl, $current_language, $app_strings)
{
    global $theme;
    $util = new VTWorkflowUtils();
    $image_path = "themes/{$theme}/images/";
    $module = new VTWorkflowApplication("editworkflow");
    $mod = return_module_language($current_language, $module->name);
    if (!$util->checkAdminAccess()) {
        $errorUrl = $module->errorPageUrl($mod['LBL_ERROR_NOT_ADMIN']);
        $util->redirectTo($errorUrl, $mod['LBL_ERROR_NOT_ADMIN']);
        return;
    }
    $smarty = new vtigerCRM_Smarty();
    if ($request['source'] == 'from_template') {
        $tm = new VTWorkflowTemplateManager($adb);
        $template = $tm->retrieveTemplate($request['template_id']);
        $workflow = $tm->createWorkflow($template);
    } else {
        $wfs = new VTWorkflowManager($adb);
        if (isset($request["workflow_id"])) {
            $workflow = $wfs->retrieve($request["workflow_id"]);
        } else {
            $moduleName = $request["module_name"];
            $workflow = $wfs->newWorkflow($moduleName);
        }
    }
    if ($workflow == null) {
        $errorUrl = $module->errorPageUrl($mod['LBL_ERROR_NO_WORKFLOW']);
        $util->redirectTo($errorUrl, $mod['LBL_ERROR_NO_WORKFLOW']);
        return;
    }
    $workflow->test = addslashes($workflow->test);
    $tm = new VTTaskManager($adb);
    $tasks = $tm->getTasksForWorkflow($workflow->id);
    $smarty->assign("tasks", $tasks);
    $taskTypes = $tm->getTaskTypes($workflow->moduleName);
    $smarty->assign("taskTypes", $taskTypes);
    $smarty->assign("newTaskReturnUrl", vtlib_purify($requestUrl));
    $smarty->assign("returnUrl", vtlib_purify($request["return_url"]));
    $smarty->assign("APP", $app_strings);
    $smarty->assign("MOD", array_merge(return_module_language($current_language, 'Settings'), return_module_language($current_language, $module->name)));
    $smarty->assign("THEME", $theme);
    $smarty->assign("IMAGE_PATH", $image_path);
    $smarty->assign("MODULE_NAME", $module->label);
    $smarty->assign("PAGE_NAME", $mod['LBL_EDIT_WORKFLOW']);
    $smarty->assign("PAGE_TITLE", $mod['LBL_EDIT_WORKFLOW_TITLE']);
    $smarty->assign("workflow", $workflow);
    $smarty->assign("saveType", isset($workflow->id) ? "edit" : "new");
    $smarty->assign("module", $module);
    $smarty->assign("WORKFLOW_TRIGGER_TYPES_HELP_LINK", WORKFLOW_TRIGGER_TYPES);
    $smarty->display("{$module->name}/EditWorkflow.tpl");
}
 /**
  * Process the request for Folder opertions
  * @global <type> $list_max_entries_per_page
  * @param MailManager_Request $request
  * @return MailManager_Response
  */
 function process(MailManager_Request $request)
 {
     global $list_max_entries_per_page;
     $response = new MailManager_Response();
     if ('open' == $request->getOperationArg()) {
         $q = $request->get('q');
         $foldername = $request->get('_folder');
         $type = $request->get('type');
         $connector = $this->getConnector($foldername);
         $folder = $connector->folderInstance($foldername);
         if (empty($q)) {
             $connector->folderMails($folder, intval($request->get('_page', 0)), $list_max_entries_per_page);
         } else {
             if (empty($type)) {
                 $type = 'ALL';
             }
             $q = '' . $type . ' "' . vtlib_purify($q) . '"';
             $connector->searchMails($q, $folder, intval($request->get('_page', 0)), $list_max_entries_per_page);
         }
         $folderList = $connector->getFolderList();
         $viewer = $this->getViewer();
         $viewer->assign('TYPE', $type);
         $viewer->assign('QUERY', $request->get('q'));
         $viewer->assign('FOLDER', $folder);
         $viewer->assign('FOLDERLIST', $folderList);
         $viewer->assign('SEARCHOPTIONS', self::getSearchOptions());
         $response->setResult($viewer->fetch($this->getModuleTpl('Folder.Open.tpl')));
     } elseif ('drafts' == $request->getOperationArg()) {
         $q = $request->get('q');
         $type = $request->get('type');
         $page = intval($request->get('_page', 0));
         $connector = $this->getConnector('__vt_drafts');
         $folder = $connector->folderInstance();
         if (empty($q)) {
             $draftMails = $connector->getDrafts($page, $list_max_entries_per_page, $folder);
         } else {
             $draftMails = $connector->searchDraftMails($q, $type, $page, $list_max_entries_per_page, $folder);
         }
         $viewer = $this->getViewer();
         $viewer->assign('MAILS', $draftMails);
         $viewer->assign('FOLDER', $folder);
         $viewer->assign('SEARCHOPTIONS', MailManager_DraftController::getSearchOptions());
         $response->setResult($viewer->fetch($this->getModuleTpl('Folder.Drafts.tpl')));
     }
     return $response;
 }
Example #21
0
 function process(Mobile_API_Request $request)
 {
     $response = new Mobile_API_Response();
     global $adb;
     global $current_language;
     $current_language = Mobile_API_Session::get('language');
     //never trust an entry
     $sSearch = vtlib_purify($request->get('term'));
     $sResult = "";
     $arrayName = array();
     $ModuleArray = explode(',', vtlib_purify($request->get('relmodule')));
     $ModuleLabels = array();
     foreach ($ModuleArray as $Module) {
         $translatedModule = getTranslatedString($Module, 'Mobile');
         $arrayName[$translatedModule] = array();
         $moduleWSID = Mobile_WS_Utils::getEntityModuleWSId($Module);
         // get related module fields
         $query = "SELECT tablename,fieldname,entityidfield FROM vtiger_entityname WHERE modulename = ?";
         $result = $adb->pquery($query, array($Module));
         if (!$result or $adb->num_rows($result) == 0) {
             $response->setError(1407, 'Error: Could not fetch entity info');
             return $response;
         }
         $tablename = $adb->query_result($result, 0, 'tablename');
         $fieldname = $adb->query_result($result, 0, 'fieldname');
         $entityidfield = $adb->query_result($result, 0, 'entityidfield');
         $fieldname = explode(',', $fieldname);
         $fieldname = $fieldname[0];
         //START DATABASE ACCOUNT SEARCH
         $minhaquery = "SELECT " . $fieldname . "," . $entityidfield . " FROM " . $tablename . " \n\t\t\t\t\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = " . $tablename . "." . $entityidfield . "\n\t\t\t\t\t\t\tWHERE deleted = 0 AND " . $fieldname . " LIKE ? ORDER BY " . $fieldname . "";
         $params = $sSearch . "%";
         $result = $adb->pquery($minhaquery, array($params));
         if (!$result) {
             $response->setError(1408, 'Error: Could not fetch entity data');
             return $response;
         }
         for ($i = 0; $i < $adb->num_rows($result); $i++) {
             $arrayName[$translatedModule][] = array($moduleWSID . 'x' . $adb->query_result($result, $i, $entityidfield), decode_html($adb->query_result($result, $i, $fieldname)));
         }
     }
     $sResult = $arrayName;
     $sResult = json_encode($sResult);
     $response->setResult($sResult);
     return $response;
 }
Example #22
0
 protected function sendResponse($success, $callId)
 {
     $response = new Vtiger_Response();
     if ($success) {
         $response->setResult(array('success' => true, 'callId' => $callId));
     } else {
         $response->setResult(array('success' => false, 'callId' => $callId));
     }
     // Support JSONP
     if (!empty($_REQUEST['callback'])) {
         $callback = vtlib_purify($_REQUEST['callback']);
         $response->setEmitType('4');
         $response->setEmitJSONP($callback);
         $response->emit();
     } else {
         $response->emit();
     }
 }
Example #23
0
 public function importUserModuleStep2(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $uploadDir = Settings_ModuleManager_Module_Model::getUploadDirectory();
     $qualifiedModuleName = $request->getModule(false);
     $uploadFile = 'usermodule_' . time() . '.zip';
     $uploadFileName = "{$uploadDir}/{$uploadFile}";
     $error = '';
     checkFileAccess($uploadDir);
     if (!move_uploaded_file($_FILES['moduleZip']['tmp_name'], $uploadFileName)) {
         $error = 'LBL_ERROR_MOVE_UPLOADED_FILE';
     } else {
         $package = new Vtiger_Package();
         $importModuleName = $package->getModuleNameFromZip($uploadFileName);
         $importModuleDepVtVersion = $package->getDependentVtigerVersion();
         if ($importModuleName == null) {
             $error = $package->_errorText;
             checkFileAccessForDeletion($uploadFileName);
             unlink($uploadFileName);
         } else {
             // We need these information to push for Update if module is detected to be present.
             $moduleLicence = vtlib_purify($package->getLicense());
             $viewer->assign('MODULEIMPORT_FILE', $uploadFile);
             $viewer->assign('MODULEIMPORT_TYPE', $package->type());
             $viewer->assign('MODULEIMPORT_NAME', $importModuleName);
             $viewer->assign('MODULEIMPORT_PACKAGE', $package);
             $viewer->assign('MODULEIMPORT_DEP_VTVERSION', $importModuleDepVtVersion);
             $viewer->assign('MODULEIMPORT_LICENSE', $moduleLicence);
             $viewer->assign('MODULEIMPORT_PARAMETERS', $package->getParameters());
             if (!$package->isLanguageType() && !$package->isUpdateType() && !$package->isModuleBundle()) {
                 $moduleInstance = Vtiger_Module::getInstance($importModuleName);
                 $moduleimport_exists = $moduleInstance ? "true" : "false";
                 $moduleimport_dir_name = "modules/{$importModuleName}";
                 $moduleimport_dir_exists = is_dir($moduleimport_dir_name) ? "true" : "false";
                 $viewer->assign('MODULEIMPORT_EXISTS', $moduleimport_exists);
                 $viewer->assign('MODULEIMPORT_DIR', $moduleimport_dir_name);
                 $viewer->assign('MODULEIMPORT_DIR_EXISTS', $moduleimport_dir_exists);
             }
         }
     }
     $viewer->assign('MODULEIMPORT_ERROR', $error);
     $viewer->view('ImportUserModuleStep2.tpl', $qualifiedModuleName);
 }
Example #24
0
 protected function sendResponse($url, $success = false, $failure = false)
 {
     if (empty($url)) {
         if ($success) {
             $response = Zend_Json::encode(array('success' => true, 'result' => $success));
         } else {
             $response = Zend_Json::encode(array('success' => false, 'error' => array('message' => $failure)));
         }
         // Support JSONP
         if (!empty($_REQUEST['callback'])) {
             $callback = vtlib_purify($_REQUEST['callback']);
             echo sprintf("%s(%s)", $callback, $response);
         } else {
             echo $response;
         }
     } else {
         header(sprintf("Location: http://%s?%s=%s", $url, $success ? 'success' : 'error', $success ? $success : $failure));
     }
 }
 /** To get the customViewId of the specified module 
  * @param $module -- The module Name:: Type String
  * @returns  customViewId :: Type Integer 
  */
 function getViewId($module)
 {
     global $adb, $current_user;
     $now_action = vtlib_purify($_REQUEST['action']);
     if (isset($_REQUEST['viewname']) == false) {
         if (isset($_SESSION['lvs'][$module]["viewname"]) && $_SESSION['lvs'][$module]["viewname"] != '') {
             $viewid = $_SESSION['lvs'][$module]["viewname"];
         } elseif ($this->setdefaultviewid != "") {
             $viewid = $this->setdefaultviewid;
         } else {
             $defcv_result = $adb->pquery("select default_cvid from vtiger_user_module_preferences where userid = ? and tabid =?", array($current_user->id, getTabid($module)));
             if ($adb->num_rows($defcv_result) > 0) {
                 $viewid = $adb->query_result($defcv_result, 0, 'default_cvid');
             } else {
                 $query = "select cvid from vtiger_customview where setdefault=1 and entitytype=?";
                 $cvresult = $adb->pquery($query, array($module));
                 if ($adb->num_rows($cvresult) > 0) {
                     $viewid = $adb->query_result($cvresult, 0, 'cvid');
                 } else {
                     $viewid = '';
                 }
             }
         }
         if ($viewid == '' || $viewid == 0 || $this->isPermittedCustomView($viewid, $now_action, $module) != 'yes') {
             $query = "select cvid from vtiger_customview where viewname='All' and entitytype=?";
             $cvresult = $adb->pquery($query, array($module));
             $viewid = $adb->query_result($cvresult, 0, 'cvid');
         }
     } else {
         $viewname = vtlib_purify($_REQUEST['viewname']);
         if (is_string($viewname) && strtolower($viewname) == 'all' || $viewname == 0) {
             $viewid = $this->getViewIdByName('All', $module);
         } else {
             $viewid = $viewname;
         }
         if ($this->isPermittedCustomView($viewid, $now_action, $this->customviewmodule) != 'yes') {
             $viewid = 0;
         }
     }
     $_SESSION['lvs'][$module]["viewname"] = $viewid;
     return $viewid;
 }
Example #26
0
function insertIntoAttachment($entity)
{
    global $adb, $current_user;
    $CRMEntity = new CRMEntity();
    // en el objeto $entity tenemos toda la informaciĆ³n relacionada con el registro que se esta guardando.
    // Esta linea debe de colocarse siempre para registrar en el Vtiger que ha sido llamada la funciĆ³n
    $entity->focus->called = true;
    $module = $entity->getModuleName();
    /*  El id devuelto por $entity->getId() esta en el formato 1xNNNN en donde NNNN es el ID (en este caso 1x es para el modulo de SalesOrder)
     *  tomamos la parte que esta a al derecha de la "x" y ese es el correspondiente ID de pedido
     */
    list($mod, $id) = split("x", $entity->getId());
    foreach ($_FILES as $fileindex => $files) {
        //$old_attachmentid = $adb->query_result($adb->pquery("select vtiger_crmentity.crmid from vtiger_seattachmentsrel inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_seattachmentsrel.attachmentsid where  vtiger_seattachmentsrel.crmid=?", array($id)),0,'crmid');
        if ($files['name'][0] != '') {
            $files['original_name'] = vtlib_purify($_REQUEST[$fileindex . '_hidden']);
            $file_saved = $CRMEntity->uploadAndSaveFile($id, $module, $files);
        }
    }
    return true;
}
Example #27
0
	/**
	 * Function to get relation query for particular module with function name
	 * @param <record> $recordId
	 * @param <String> $functionName
	 * @param Vtiger_Module_Model $relatedModule
	 * @return <String>
	 */
	public function getRelationQuery($recordId, $functionName, $relatedModule, $relationModel = false)
	{
		if ($functionName === 'get_activities') {
			$userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');

			$query = "SELECT CASE WHEN (vtiger_users.user_name not like '') THEN $userNameSql ELSE vtiger_groups.groupname END AS user_name,
						vtiger_crmentity.*, vtiger_activity.activitytype, vtiger_activity.subject, vtiger_activity.date_start, vtiger_activity.time_start,
						vtiger_activity.recurringtype, vtiger_activity.due_date, vtiger_activity.time_end, vtiger_activity.visibility,
						CASE WHEN (vtiger_activity.activitytype = 'Task') THEN (vtiger_activity.status) ELSE (vtiger_activity.eventstatus) END AS status
						FROM vtiger_activity
						INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid
						LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid
						LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid
							WHERE vtiger_crmentity.deleted = 0 AND vtiger_activity.process = " . $recordId;
			$time = vtlib_purify($_REQUEST['time']);
			if ($time == 'current') {
				$stateActivityLabels = Calendar_Module_Model::getComponentActivityStateLabel('current');
				$query .= " AND (vtiger_activity.activitytype NOT IN ('Emails') AND vtiger_activity.status IN ('" . implode("','", $stateActivityLabels) . "'))";
			}
			if ($time == 'history') {
				$stateActivityLabels = Calendar_Module_Model::getComponentActivityStateLabel('history');
				$query .= " AND (vtiger_activity.activitytype NOT IN ('Emails') AND vtiger_activity.status IN ('" . implode("','", $stateActivityLabels) . "'))";
			}
			$relatedModuleName = $relatedModule->getName();
			$query .= $this->getSpecificRelationQuery($relatedModuleName);
			$instance = CRMEntity::getInstance($relatedModuleName);
			$securityParameter = $instance->getUserAccessConditionsQuerySR($relatedModuleName, false, $recordId);
			if ($securityParameter != '')
				$query .= $securityParameter;
		} elseif ($functionName === 'get_mails' && $relatedModule->getName() == 'OSSMailView') {
			$query = OSSMailView_Record_Model::getMailsQuery($recordId, $relatedModule->getName());
		} else {
			$query = parent::getRelationQuery($recordId, $functionName, $relatedModule, $relationModel);
		}

		return $query;
	}
Example #28
0
function DelImage($id)
{
    global $adb;
    $imgmod = vtlib_purify($_REQUEST['ImageModule']);
    if (empty($imgmod)) {
        $imgmod = 'Contacts';
    }
    if ($imgmod == 'Contacts') {
        $imageattachment = 'Image';
    } else {
        $imageattachment = 'Attachment';
    }
    $aname = vtlib_purify($_REQUEST['attachmentname']);
    $query = "select vtiger_seattachmentsrel.attachmentsid\n\t from vtiger_seattachmentsrel\n\t inner join vtiger_crmentity on vtiger_crmentity.crmid=vtiger_seattachmentsrel.attachmentsid\n\t inner join vtiger_attachments on vtiger_crmentity.crmid=vtiger_attachments.attachmentsid\n\t where vtiger_crmentity.setype='{$imgmod} {$imageattachment}'\n\t  and vtiger_attachments.name=?\n\t  and vtiger_seattachmentsrel.crmid=?";
    $result = $adb->pquery($query, array($aname, $id));
    if ($result and $adb->num_rows($result) == 1) {
        $attachmentsid = $adb->query_result($result, 0, "attachmentsid");
        $rel_delquery = 'delete from vtiger_seattachmentsrel where crmid=? and attachmentsid=?';
        $adb->pquery($rel_delquery, array($id, $attachmentsid));
        $crm_delquery = "delete from vtiger_crmentity where crmid=?";
        $adb->pquery($crm_delquery, array($attachmentsid));
        $sql = 'SELECT tablename,columnname,fieldname FROM vtiger_field
		 WHERE uitype=69 and vtiger_field.tabid = ? and fieldname = ?';
        $tabid = getTabid($imgmod);
        $fname = vtlib_purify($_REQUEST['fieldname']);
        $result = $adb->pquery($sql, array($tabid, $fname));
        if ($result and $adb->num_rows($result) == 1) {
            include_once "modules/{$imgmod}/{$imgmod}.php";
            $crmmod = new $imgmod();
            $tblname = $adb->query_result($result, $fnum, 'tablename');
            $colname = $adb->query_result($result, $fnum, 'columnname');
            $upd = "update {$tblname} set {$colname}='' where " . $crmmod->tab_name_index[$tblname] . '=?';
            $adb->pquery($upd, array($id));
        }
    }
}
Example #29
0
 /**
  * Function to get relation query for particular module with function name
  * @param <record> $recordId
  * @param <String> $functionName
  * @param Vtiger_Module_Model $relatedModule
  * @return <String>
  */
 public function getRelationQuery($recordId, $functionName, $relatedModule, $relationModel = false)
 {
     if ($functionName === 'get_activities') {
         $focus = CRMEntity::getInstance($this->getName());
         $focus->id = $recordId;
         $entityIds = $focus->getRelatedContactsIds();
         $entityIds[] = $recordId;
         $entityIds = implode(',', $entityIds);
         $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users');
         $query = "SELECT CASE WHEN (vtiger_users.user_name not like '') THEN {$userNameSql} ELSE vtiger_groups.groupname END AS user_name,\n\t\t\t\t\t\tvtiger_crmentity.*, vtiger_activity.activitytype, vtiger_activity.subject, vtiger_activity.date_start, vtiger_activity.time_start,\n\t\t\t\t\t\tvtiger_activity.recurringtype, vtiger_activity.due_date, vtiger_activity.time_end, vtiger_activity.visibility, \n\t\t\t\t\t\tCASE WHEN (vtiger_activity.activitytype = 'Task') THEN (vtiger_activity.status) ELSE (vtiger_activity.eventstatus) END AS status\n\t\t\t\t\t\tFROM vtiger_activity\n\t\t\t\t\t\tINNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid\n\t\t\t\t\t\tLEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid\n\t\t\t\t\t\tLEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid\n\t\t\t\t\t\tWHERE vtiger_crmentity.deleted = 0 AND vtiger_activity.link IN (" . $entityIds . ')';
         $time = vtlib_purify($_REQUEST['time']);
         if ($time == 'current') {
             $query .= " AND ((vtiger_activity.activitytype='Task' and vtiger_activity.status not in ('Completed','Deferred'))\n\t\t\t\tOR (vtiger_activity.activitytype not in ('Emails','Task') and vtiger_activity.eventstatus not in ('','Held')))";
         }
         if ($time == 'history') {
             $query .= " AND ((vtiger_activity.activitytype='Task' and vtiger_activity.status in ('Completed','Deferred'))\n\t\t\t\tOR (vtiger_activity.activitytype not in ('Emails','Task') and  vtiger_activity.eventstatus in ('','Held')))";
         }
         $relatedModuleName = $relatedModule->getName();
         $query .= $this->getSpecificRelationQuery($relatedModuleName);
         $instance = CRMEntity::getInstance($relatedModuleName);
         $securityParameter = $instance->getUserAccessConditionsQuerySR($relatedModuleName);
         if ($securityParameter != '') {
             $query .= $securityParameter;
         }
         // There could be more than one contact for an activity.
         $query .= ' GROUP BY vtiger_activity.activityid';
     } elseif ($functionName === 'get_dependents_list' && $relatedModule->getName() == 'OutsourcedProducts') {
         $query = parent::getRelationQuery($recordId, $functionName, $relatedModule, $relationModel);
         $query .= " OR potential IN (SELECT potentialid FROM vtiger_potential INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_potential.potentialid WHERE vtiger_crmentity.deleted = 0 AND related_to = '{$recordId}')";
     } elseif ($functionName === 'get_mails' && $relatedModule->getName() == 'OSSMailView') {
         $query = OSSMailView_Record_Model::getMailsQuery($recordId, $relatedModule->getName());
     } else {
         $query = parent::getRelationQuery($recordId, $functionName, $relatedModule, $relationModel);
     }
     return $query;
 }
Example #30
0
<?php

/*+********************************************************************************
 * The contents of this file are subject to the vtiger CRM Public License Version 1.0
 * ("License"); You may not use this file except in compliance with the License
 * The Original Code is:  vtiger CRM Open Source
 * The Initial Developer of the Original Code is vtiger.
 * Portions created by vtiger are Copyright (C) vtiger.
 * All Rights Reserved.
 *********************************************************************************/
require_once 'Smarty_setup.php';
global $mod_strings, $app_strings, $theme, $adb;
$smarty = new vtigerCRM_Smarty();
$module = vtlib_purify($_REQUEST['formodule']);
$menu_array = array();
$menu_array['CustomFields']['location'] = 'index.php?module=Settings&action=CustomFieldList&parenttab=Settings&formodule=' . $module;
$menu_array['CustomFields']['image_src'] = vtiger_imageurl('orgshar.gif', $theme);
$menu_array['CustomFields']['desc'] = getTranslatedString('LBL_USER_CUSTOMFIELDS_DESCRIPTION', 'Users');
$menu_array['CustomFields']['label'] = getTranslatedString('LBL_USER_CUSTOMFIELDS', 'Users');
//add blanks for 3-column layout
$count = count($menu_array) % 3;
if ($count > 0) {
    for ($i = 0; $i < 3 - $count; $i++) {
        $menu_array[] = array();
    }
}
$smarty->assign("MOD", $mod_strings);
$smarty->assign("APP", $app_strings);
$smarty->assign("IMAGE_PATH", "themes/{$theme}/images/");
$smarty->assign('MODULE', $module);
$smarty->assign('MODULE_LBL', getTranslatedString($module));