Class Search

[Строка 19]

Размещен: /Search/Search.class.php

Описание

Система управления сайтом HostCMS v. 5.xx

Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru

Класс модуля "Поиск".

Файл: /modules/Search/Search.class.php

author

Hostmake LLC

version

5.x


Свойства класса

  • $ModuleClass = array(0 => 'Structure',
       1 => 'InformationSystem',
       2 => 'Forums',
       3 => 'shop',
       4 => 'helpdesk',
       5 => 'SiteUsers')

    Массив соответствия идентификаторов модулей в таблице страниц модулям,

Константы класса


Унаследованные константы класса


Унаследованные свойства класса


Методы

  • void AdminMainPage()
    Функция обратного вызова для отображения блока на основной странице центра администрирования.
  • void DeleteSearchInfomationForSite()
    Удаление поисковой информации сайта
  • boolean Delete_search_words()
    Метод удаления из индекса страницы с указанным адресом
  • array GetLogStat()
    Метод для получения сгруппированной информации о поисковых запросах
  • void GetPageCount()
    Метод определения числа проиндексированных страниц
  • resource GetPageInfo()
    Получение информации о проиндексированных страницах
  • string GoSearch()
    Метод выводит результаты поиска запроса $query с помощью XSL-шаблона $xslname в соответствии с дополнительными параметрами
  • mixed InsertSearchInQuery()
    Метод для вставки запроса в журнал поисковых запросов
  • boolean Insert_search_word()
    Метод формирует индекс для переданного блока страниц
  • mixed SearchWords()
    Поиск списка слов в индексе. Примеры использования см. в руководстве по интеграции.

Унаследованные методы


