我想创建一个自定义搜索框,并使用它与Drupal的搜索模块进行交互。目前一切都很好。但是,我还需要在搜索中使用适当的令牌。我不知道Drupal使用什么键来形成这个令牌。
目前我有:
<form class="search-form" action="/search/node" method="post" id="search-form" accept-charset="UTF-8">
<input type="text" name="keys" class="search_box" value="Search ..." />
<input type="hidden" name="form_id" id="search-form" value="search_theme_form" />
<input type="hidden" name="form_token" value="<?php print drupal_get_token('search_theme_form'); ?>" />
</form>
这足以显示一页的结果。如果我尝试导航到第二个结果页面,则会丢弃所有结果。
答案 0 :(得分:1)
您应该使用更合适的
$form = drupal_get_form('search_block_form');
return drupal_render($form);
http://api.drupal.org/api/drupal/modules--search--search.module/function/search_form/7
答案 1 :(得分:1)
事实证明,就像将帖子从post更改为get一样简单。这是工作解决方案的html。
<form class="search-form" action="/search/node" method="post" id="search-form" accept-charset="UTF-8">
<input type="text" name="keys" class="search_box" value="Search ..." />
</form>
您无需定义令牌或任何类型的令牌。
答案 2 :(得分:0)
在主题使用中:
<?php
$form = drupal_get_form('search_block_form');
echo render($form);
?>