2009-09-18 2 views
0

У меня проблема с поиском моего сайта, не связанным должным образом с моими страницами просмотров. У меня есть страница просмотров, настроенная для отображения данных рецепта. Он обладает свойствами Адрес:Проблема с Drupal path - views vs node

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

где% 1 является категория рецептов, например, breakfast и% 2 это название рецепта, например, Muffin. Вид проходит через содержимое узла рецепта и отображает его по мере необходимости. Проблема заключается в том, что модуль поиска сайта не связывает с точки зрения, ссылки на узел, который все еще может выглядеть как:

index.php?q=node/22 

Если отредактировать этот узел с URL псевдонима я могу превратить его в скажем:

index.php?q=recipe/muffin 

Но: это столкновения с отображением вида на сайте и функции поиска принимает их к NODE, а не к VIEW. Я действительно, им действительно нужно, чтобы их воспринимали.

Это ясно?

Как это можно исправить?

Редактировать: представление имеет переменные как для категории рецептов, так и для названия рецепта (например, завтрак/кекс). Боюсь, что форматирование самих страниц узлов было невозможно, поэтому я должен был использовать представления.

ответ

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

Что делает вид точно?

Если он ищет узлы с аргументом (скажем, «Маффин») в своих заголовках, то я думаю, что вы должны просто изменить URL-адрес вида на что-то вроде search_recipe и сделать с ним.

Если он действительно делает что-то вроде отображения одного узла (так что рецепт/маффин будет подходящим уникальным идентификатором), то почему вы используете Views для этого?

Кроме того, вы можете заменить страницу поиска сайта с помощью открытых фильтров просмотра. Это довольно мощно.

+0

хии, вид отображает выбирать данные из одного узла. Узел - это форма ввода данных, которая слишком сложна для темы, поэтому вместо этого мы использовали представления. Я отредактирую свой пост :) – MrFidge

+0

И ... в представлении также представлены сводные просмотры всей категории (например, завтрак). Таким образом, вы можете просмотреть категорию или просмотреть индивидуальный рецепт. – MrFidge

+0

Звучит немного сложно - может быть, вы могли бы попробовать снова заняться узлом? В чем была проблема? Что касается сводного представления - вы можете использовать блок просмотра или даже что-то вроде Вставить вид (http://drupal.org/project/insert_view) –

0

Это своего рода обходной путь, но:

Вы можете попробовать Google Custom Search Engine, как поиск по умолчанию, и сделать Google не видите узел/* URL, используя robots.txt.

Просто добавьте это ниже «# Paths (чистые URL-адреса)» в robots.txt файле, который находится в корневом каталоге Drupal:

Disallow: /node/ 

(Не стоит забывать, что добавление этой строки остановить роботов поисковых систем все URL узла/**.)

Также adding views to the sitemap может быть полезным для этого процесса.

Я никогда не пробовал этот процесс, так что я не могу быть уверен, что, если он работает или нет;)

+0

Я нашел способ вокруг него в пределах видов, используя форму в конце. Спасибо за ваши мысли! – MrFidge