PDA

Просмотр полной версии : Hide/unhide page (content) in TypoScript


muzzon
05.01.2007, 11:52
Очень надо сделать так, что б в зависимости от того, что передается в GET параметре к одной странице, для другой страницы делался Hide\Unhide (причем не Hide in Menu, а именно Hide вообщем).
Например

[globalVar = HTTP_GET_VARS|HidePage > 0]

# Сдесь делается hide страницы с определенным id

[else]

# Сдесь делается unhide страницы с определенным id

[end]


Вопрос. Как именно сделать hide/unhide? Как обратиться к странице? Можно ли это же сделать с элементом контента текущей, или, быть может, другой страницы?

Valery Romanchev
05.01.2007, 12:40
Очень надо сделать так, что б в зависимости от того, что передается в GET параметре к одной странице, для другой страницы делался Hide\Unhide (причем не Hide in Menu, а именно Hide вообщем)как я понимаю - это будет именно Hide в меню, а не в общем.
Ну выкинет посетитель этот GET парамент и увидит страницу...

Решений в этом случае может быть несколько
- написать меню, которое будет выводить в зависимости от типа страницы
- использовать параметр, который позволяет принудительно выводить в меню даже Not in Menu страницы
- использовать скрытие пунктов меню с помощью CSS по id

muzzon
05.01.2007, 13:04
Дело в том, что мне надо именно Hide.
Это на самом деле не способ сокрытия страницы, и ни в коем случаем не способ защиты.
Я объясню зачем это всё надо, может быть кто-нибудь подскажет, как это сделать по другому.

Меня подключили к проэкту, который "кто-то" делал раньше.
Есть страница, на которой лежит компонент tt_news c SINGLE view. На этой странице есть возможность оставлять комменты для каждого news'а (реализовано, как ты уже догадался, связью tt_news+ve_guestbook). Элеменет контента guestbook, который отображается, лежит на другой странице (и там лежит только он), и соответственно подключается этот элемент через "page properties - > Content (Primary Content Area)" (TemplaVoila).

На tt_news настроен PageBreaks для SINGLE view. Соответственно надо, что б комментарии выводились только на последней странице текущего news'а (а не на всех). То есть (мой вариант): На странице с SINGLE view в setup написать:

[globalVar = HTTP_GET_VARS|LastPage = 1] # Я придумаю как сделать параметр LastPage

# Здесь надо показать комменты (есть uid элемента с комментами)

[else]

# Здесь надо убрать комменты

[end]


"# Здесь надо убрать комменты" можно несколькими путями (насколько я знаю):

1. Убрать его из списка "page properties - > Content (Primary Content Area)" страницы с tt_news.
2. Сделать hide для страницы на которой расположен елмент guestbook.

Как это реализовать в TypoScript (hide/unhide comments)?

Pavel Antonov
05.01.2007, 14:55
Прежде всего TypoScript не функциональный язык, а конфигурационный... он не определяет что делать... он определяет как делать. Потому то, что вы хотите, сделать нельзя.

Кроме того, менять параметр страницы - это вообще не понятное что-то. Менять состояние страницы можно только через BE.

А то что вы хотите сделать делается очень просто:
Поскольку Вы говорите что guestbook вставляется через TV, то надо подменить в DS TypoScript для вашего поля на свой. Лучше вызов объекта типа: 10 < lib.comments
Описать условие в объекте или через condition - что выводить и как (выводить или не выводить комменты)