0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 12069 Просмотров
*

Dutch

  • Глобальный модератор
  • 662
  • 88 / 2
  • Проф. разработка больших порталов с нуля!
Итак в полях у нас есть опция отображения в простом поиске.
Но как такового простого поиска у нас нет, точнее есть, но он используется для поискового мамбота.

Ну что ж тогда его создадим.

Открываем файл mtree.php и после функции function search( $option ) вставляем следующий код:


/***
* Mini Search
*/

function minisearch$option ) {
	
global 
$cache$_MT_LANG$mainframe;

	
$mainframe->setPageTitle$_MT_LANG->SEARCH );

	
$cache->call'minisearch_cache'$option );
}

function 
minisearch_cache$option ) {
	
global 
$savantConf$_MT_LANG$database$Itemid$mtconf;

	
require_once( 
$mtconf->getjconf('absolute_path') . '/administrator/components/com_mtree/mfields.class.php' );

	
# Pathway
	
$pathWay = new mtPathWay();

	
# Search condition
	
$searchConditions[] = mosHTML::makeOption1strtolower($_MT_LANG->ANY) );
	
$searchConditions[] = mosHTML::makeOption2strtolower($_MT_LANG->ALL) );
	
$lists['searchcondition'] = mosHTML::selectList$searchConditions'searchcondition''class="inputbox" size="1"',
	
'value''text');

	
# Load all CORE and custom fields
	
$database->setQuery"SELECT cf.*, '0' AS link_id, '' AS value, '0' AS attachment, ft.ft_class FROM #__mt_customfields AS cf "
	
	
.
	
"\nLEFT JOIN #__mt_fieldtypes AS ft ON ft.field_type=cf.field_type"
	
	
.
	
"\nWHERE cf.published='1' && simple_search = '1' ORDER BY ordering ASC" );  
	
$fields = new mFields($database->loadObjectList());

	
# Savant Template
	
$savant = new Savant2($savantConf);
	
assignCommonListlinksVar$savant$links$pathWay$pageNav );
	
$savant->assignRef('catlist'$catlist);
	
$savant->assignRef('fields'$fields);
	
$savant->assignRef('lists'$lists);

	
$savant->_MT_LANG =& $_MT_LANG;
	
$savant->display'page_miniSearch.tpl.php' );

}


Теперь нам нужно создать страницу для простого поиска. В шаблонах создадим файл page_miniSearch.tpl.php и вставим следующий код (обратите внимание, я убрал вывод категорий, так как это простой поиск):


<script language="javascript" type="text/javascript">
	
function 
submitbutton(pressbutton) {
	
	
var 
form document.adminForm;
	
	
form.task.value=pressbutton;
	
	
form.submit();
	
	
}
</script>
<h2 class="contentheading"><?php echo $this->_MT_LANG->SEARCH ?></h2>
<br /><br />
<form action="<?php echo sefRelToAbs("index.php"?>" method="post" name="adminForm" id="adminForm">
<table width="96%" cellpadding="4" cellspacing="0" border="0" align="center">
	
<?php
	
while( 
$this->fields->hasNext() ) {
	
	
$field $this->fields->getField();
	
	
if(
$field->hasSearchField()) {
	
	
	
echo 
'<tr>';
	
	
	
echo 
'<td width="20%" valign="top" align="left">' $field->caption ':' '</td>';
	
	
	
echo 
'<td width="80%" align="left">';
	
	
	
echo 
$field->getSearchHTML();
	
	
	
echo 
'</td>';
	
	
	
echo 
'</tr>';
	
	
}
	
	
$this->fields->next();
	
}
	
?>
	
<tr height="60">
	
	
<td colspan="2">
	
	
<input type="submit" value="<?php echo $this->_MT_LANG->SEARCH ?>" onclick="javascript:submitbutton('advsearch2')" class="button" /></td>
	
</tr>
	
<input type="hidden" name="Itemid" value="<?php echo $this->Itemid ?>" />
	
<input type="hidden" name="option" value="com_mtree" />
	
<input type="hidden" name="task" value="advsearch2" />
</table>
</form>


Поехали дальше.

Теперь нужно задать вывод простого поиска через компонент.
Находим в файле mtree.php перечень тасков для поиска:


	
/* Search */
	
case 
"search":
	
	
search$option );
	
	
break;
	
case 
"advsearch":
	
	
advsearch$option );
	
	
break;
	
case 
"advsearch2":
	
	
advsearch2$option );
	
	
break;


и добавляем наш простой поиск:


	
case 
"minisearch":
	
	
minisearch$option );
	
	
break;


Адрес к нашей странице с простым поиском:
www.сайт.ру/component/option,com_mtree/task,minisearch/Itemid,99999/

Как работает простой поиск?

Все очень просто, как я и писал выше, мы задаем для полей в админке, отображать или нет поле для простого поиска.
Выбрали нужные поля, и задали отображение полей при простом поиске.
« Последнее редактирование: 17.09.2008, 04:02:15 от Dutch »
*

Sergeych

  • Захожу иногда
  • 150
  • 23 / 0
Спасибо большое, мне действительно очень помогло!!
делал для j1.5 поэтому адрес страницы поиска получился вида
http://сайт.ru/index.php?option=com_mtree&task=minisearch
ну да отдельная страница мне в общем и не нужна была, просто добавил вызов функции
<?php minisearch( $option );?>
в файл page_index.tpl.php (Главная страница каталога) аккурат после вывода заголовка каталога и после этого отключил отдельный модуль поиска в принципе - "за ненужностью".  Получилось чудненько - На главной поисковая форма (настраиваемая) и ниже сам каталог ;D.
Автору респект!
*

dimko300

  • Захожу иногда
  • 61
  • 1 / 0
Эта функция в 2.10 работать отказывается!! Нужна помощь, не могу понять почему??? !!!???!!!

Когда подключаю: case "minisearch":
      minisearch( $option );
      break;
Ругается, что не известная для нее функция!
« Последнее редактирование: 26.06.2009, 13:54:04 от dimko300 »

Народ! С версией 2.1.3 кто-нибудь разобрался? Очень надо!

Кто-нибудь может помочь доработать поиск? Версия 2.1.3!
Или создать свою функцию поиска.
Детали тут - http://joomlaforum.ru/index.php/topic,141447.new.html#new
« Последнее редактирование: 04.02.2011, 10:22:57 от goshik »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AlphaUserPoints и Mosets Tree

Автор polattt

Ответов: 0
Просмотров: 1056
Последний ответ 22.01.2017, 20:24:58
от polattt
Как в Mosets Tree вывести количество просмотров материала?

Автор burano

Ответов: 0
Просмотров: 1168
Последний ответ 11.12.2016, 01:42:44
от burano
Mosets Tree: чтоб картинки красиво открывались

Автор eozee

Ответов: 22
Просмотров: 17975
Последний ответ 02.11.2016, 21:04:58
от ankris
Yandex map в Mosets Tree

Автор burano

Ответов: 10
Просмотров: 1883
Последний ответ 28.08.2016, 09:46:25
от Best223
Не Разрешить создание материалов в корне Mosets Tree 2.1:

Автор saibovazad

Ответов: 7
Просмотров: 2940
Последний ответ 28.08.2016, 09:41:35
от Best223