Тема закрыта
спасибо
да, но надо сравнить файлы, чтобы добавилось только моё дополнение
в модули кроме поиска. в функцию view перед $html = $this->_replaceMarkets($markets, $html);
и в самый конец перед
}
?>
потом в модуле поиска: (вывод команды diff)
260c260
< foreach ($rec as $key => $field) {
---
> foreach ($rec as $field) {
264,274c264
< if (empty($text) || mb_strlen($text) < $this->minInputStr || $key === 'title' || $key === 'tags' || $key === 'download' || $key === 'description' || $key === 'download_url' || $key === 'download_url_size' || $key === 'sourse' || $key === 'sourse_email') continue;
<
< if($table == 'posts'){
< $rec_id_theme = $rec['id_theme'];
< $inf_theme = $this->DB->select('themes', DB_FIRST, array('cond' => array('id' => $rec_id_theme)));
< $inf_theme = $this->Parser->quoteTags($inf_theme[0]);
< $title = $inf_theme['title'];
< } else {
< $title = $rec['title'];
< }
< $tags = '';
---
> if (empty($text) || mb_strlen($text) < $this->minInputStr) continue;
285d274
< $tags = $rec['tags'];
290d278
< 'title' => $title,
297d284
< 'tags' => $tags,
1
Похожие материалы
Отправлено: 16 Мар 2012#1
Со идее Ater сделал вывод похожих материалов. Поиск осуществляется по ключевым словам. Показываются материалы из статей, файлов и новостей.
Создайте в SQL поля:
потом распакуйте архив... лучше сравните с вашими файлами
http://dl.dropbox.com/u/60020707/relmat.7z
также немного изменяется алгоритм модуля поиск - теперь создаётся по одной записи на материал и можно легко добавить метку, выводящую титлу материала
Добавлено2012.03.16 21-29
хотелось бы видеть в сборке
Добавлено2012.03.16 21-36
не забудьте после установки почистить кэш индексированных файлов. Удалите /sys/tmp/search/meta.dat
Создайте в SQL поля:
Code:
ALTER TABLE `search_index` ADD `title` TEXT NOT NULL;
ALTER TABLE `search_index` ADD `tags` TEXT NOT NULL;
ALTER TABLE `search_index` ADD `tags` TEXT NOT NULL;
потом распакуйте архив... лучше сравните с вашими файлами
также немного изменяется алгоритм модуля поиск - теперь создаётся по одной записи на материал и можно легко добавить метку, выводящую титлу материала
Добавлено2012.03.16 21-29
хотелось бы видеть в сборке
Добавлено2012.03.16 21-36
не забудьте после установки почистить кэш индексированных файлов. Удалите /sys/tmp/search/meta.dat
Отредактировано автором 16 Мар 2012
Отправлено: 16 Мар 2012#2
Привет отличная работа.
А это можно ставить на любую версию?
Добавлено2012.03.16 22-33
Походу к 1.3 не идет я быстро глянул выдает ошибку После завтра буду разбератся.
А ты не можешь отдельно код выложить какой функционал ты в модули добавил?
А это можно ставить на любую версию?
Добавлено2012.03.16 22-33
Походу к 1.3 не идет я быстро глянул выдает ошибку После завтра буду разбератся.
А ты не можешь отдельно код выложить какой функционал ты в модули добавил?
Отправлено: 17 Мар 2012#3
vladevakz пишет:
Привет отличная работа.
vladevakz пишет:
А это можно ставить на любую версию?
vladevakz пишет:
А ты не можешь отдельно код выложить какой функционал ты в модули добавил?
Code:
$resultsnrel = $this->_search($result);
if (count($resultsnrel) < 1) {
$markets['{RELMAT}'] = '';
} else {
$fgh = 'Возможно, вас заинтересует:<br>';
foreach ($resultsnrel as $result0) {
$marketsrel = array();
$templrel = $this->Parser->getAndParse('relmat.html');
$title = $result0['title'];
$entry_url = get_url('/' . $result0['module'] . $result0['entity_view'] . $result0['entity_id']);
$marketsrel['{ENTRY_URL}'] = $entry_url;
$marketsrel['{TITLE}'] = $title;
$fgh .= $this->_replaceMarkets($marketsrel, $templrel);
$markets['{RELMAT}'] = $fgh;
}
}
if (count($resultsnrel) < 1) {
$markets['{RELMAT}'] = '';
} else {
$fgh = 'Возможно, вас заинтересует:<br>';
foreach ($resultsnrel as $result0) {
$marketsrel = array();
$templrel = $this->Parser->getAndParse('relmat.html');
$title = $result0['title'];
$entry_url = get_url('/' . $result0['module'] . $result0['entity_view'] . $result0['entity_id']);
$marketsrel['{ENTRY_URL}'] = $entry_url;
$marketsrel['{TITLE}'] = $title;
$fgh .= $this->_replaceMarkets($marketsrel, $templrel);
$markets['{RELMAT}'] = $fgh;
}
}
и в самый конец перед
}
?>
Code:
function _search($result) {
$str = $result['tags'];
$words = explode(', ', $str);
$_words = array();
foreach ($words as $key => $word) {
$_words[] = $word;
}
$string = resc(implode('* ', $_words) . '*');
//query
$limit = '5';
$idmat = $result['id'];
$resultsrel = $this->DB->query("
SELECT * FROM `" . $this->DB->getFullTableName('search_index') . "`
WHERE MATCH (`index`) AGAINST ('" . $string . "' IN BOOLEAN MODE) + MATCH (`tags`) AGAINST ('" . $string . "' IN BOOLEAN MODE) AND module != 'forum' AND entity_id != '$idmat'
ORDER BY MATCH (`index`) AGAINST ('" . $string . "' IN BOOLEAN MODE) AND MATCH (`tags`) AGAINST ('" . $string . "' IN BOOLEAN MODE) DESC LIMIT " . $limit);
return $resultsrel;
}
$str = $result['tags'];
$words = explode(', ', $str);
$_words = array();
foreach ($words as $key => $word) {
$_words[] = $word;
}
$string = resc(implode('* ', $_words) . '*');
//query
$limit = '5';
$idmat = $result['id'];
$resultsrel = $this->DB->query("
SELECT * FROM `" . $this->DB->getFullTableName('search_index') . "`
WHERE MATCH (`index`) AGAINST ('" . $string . "' IN BOOLEAN MODE) + MATCH (`tags`) AGAINST ('" . $string . "' IN BOOLEAN MODE) AND module != 'forum' AND entity_id != '$idmat'
ORDER BY MATCH (`index`) AGAINST ('" . $string . "' IN BOOLEAN MODE) AND MATCH (`tags`) AGAINST ('" . $string . "' IN BOOLEAN MODE) DESC LIMIT " . $limit);
return $resultsrel;
}
потом в модуле поиска: (вывод команды diff)
260c260
< foreach ($rec as $key => $field) {
---
> foreach ($rec as $field) {
264,274c264
< if (empty($text) || mb_strlen($text) < $this->minInputStr || $key === 'title' || $key === 'tags' || $key === 'download' || $key === 'description' || $key === 'download_url' || $key === 'download_url_size' || $key === 'sourse' || $key === 'sourse_email') continue;
<
< if($table == 'posts'){
< $rec_id_theme = $rec['id_theme'];
< $inf_theme = $this->DB->select('themes', DB_FIRST, array('cond' => array('id' => $rec_id_theme)));
< $inf_theme = $this->Parser->quoteTags($inf_theme[0]);
< $title = $inf_theme['title'];
< } else {
< $title = $rec['title'];
< }
< $tags = '';
---
> if (empty($text) || mb_strlen($text) < $this->minInputStr) continue;
285d274
< $tags = $rec['tags'];
290d278
< 'title' => $title,
297d284
< 'tags' => $tags,
Отредактировано автором 17 Мар 2012
Отправлено: 19 Мар 2012#4
круто. Как освобожусь от текущих танцев вокруг фапоса, глуну что тут к чему. Скорее всего будет в сборке.
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
1
Зарегистрируйтесь или авторизуйтесь что бы писать
Сейчас online: 185. Зарегистрированных: 1. Гостей: 184.