search2.php.tmp

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· TMP 代码 · 共 649 行 · 第 1/2 页

TMP
649
字号
        $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search');        $collection->addColumns($aColumns);        // set a view option        $aTitleOptions = array(            'documenturl' => $GLOBALS['KTRootUrl'] . '/view.php',            'direct_folder' => true,        );        $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions);        // set the selection options        $collection->setColumnOptions('ktcore.columns.selection', array(            'rangename' => 'selection',            'show_folders' => true,            'show_documents' => true,        ));        $aOptions = $collection->getEnvironOptions(); // extract data from the environment        $aOptions['empty_message'] = _kt("No documents or folders match this query.");        $aOptions['is_browse'] = true;		$aOptions['return_url'] = KTUtil::addQueryStringSelf("action=oldSearchResults");        $collection->setOptions($aOptions);        $collection->setQueryObject(new Search2Query());        $oTemplating =& KTTemplating::getSingleton();        $oTemplate = $oTemplating->loadTemplate("kt3/browse");        $aTemplateData = array(            "context" => $this,            "collection" => $collection,            'isEditable' => true,            'bulkactions' => KTBulkActionUtil::getAllBulkActions(),            'browseutil' => new KTBrowseUtil(),            'returnaction' => 'search2',        );        return $oTemplate->render($aTemplateData);        }    /**     * Renders the search results.     *     * @return string     */    function do_searchResults()    {        if (array_key_exists('format', $_GET))        {            switch ($_GET['format']){                case 'searchengine':                    $_SESSION['search2resultFormat'] = 'searchengine';                    break;                case 'browseview':                    $_SESSION['search2resultFormat'] = 'browseview';                    break;            }        }        else        {            if(!array_key_exists('search2resultFormat', $_SESSION)){                global $default;                $_SESSION['search2resultFormat'] = $default->resultsDisplayFormat;            }        }        if ($_SESSION['search2resultFormat'] == 'browseview')        {        	$this->redirectTo('oldSearchResults');        }        $this->oPage->setBreadcrumbDetails(_kt("Search Results"));        $this->oPage->title = _kt("Search Results");    	$oTemplating =& KTTemplating::getSingleton();        $oTemplate = $oTemplating->loadTemplate("ktcore/search2/search_results");       KTEntityUtil::_proxyCreate('KTDocumentContentVersion','KTDocumentContentVersionProxy');       KTEntityUtil::_proxyCreate('KTDocumentCore','KTDocumentCoreProxy');       KTEntityUtil::_proxyCreate('KTDocumentMetadataVersion','KTDocumentMetadataVersionProxy');        $results = unserialize($_SESSION['search2_results']);        if (!is_array($results)  || count($results) == 0)        {        	$results=array();        }        $numRecs = count($results);        $showall = $_GET['showAll'];		if (is_numeric($showall))		{			$showall = ($showall+0) > 0;		}		else		{			$showall = ($showall == 'true');		}		$config = KTConfig::getSingleton();		$resultsPerPage = ($showall)?$numRecs:$config->get('search/resultsPerPage', SearchDispatcher::RESULTS_PER_PAGE);        $maxPageMove = SearchDispatcher::MAX_PAGE_MOVEMENT;        $pageOffset = 1;        if (isset($_GET['pageOffset']))        {        	$pageOffset = $_GET['pageOffset'];        }        $maxPages = ceil($numRecs / $resultsPerPage) ;        if ($pageOffset <= 0 || $pageOffset > $maxPages)        {        	$pageOffset = 1;        }         $firstRec = ($pageOffset-1) * $resultsPerPage;         $lastRec = $firstRec + $resultsPerPage;         if ($lastRec > $numRecs)         {         	$lastRec = $numRecs;         }        $display = array_slice($results,$firstRec ,$resultsPerPage);        $startOffset = $pageOffset - $maxPageMove;        if ($startOffset < 1)        {        	$startOffset = 1;        }        $endOffset = $pageOffset + $maxPageMove;        if ($endOffset > $maxPages)        {        	$endOffset = $maxPages;        }		$pageMovement = array();		for($i=$startOffset;$i<=$endOffset;$i++)		{			$pageMovement[] = $i;		}		 $aBulkActions = KTBulkActionUtil::getAllBulkActions();        $aTemplateData = array(              "context" => $this,              'bulkactions'=>$aBulkActions,              'firstRec'=>$firstRec,              'lastRec'=>$lastRec,              'showAll'=>$showall,              'numResults' => count($results),              'pageOffset' => $pageOffset,              'resultsPerPage'=>$resultsPerPage,              'maxPages' => $maxPages,              'results' => $display,              'pageMovement'=>$pageMovement,              'startMovement'=>$startOffset,              'endMovement'=>$endOffset,              'txtQuery' => $_SESSION['search2_query'],              'iSavedID' => $_SESSION['search2_savedid'],              'txtSavedName' => $_SESSION['search2_savedname']        );        return $oTemplate->render($aTemplateData);    }	function do_manage()	{		$this->oPage->setBreadcrumbDetails(_kt("Manage Saved Searches"));        $this->oPage->title = _kt("Manage Saved Searches");		$sql = "SELECT ss.id, ss.name, u.name as username, user_id is not null as editable, shared				FROM search_saved ss				LEFT OUTER JOIN users u on ss.user_id = u.id				WHERE ss.type='S' ";		if (!$this->sysAdmin)		{			$sql .= " AND (ss.user_id=$this->curUserId OR ss.shared=1)";		}		$saved = DBUtil::getResultArray($sql);        $oTemplating =& KTTemplating::getSingleton();        $oTemplate = $oTemplating->loadTemplate("ktcore/search2/manage_saved_search");        $aTemplateData = array(              "context" => $this,              'saved'=>$saved,              'sysadmin'=>$this->sysAdmin        );        return $oTemplate->render($aTemplateData);	}	function do_share()	{		if (is_null($this->savedSearchId))		{			$this->errorRedirectTo('manage', _kt('The saved search id was not passed correctly.'));		}		if (!array_key_exists('share',$_GET))		{			$this->errorRedirectTo('manage', _kt('The sharing option was not passed correctly.'));		}		if ($_GET['share']=='no')		{			$share=0;			$msg = _kt("The saved search can only be seen by you.");		}		else		{			$share=1;			$msg = _kt("The saved search is now visible to all users.");		}		$sql = "UPDATE search_saved SET shared=$share WHERE type='S' AND id=$this->savedSearchId";		if (!$this->sysAdmin)		{			$sql .= " AND ss.user_id=$this->curUserId";		}		DBUtil::runQuery($sql);		$this->successRedirectTo('manage', $msg);	}	function do_delete()	{		if (is_null($this->savedSearchId))		{			$this->errorRedirectTo('manage', _kt('The saved search id was not passed correctly.'));		}		$sql = "DELETE FROM search_saved WHERE type='S' AND id=$this->savedSearchId";		if (!$this->sysAdmin)		{			$sql .= " AND user_id=$this->curUserId ";		}		DBUtil::runQuery($sql);		$this->successRedirectTo('manage', _kt('The saved search was deleted successfully.'));	}	function do_guiBuilder()	{		$this->oPage->setBreadcrumbDetails(_kt("Advanced Search"));        $this->oPage->title = _kt("Advanced Search");		$result = array();		// TODO: need to escape the parameters		$result['fieldsets'] = SearchHelper::getFieldsets();		$result['fieldset_str'] = SearchHelper::getJSfieldsetStruct($result['fieldsets']);		$result['workflows'] = SearchHelper::getWorkflows();        $result['workflow_str'] = SearchHelper::getJSworkflowStruct($result['workflows']);		$result['fields'] = SearchHelper::getSearchFields();		$result['fields_str'] = SearchHelper::getJSfieldsStruct($result['fields']);		$result['users_str'] = SearchHelper::getJSusersStruct();		$result['mimetypes_str'] = SearchHelper::getJSmimeTypesStruct();		$result['documenttypes_str'] = SearchHelper::getJSdocumentTypesStruct();        $oTemplating =& KTTemplating::getSingleton();        $oTemplate = $oTemplating->loadTemplate("ktcore/search2/adv_query_builder");        $aTemplateData = array(              "context" => $this,              'metainfo'=> $result        );        return $oTemplate->render($aTemplateData);	}	function do_queryBuilder()	{		$this->oPage->setBreadcrumbDetails(_kt("Query Editor"));        $this->oPage->title = _kt("Query Editor");        $oTemplating =& KTTemplating::getSingleton();        $oTemplate = $oTemplating->loadTemplate("ktcore/search2/adv_query_search");        $registry = ExprFieldRegistry::getRegistry();        $aliases = $registry->getAliasNames();        sort($aliases);        $edit = is_numeric($this->savedSearchId);        $name = '';        if ($edit)        {			list($name, $expr) = $this->getSavedExpression();        }        else        {        	$expr = $_SESSION['search2_query'];        }        $aTemplateData = array(              "context" => $this,              'aliases' => $aliases,              'bSave'=>$edit,              'edtSaveQueryName'=>$name,              'txtQuery'=>$expr,              'iSavedSearchId'=>$this->savedSearchId        );        return $oTemplate->render($aTemplateData);	}}$oDispatcher = new SearchDispatcher();$oDispatcher->dispatch();?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?