/** * Search module objects by Id * * @param string $keyword : the search keywords * @param CMS_profile_user $user : the user which make the search * @param booolean : public search (default : false) * @param array : the results score returned by reference * @return array : results elements Ids * @access public */ function search($keyword, &$user, $public = false, &$score = array()) { $search = new CMS_search(); $pageResults = $search->getSearch($keyword, $user, $public, true); $score = $pageResults['score']; return $pageResults['results']; }
require_once dirname(__FILE__) . '/../../cms_rc_admin.php'; //load interface instance $view = CMS_view::getInstance(); //set default display mode for this page $view->setDisplayMode(CMS_view::SHOW_JSON); //This file is an admin file. Interface must be secure $view->setSecure(); $query = sensitiveIO::request('query', '', ''); $start = sensitiveIO::request('start', 'sensitiveIO::isPositiveInteger', 0); $limit = sensitiveIO::request('limit', 'sensitiveIO::isPositiveInteger', 10); if (!$query || io::strlen($query) < 3) { CMS_grandFather::raiseError('Missing query or query is too short : ' . $query); $view->show(); } //lauch search $results = CMS_search::getSearch($query, $cms_user, false, false); //pr($results); $pages = array(); $count = 0; if (isset($results['results']) && is_array($results['results'])) { foreach ($results['results'] as $result) { if ($count >= $start && sizeof($pages) < $limit) { $page = CMS_tree::getPageById($result); if ($page && !$page->hasError()) { $pages[] = array('pageId' => $page->getID(), 'title' => $page->getTitle() . ' (' . $page->getID() . ')', 'status' => $page->getStatus()->getHTML(true, $cms_user, MOD_STANDARD_CODENAME, $page->getID()), 'lineage' => CMS_tree::getLineage(APPLICATION_ROOT_PAGE_ID, $page->getID(), false)); } else { $results['nbresult']--; } } $count++; }