当前位置

去掉Drupal搜索结果页中的表单

James Qi 在 2020年6月15日 - 19:26 提交

Drupal搜索结果页面中会出现一个搜索表单,与置顶的表单有重复的不好之处,另外,我也想在AMP页面等特殊情况下去掉搜索结果页中的表单。

以前好些在网上搜过有修改CSS的办法来隐藏表单的显示,今天又找到Drupal的hook_form_alter这个API调用办法,测试有效,记录如下:

function my_module_name_form_alter(&$form, &$form_state, $form_id) {
// We have to be careful to alter only the contact site form,
// as this hook is used for every form the system uses.
  if($form_id == 'contact_site_form'){//修改联系我们表单
    $form['referer'] = array(
      '#type' => 'hidden',
      '#title' => t('REFERER'),
      '#required' => FALSE,
      '#maxlength' => 255,
      '#default_value' => $_SERVER['HTTP_REFERER'],
    );
  }
  if ($form_id == 'search_form' && $_GET['q'] != 'search') {//隐藏搜索表单
    unset($form['basic']);
    unset($form['advanced']);
  }
}

还有帖子说调用其它的API,例如:

function mytheme_page_alter(&$page) {
  // This assumes everything being output in the "content" page region.

  // Logged in
  if (!empty($page['content']['system_main']['content']['search_form'])) {
    unset($page['content']['system_main']['content']['search_form']);
  }

  // Not logged in
  if (!empty($page['content']['system_main']['search_form'])) {
    unset($page['content']['system_main']['search_form']);
  }
}

这个办法没有试过,记录下来备用。
 

 

评论

嗯,我们在有些情况下也用views来替代drupal原带的搜索。

James Qi / 祁劲松

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。