AAAAPK8>\) .htaccessnuW+A Order allow,deny Deny from all PK8>\)searches/.htaccessnuW+A Order allow,deny Deny from all PK8>\"searches/default.phpnuW+Aescape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $canDo = SearchHelper::getActions(); ?>
enabled) : ?> state->get('filter.results')) : ?>
items as $i => $item) : ?>
 
pagination->limitstart; ?> escape($item->search_term); ?> hits; ?> state->get('filter.results')) : ?> returns; ?>  
pagination->getListFooter(); ?>
PK8>\Vsearches/index.htmlnuW+A PK8>\V index.htmlnuW+A PK>\)views/.htaccessnuW+A Order allow,deny Deny from all PK>\Vviews/index.htmlnuW+A PK>\)views/searches/.htaccessnuW+A Order allow,deny Deny from all PK>\Vviews/searches/tmpl/index.htmlnuW+A PK>\̊4views/searches/tmpl/default.phpnuW+Aescape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $canDo = SearchHelper::getActions(); ?>
enabled) : ?> state->get('filter.results')) : ?>
items as $i => $item) : ?>
 
pagination->getListFooter(); ?>
pagination->limitstart; ?> escape($item->search_term); ?> hits; ?> state->get('filter.results')) : ?> returns; ?>  
PK>\)views/searches/tmpl/.htaccessnuW+A Order allow,deny Deny from all PK>\Vviews/searches/index.htmlnuW+A PK>\ oviews/searches/view.html.phpnuW+Aitems = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); $this->enabled = $this->state->params->get('enabled'); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } $this->addToolbar(); parent::display($tpl); } /** * Add the page title and toolbar. * * @since 1.6 */ protected function addToolbar() { $canDo = SearchHelper::getActions(); JToolBarHelper::title(JText::_('COM_SEARCH_MANAGER_SEARCHES'), 'search.png'); if ($canDo->get('core.edit.state')) { JToolBarHelper::custom('searches.reset', 'refresh.png', 'refresh_f2.png', 'JSEARCH_RESET', false); } JToolBarHelper::divider(); if ($canDo->get('core.admin')) { JToolBarHelper::preferences('com_search'); } JToolBarHelper::divider(); JToolBarHelper::help('JHELP_COMPONENTS_SEARCH'); } } PK>\L search.xmlnuW+A com_search Joomla! Project April 2006 (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 COM_SEARCH_XML_DESCRIPTION controller.php index.html router.php search.php models views language/en-GB.com_search.ini Search config.xml controller.php index.html search.php controllers helpers models views language/en-GB.com_search.ini language/en-GB.com_search.sys.ini PK>\ search.phpnuW+Aexecute(JRequest::getCmd('task')); // Redirect if set by the controller $controller->redirect(); PK>\a5b,, config.xmlnuW+A
PK>\] access.xmlnuW+A
PK>\Vcontrollers/index.htmlnuW+A PK>\ISnncontrollers/searches.phpnuW+AgetModel('Searches'); if (!$model->reset()) { JError::raiseWarning(500, $model->getError()); } $this->setRedirect('index.php?option=com_search&view=searches'); } } PK>\)controllers/.htaccessnuW+A Order allow,deny Deny from all PK>\5  controller.phpnuW+A get stripped anyway later on. # causes problems. $badchars = array('#', '>', '<', '\\'); $searchword = trim(str_replace($badchars, '', JRequest::getString('searchword', null, 'post'))); // if searchword enclosed in double quotes, strip quotes and do exact match if (substr($searchword, 0, 1) == '"' && substr($searchword, -1) == '"') { $post['searchword'] = substr($searchword, 1, -1); JRequest::setVar('searchphrase', 'exact'); } else { $post['searchword'] = $searchword; } $post['ordering'] = JRequest::getWord('ordering', null, 'post'); $post['searchphrase'] = JRequest::getWord('searchphrase', 'all', 'post'); $post['limit'] = JRequest::getUInt('limit', null, 'post'); if ($post['limit'] === null) unset($post['limit']); $areas = JRequest::getVar('areas', null, 'post', 'array'); if ($areas) { foreach($areas as $area) { $post['areas'][] = JFilterInput::getInstance()->clean($area, 'cmd'); } } // set Itemid id for links from menu $app = JFactory::getApplication(); $menu = $app->getMenu(); $items = $menu->getItems('link', 'index.php?option=com_search&view=search'); if(isset($items[0])) { $post['Itemid'] = $items[0]->id; } elseif (JRequest::getInt('Itemid') > 0) { //use Itemid from requesting page only if there is no existing menu $post['Itemid'] = JRequest::getInt('Itemid'); } unset($post['task']); unset($post['submit']); $uri = JURI::getInstance(); $uri->setQuery($post); $uri->setVar('option', 'com_search'); $this->setRedirect(JRoute::_('index.php'.$uri->toString(array('query', 'fragment')), false)); } } PK>\ 9llmodels/searches.phpnuW+AgetUserStateFromRequest($this->context.'.filter.search', 'filter_search'); $this->setState('filter.search', $search); $showResults = $this->getUserStateFromRequest($this->context.'.filter.results', 'filter_results', null, 'int'); $this->setState('filter.results', $showResults); // Load the parameters. $params = JComponentHelper::getParams('com_search'); $this->setState('params', $params); // List state information. parent::populateState('a.hits', 'asc'); } /** * Method to get a store id based on model configuration state. * * This is necessary because the model is used by the component and * different modules that might need different sets of data or different * ordering requirements. * * @param string $id A prefix for the store id. * * @return string A store id. */ protected function getStoreId($id = '') { // Compile the store id. $id .= ':'.$this->getState('filter.search'); $id .= ':'.$this->getState('filter.results'); return parent::getStoreId($id); } /** * Build an SQL query to load the list data. * * @return JDatabaseQuery */ protected function getListQuery() { // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); // Select the required fields from the table. $query->select( $this->getState( 'list.select', 'a.*' ) ); $query->from($db->quoteName('#__core_log_searches').' AS a'); // Filter by access level. if ($access = $this->getState('filter.access')) { $query->where('a.access = '.(int) $access); } // Filter by search in title $search = $this->getState('filter.search'); if (!empty($search)) { $search = $db->Quote('%'.$db->escape($search, true).'%'); $query->where('a.search_term LIKE '.$search); } // Add the list ordering clause. $query->order($db->escape($this->getState('list.ordering', 'a.hits')).' '.$db->escape($this->getState('list.direction', 'ASC'))); //echo nl2br(str_replace('#__','jos_',$query)); return $query; } /** * Override the parnet getItems to inject optional data. * * @return mixed An array of objects on success, false on failure. */ public function getItems() { $items = parent::getItems(); // Determine if number of results for search item should be calculated // by default it is `off` as it is highly query intensive if ($this->getState('filter.results')) { JPluginHelper::importPlugin('search'); $app = JFactory::getApplication(); if (!class_exists('JSite')) { // This fools the routers in the search plugins into thinking it's in the frontend JLoader::register('JSite', JPATH_COMPONENT.'/helpers/site.php'); } foreach ($items as &$item) { $results = $app->triggerEvent('onContentSearch', array($item->search_term)); $item->returns = 0; foreach ($results as $result) { $item->returns += count($result); } } } return $items; } /** * Method to reset the seach log table. * * @return boolean */ public function reset() { $db = $this->getDbo(); $db->setQuery( 'DELETE FROM #__core_log_searches' ); if (!$db->query()) { $this->setError($db->getErrorMsg()); return false; } return true; } } PK>\Vmodels/index.htmlnuW+A PK>\)models/.htaccessnuW+A Order allow,deny Deny from all PK>\)helpers/.htaccessnuW+A Order allow,deny Deny from all PK>\؟;helpers/site.phpnuW+A\'$helpers/search.phpnuW+Aset($action->name, $user->authorise($action->name, $assetName)); } return $result; } static function santiseSearchWord(&$searchword, $searchphrase) { $ignored = false; $lang = JFactory::getLanguage(); $tag = $lang->getTag(); $search_ignore = $lang->getIgnoredSearchWords(); // Deprecated in 1.6 use $lang->getIgnoredSearchWords instead $ignoreFile = $lang->getLanguagePath() . '/' . $tag . '/' . $tag.'.ignore.php'; if (file_exists($ignoreFile)) { include $ignoreFile; } // check for words to ignore $aterms = explode(' ', JString::strtolower($searchword)); // first case is single ignored word if (count($aterms) == 1 && in_array(JString::strtolower($searchword), $search_ignore)) { $ignored = true; } // filter out search terms that are too small $lower_limit = $lang->getLowerLimitSearchWord(); foreach($aterms as $aterm) { if (JString::strlen($aterm) < $lower_limit) { $search_ignore[] = $aterm; } } // next is to remove ignored words from type 'all' or 'any' (not exact) searches with multiple words if (count($aterms) > 1 && $searchphrase != 'exact') { $pruned = array_diff($aterms, $search_ignore); $searchword = implode(' ', $pruned); } return $ignored; } static function limitSearchWord(&$searchword) { $restriction = false; $lang = JFactory::getLanguage(); // limit searchword to a maximum of characters $upper_limit = $lang->getUpperLimitSearchWord(); if (JString::strlen($searchword) > $upper_limit) { $searchword = JString::substr($searchword, 0, $upper_limit - 1); $restriction = true; } // searchword must contain a minimum of characters if ($searchword && JString::strlen($searchword) < $lang->getLowerLimitSearchWord()) { $searchword = ''; $restriction = true; } return $restriction; } static function logSearch($search_term) { $db = JFactory::getDbo(); $params = JComponentHelper::getParams('com_search'); $enable_log_searches = $params->get('enabled'); $search_term = $db->escape(trim($search_term)); if (@$enable_log_searches) { $db = JFactory::getDbo(); $query = 'SELECT hits' . ' FROM #__core_log_searches' . ' WHERE LOWER(search_term) = "'.$search_term.'"' ; $db->setQuery($query); $hits = intval($db->loadResult()); if ($hits) { $query = 'UPDATE #__core_log_searches' . ' SET hits = (hits + 1)' . ' WHERE LOWER(search_term) = "'.$search_term.'"' ; $db->setQuery($query); $db->query(); } else { $query = 'INSERT INTO #__core_log_searches VALUES ("'.$search_term.'", 1)'; $db->setQuery($query); $db->query(); } } } /** * Prepares results from search for display * * @param string The source string * @param string The searchword to select around * @return string */ public static function prepareSearchContent($text, $searchword) { // strips tags won't remove the actual jscript $text = preg_replace("']*>.*?'si", "", $text); $text = preg_replace('/{.+?}/', '', $text); //$text = preg_replace('/]*>([^<]+)<\/a>/is','\2', $text); // replace line breaking tags with whitespace $text = preg_replace("'<(br[^/>]*?/|hr[^/>]*?/|/(div|h[1-6]|li|p|td))>'si", ' ', $text); return self::_smartSubstr(strip_tags($text), $searchword); } /** * Checks an object for search terms (after stripping fields of HTML) * * @param object The object to check * @param string Search words to check for * @param array List of object variables to check against * @returns boolean True if searchTerm is in object, false otherwise */ public static function checkNoHtml($object, $searchTerm, $fields) { $searchRegex = array( '#]*>.*?#si', '#]*>.*?#si', '##si', '#<[^>]*>#i' ); $terms = explode(' ', $searchTerm); if (empty($fields)) return false; foreach($fields as $field) { if (!isset($object->$field)) continue; $text = $object->$field; foreach($searchRegex as $regex) { $text = preg_replace($regex, '', $text); } foreach($terms as $term) { if (JString::stristr($text, $term) !== false) { return true; } } } return false; } /** * returns substring of characters around a searchword * * @param string The source string * @param int Number of chars to return * @param string The searchword to select around * @return string */ static function _smartSubstr($text, $searchword) { $lang = JFactory::getLanguage(); $length = $lang->getSearchDisplayedCharactersNumber(); $textlen = JString::strlen($text); $lsearchword = JString::strtolower($searchword); $wordfound = false; $pos = 0; while ($wordfound === false && $pos < $textlen) { if (($wordpos = @JString::strpos($text, ' ', $pos + $length)) !== false) { $chunk_size = $wordpos - $pos; } else { $chunk_size = $length; } $chunk = JString::substr($text, $pos, $chunk_size); $wordfound = JString::strpos(JString::strtolower($chunk), $lsearchword); if ($wordfound === false) { $pos += $chunk_size + 1; } } if ($wordfound !== false) { return (($pos > 0) ? '... ' : '') . $chunk . ' ...'; } else { if (($wordpos = @JString::strpos($text, ' ', $length)) !== false) { return JString::substr($text, 0, $wordpos) . ' ...'; } else { return JString::substr($text, 0, $length); } } } } PK>\Vhelpers/index.htmlnuW+A PK/?\C[[models/search.phpnuW+AsetState('limit', $app->getUserStateFromRequest('com_search.limit', 'limit', $config->get('list_limit'), 'uint')); $this->setState('limitstart', JRequest::getUInt('limitstart', 0)); // Get parameters. $params = $app->getParams(); if ($params->get('searchphrase') == 1) { $searchphrase = 'any'; } elseif ($params->get('searchphrase') == 2) { $searchphrase = 'exact'; } else { $searchphrase = 'all'; } // Set the search parameters $keyword = urldecode(JRequest::getString('searchword')); $match = JRequest::getWord('searchphrase', $searchphrase); $ordering = JRequest::getWord('ordering', $params->get('ordering', 'newest')); $this->setSearch($keyword, $match, $ordering); //Set the search areas $areas = JRequest::getVar('areas'); $this->setAreas($areas); } /** * Method to set the search parameters * * @access public * @param string search string * @param string mathcing option, exact|any|all * @param string ordering option, newest|oldest|popular|alpha|category */ function setSearch($keyword, $match = 'all', $ordering = 'newest') { if (isset($keyword)) { $this->setState('origkeyword', $keyword); if($match !== 'exact') { $keyword = preg_replace('#\xE3\x80\x80#s', ' ', $keyword); } $this->setState('keyword', $keyword); } if (isset($match)) { $this->setState('match', $match); } if (isset($ordering)) { $this->setState('ordering', $ordering); } } /** * Method to set the search areas * * @access public * @param array Active areas * @param array Search areas */ function setAreas($active = array(), $search = array()) { $this->_areas['active'] = $active; $this->_areas['search'] = $search; } /** * Method to get weblink item data for the category * * @access public * @return array */ function getData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $areas = $this->getAreas(); JPluginHelper::importPlugin('search'); $dispatcher = JDispatcher::getInstance(); $results = $dispatcher->trigger('onContentSearch', array( $this->getState('keyword'), $this->getState('match'), $this->getState('ordering'), $areas['active']) ); $rows = array(); foreach ($results as $result) { $rows = array_merge((array) $rows, (array) $result); } $this->_total = count($rows); if ($this->getState('limit') > 0) { $this->_data = array_splice($rows, $this->getState('limitstart'), $this->getState('limit')); } else { $this->_data = $rows; } } return $this->_data; } /** * Method to get the total number of weblink items for the category * * @access public * @return integer */ function getTotal() { return $this->_total; } /** * Method to get a pagination object of the weblink items for the category * * @access public * @return integer */ function getPagination() { // Lets load the content if it doesn't already exist if (empty($this->_pagination)) { jimport('joomla.html.pagination'); $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit')); } return $this->_pagination; } /** * Method to get the search areas * * @since 1.5 */ function getAreas() { // Load the Category data if (empty($this->_areas['search'])) { $areas = array(); JPluginHelper::importPlugin('search'); $dispatcher = JDispatcher::getInstance(); $searchareas = $dispatcher->trigger('onContentSearchAreas'); foreach ($searchareas as $area) { if (is_array($area)) { $areas = array_merge($areas, $area); } } $this->_areas['search'] = $areas; } return $this->_areas; } } PK/?\]views/search/view.html.phpnuW+AgetPathway(); $uri = JFactory::getURI(); $error = null; $rows = null; $results= null; $total = 0; // Get some data from the model $areas = $this->get('areas'); $state = $this->get('state'); $searchword = $state->get('keyword'); $params = $app->getParams(); $menus = $app->getMenu(); $menu = $menus->getActive(); // because the application sets a default page title, we need to get it // right from the menu item itself if (is_object($menu)) { $menu_params = new JRegistry; $menu_params->loadString($menu->params); if (!$menu_params->get('page_title')) { $params->set('page_title', JText::_('COM_SEARCH_SEARCH')); } } else { $params->set('page_title', JText::_('COM_SEARCH_SEARCH')); } $title = $params->get('page_title'); if ($app->getCfg('sitename_pagetitles', 0) == 1) { $title = JText::sprintf('JPAGETITLE', $app->getCfg('sitename'), $title); } elseif ($app->getCfg('sitename_pagetitles', 0) == 2) { $title = JText::sprintf('JPAGETITLE', $title, $app->getCfg('sitename')); } $this->document->setTitle($title); if ($params->get('menu-meta_description')) { $this->document->setDescription($params->get('menu-meta_description')); } if ($params->get('menu-meta_keywords')) { $this->document->setMetadata('keywords', $params->get('menu-meta_keywords')); } if ($params->get('robots')) { $this->document->setMetadata('robots', $params->get('robots')); } // built select lists $orders = array(); $orders[] = JHtml::_('select.option', 'newest', JText::_('COM_SEARCH_NEWEST_FIRST')); $orders[] = JHtml::_('select.option', 'oldest', JText::_('COM_SEARCH_OLDEST_FIRST')); $orders[] = JHtml::_('select.option', 'popular', JText::_('COM_SEARCH_MOST_POPULAR')); $orders[] = JHtml::_('select.option', 'alpha', JText::_('COM_SEARCH_ALPHABETICAL')); $orders[] = JHtml::_('select.option', 'category', JText::_('JCATEGORY')); $lists = array(); $lists['ordering'] = JHtml::_('select.genericlist', $orders, 'ordering', 'class="inputbox"', 'value', 'text', $state->get('ordering')); $searchphrases = array(); $searchphrases[] = JHtml::_('select.option', 'all', JText::_('COM_SEARCH_ALL_WORDS')); $searchphrases[] = JHtml::_('select.option', 'any', JText::_('COM_SEARCH_ANY_WORDS')); $searchphrases[] = JHtml::_('select.option', 'exact', JText::_('COM_SEARCH_EXACT_PHRASE')); $lists['searchphrase' ]= JHtml::_('select.radiolist', $searchphrases, 'searchphrase', '', 'value', 'text', $state->get('match')); // log the search SearchHelper::logSearch($searchword); //limit searchword $lang = JFactory::getLanguage(); $upper_limit = $lang->getUpperLimitSearchWord(); $lower_limit = $lang->getLowerLimitSearchWord(); if (SearchHelper::limitSearchWord($searchword)) { $error = JText::sprintf('COM_SEARCH_ERROR_SEARCH_MESSAGE', $lower_limit, $upper_limit); } //sanatise searchword if (SearchHelper::santiseSearchWord($searchword, $state->get('match'))) { $error = JText::_('COM_SEARCH_ERROR_IGNOREKEYWORD'); } if (!$searchword && count(JRequest::get('post'))) { //$error = JText::_('COM_SEARCH_ERROR_ENTERKEYWORD'); } // put the filtered results back into the model // for next release, the checks should be done in the model perhaps... $state->set('keyword', $searchword); if ($error == null) { $results = $this->get('data'); $total = $this->get('total'); $pagination = $this->get('pagination'); require_once JPATH_SITE . '/components/com_content/helpers/route.php'; for ($i=0, $count = count($results); $i < $count; $i++) { $row = &$results[$i]->text; if ($state->get('match') == 'exact') { $searchwords = array($searchword); $needle = $searchword; } else { $searchworda = preg_replace('#\xE3\x80\x80#s', ' ', $searchword); $searchwords = preg_split("/\s+/u", $searchworda); $needle = $searchwords[0]; } $row = SearchHelper::prepareSearchContent($row, $needle); $searchwords = array_unique($searchwords); $searchRegex = '#('; $x = 0; foreach ($searchwords as $k => $hlword) { $searchRegex .= ($x == 0 ? '' : '|'); $searchRegex .= preg_quote($hlword, '#'); $x++; } $searchRegex .= ')#iu'; $row = preg_replace($searchRegex, '\0', $row); $result = &$results[$i]; if ($result->created) { $created = JHtml::_('date', $result->created, JText::_('DATE_FORMAT_LC3')); } else { $created = ''; } $result->text = JHtml::_('content.prepare', $result->text, '', 'com_search.search'); $result->created = $created; $result->count = $i + 1; } } // Check for layout override $active = JFactory::getApplication()->getMenu()->getActive(); if (isset($active->query['layout'])) { $this->setLayout($active->query['layout']); } //Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx')); $this->assignRef('pagination', $pagination); $this->assignRef('results', $results); $this->assignRef('lists', $lists); $this->assignRef('params', $params); $this->ordering = $state->get('ordering'); $this->searchword = $searchword; $this->origkeyword = $state->get('origkeyword'); $this->searchphrase = $state->get('match'); $this->searchareas = $areas; $this->total = $total; $this->error = $error; $this->action = $uri; parent::display($tpl); } } PK/?\nviews/search/metadata.xmlnuW+A PK/?\L#views/search/tmpl/default_error.phpnuW+A error): ?>
escape($this->error); ?>
PK/?\)views/search/tmpl/.htaccessnuW+A Order allow,deny Deny from all PK/?\Vviews/search/tmpl/index.htmlnuW+A PK/?\$T "views/search/tmpl/default_form.phpnuW+AgetUpperLimitSearchWord(); ?>
searchword)):?>

