<?php require_once './vendor/autoload.php'; use Symfony\Component\Finder\Finder; $searcher = new search(); echo $searcher->find(); // -------- class Search { private $results = array(); private $titles = array(); private $items = array(); public function find() { // Set $q if (isset($_GET['q'])) { $q = $_GET['q']; } else { $q = ""; } // Split on words. $q = preg_split("/(?<=\\w)\\b\\s*/", $q); foreach ($q as $atom) { $this->searchWord($atom); } arsort($this->results); // \Dumper::dump($this->results); foreach ($this->results as $page => $score) { $this->items[] = array('id' => $page, 'text' => $this->titles[$page]); } return json_encode(array("items" => $this->items));
/** * delete item in module */ function delete() { $modelname = $this->basemodel_name; if (empty($this->params['id'])) { flash('error', gt('Missing id for the') . ' ' . $modelname . ' ' . gt('you would like to delete')); expHistory::back(); } $obj = new $modelname($this->params['id']); $rows = $obj->delete(); // if this module is searchable lets delete spidered content if ($this->isSearchable()) { $search = new search(); $content = $search->find('first', 'original_id=' . $this->params['id'] . " AND ref_module='" . $this->classname . "'"); if (!empty($content->id)) { $content->delete(); } } expHistory::back(); }
<?php if (!defined('PROPER_START')) { header("HTTP/1.0 403 Forbidden"); exit; } require_once 'on/doc/menu.php'; if ($_GET['keyword']) { $search = new search(__DIR__); $results = $search->find($_GET['keyword']); } $content = "\n\t\t<div class=\"head-light\">\n\t\t\t<div class=\"container\">\n\t\t\t\t<h1 class=\"dark\" style=\"float: left;\">{$lang['title']}</h1>\n\t\t\t\t<form id=\"searchform\" action=\"/doc/search\" method=\"get\"><input type=\"submit\" style=\"display: none;\" /><input name=\"keyword\" class=\"auto\" style=\"width: 380px; font-size: 15px; float: right;\" type=\"text\" id=\"search\" value=\"{$GLOBALS['lang']['search']}\" onfocus=\"this.value = this.value=='{$GLOBALS['lang']['search']}' ? '' : this.value; this.style.color='#4c4c4c';\" onfocusout=\"this.value = this.value == '' ? this.value = '{$GLOBALS['lang']['search']}' : this.value; this.value=='{$GLOBALS['lang']['search']}' ? this.style.color='#cccccc' : this.style.color='#4c4c4c'\" /></form>\n\t\t\t\t<div class=\"clear\"></div>\n\t\t\t</div>\n\t\t</div>\t\n\t\t<div class=\"content\">\t\t\n\t\t\t<div class=\"left small\">\n\t\t\t\t<div class=\"sidemenu\">\n\t\t\t\t\t{$menu}\n\t\t\t\t</div>\t\t\t\t\t\n\t\t\t</div>\n\t\t\t<div class=\"right big\">\t\n\t\t\t\t<h3>{$lang['result']} \"" . security::encode($_GET['keyword']) . "\"</h3>\n\t\t\t\t<br />\n\t\t\t\t\n"; if (count($results) > 0) { $content .= "<ul class=\"search\">"; foreach ($results as $key => $value) { $content .= "\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<h2 class=\"dark\" style=\"margin-bottom: 5px;\">{$value['title']}</h2>\n\t\t\t\t\t\t<a href=\"/doc/{$key}\">https://www.olympe.in/doc/{$key}</a><br />\n\t\t\t\t\t\t<p>{$value['content']}</p>\n\t\t\t\t\t</li>\n\t\t"; } $content .= "</ul>"; } else { $content .= "<span style=\"font-size: 16px;\">{$lang['noresult']}</span>"; } $content .= "\n\t\t\t</div>\n\t\t\t<div class=\"clear\">/div><br /><br />\n\t\t</div>\n"; /* ========================== OUTPUT PAGE ========================== */ $template->output($content);