public function proc() { if (system::isAjax() && system::issetUrl(2)) { if (system::url(2) == 'start') { searchIndex::clear(); reg::setKey(ormPages::getPrefix('search') . '/index_date', date('d.m.Y')); $sel = new ormSelect(); $sel->fields('name'); $sel->findInPages(); $sel->where('active', '=', 1); $sel->where('in_search', '=', 1); echo $sel->getCount(); } else { if (system::url(2) == 'info') { $data = reg::getKey(ormPages::getPrefix('search') . '/index_date'); if (empty($data)) { $data = '-'; } system::json(array('pages' => searchIndex::getCountPages(), 'words' => searchIndex::getCountWords(), 'data' => $data)); } else { $sel = new ormSelect(); $sel->findInPages(); $sel->where('active', '=', 1); $sel->where('in_search', '=', 1); $sel->limit(system::url(2), 1); searchIndex::indexPage($sel->getObject()); echo 'ok'; } } system::stop(); } if (system::POST('parram') == 'clear') { searchIndex::clear(); } system::redirect('/search/index'); }
public function defAction() { page::globalVar('h1', lang::get('SEARCH_H1')); page::globalVar('title', lang::get('SEARCH_H1')); $templ_file = '/search/default.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('search.getResult', $templ_file); } if (!empty($_SESSION['search_words']) && empty($_POST['words'])) { $_POST['words'] = $_SESSION['search_words']; } if (isset($_POST['classes'])) { $_SESSION['search_classes'] = $_POST['classes']; } if (!empty($_SESSION['search_classes']) && !isset($_POST['classes'])) { $_POST['classes'] = $_SESSION['search_classes']; } if (!empty($_POST['words'])) { $words = $_POST['words']; $_SESSION['search_words'] = $_POST['words']; // Получаем список классов $classes_filter = array(); if (!empty($_POST['classes'])) { $tmp = explode(",", $_POST['classes']); $classes_filter = array(); foreach ($tmp as $v) { $v = trim($v); if (!empty($v)) { $classes_filter[] = $v; } } } $max_count = reg::getKey(ormPages::getPrefix('search') . '/max_count'); $start = (system::getCurrentNavNum() - 1) * $max_count; $result = searchIndex::find($_POST['words'], $max_count, $start, $classes_filter); $list = ''; $fields_arr = array(); if (!empty($result)) { $page_count = ceil($result['count'] / $max_count); while (list($num, $val) = each($result['pages'])) { if ($page = ormPages::get($val['page_id'])) { page::assign('obj.num', $num + $start + 1); page::assign('obj.url', $page->_url); page::assign('obj.rank', $val['rank']); $cn = $page->getClass()->getSName(); $block_name = isset($TEMPLATE['list_' . $cn]) ? 'list_' . $cn : 'list'; if (!isset($fields_arr[$block_name])) { $fields_arr[$block_name] = array(); $fields = page::getFields('obj', $TEMPLATE[$block_name]); if (isset($fields['obj'])) { while (list($key, $val) = each($fields['obj'])) { if ($val != 'url' && $val != 'class' && $val != 'num' && $val != 'rank') { $fields_arr[$block_name][$val] = $val; } } } } reset($fields_arr[$block_name]); while (list($key, $val) = each($fields_arr[$block_name])) { page::assign('obj.' . $key, $page->__get($key)); } $list .= page::parse($TEMPLATE[$block_name]); } } } else { $page_count = 0; } page::assign('count_page', $page_count); } else { $words = $list = ''; } if (!empty($list)) { page::assign('list', $list); page::fParse('list', $TEMPLATE['frame_list']); } else { page::fParse('list', $TEMPLATE['not_found']); } page::assign('words', $words); return page::parse($TEMPLATE['frame']); }
protected function createObject() { // Проверяем, если в структуре сайта нет домашней страницы, делаем текущую таковой if (isset($this->new_prop['is_home_page']) && !$this->new_prop['is_home_page']) { $hp = db::q('SELECT p_obj_id FROM <<pages>> WHERE lang_id = "' . languages::curId() . '" and domain_id = "' . domains::curId() . '" and is_home_page = 1', value); $this->new_prop['is_home_page'] = empty($hp) ? 1 : 0; } $ret = parent::createObject(); if ($ret !== false) { $this->saveRight(true); if (isset($this->new_prop['pseudo_url']) && strlen($this->new_prop['pseudo_url']) > 80) { $this->new_prop['pseudo_url'] = $this->id; } $fields = ''; reset($this->new_prop); while (list($key, $value) = each($this->new_prop)) { if ($this->isPageField($key)) { $fields .= $this->procValue($key, $value); } } $fields = substr($fields, 0, strlen($fields) - 2); if (!empty($fields)) { $this->setHomePage(false); $fields = ', ' . $fields; $sql = 'INSERT INTO <<pages>> SET p_obj_id = "' . $this->id . '", lang_id = "' . languages::curId() . '", domain_id = "' . domains::curId() . '"' . $fields . ';'; if (db::q($sql) !== false) { $ret = $this->id; searchIndex::autoIndex($this); ormPages::clearCache(); system::revue($this, 'Добавил страницу', info); } else { $ret = false; } } } return $ret; }