3 шаблона в теме

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

Аватар пользователя Ivaseg Ivaseg 20 мая 2011 в 3:25

page--front.tpl.php - шаблон для главной страницы
page.tpl.php - шаблон для остальных страниц

Как мне сделать еще один шаблон для отдельной страницы (I'm newbie in drupal)? Т.е. я хочу, чтобы у меня был свой шаблон для главной и еще одной не главной страницы, а для всех остальных страниц уже работал бы page.tpl.php

Комментарии

Аватар пользователя Ivaseg Ivaseg 20 мая 2011 в 11:59

сделал копию файла page--front.tpl.php и переименовал в page-page_about.tpl.php, теперь по идее у меня на странице About должно вывести то же самое, что и на главной странице, но на деле по прежнему работает шаблон page.tpl.php Sad Или я что-то не так делаю?

Аватар пользователя Ivaseg Ivaseg 20 мая 2011 в 13:14

1) кеш чистил несколько раз - безрезультатно
2) с названием файла немного тупанул, страница имеет адрес аля site.ru/about, page-about.tpl.php не помогает
3) может этот шаблон нужно в template.php как-то объявлять?

Аватар пользователя oboroten oboroten 20 мая 2011 в 13:48

page-node-1(1-id вашей ноды).tpl.php а если шаблон должен зависеть от url тогда ищите снипет для template.php. Tут на сайте он неоднократно всплывал

<a href="http://content-management-systems.info/node/3009 wrote:
">http://content-management-systems.info/node/3009]
Основан на внутреннем адресе страницы, не путайте с альтернативным адресом. Не забывайте также, что первая страница сайта может быть определена на странице Управление → Конфигурация → Информация о сайте и для этой страницы всегда будет использоваться page-front.tpl.php (если он есть).

Для страницы с адресом example.com/node/1/edit шаблоны будут искаться в следующей последовательности (сверху вниз, используется первый найденный):

  • page-node-edit.tpl.php
  • page-node-1.tpl.php
  • page-node.tpl.php
  • page.tpl.php

Аватар пользователя Ivaseg Ivaseg 20 мая 2011 в 14:07

Создал файл page-node-1.tpl.php (содержимое файла взято из файла page--front.tpl.php) набираю http://site.ru/node/1/ и вижу в действии шаблон page.tpl.php. Чистки кэшей не спасают. node/1 это у меня страница About.

Аватар пользователя oboroten oboroten 20 мая 2011 в 14:18

Прошу огромного прощения в очередной раз промахнулся с версией друпал
вот это ваше page--node--1.tpl.php

"<a href="http://drupal.org/node/1089656">http://drupal.org/node/1089656</a>" wrote:

page--[front|internal/path].tpl.php
base template: page.tpl.php
The suggestions are numerous. The one that takes precedence is for the front page. The rest are based on the internal path of the current page. Do not confuse the internal path to path aliases which are not accounted for. Keep in mind that the commonly used Path auto module works its magic through path aliases.

The front page can be set at "Administration > Configuration > System > Site information." In Drupal 6, at "Administrator > Site configuration > Site information." Anything set there will trigger the suggestion of "page--front.tpl.php" for it.

The list of suggested template files is in order of specificity based on internal paths. One suggestion is made for every element of the current path, though numeric elements are not carried to subsequent suggestions. For example, "http://www.example.com/node/1/edit" would result in the following suggestions:

page--node--edit.tpl.php
page--node--1.tpl.php
page--node.tpl.php
page.tpl.php

Аватар пользователя Ivaseg Ivaseg 20 мая 2011 в 14:55

спасибо, с "--" помогло, теперь с site.ru/node/1/ подгружается шаблон, а вот если сделать page--about.tpl.php и набрать site.ru/about, то шаблон page--about.tpl.php не подгружается Sad Вы писали что нужно искать снипет для template.php (если мне нужна зависимость от УРЛ, а в моем случае похоже это оно и есть), но не могли бы уточнить, что это такое "снипет", а то мне это ни о чем не говорит, соответственно я не представляю, что нужно искать.

Аватар пользователя oboroten oboroten 20 мая 2011 в 17:03

эээ гм... снипет это код который выводит нужные данные или же изменяет некоторый функционал из ядра в вашей теме.
но думаю вам это ненужно если изменения падже должны коснуться только одной страницы то ваше site.ru/about отобразит шаблон page--node--1.tpl.php если ид страницы about равно 1

____
Вот подумал исходя из этого: page--[front|internal/path].tpl.php
должен сработать шаблон page--about.tpl.php

Аватар пользователя Ivaseg Ivaseg 21 мая 2011 в 4:38

Честно говоря я не особо понимаю, что происходит и как оно работает. Когда я тут писал, шаблон не подгружался, кеш в друпале чистил, в браузере - 0 по фазе. Пошел на работу, пришел вечером домой, запустил денвер под виндой и полез на сайт, и о чудо, шаблон подключился... причем на сколько я понял, подключился именно page--node--1.tpl.php даже на site.ru/about. Но так как я это были тесты, решил уже сделать как нужно, а нужно было поменять 2 шаблона местами. Создал папку левую, забекапил туда файл page--node--1.tpl.php и давай править, и вижу что ничего не происходит, а оказалось, что друпал нашел мой page--node--1.tpl.php в другой папке и там его опять подключил. Вынес я этот файл за пределы сайта, несколько раз почистил кеш в друпале, в браузере, проверяю - не подключается опять шаблон, page.tpl.php в работе. Уже и ребутил денвер, и браузеры перезапускал.. не помогает. Пойду спать, надеюсь на утро чудо случится и опять все заработает.

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