![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
alexey009 |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Что требуется:
1. Для каждой функции свой шаблон, пример: index.tpl
news.tpl
Теперь пояснения: 1. замена обычных переменных: title, name 2. замена блоков text в index.tpl: заменяется на файл news.tpl, который собственно выполняется N-е кол-во раз, т.е. результат может быть:
Ваши предложения по реализации ![]() Готовые решения не подходят(сильно огромные) Вариант (который щас у меня стоит) не подходит по разным причинам:
Это сообщение отредактировал(а) alexey009 - 29.7.2008, 00:00 |
||||||||
|
|||||||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
americanets, уже прочитал. ничего нового для себя не узнал...
Там нет намеков на решение моей проблемы. мне надо в один файл(шаблон) подключать другие шаблоны. а не разбивать 1 сраницу на несколько последовательных файлов, типа
Добавлено через 4 минуты и 44 секунды По сути мне требуется "загонять" шаблон в переменную. ![]() |
|||
|
||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
ну и зря, смотри все шаблоны это что-то заменить на данные, ну вот
мысль ясна ? -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Ага. спасибо. И ещё вопрос, как лучше подключить и обработать файл шаблона, чтобы была минимальная нагрузка на сервер?
|
|||
|
||||
americanets |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
получать содержимое файла
обрабатывать , str - работают быстрее
кэшируй -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||||
|
|||||||
alexey009 |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Вот, но почемуто не работает цикл. заменят только 1 раз.
![]()
index.tpl
news.tpl
Это сообщение отредактировал(а) alexey009 - 29.7.2008, 13:31 |
||||||
|
|||||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
видимо последний, а как ты думал ![]() как пример
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
И что же менять?
Пробывал сам, не получилось... |
|||
|
||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
как то так -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Все понятно
![]() Теперь, я думаю, надо шаблонизатор загнать в класс... Вот только что в нем должно быть? Мне кажется должны быть минимум 2 функции: 1. Замена 2. определение шаблона Что ещё? ![]() |
|||
|
||||
klyxa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
м? |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
klyxa, опа
![]() ![]() |
|||
|
||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
alexey009, это не совсем - то что ты хочеш сделать, а книжка вот http://www.ozon.ru/context/detail/id/3600968/
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
alexey009 |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
americanets, спасибо, почитал...
Как разумно организовать шаблонизатор? может вообще не создавать никаких функций и классов? Просто ограничится
Но все-таки хотелось организовать что-то вроде: определение шаблонов(в функции должен задаваться "истинный" путь к файлам шаблонов(типа engine/templates/new_temp)):
замены(функция должна возвращать получившееся, чтобы вставлять в след. замены шаблонов):
ну и далее вывод(в переменной $index должен лежать результирующий шаблон)
И вопрос, как это все можно организовать без глюков и тормозов? Это сообщение отредактировал(а) alexey009 - 31.7.2008, 00:25 |
||||||||
|
|||||||||
alexey009 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Вот, написал класс шаблонизатора
Плиз, оцените и скажите что можно улучшить? ![]() Да и ещё, нужна функция для циклов:
Т.е. то что между Begin и End выполнялось "по циклу". Как лучше организовать? Есть такие мысли: 1. использовать функцию strstr() но как тогда искать конец( может preg_match()) ? 2. полностью положиться на preg_match() Знатоки, помогите с выбором ну и реализацией по возможности ![]() Это сообщение отредактировал(а) alexey009 - 1.8.2008, 02:39 |
||||
|
|||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Появилась ещё одна задача:
В шаблоне index.tpl написано:
Шаблон лежит в /engine/templates/new/main/index.tpl картинка лежит в /engine/templates/new/images/logo.gif Вопросы: 1. Как в адрес картинки дописать недостоющее "/engine/templates/new/" 2. Сильная ли будет нагрузка на сервер такими заменами(картинок то много) 3. Или лучше сразу в шаблоне писать полный адрес до картинки? |
|||
|
||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
1 введи константы IMAGE_PATCH и т д 2 терпимая ![]() 3 смотря какой случай, если периодически нужно перемещать папки с файлами в другие директории то нет, константы, а так пиши как удобнее -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
Вообще, думается мне, что лучше всего покопаться в сырцах смарти (я бы предложил его и использовать, но как было сказано - не подходит). В итоге в шаблонизаторе необходимы следующие фичи/ф-ции (без которых обойтись можно, но очень сложно).
1. $templater->assign // назначение переменной в шаблоне 2. $templater->fetch // получение заполненного темплейта в переменную 3. $templater->display // вывод заполненного темплейта на экран 4. шаблонизатор просто обязан "компилировать" себя в чистый ПХП код. без этого нагрузка будет большой. например шаблон "<p>@text@</p>" должен переводится в чистый ПХП - "<p><?php echo $templater->vars['text']; ?></p>". Также, соответственно, необходимо следить за изменениями в шаблоне и по необходимости копилировать заново. получается, что всесто того чтобы каждый раз парсить шаблон заново надо будет всего лишь запустить имеющийся скрипт. 5. кэширование - ещё одна фича, позволяющая снизить нагрузку. 6. вызов встроенных пхп функций из шаблона и возможность создания дополнительных функций. второе, в общем, необязательно, но вызов встроенных ф-ций необходим 100%. в шаблонах нередко необходимо посчитать чего-нибудь (к примеру {if count($image_thumbs) > 0}<img src={$image_thumbs[0]}>{else}<p>No images{/if}). В общем сильно рекоммендую посмотреть что и как делает смарти - ребята сделали всё грамотно. |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Kefir, смарти здоровый и не понятны. я дня два сидел и въежал как его использовать, но ничерта не понял(не умею я в чужолм коде разбираться).
А так я же написал класс шаблонизатора!
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
alexey009, зачем тебе было "разбираться в коде смарти" - не понятно. для построения шаблонов вполне достаточно списка разных конструкций(типа {if}, {foreach} и т.д.). для инициации достаточно двух методов: assign и display.
впрочем, не хочешь - не надо. разве то, что написал Kefir уже есть? где кеширование? каждый раз заново заменяешь текст? где циклы в шаблоне? где условные конструкции? как сделать перебор массива? как включить один шаблон в другой? как сделать счетчик или итератор(например, чтоб на уровне шаблона сделать чередование цвета строк таблицы)? где это все?
а зачем, интересно? чтоб браузер корректно отобразил картинку, она должна иметь не абсолютный путь на диске относительно папки с шаблоном, а относительный/абсолютный путь основываясь на доменном имени(с точки зрения сервера - это DOCUMENT_ROOT) |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
alexey009, да ну и чёрт с ним с кодом - поюзай его маленько - сразу поймёшь чего тебе не хватает. полистай мануал, где его фичи описаны. но опять же - я перечислил те вещи, которые обязаны быть в шаблонизаторе, иначе же это не тянет на таковой - максимум "улучшенный str_replace" В) Смарти я посоветовал как раз как источник многих полезных фич. А разобраться как его использовать - три минуты (читай, залил на сервер, подрубил инклюд и сделал экземпляр смарти, всё).
|
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
ну впринципе можно и смарти использовать, но вот проблемы
не могу понять как задать циклы и как один шаблон пихать в другой, если они в разных папках (например index.tpl лежит в папке engine/tempaltes/new/main, news.tpl лежит в папке engine/tempaltes/new/news) главный файл лежит в корневой директории( / ). Нужно в index.tpl подключить news.tpl и news.tpl загнать в цикл(вывести список новостей) подскажите как? просто так надо... не хочется каждый раз писать /engine/templates/new/images/******.gif а просто писать images/*****.gif Потому что шаблонов может быть несколько(все лежат в папке templates) и чтобы адреса картинок не менялись.. удобнеее тому кто будет делать шаблоны.. ![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
preg_replace c модификатором "е" preg_replace c модификатором "е" или же strstr и подобное. Добавлено через 1 минуту и 26 секунд очевидно, надо указывать полный путь. не знаю, что ты рассчитывал найти в исходнике Смарти. он тоже не телепатирует, а: а) смотрит в папке, указанной как "корневая папка шаблонов" б) смотри по полному пути все. поиск по всему диску на предмет файлов с заданным названием никто не проводит. |
|||
|
||||
Kefir |
|
||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
news.tpl
index.tpl
извини, но для каждой отдельной новости мучать news.tpl - это мазохизм ![]() Добавлено через 2 минуты и 17 секунд то есть по сути тебе надо делать так - создавать конструкцию цикла для шаблона и передавать туда массив. потом загонять то что получилось в переменную и её уже вставлять в индекс. вот и всё. по крайней мере такая система в смарти. |
||||||
|
|||||||
alexey009 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
разве? вообще-то будет как-то так: news.tpl
При этом шаблон новостей будет в отдельном файле, и эти новости можно будет куда угодно впихнуть, не изменяя шаблона той страницы, куда эти новости вставлены ![]() вот так |
||||
|
|||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
alexey009, видимо Kefir имел ввиду не дергать кждый раз файл а загнать его в переменную и ее юзать
![]() -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
americanets, как бы я так и хотел и описывал эту задачу в требованиях в шаблонизатору...
![]() И ещё вопрос... вот идет компиляция.. если задать
Верно? И как далее правильно компилировать и извлекать? |
|||
|
||||
Kefir |
|
||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
alexey009, ну как, делаешь парсер. я ж писал уже. к примеру
somthing.tpl:
должно перевестись в: something.tpl.php:
то есть парсер должен переводить язык шаблона в язык ПХП. потом, к примеру, делаешь в классе шаблонизатора:
Добавлено через 17 секунд ну эт всё условно. но логика именно такая. |
||||||
|
|||||||
alexey009 |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Я вот все-равно никак понять не могу, как делать ЦИКЛЫ
файл index.php
файл news.tpl
Так вот то что в news.tpl надо загнать в цикл. foreach НЕ ПОЙДЕТ, т.к. он по жизни тормознутый. если делать типа
то вот это уже возникает вопрос, а в чем собвственно заключается шаблонизатор? половина кода в php файле, а другая половина уже в самом шаблоне. где плюсы? Отсюда - может мне ввобще нафиг шаблнизатор и html коды пихать в php файлы и все? Знатоки, что посоветуете? |
||||||
|
|||||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
мда... Без обид, но ты мерял? Или просто слышал? Сделай рабочий сайт и профайлинг ему.... результаты тебя удивят.
Почитай другие темы про разделение логики и представления. Про архитектуру MVC. Шаблоны/Представления должны быть отдельно от логики... но лучше всего если они будут из себя представлять обычные phtml файлы. Тогда и циклы и условия все будет у тебя легко и просто. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
читал и сам проверял.. работет медлено.. я вообще-то про это и говорю, что это и есть шаблонизатор, а в смарти(если его все-таки использовать) как циклы выводить "без заноса" логики в шаблон!(см. предыдущий пост) ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Позволь усомниться... Как проверял? Если не затруднит, скриншот из http://sourceforge.net/projects/wincachegrind ![]() Кто мешает использовать простой include? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Читал предыдущие посты? Цель - весь шаблон страницы должен лежать в одном файле(index.tpl), а не разбивать его на header, body, footer; а далее body разбивать на left_menu, right_menu, main. а их уже разбивать на более мелкие детали... ну не маразм? ![]() Вообщем пока у меня один вариант виден: дописывать собственный шаблон. Кстати, про компиляцию, как организовать и нужло ли это вообще? |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
alexey009, постой-постой, ты разделяй код, занимающимся доставкой и обработкой данный от логики представления, так сказать. суть шаблонизатора как раз их и разделить.
задача: вывести новости на экран. делим на две части - достать новости из БД и отобразить их. ты, соответственно, достаёшь новости и получает, по сути, массив обьектов. так выполнена первая задача - бизнес логика. вторая задача - отобразить их. эту задачу и решает шаблонизатор. в бизнес логике ты вообще не думаешь о том как и где эти данные будут отображаться, ты просто говоришь шаблонизатору - "вот тебе новости, покажи мне их на экране!". и уже в шаблонизаторе эти новости превращаются в пхп-код. и вообще, кроме так и понял чем смарти не подошёл (говорю ибо вижу, что написание шаблонизатора началось именно из-за отсутствия подходящего продукта)- вроде всё ж есть. компиляция нужна обязательно, имхо. организовать - так как я уже говорил. парсер и проверка на изменения шаблонов. |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Kefir, есть мой пост в конце 2 странице - http://forum.vingrad.ru/index.php?showtopi...t&p=1598812
Соответственно ответы на него не уведил.. ![]() |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
\ Нет не маразм. Страница у тебя собирается из деталей того уровня, который тебе нужен. Не нужна более мелкая детализация - не делай ее Но я бы предпочел такой, index.phtml
Если тебе нужна более продвинутая манипуляция, то рекомендую... Посмотри, как организованы View + Layout в Zend Framework
Кхм, а где ответ про foreach? -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
||||
|
||||
Kefir |
|
||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
ну раз тебе надо поцитатно
![]() очень хорошая конструкция. зря ты так. даже ЕСЛИ (не будем мерится циклами) твой код будет выполняться на 0.001 секунду дольше - ничего страшного. коротко - в разделении логики и представления.
опять приходится повторяться - есть логика которая бизнес, а есть логика представления. первая отвечает за то, чтобы достать и обработать данные (к примеру, сделать запросы в БД, отсортировать и/или отфильтровать полученные данные). вторая - за то как данные будут отображены. к примеру, надо чтобы у новости с пометкой Important был красный фон. к бизнес логике это не относится - сам понимаешь, то есть в класс News приделать поле BackgroundColor это всё равно что водителей трамваев в трамваям гвоздями прибивать. а раз это относится к логике представления - это должно быть реализовано в самом шаблоне. понял?
ну скажем так - главное чтобы тебе это нравилось В))) а по хорошему - ни в коем случае. ЗЫ всё то же самое я писал и в предыдущем посте, но, к сожалению, ты почему-то не увидел этих ответов. Добавлено через 1 минуту и 19 секунд alexey009, а что органихация циклов то? чем цикл от ифа отличается? вот и подумай ![]() |
||||
|
|||||
alexey009 |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Kefir,
![]() может я конечно полный нуб, но попробую ещё раз получить ответ, не сердитесь плиз. ![]() Значит, файл index.tpl
файл news.tpl
файл index.php
папка с шаблоном index.tpl engine\templates\new\main папка с шаблоном news.tpl engine\templates\new\news смарти лежит в папке engine\smarty файл index.php лежит в корневой директории. внимание вопрос как в index.tpl NEWS заменить на файл news.tpl и отоброзить полученные новости из базы, при этом шаблон отображения новостей расположен между "начало" и "конец". НА ПРИМЕРЕ SMARTY |
||||||
|
|||||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Только цикл. Ну или его эмуляция подобный конструкциями
P.S. В Smarty есть оператор для цикла -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Fortop, как задать цикл. этот вопрос задавался не раз, никто тольком не ответил
![]() |
|||
|
||||
Kefir |
|
||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
alexey009,
index.tpl:
news.tpl (замечаем, что тут, внутри, есть цикл ![]()
index.php:
вот надо тебе к словам попридираться. ведь и так понял, что я имею в виду. ![]() |
||||||
|
|||||||
BaNaNaS |
|
||||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Я бы сделал так:
З.Ы. Мог и на мудрить не проверял. Это сообщение отредактировал(а) BaNaNaS - 4.8.2008, 17:34 |
||||
|
|||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
||||
|
||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: 2 Всего: 2 |
Вообщем понял, что смарти фуфло
![]() И теперь соответственно вопрос! Как задать цикл?
Все что между @Start@ и @End@ надо загнать в цикл. можно и в переменную.. ![]() |
|||
|
||||
lisishe |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 23.8.2008 Репутация: нет Всего: нет |
шаблон
Можно ещё проще Ну а переменные можно формировать отдельно при чём через этот же класс Это сообщение отредактировал(а) lisishe - 23.8.2008, 22:14 |
||||
|
|||||
ktulh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
Ну а почему бы не использовать нативный шаблон?
А если нужны повторяющиеся блоки, то просто их загонять в перменную а ее подключать в нужном месте основного шаблона. |
|||
|
||||
ktulh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
Тут подумал... есть ли способ сделать шаблоны пр помощи heredoc?
|
|||
|
||||
ktulh |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
index.tpl
index.php
НА выходе
загрузку шаблона можно по идее обернуть в функцию. а переменные передавать в качестве аргументов. Хотя это и не обязательно. Они всреано продставляются из общего пространства. Этот способ позволяет и подгражть какие-то внутренние шаблоны элементов. Ток вот пока не думал на счет управляющих конструкции внутри шаблона.(а нужны ли они там, вет все можно сделать в скрипте.) Это сообщение отредактировал(а) ktulh - 4.9.2008, 11:25 |
||||||
|
|||||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
это не есть шаблонновсть
Это сообщение отредактировал(а) MoLeX - 7.9.2008, 18:57 -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
ktulh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
Привиде тогда пример шаблонизатора с использованием heredoc
|
|||
|
||||
americanets |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
Molex, чет не подумал сразу о том что на мат похоже , сори . Просто в eval , не очень правильно пихать все -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
ktulh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
И всеже жду предложения с использованием этого синтаксиса.
|
|||
|
||||
americanets |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 5 Всего: 12 |
ktulh,
на примере твоего синтаксиса есть вариант , он php называется ![]() file.tpl
index.php
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||
|
|||||
ktulh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
ну с инклюдами или заменои это понятно.. мне то интересен именно способ реализации через heredoc или его впринципе без использования евал нет?!
|
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
ktulh, а зачем вообще такая кривая реализация? Зачем шаблон выводить через eval!? И использовать для всего этого heredoc.. не понятно..
|
|||
|
||||
ktulh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
Ну допустим так сказать зацикл небольшои.. просто инетресен увидеть именно этим способом... и впринципе не особо важно целесообразность его использования.. просто сам принцип...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |