Расположение функции Drupal hook_search - PullRequest
0 голосов
/ 08 мая 2009

Не могу понять, где находится функция hook_search в drupal. Это то, что мне нужно добавить в файл для доступа?

Ответы [ 2 ]

3 голосов
/ 08 мая 2009

Хук-функции не существуют по имени - они указывают соглашение об именах, которому можно следовать, чтобы ответить на этот конкретный "хук" ...

Примером может служить функция node_search () . Когда поисковый модуль вызывает module_invoke_all ('search'), будут вызваны все функции с именем foo _search (), где foo - имя включенного модуля. В частности, подробности поискового хука можно найти на api.drupal.org .

1 голос
/ 11 ноября 2010
function hook_search($op = 'search', $keys = null) {
  switch ($op) {
    case 'name':
      return t('content');
    case 'reset':
      variable_del('node_cron_last');
      return;
    case 'search':
      $find = do_search($keys, 'node', 'INNER JOIN {node} n ON n.nid = i.sid '. node_access_join_sql() .' INNER JOIN {users} u ON n.uid = u.uid', 'n.status = 1 AND '. node_access_where_sql());
      $results = array();
      foreach ($find as $item) {
        $node = node_load(array('nid' => $item));
        $extra = node_invoke_nodeapi($node, 'search result');
        $results[] = array('link' => url('node/'. $item),
                           'type' => node_invoke($node, 'node_name'),
                           'title' => $node->title,
                           'user' => theme('username', $node),
                           'date' => $node->changed,
                           'extra' => $extra,
                           'snippet' => search_excerpt($keys, check_output($node->body, $node->format)));
      }
      return $results;
  }
}
...