организация шаблонизатора для CMS

iceman

говнокодер
организация шаблонизатора для CMS

пишу CMS, сейчас делаю шаблонизатор для нее
вопросы чисто по теории...
шаблонизатор у меня обычный, т.е. основные HTML-теги реализованный в виде функции на php, чтобы хтмл код не пересекался с php в скриптах...
например <table></table> <td></td> и т.д. все остальное по правилам шаблонизатора реализуется в .css файле...

например есть функция:
PHP:
void theme::TabStart(int $cellspacing = 0, int $cellpadding = 0, string $class = 'default_table');
Вопрос: Дать ли возможность программисту, который будет писать модуль для CMS вводить свой стиль оформления (CSS) ...?
Проблема: При смене шаблона, возможны случаи "некорректного" отображения модулей.
т.к. программист ввел свои классы стилей, которые не учитываются дизайнерами при создание шаблона...

Вопрос: либо ограничить его дизайнерские фантазии при написание модуля...?
Проблема: при ограничение - не будет возможности реализовать детали модуля, по задумке программиста...

так как поступить, поделитесь опытом...
 

Sender

Новичок
iceman
назначение шаблонизатора в моем понимании - разделение данных и их представления, ты же насколько я понял начинаешь перемешивать...

зачем программисту заморачиваться html элементами? его задача подготовить данные, а как их потом вертеть будут не его проблемы

а если завтра твоя cms захочет на flash перейти? программисту что делать?
 

Фанат

oncle terrible
Команда форума
основные HTML-теги реализованный в виде функции на php, чтобы хтмл код не пересекался с php в скриптах...
на первый взгляд, совершенно безобидная фраза.
но если внимательно приглядеться - она просто взрывает мозг.

Как говорил один испанский художник - сон разума рождает чудовищ.
 

denver

?>Скриптер
- Вася, нам нужно там у дива class прописать а здесь жирненьким выделить. А без тебя не можем, завалит ошибками как в прошлый раз. Сделай, а?
- Вы чо твари творите, снова дизайн поменяли? Уволюсь нах!
- Ой Вась, прости, может мы сами, тока скажи как.
- Эээ.. ну лана, давайте ваши правки... в последний раз помогаю! (все равно ж уволюсь)
 

iceman

говнокодер
на первый взгляд, совершенно безобидная фраза.
но если внимательно приглядеться - она просто взрывает мозг.
ну я имел ввиду ТАблицы HTML

может я плохо знаю возможность испоьзования CSS
но как патом пользователь задаст стиль таблице...

напрмер модуль игровой базы, в верху идет Название ИГРЫ... оно должно быть большим... в php скрипте, я ее выделяю между таблицами...
PHP:
theme::tabStart();
    /** Название Игры */
theme::tabEnd();
как дизайнеру задать стиль оформления для именно этого куска таблицы...

я понимаю вопрос не в тему...

-~{}~ 15.03.07 15:56:

назначение шаблонизатора в моем понимании - разделение данных и их представления, ты же насколько я понял начинаешь перемешивать...

зачем программисту заморачиваться html элементами? его задача подготовить данные, а как их потом вертеть будут не его проблемы

а если завтра твоя cms захочет на flash перейти? программисту что делать?
как тогда шаблонизатор должен перехвачивать данные? которые в модуле организует программист...
 

hermit_refined

Отшельник
шаблонизатор у меня обычный
проблема в том, что ваш шаблонизатор не совсем обычный, вернее - вовсе не шаблонизатор.
что делать? использовать шаблонизатор.
как тогда шаблонизатор должен перехвачивать данные? которые в модуле организует программист...
ну дык... почитайте что-нибудь по теме-то. поиск по форуму - в помощь.
 

iceman

говнокодер
понятно...

вот пример кода...
PHP:
function infoBlock()
{
        theme::tabStart(0, 40);
            theme::tabNextStart('games_title');
                require_once self::FILE_GTITLE;
            theme::tabNextEnd();
        theme::tabEnd();
        theme::tabStart(0, 4);
            theme::tabTitle(MODULE_F2_G);
            theme::tabNextStart();
                theme::tabStart(0, 4);
                theme::tabBodyStart('games_info');
                    require_once self::FILE_GINFO;
                theme::tabEnd();
            theme::tabNextEnd();
        theme::tabEnd(); 
}
я основовался на примере Нюки, там было функция открытия таблицы и закрытия и все... авторам модулей порой самим приходилось добавлять теги хтмл...

