2009-09-18 119 views
0

我的网站搜索出现问题,无法正确链接到我的浏览页面。我已经设置了一个视图页面来显示配方数据。它的URL属性:Drupal路径问题 - 查看vs节点

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

其中%1是配方类别,例如,breakfast和%2是食谱名,例如,Muffin。视图遍历配方节点内容,并根据需要进行显示。问题是,该网站的搜索模块不链接到视图,它链接到仍然可以像节点:

index.php?q=node/22 

如果我编辑与网址别名节点,我可以把它变成说:

index.php?q=recipe/muffin 

:此擦出与网站上的观点显示和搜索功能需要他们的节点,不给视图。我真的,真的需要他们接受这个观点。

这是明确的吗?

如何解决?

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

回答

0

这可能有效吗?

我设置了一个可搜索的视图窗体 - 在页面中显示了一些过滤器(所以在URL中)。

我已经禁用了网站搜索,在这个食谱区域之外不需要它,我认为我可以构建一个简单的块到$ GET(或$ POST,我总是忘记)将数据形式化到视图。

视图然后读取URL并显示适当地:

示出了包含“饼”的称号食谱。

只是现在需要建立形式...

编辑 - 是的这个工作一种享受!

<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> 
0

视图做什么?

如果它在标题中搜索带有参数的节点(比如说“Muffin”),那么我认为您应该简单地将视图URL更改为类似于search_recipe的内容,然后完成它。

如果它确实做了类似于显示单个节点(所以配方/松饼将是一个合适的唯一ID),那么为什么你使用视图这个?

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

+0

你好,该视图显示选择从单个节点的数据。这个节点基本上是一个数据输入表单,它太难以主题化,所以我们使用视图来代替它。我会编辑我的帖子:) – MrFidge 2009-09-18 15:16:17

+0

而且...视图还列出了整个类别的摘要视图(例如早餐)。因此,您可以查看某个类别,也可以查看单个配方。 – MrFidge 2009-09-18 15:19:24

+0

听起来有点复杂 - 也许你可以尝试重新演绎节点吗?有什么问题? 至于摘要视图 - 你可以使用一个视图块,甚至像插入视图(http://drupal.org/project/insert_view) – 2009-09-18 15:59:12

0

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

您可以尝试谷歌自定义搜索引擎作为默认的搜索,使谷歌无法看到节点/ * URL的使用robots.txt

只需添加这下面的“#路径(干净的URL)”,在robots.txt文件,该文件是在Drupal的根:

Disallow: /node/ 

(别忘了加入这一行就会停止搜索引擎抓取所有节点/ **网址)。

另外adding views to the sitemap可能对此过程有帮助。

我从来没有尝试过这个过程,所以如果它的工作与否我不能肯定;)

+0

我在最终使用表单的视图中发现了一种方法。谢谢你的想法! – MrFidge 2009-09-21 11:17:48