Доступ к материалу только через Views

Главные вкладки

Аватар пользователя web09 web09 29 августа 2012 в 11:54

По правде говоря не знаю как правильно сформулировать название темы. Постараюсь объяснить на примере.
Есть тип ноды Товар, который вьюхой выводится и урл имеет вид category/subcategory/[node:title], другой вьюхой manufacturer/category-manufacturer/[node:title]

В синонимах ноды генерируется урл вида product/[node:title]

Вопрос в том как сделать недоступной ноду по урл вида product/[node:title], чтобы например при заходе на подобный урл пользователя сбрасывало на главную страницу или еще что-то в этом роде

Комментарии

Аватар пользователя web09 web09 29 августа 2012 в 12:11

"PVasili" wrote:
Не используйте на сайте ни где ссылки вида product/[node:title] и о них ни кто не узнает :)

Ну я впринципе так и делаю, но хотелось бы чтобы можно было сделать для них какую заглушку, чтобы по ним нельзя было получить материал. Но чтобы вьюха этот материал получала

Аватар пользователя vermix1 vermix1 29 августа 2012 в 12:47

Отключите автогенерацию синонимов для товаров и через hook_menu_alter перебейте page callback для пути node/%node. В page callback впишите редирект на 404 если пользователь пытается зайти на ноду типа товар, если на ноду другого типа - вызов стандартного node_page_view.

Аватар пользователя vermix1 vermix1 29 августа 2012 в 13:35

"web09" wrote:
А автогенерацию синонимов для типа контента как отключить?

Там же, где и включали Smile а именно здесь - admin/config/search/path/patterns

Аватар пользователя web09 web09 29 августа 2012 в 14:56

"vermix1" wrote:
Там же, где и включали Smile а именно здесь - admin/config/search/path/patterns

Так если не прописать шаблон для типа материала, то синоним будет вида content/[node:title], я поэтому и спросил, что в случает если нет шаблона, то используется дефолтный

Аватар пользователя vermix1 vermix1 29 августа 2012 в 15:53

"web09" wrote:
Так если не прописать шаблон для типа материала, то синоним будет вида content/[node:title], я поэтому и спросил, что в случает если нет шаблона, то используется дефолтный

Про отключение синонимов я написал в качестве рекомендации, чтобы не захламляли базу. Так что делать это не обязательно, но желательно - нет смысла хранить синонимы на "несуществующие" страницы. Советую отключить стандартный content/[node:title] и прописать шаблоны для каждого типа материалов отдельно.

Аватар пользователя web09 web09 29 августа 2012 в 17:33

"vermix1" wrote:
...

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

Аватар пользователя vermix1 vermix1 29 августа 2012 в 17:58

Видимо, я несовсем понятно выразился.

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

Если у вас на сайте есть другие типы нод (статьи, новости), то для них нужно будет прописать свой шаблон, иначе из-за отсутствия дефолтного шаблона ноды этих типов останутся без синонимов.

И не забудьте удалить старые синонимы товаров.

Аватар пользователя web09 web09 29 августа 2012 в 18:10

Спасибо, и действительно такой вариант возможен

В следующем сайте по возможности постараюсь реализовать предложенный Вами вариант. Спасибо еще раз за идею

Аватар пользователя ACD ACD 25 декабря 2012 в 4:04

"web09" wrote:
Вопрос в том как сделать недоступной ноду по урл вида product/[node:title], чтобы например при заходе на подобный урл пользователя сбрасывало на главную страницу или еще что-то в этом роде

Можно использовать модуль Redirect с 303 редиректом (как вариант)