【问题标题】:Drupal hook_search function locationDrupal hook_search 函数位置
【发布时间】:2009-05-08 01:10:35
【问题描述】:

我一生都无法弄清楚 drupal 中的 hook_search 函数的位置。我需要添加到文件中才能访问吗?

【问题讨论】:

    标签: search drupal function hook


    【解决方案1】:

    钩子函数不存在名称——它们表示可以遵循的命名约定来响应特定的“钩子”...

    node_search() 函数就是一个例子。当搜索模块调用 module_invoke_all('search') 时,将调用所有名为 foo_search() 的函数,其中 foo 是启用的模块的名称。搜索钩子的详细信息可在api.drupal.org 上找到。

    【讨论】:

      【解决方案2】:
      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;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-08
        • 1970-01-01
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多