total);?>

lists['searchphrase']; ?>
lists['ordering'];?>
params->get('search_areas', 1)) : ?>
searchareas['search'] as $val => $txt) : $checked = is_array($this->searchareas['active']) && in_array($val, $this->searchareas['active']) ? 'checked="checked"' : ''; ?> />
total > 0) : ?>
pagination->getLimitBox(); ?>

pagination->getPagesCounter(); ?>

PK/?\WUUviews/search/tmpl/default.phpnuW+A
params->get('show_page_heading')) : ?>

escape($this->params->get('page_heading'))) :?> escape($this->params->get('page_heading')); ?> escape($this->params->get('page_title')); ?>

loadTemplate('form'); ?> error==null && count($this->results) > 0) : echo $this->loadTemplate('results'); else : echo $this->loadTemplate('error'); endif; ?>
PK/?\  views/search/tmpl/default.xmlnuW+A
PK/?\5jj%views/search/tmpl/default_results.phpnuW+A
results as $result) : ?>
pagination->limitstart + $result->count.'. ';?> href) :?> browsernav == 1) :?> target="_blank"> escape($result->title);?> escape($result->title);?>
section) : ?>
(escape($result->section); ?>)
text; ?>
params->get('show_date')) : ?>
created); ?>
PK/?\xTr views/search/view.opensearch.phpnuW+AsetShortName($params->get('opensearch_name', $app->getCfg('sitename'))); $doc->setDescription($params->get('opensearch_description', $app->getCfg('MetaDesc'))); // Add the URL for the search $searchUri = JURI::base().'index.php?option=com_search&searchword={searchTerms}'; // Find the menu item for the search $menu = $app->getMenu(); $items = $menu->getItems('link', 'index.php?option=com_search&view=search'); if (isset($items[0])) { $searchUri .= '&Itemid='.$items[0]->id; } $htmlSearch = new JOpenSearchUrl(); $htmlSearch->template = JRoute::_($searchUri); $doc->addUrl($htmlSearch); } } PK/?\)views/search/.htaccessnuW+A Order allow,deny Deny from all PK/?\Vviews/search/index.htmlnuW+A PK/?\pn5vv router.phpnuW+A\) .htaccessnuW+APK8>\)searches/.htaccessnuW+APK8>\"ysearches/default.phpnuW+APK8>\Vsearches/index.htmlnuW+APK8>\V 6index.htmlnuW+APK>\)views/.htaccessnuW+APK>\VMviews/index.htmlnuW+APK>\)views/searches/.htaccessnuW+APK>\Vsviews/searches/tmpl/index.htmlnuW+APK>\̊4views/searches/tmpl/default.phpnuW+APK>\)"#views/searches/tmpl/.htaccessnuW+APK>\V#views/searches/index.htmlnuW+APK>\ oV$views/searches/view.html.phpnuW+APK>\L n*search.xmlnuW+APK>\ _0search.phpnuW+APK>\a5b,, v2config.xmlnuW+APK>\] 8access.xmlnuW+APK>\V:controllers/index.htmlnuW+APK>\ISnn%;controllers/searches.phpnuW+APK>\)>controllers/.htaccessnuW+APK>\5  ?controller.phpnuW+APK>\ 9llImodels/searches.phpnuW+APK>\V[models/index.htmlnuW+APK>\)\models/.htaccessnuW+APK>\)\helpers/.htaccessnuW+APK>\؟;]helpers/site.phpnuW+APK>\'$W`helpers/search.phpnuW+APK>\Vyhelpers/index.htmlnuW+APK/?\C[[ymodels/search.phpnuW+APK/?\]views/search/view.html.phpnuW+APK/?\nBviews/search/metadata.xmlnuW+APK/?\L#views/search/tmpl/default_error.phpnuW+APK/?\)views/search/tmpl/.htaccessnuW+APK/?\Vviews/search/tmpl/index.htmlnuW+APK/?\$T "+views/search/tmpl/default_form.phpnuW+APK/?\WUU?views/search/tmpl/default.phpnuW+APK/?\  views/search/tmpl/default.xmlnuW+APK/?\5jj%4views/search/tmpl/default_results.phpnuW+APK/?\xTr views/search/view.opensearch.phpnuW+APK/?\)-views/search/.htaccessnuW+APK/?\Vviews/search/index.htmlnuW+APK/?\pn5vv Xrouter.phpnuW+APK**