форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Здрасте! ТР осваиваю форсированно и без особых подкреплений в виде документации, поэтому могу тупить.
У меня на сайте есть 6 секций: две стандартные: about и contact и четыре свои: info, layout, links и tutor.
Для четырех последних я использую отдельные шаблоны («Оформление» => «Страницы» в русской сборке с этого сайта). Для всех остальных страниц, следовательно, используется «default».
На главной (т. е. пока еще в «default») у меня выводятся последние пять статей из info, layout, links и tutor. Но, т. к. «default» назначен не только главной, но и всем остальным страницам, включаю страницу поиска, эти же списки последних статей выводятся на тех страницах, где это не нужно.
А теперь собвстенно вопрос: можно ли задать шаблон только для главной, или придется создавать по шаблону для about и contact, или я изначально начал что-то неправильно делать?
Неактивен
Если хочешь изменить шаблон для главной, измени шаблон "по умолчанию" в настройках секций.
Неактивен
Да можно. Каждый делает как ему удобно. Можно в принципе обойтись одним шаблоном для всех страниц, можно разнести для каждой секции по шаблону. Например, если у тебя проставлена для всех секций шаблон default, то в нем определяешь показ согласно текущей секции. Вот пример с одним шаблоном.
<txp:if_section name="info">
выводишь информацию для секции "info"
</txp:if_section>
<txp:if_section name="layout">
выводишь информацию для секции "layout"
</txp:if_section>
<txp:if_section name="links">
выводишь информацию для секции "links"
</txp:if_section>
<txp:if_section name="tutor">
выводишь информацию для секции "tutor"
<txp:else />
тут выводишь данные если никакая секция не совпала (по-умолчанию), например, для главной.
</txp:if_section>
Рекомендую скачать сборку - TxP-Компания и изучить строение шаблона.
Отредактированно Sergey (12-06-2006 08:49:09)
Неактивен
Sergey написал:
<txp:else />
тут выводишь данные если никакая секция не совпала (по-умолчанию), например, для главной.
</txp:if_section>
У меня главная отличается от страницы поиска, например. Можно ли тогда задать <txp:if_section name="searсh"> или что-то вроде этого?
qqq123, но мне при этом нужно незатронуть остальные страницы.
Неактивен
В таком случае нужно создать секцию "searсh", а в экшоне формы поиска прописать путь к этой секции. После этого использовать <txp:if_section name="searсh">.
Uratsakidogi написал:
qqq123, но мне при этом нужно незатронуть остальные страницы.
А в чем проблема, для них оставишь дефолтовый шаблон. Но вообще это не лучший способ, путаница получаеца.
Неактивен
qqq123, все, понял, я просто первый пост недоосмыслил.
qqq123 написал:
В таком случае нужно создать секцию "searсh", а в экшоне формы поиска прописать путь к этой секции.
А как её заставить работать при этом?
И еще вопрос: Можно ли для атрибута name в теге <txp:if_section> задать несколько значений?
Хотя лучше всего было бы узнать name для главной страницы — хочу сделать так, чтобы логотип был ссылкой на главную только если мы не на главной.
Отредактированно Uratsakidogi (12-06-2006 15:50:22)
Неактивен
Uratsakidogi написал:
А как её заставить работать при этом?
Создай, назначь шаблон и всё будет работать.
Uratsakidogi написал:
И еще вопрос: Можно ли для атрибута name в теге <txp:if_section> задать несколько значений?
Нет.
Uratsakidogi написал:
Хотя лучше всего было бы узнать name для главной страницы — хочу сделать так, чтобы логотип был ссылкой на главную только если мы не на главной.
Я для этого использую php, но кто-то может подскажет более простое решение.
Неактивен
qqq123 написал:
Создай, назначь шаблон и всё будет работать.
Не понимаю. Как её заставить обрабатывать поисковые запросы?
Неактивен
Uratsakidogi написал:
qqq123 написал:
Создай, назначь шаблон и всё будет работать.
Не понимаю. Как её заставить обрабатывать поисковые запросы?
Напиши вот это:
<txp:if_search> <txp:article /> </txp:if_search>
Неактивен
Не ищет.
Неактивен
В таком случае, если хочешь получить ответ, приведи здесь код, который используешь. В том числе форму поиска.
Неактивен
Шаблон секции search <!-- head --> <div id="head"> <h1><txp:link_to_home><txp:sitename /></txp:link_to_home></h1> </div> <!-- herewillbe --> <!-- center --> <div id="content"> <txp:search_input /> <txp:if_search> <txp:article /> </txp:if_search> </div> <!-- footer --> <div id="foot"> </div>
Все остальное — из стандартного шаблона.
Форма поиска <form method="get" action="/search/"> <input type="text" name="query" maxlength="35" value="Введите ваш запрос" class="textfield" onfocus="if (this.value=='Введите ваш запрос') this.value=''; this.style.color='#333'" onblur="if (this.value=='') this.value='Введите ваш запрос'; this.style.color='#aaa'"><input type="submit" class="search" value="Искать" title="Начать поиск"> </form>
Название формы поиска «search_input», тип misc.
Штатный поиск работает.
Отредактированно Uratsakidogi (12-06-2006 21:10:44)
Неактивен
У тебя экшн относительный. Если форма поиска стоит на странице поиска, то относительный адрес - "/", советую привыкать к абсолютным, типа: "<txp:site_url />search/".
Попробуй.
Неактивен
Какой же относительный?
search/ — это относительный, а /search/ — очень даже абсолютный. В любом случае, с <txp:sitename />/search/ не ищет тоже.
Неактивен
"<txp:sitename />/search/" - это не правильно.
Нужно вот так: "<txp:sitename />search/". То есть без слеша.
Относительный - любой путь, который задается относительно текущего. Абсолютный не зависит от текущей страницы. Так какой ты пишешь?
Неактивен
Имя сайта у меня css.demiart.ru, урл — http://cdrtp (на локалке).
«<txp:sitename />search/» выдает урл вида http://cdrtp/css.demiart.rusearch/?query= — 404;
«<txp:sitename />/search/» — http://cdrtp/css.demiart.ru/search/?query= — 404;
«http://<txp:sitename />/search/» — http://css.demiart.ru/search/?query= — 404;
«search/» — http://cdrtp/search/?query= — только с главной, с вложенных — http://cdrtp/info/search/?query=, а следовательно 404;
«/search/» — http://cdrtp/search/?query= — с любой страницы. 404 не дает, но и не ищет — выдает пустой шаблон секции search.
Урл вида /search/ считается от корня сайта, т.е. от http://cdrtp/, а search/ — от текущей. Так что в этом смысле у меня все верно.
Отредактированно Uratsakidogi (12-06-2006 21:46:32)
Неактивен
Ёлки зеленые! Я тебе в начале писал "<txp:site_url />search/", а ты изменил его на <txp:sitename />! А я потом не заметил и скопировал из твоего поста ))))))))))) Сделай всё как я говорил вначале.
Неактивен
) Действительно.
Но все равно урл выходит такой же, как у меня: http://cdrtp/search/?query= с любой страницы. Следовательно, работоспосбности это не прибавляет.
Неактивен
Ну не знаю... Возможно у тебя нет формы search_result?
Неактивен
Uratsakidogi написал:
... можно ли задать шаблон только для главной ...?
Можно задать форму вывода статьи только для главной, используя select box "overrade form" в админке при редактировании статьи. Либо, если нужно менять весь шаблон, то в шаблоне default используем указанный ниже код
<txp:if_section name=""> <txp:if_article_list> тут то, что нужно вывести только на главной странице </txp:if_article_list> <txp:else /> тут выводим то, что не надо выводить на главной странице </txp:if_section>
qqq123 написал:
Uratsakidogi написал:
И еще вопрос: Можно ли для атрибута name в теге <txp:if_section> задать несколько значений?
Нет.
Врете вы :-). Можно конечно, читаем RTFM
Неактивен
yes написал:
Врете вы :-). Можно конечно, читаем RTFM
Упс... Прошу прощения за дезинформацию. Сам этим не пользовался ни разу.
Неактивен
...то в шаблоне default используем указанный ниже код
Жаль, но это не то. На странице поиска все равно выводится то же, что должно было быть только на главной (сразу после <txp:if_section name="">).
Возможно у тебя нет формы search_result
Есть search_results.
Неактивен
Uratsakidogi написал:
Жаль, но это не то. На странице поиска все равно выводится то же, что должно было быть только на главной (сразу после <txp:if_section name="">).
А если попробовать так:
<txp:if_section name=""> <txp:if_search> <txp:else /> <txp:if_article_list> тут то, что нужно вывести только на главной странице </txp:if_article_list> </txp:if_search> <txp:else /> тут выводим то, что не надо выводить на главной странице </txp:if_section>
Неактивен
А если попробовать так
О, да! Сработало.
Спасибо большое.
Отредактированно Uratsakidogi (13-06-2006 02:01:30)
Неактивен