Итак в полях у нас есть опция отображения в простом поиске.
Но как такового простого поиска у нас нет, точнее есть, но он используется для поискового мамбота.
Ну что ж тогда его создадим.
Открываем файл
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::makeOption( 1, strtolower($_MT_LANG->ANY) );
$searchConditions[] = mosHTML::makeOption( 2, strtolower($_MT_LANG->ALL) );
$lists['searchcondition'] = mosHTML::selectList( $searchConditions, 'searchcondition', 'class="inputbox" size="1"',
'value', 'text', 1 );
# 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/
Как работает простой поиск?Все очень просто, как я и писал выше, мы задаем для полей в админке, отображать или нет поле для простого поиска.
Выбрали нужные поля, и задали отображение полей при простом поиске.