Drupal路径问题 - 视图与节点

时间:2009-09-18 13:34:18

标签: drupal drupal-6 views drupal-views

我的网站搜索无法正确链接到我的观看页面。我已经设置了一个视图页面来显示配方数据。它的URL属性为:

index.php?q=recipe/%1/%2

其中%1是配方类别,例如breakfast,%2是配方名称,例如Muffin。视图遍历配方节点内容,并根据需要显示。问题是网站搜索模块没有链接到视图,它链接到仍然可以看起来像的节点:

index.php?q=node/22

如果我使用URL别名编辑该节点,我可以将其转换为:

index.php?q=recipe/muffin

但是:这与网站上的视图显示冲突,搜索功能将它们带到NODE而不是VIEW。我真的非常需要他们接受观点。

这是清楚的吗?

如何解决?

编辑:视图包含配方类别和配方名称的变量(例如,早餐/松饼)。格式化节点页面本身是不可能的,所以我们不得不使用视图,我担心。

3 个答案:

答案 0 :(得分:0)

视图究竟做了什么?

如果它在标题中搜索带有参数(例如“Muffin”)的节点,那么我认为您应该只是将视图URL更改为search_recipe,并使用它完成。

如果它确实显示了一个节点(因此配方/松饼将是一个合适的唯一ID),那你为什么要使用Views呢?

此外,您可以使用公开的视图过滤器替换网站的搜索页面。它非常强大。

答案 1 :(得分:0)

这可能有用吗?

我已经设置了一个可搜索的视图表单 - 在页面中显示了一些过滤器(在URL中也是如此)。

我已经禁用了网站搜索,但是在这个配方区域之外不需要它,我想我可以构建一个简单的块来$ GET(或$ POST,我总是忘记)将表单数据添加到视图中。

然后视图会读取网址并正确显示:

index.php?q=recipes%2Fsearch&time=All&keywords=pie

显示标题中包含“pie”的食谱。

现在只需要构建表单......

编辑 - 是的,这是一种享受!

<form id="search-block-form" action="index.php?q=recipes%2Fsearch&amp;time=All" accept-charset="UTF-8" method="get">
<div>
<div class="container-inline right-search">
<div id="edit-search-block-form-1-wrapper" class="form-item">
<label for="edit-search-block-form-1">Quick recipe search: </label>
<input name="q" value="recipes/search" type="hidden" />
<input name="time" value="All" type="hidden" />
<input id="edit-search-block-form-1" class="form-text" title="Enter the recipe terms you wish to search for." maxlength="128" name="keywords" size="15" type="text" />
</div>
<input id="edit-submit" class="form-submit" name="op" type="submit" value="Search" />
</div>
</div>
</form>

答案 2 :(得分:0)

这是一种解决方法,但是:

您可以尝试使用Google自定义搜索引擎作为默认搜索,并使Google无法使用robots.txt查看节点/ *网址。

只需在Drupal根目录下的robots.txt文件中添加“#Paths(clean URL)”:

Disallow: /node/

(不要忘记添加此行会阻止搜索引擎抓取所有节点/ **网址。)

同样adding views to the sitemap可能有助于此过程。

我从未尝试过这个过程,所以我无法确定它是否有效;)