пайду искать, всем Спасибо!
 

begemot

Новичок
впервые такой бредовый "шаблонизатор" вижу,
да за такие поделья в печь сразу!

афтар учи матчасть.
 

serglt

Анус, ой, Ахтунг
Я представляю что будет, когда надо будет в одной таблице одни атрибуты указать во второй таблице другие :) Лучше удали свой шабланизатор, а жесткий диск в печку, дабы больше мыслей таких не возникало.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Лет 7 назад так часто писали, до распространения темплейтов.
Я знаю весьма серьезную CRM, построенную много лет назад на этом алгоритме, очень качественно отлаженную и работающую на крупных предприятиях.
Её главная проблема - нет программистов, готовых в этом ужОсе копаться и модифицировать её под новые требования клиентов.
 

AP

Новичок
А чем тебе уже готовые шаблонизаторы не нравятся?
 

serglt

Анус, ой, Ахтунг
А ты хочешь сделать, чтоб в твоем коде разбирался только ты? Что стать незаменимым? :)
 

iceman

говнокодер
serglt
какой ты активный, жуй тапки... это моя первая CMS и моя ошибка, т.к. я ее писал чисто для себя, для своего сайта, но щас у меня начали просить цмску, и я понял что они хрен напишут какой либо модуль, все из-за "шаблонизатора"

щас пишу другой шаблонизатор, думаю он больше будет соответствовать термину "шаблонизатор"

AP
какой интерес программировать, используя готовые библиотеки, поимаю если бы я зарабатвал на этом деньги (для быстроты исполнения заказа), то бы использовал, но я хочу сделать что то свое
+ опыт
 

Фанат

oncle terrible
Команда форума
iceman
молодец, поддерживаю.

для определения, что такое шаблонизатор, рекомендую тебе сделать две вещи.
1. сделать страницу, а потом её же версию для печати.
И вот если для того, чтобы получить версию для печати, тебе не придется лезть в код скрипта вообще, за исключением, разве что, вызова другого шаблона - значит, шаблонизатор у тебя хороший.
2. поставить программу на два сайта с разным дизайном. Думаешь, это проверка? Нет. Это ещё не проверка.
проверка будет, когда ты на одном сайте обновишь логику скрипта, и сможешь просто переписать его на второй сайт - и нам всё будет работать.
 

iceman

говнокодер
вот начал строить общую модель... и составлять правила для шаблонизатора...

проблема в одном...

я считаю, что в сайте должна быть верхушка (Header) и подвал (Footer)

и не могу выбрать, внести это в шаблонизатор или в CMS, которая на инструментах шаблонизатора будет реализовывать их?

и еще я бы хотел, чтобы было так:
Общий шаблон, далее в нем будут существовать разметки для Header, Footer и Центра
в файле шаблона "Центра" тоже буду существовать разметки для блоков и контента Модуля и т.д. разветвляясь

причем в файле модуля не будут присутствовать никакие функции шаблонизатора, все эту будет делать CMS
программисту придется только записать нужные переменные в "контейнеры" определенные CMS... вообще правильный ли это подход?
 

Фанат

oncle terrible
Команда форума
Ты опять не понял, что такое шаблонизатор.

Шаблонизатор отвечает не за хидер с футером. А за ВЫВОД ВСЕЙ ИНФОРМАЦИИ в браузер. Вывод. информации. Всей.
Без разницы - в хидере она, в футере, или в том что посередине болтается.

Уже второй человек, который намертво увязывает совершенно разные вещи - структуру сайта и шаблонизатор.
И, судя по опыту общения с первым, объяснить будет это непросто...
 

Фанат

oncle terrible
Команда форума
Общий шаблон, далее в нем будут существовать разметки для Header, Footer и Центра
в файле шаблона "Центра" тоже буду существовать разметки для блоков и контента Модуля и т.д. разветвляясь
ты хочешь в один файл шаблона запихать оформление всех страниц сайта? Ты хорошо подумал?

самая логичная структура - это когда у каждого модуля есть свой шаблон, или несколько.
Хидер твой любимый с футером шаблон может подключать сам.
а может и цмс.
в этом случае структура будет такой
1. получаем данные для страницы.
2. выводим хидер
3. выводим данные
4. выводим футер.

все просто и логично. не так ли?
 
Сверху