function help_search($appname, $query, $lang) { loader_import('saf.File'); loader_import('saf.File.Directory'); $query = help_split_query($query); //info ($query); $files = Dir::find('*.html', 'inc/app/' . $appname . '/docs/' . $lang); if (count($files) == 0) { return false; // no help files } $results = array(); foreach ($files as $file) { if (strstr($file, '/.')) { continue; } if ($hits = File::contains($query, false, $file, true, 'strip_tags')) { $results[] = help_extract_info($file, $query, $hits); } } // sort by hits now for ($i = 0; $i < count($results); $i++) { for ($j = $i + 1; $j < count($results); $j++) { if ($results[$j]->hits > $results[$i]->hits) { $tmp = $results[$j]; $results[$j] = $results[$i]; $results[$i] = $tmp; } } } return $results; }
if (!$parameters['query']) { echo template_simple('search.spt', $parameters); return; } loader_import('news.Functions'); loader_import('news.Story'); $story = new NewsStory(); if (!$parameters['limit']) { $parameters['limit'] = 10; } if (!$parameters['offset']) { $parameters['offset'] = 0; } $story->limit($parameters['limit']); $story->offset($parameters['offset']); loader_import('help.Help'); $params = array(); foreach (help_split_query($parameters['query']) as $item) { $q = db_quote('%' . $item . '%'); $params[] = 'title like ' . $q . ' or summary like ' . $q . ' or body like ' . $q; } $parameters['results'] = $story->find($params); $parameters['total'] = $story->total; loader_import('saf.GUI.Pager'); $pg = new Pager($parameters['offset'], $parameters['limit'], $parameters['total']); $pg->getInfo(); $pg->setUrl(site_prefix() . '/index/news-search-action?query=' . urlencode($parameters['query'])); template_simple_register('pager', $pg); echo template_simple('search.spt', $parameters);
foreach ($pages as $file) { $id = help_get_id($file); if ($id == 'index') { continue; } $body = @join(@file($file)); $title = help_get_title($body, $id); echo '<li><a href="' . site_prefix() . '/index/help-app?appname=' . $parameters['appname'] . '&lang=' . $parameters['lang'] . '&helpfile=' . $id . '">' . $title . '</a></li>'; } echo '</ol>'; return; } $out = join('', file('inc/app/' . $parameters['appname'] . '/docs/' . $parameters['lang'] . '/' . $parameters['helpfile'] . '.html')); if (!empty($parameters['highlight'])) { loader_import('help.Help'); foreach (help_split_query($parameters['highlight']) as $item) { $out = preg_replace('/(' . preg_quote($item, '/') . ')/i', '<span style=\'background-color: #ff0\'>\\1</span>', $out); } $out = '<p style=\'background-color: #ff0; padding: 3px; margin-top: 20px\'><strong>' . intl_get('Highlighting Search Terms') . '</strong>: ' . htmlentities($parameters['highlight']) . '</p>' . $out; } // build navigation $pages = help_get_pages($parameters['appname'], $parameters['lang']); $previous = help_get_previous($parameters['appname'], $parameters['lang'], $parameters['helpfile'], $pages); if ($previous) { $data['previous_id'] = $previous['id']; $data['previous_title'] = $previous['title']; } else { $data['previous_id'] = false; } $next = help_get_next($parameters['appname'], $parameters['lang'], $parameters['helpfile'], $pages); if ($next) {