晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/www/crm/modules/MailManager/ |
Upload File : |
<?php
/*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("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 'include/Webservices/Query.php';
class MailManager {
static function updateMailAssociation($mailuid, $emailid, $crmid) {
global $adb;
$adb->pquery("INSERT INTO vtiger_mailmanager_mailrel (mailuid, emailid, crmid) VALUES (?,?,?)", array($mailuid, $emailid, $crmid));
}
static function lookupMailInVtiger($searchTerm, $user) {
$handler = vtws_getModuleHandlerFromName('Emails', $user);
$meta = $handler->getMeta();
$moduleFields = $meta->getModuleFields();
$parentIdFieldInstance = $moduleFields['parent_id'];
$referenceModules = $parentIdFieldInstance->getReferenceList();
$filteredResult = array();
foreach($referenceModules as $referenceModule) {
$referenceModuleHandler = vtws_getModuleHandlerFromName($referenceModule, $user);
$referenceModuleMeta = $referenceModuleHandler->getMeta();
$referenceModuleEmailFields = $referenceModuleMeta->getEmailFields();
$referenceModuleModel = Vtiger_Module_Model::getInstance($referenceModule);
if($referenceModuleModel){
$referenceModuleEntityFieldsArray = $referenceModuleModel->getNameFields();
}
$searchFieldList = array_merge($referenceModuleEmailFields, $referenceModuleEntityFieldsArray);
if(!empty($searchFieldList) && !empty($referenceModuleEmailFields)) {
$searchFieldListString = implode(',', $referenceModuleEmailFields);
$where = null;
for($i=0; $i<count($searchFieldList); $i++) {
if($i == count($searchFieldList) - 1) {
$where .= sprintf($searchFieldList[$i]." like '%s'", $searchTerm);
} else {
$where .= sprintf($searchFieldList[$i]." like '%s' or ", $searchTerm);
}
}
if(!empty($where)) $where = "WHERE $where";
if($referenceModule == 'Users' && !is_admin($user)){
//Have to do seperate query since webservices will throw permission denied for users module for non admin users
global $adb;
$where .= " AND vtiger_users.status='Active'";
$query = "select $searchFieldListString,id from vtiger_users $where";
$dbResult = $adb->pquery($query,array());
$num_rows = $adb->num_rows($dbResult);
$result = array();
for($i=0;$i<$num_rows;$i++) {
$row = $adb->query_result_rowdata($dbResult,$i);
$id = $row['id'];
$webserviceId = vtws_getWebserviceEntityId($referenceModule, $id);
$row['id'] = $webserviceId;
$result[] = $row;
}
}else{
$result = vtws_query("select $searchFieldListString from $referenceModule $where;", $user);
}
foreach($result as $record) {
foreach($searchFieldList as $searchField) {
if(!empty($record[$searchField])) {
$filteredResult[] = array('id'=> $record[$searchField], 'name'=>$record[$searchField]." - ".getTranslatedString($referenceModule),
'record'=>$record['id'], 'module'=>$referenceModule);
}
}
}
}
}
return $filteredResult;
}
static function lookupMailAssociation($mailuid) {
global $adb;
// Mail could get associated with two-or-more records if they get deleted after linking.
$result = $adb->pquery(
"SELECT vtiger_mailmanager_mailrel.* FROM vtiger_mailmanager_mailrel INNER JOIN
vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_mailmanager_mailrel.crmid AND vtiger_crmentity.deleted=0
AND vtiger_mailmanager_mailrel.mailuid=? LIMIT 1", array(decode_html($mailuid)));
if ($adb->num_rows($result)) {
$resultrow = $adb->fetch_array($result);
return $resultrow;
}
return false;
}
static function lookupVTEMailAssociation($emailId) {
global $adb;
$result = $adb->pquery(
"SELECT vtiger_mailmanager_mailrel.* FROM vtiger_mailmanager_mailrel INNER JOIN
vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_mailmanager_mailrel.crmid AND vtiger_crmentity.deleted=0
AND vtiger_mailmanager_mailrel.mailuid=? LIMIT 1", array(decode_html($mailuid)));
if ($adb->num_rows($result)) {
$resultrow = $adb->fetch_array($result);
return $resultrow;
}
return false;
}
static function checkModuleWriteAccessForCurrentUser($module) {
global $current_user;
if (isPermitted($module, 'CreateView') == "yes" && vtlib_isModuleActive($module)) {
return true;
}
return false;
}
/**
* function to check the read access for the current user
* @global Users Instance $current_user
* @param String $module - Name of the module
* @return Boolean
*/
static function checkModuleReadAccessForCurrentUser($module) {
global $current_user;
if (isPermitted($module, 'DetailView') == "yes" && vtlib_isModuleActive($module)) {
return true;
}
return false;
}
/**
* Invoked when special actions are performed on the module.
* @param String $modulename - Module name
* @param String $event_type - Event Type (module.postinstall, module.disabled, module.enabled, module.preuninstall)
*/
function vtlib_handler($modulename, $event_type) {
if($event_type == 'module.postinstall') {
// TODO Handle actions when this module is installed.
} else if($event_type == 'module.disabled') {
// TODO Handle actions when this module is disabled.
} else if($event_type == 'module.enabled') {
// TODO Handle actions when this module is enabled.
} else if($event_type == 'module.preuninstall') {
// TODO Handle actions when this module is about to be deleted.
} else if($event_type == 'module.preupdate') {
// TODO Handle actions before this module is updated.
} else if($event_type == 'module.postupdate') {
// TODO Handle actions when this module is updated.
}
}
}
?>