Описания методов

    Search::AdminMainPage

    AdminMainPage( );

    Описание

    Функция обратного вызова для отображения блока на основной странице центра администрирования.

    [ Наверх ]


    Search::DeleteSearchInfomationForSite

    DeleteSearchInfomationForSite( int $site_id );

    Описание

    Удаление поисковой информации сайта

    Принимаемые параметры

    $site_id

    идентификатор сайта

    [ Наверх ]


    Search::Delete_search_words

    Delete_search_words( string $page_address, [ $site_id = NULL] );

    Описание

    Метод удаления из индекса страницы с указанным адресом

    Принимаемые параметры

    $page_address

    адрес удаляемой из индекса страницы

    $site_id

    Возвращает

    результат выполнения запроса

    [ Наверх ]


    Search::GetLogStat

    GetLogStat( string $date_from, string $date_to, $ext_param, [string $limit = ''], [array $param = array()] );

    Описание

    Метод для получения сгруппированной информации о поисковых запросах

    Принимаемые параметры

    $date_from

    дата, с которой начинать выборку

    $date_to

    дата, которой заканичивать выборку

    $limit

    ограничение

    $param

    ассоциативный массив параметров

    • $param['site_id'] идентификтор сайта, по которому выводить статистику, если не передан - статистика по всем сайтам

    $ext_param

    Возвращает

    с результатом выборки либо false

    [ Наверх ]


    Search::GetPageCount

    GetPageCount( [int $site_id = false] );

    Описание

    Метод определения числа проиндексированных страниц

    Принимаемые параметры

    $site_id

    идентификатор сайта, по умолчанию false

    1.  <?php
    2.  $Search = new Search();
    3.  
    4.  $site_id = CURRENT_SITE;
    5.  
    6.  $count $Search->GetPageCount($site_id);
    7.  
    8.  echo $count;
    9.  ?>

    [ Наверх ]


    Search::GetPageInfo

    GetPageInfo( [int $page_id = false] );

    Описание

    Получение информации о проиндексированных страницах

    Принимаемые параметры

    $page_id

    идентификатор страницы (если равен false, то возвращает информацию обо всех проиндексированных страницах)

    [ Наверх ]


    Search::GoSearch

    GoSearch( string $query, string $xslname, [array $param = array()], [array $external_propertys = array()] );

    Описание

    Метод выводит результаты поиска запроса $query с помощью XSL-шаблона $xslname в соответствии с дополнительными параметрами

    Принимаемые параметры

    $query

    текст поискового запроса

    $xslname

    имя XSL шаблона

    $param

    массив дополнительных параметров

    • $param['site_user_id'] int идентификатор пользователя сайта для определения прав доступа;
    • $param['current_page'] int номер текущей страницы результатов поиска (счет с 1);
    • $param['items_on_page'] int количество записей на странице;
    • $param['len'] int максимальная длина поискового запроса, значение по умолчанию 200;
    • $param['site_id'] mixed идентификатор или массив идентификаторов сайтов, по которым производится поиск. Если необходим поиск по текущему сайту, укажите значение CURRENT_SITE
    • $param['search_page_module'] массив модулей, ключами которого являются номера модулей, а значениями — массив идентификаторов элементов или массив с дополнительными условиями отбора элементов модулей
    • $param['order_field'] int поле сортировки (0 - по релевантности, 1 - по дате). по умолчанию 0
    • $param['order_direction'] int направление сортировки (ASC, DESC). по умолчанию DESC
    • $param['search_page_is_inner'] int осуществлять поиск по внешним страницам (значение 0), внутреним (значение 1) или всем страницам (значение false). по умолчанию имеет значение 0

    $external_propertys

    массив дополнительных свойств для включения в XML
    Описание и примеры вызовов см. у метода SearchWords()
    Пример поиска по информационной системе с номером 5 и 7, а также по магазину с номером 17.

    1.  $Search = new Search();
    2.  $property['search_page_module'= array(
    3.  1 => array (57),
    4.  3 => array (17));
    5.  
    6.  $Search->GoSearch($wordsto_str($GLOBALS['LA']['xsl'])$property);

    Пример поиска по информационной системе с номером 5 и 7 (с дополнительным условием поиска только по информационным элементам), а также по магазину с номером 17.

    1.  $Search = new Search();
    2.  
    3.  $property['search_page_module'= array(
    4.      1 => array (5,
    5.         array('search_page_module_entity_id' => 7,
    6.         'search_page_module_value_type' => 2)),
    7.      3 => array (17));
    8.  
    9.  $Search->GoSearch($wordsto_str($GLOBALS['LA']['xsl'])$property);

    see

    Search::SearchWords()

    [ Наверх ]


    Search::InsertSearchInQuery

    InsertSearchInQuery( array $param );

    Описание

    Метод для вставки запроса в журнал поисковых запросов

    Принимаемые параметры

    $param

    массив с доп. параметрами

    • int $param['search_log_text'] текст поискового запроса
    • int $param['site_users_id'] идентификатор пользователя сайта, сделавшего запрос, если не установлен - берется текущий пользователь
    • int $param['site_id'] идентификатор сайта, с которого произвели запрос, если не установлен - берется текущий сайт
    • int $param['search_log_datetime'] дата/время вставки запроса
    • int $param['search_log_ip'] IP-адрес с которого сделали запрос

    Возвращает

    идентификатор вставленного запроса либо false

    [ Наверх ]


    Search::Insert_search_word

    Insert_search_word( [array $param = array()] );

    Описание

    Метод формирует индекс для переданного блока страниц

    Принимаемые параметры

    $param

    массив добавляемых страниц:

    • $param[$i][0] string имя страницы;
    • $param[$i][1] string адрес страницы;
    • $param[$i][2] string текст страницы;
    • $param[$i][3] float размер страницы;
    • $param[$i][4] int идентификатор сайта (0 - для всех сайтов);
    • $param[$i][5] array массив идентификаторов групп пользователей (0 - для всех групп)
    • $param[$i][6] string дата создания страницы
    • $param[$i][7] int search_page_module - модуль, которому принадлежит элемемент.
      Имеет значения:
      Структура сайта - 0,
      Информационные системы - 1,
      Форум - 2,
      Интернет-магазин - 3,
      HelpDesk - 4.
      Пользователи сайта - 5.
    • $param[$i][8] int search_page_module_entity_id - ID элемента модуля, которому принадлежит элемемент. Например, ID магазина, ID информационной системы и т.д.
    • $param[$i][9] int Флаг, указывающий, внутренний поиск (внутри ЦА), или внешний (0 - внешний, 1 - внутренний)
    • $param[$i][10] int search_page_module_value_type - тип индексируемого элемента. Может принимать целое значение. Например, 1 - группы, 2 - товары и т.д.
    • $param[$i][11] int search_page_module_value_id - ID индексируемого элемента. Может принимать целое значение. Например, 1 - группы, 2 - товары и т.д.

    Возвращает

    результат выполнения запроса на добавление записей

    [ Наверх ]


    Search::SearchWords

    SearchWords( string $query, [array $param = array('len' => 200)] );

    Описание

    Поиск списка слов в индексе. Примеры использования см. в руководстве по интеграции.

    Принимаемые параметры

    $query

    поисковой запрос

    $param

    массив дополнительных параметров:

    • $param['site_user_id'] int идентификатор пользователя сайта для определения прав доступа;
    • $param['current_page'] int номер текущей страницы результатов поиска (счет с 1);
    • $param['items_on_page'] int количество записей на странице;
    • $param['site_id'] mixed идентификатор или массив идентификаторов сайтов, по которым производится поиск. Если необходим поиск по текущему сайту, укажите значение CURRENT_SITE;
    • $param['search_page_module'] массив модулей, ключами которого являются номера модулей, а значениями — массив идентификаторов элементов или массив с дополнительными условиями отбора элементов модулей
      Имеет значения:
      Структура сайта - 0,
      Информационные системы - 1,
      Форум - 2,
      Интернет-магазин - 3,
      HelpDesk - 4,
      Пользователи сайта - 5.

    Пример поиска по информационной системе с номером 5 и 7, а также по магазину с номером 17.
    1.  $property['search_page_module'= array(
    2.  1 => array (57),
    3.  3 => array (17));


    Пример поиска по информационной системе с номером 5 и 7 (с дополнительным условием поиска только по информационным элементам), а также по магазину с номером 17.

    1.  $property['search_page_module'= array(
    2.      1 => array (5,
    3.          array('search_page_module_entity_id' => 7,
    4.          'search_page_module_value_type' => 2)),
    5.      3 => array (17));

    При указании массива с дополнительными условиями он может принимать следующие аргументы:
    search_page_module_entity_id

    • целое число, ID сущности, например, магазин с кодом 7
      search_page_module_value_type - целое число или массив, ID типа, например, 1 - группа, 2 - элемент (или товар)
      search_page_module_value_id - целое число или массив, ID сущности указанного типа (например, ID товара или группы) при поиске только по ним.
    • $param['order_field'] int поле сортировки (0 - по релевантности, 1 - по дате). по умолчанию 0.
    • $param['order_direction'] int направление сортировки (ASC, DESC). по умолчанию DESC.
    • $param['search_page_is_inner'] int осуществлять поиск по внешним страницам (значение 0), внутреним (значение 1) или всем страницам (значение false). по умолчанию имеет значение 0.

    Возвращает

    результат поиска:
    array массив страниц:
    $result[$i]['search_page_name'] string название страницы;
    $result[$i]['search_page_address'] string адрес страницы;
    $result[$i]['search_page_date'] string дата индексации;
    $result[$i]['search_page_size'] float размер страницы;
    boolean false если ничего не найдено

    Пример поиска по информационной системе с номером 5 и 7, а также по магазину с номером 17.

    1.  $Search = new Search();
    2.  $property['search_page_module'= array(
    3.      1 => array (57),
    4.      3 => array (17));
    5.  
    6.  $Search->GoSearch($wordsto_str($GLOBALS['LA']['xsl'])$property);

    Пример поиска по информационной системе с номером 5 и 7 (с дополнительным условием поиска только по информационным элементам), а также по магазину с номером 17.

    1.  $Search = new Search();
    2.  
    3.  $property['search_page_module'= array(
    4.  1 => array (5,
    5.       array('search_page_module_entity_id' => 7'search_page_module_value_type' => 2)),
    6.  3 => array (17));
    7.  
    8.  $Search->GoSearch($wordsto_str($GLOBALS['LA']['xsl'])$property);

    [ Наверх ]



Описания переменных

  • $ModuleClass = array(0 => 'Structure',
       1 => 'InformationSystem',
       2 => 'Forums',
       3 => 'shop',
       4 => 'helpdesk',
       5 => 'SiteUsers')
    [Строка 127]
  • Data type: array
  • Описание

    Массив соответствия идентификаторов модулей в таблице страниц модулям,

    Structure = 0, InformationSystem = 1, Forums = 2, shop = 3, helpdesk = 4, SiteUsers = 5 Используется при вызове функции обратного вызова для генерации информации об элементе при поиске.



Описание констант класса