Дублирование шаблонов в смарти и их наполнение данными

Borland

Новичок
Дублирование шаблонов в смарти и их наполнение данными

Народ, вот столкнулся с проблемой.
задача такого плана.

Есть ядро сайта, которое собирает страницу.
Страница вида
Код:
+--------------------------------------------+
|                       хидер                |
+--------------------------------------------+
|    меню1 |                            |меню2|
|                |       статья 1       |     |
|                |                      |     |
|                |        новость 1     |     |
|                |                      |     |
|                |    голосование       |     |
|                |                      |     |
|                |   ещё какая-то       |      |
|                |          херь        |      |
Суть в том что Статья1, новость1, голосование ....... ещё разные данные имеют свои шаблоны для отображения. Их порядок следования задаётся в соответствующей таблице БД. И конструктор ядра уже сам собирает массив данных итоговоый. Но вот чтото я не могу сообразить вот чего


Если у меня Статья1, новость1, голосование ....... ещё разные данные имеют свои шаблоны то конечно можно их подцепить через include file="шаблон нужный.tpl"

но ведь там переменные имеют одинаковые имена и у меня тупо происходит переопределение переменных , например если есть Статья1 Статья2 Статья3....

Как нибудь можно избежать подобного переопределения?
И вообще может я туплю и всё делается проще?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
но ведь там переменные имеют имеют одинаковые имена
Где там? Какие переменные?

Названия файлов-шаблонов для последуйщего инклюда?
Тогда Array+foreach
 

Borland

Новичок
кароч пример
имею массив типа
data array
(
[0] => Array
(
[item_id] => 15
[title] => 100-кратное увеличение скорости передачи у жесткого диска
[text] => лалала
)
[1] => Array
(
[news_id] => 5
[title] => ередачи у жесткого диска
[text] => лалала
[data] => дата
)
[3] => Array
(
[item_id] => 25
[title] => 10ие скорости передачи у жесткого диска
[text] => лалалаkfkfkfkf
)

соответственно у меня тут выводится 2 статьи и 1 новость
Таким образом мне надо вставить шаблон для первой статьи, потом для новости, потом для второй статьи

Я не понимаю как реализовать повторное включение шаблона, т к там же переменные теже в {} и в итоге тупо имею на экране
Статья2
Новость
Статья2
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
.

-~{}~ 07.07.07 17:31:

код шаблона?
 

filipchuk

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

Borland

Новичок
Всё хранится в разных местах, но есть таблица, определяющая порядок и привязку новости или статьи к конкретной странице. При разборе данной таблицы также в массив гонится id модуля, по которому создаётся объект нужного класса и вынимаются данные в требуемом виде. Таким образом получаю данный массив. А дальше assign и смарти уже собирает страницу из нужных шаблонов и заполняет их данными. Всё работает как часы )))))
 

filipchuk

Новичок
ясно, структура понятна тебе, это главное :)

а проблема решаеться просто:
при подключении шаблона можна указать сразу переменные для него, к примеру
{include file 'news_detail.tpl.html' news=$data[1]}, в самом шаблоне
<DIV>{news.date}</DIV>
<DIV>{news.title}</DIV>
 

Borland

Новичок
А я уже решил. Спасибо )
Я перебереаю массив в {section} а во всех шаблонах, которые используются для сборки идёт обращение к массивам тоже, так что получилось универсально во всех смыслах )))
 
Сверху