Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свой шаблонизатор, Прошу профессионалов подсказать 
:(
    Опции темы
OlegNT
Дата 25.3.2006, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.3.2006
Где: Нижний Тагил

Репутация: нет
Всего: нет



Здравствуйте!

Хороший тут у вас форум. Спасибо другу, что позвал сюда =)

Вот хочу выложить шаблонизатор (еще только начатый). Прошу тех, кто рулит очень хорошо во всем этом - подсказать, нормально ли я делаю? Может, кто-то даст совет или сделает замечание, чтобы я учел их сразу и не делал ошибок в дальнейшем.

Пока шаблонизатор умеет склеивать файлы, заменять переменные {BLABLABLA}, а также удалять блоки:

<!-- BEGIN block_name -->
Тело блока
<!-- END block_name -->

Хочу еще сделать повторение блоков. И как-то организовать блок в блоке. Но это потом.

Это сообщение отредактировал(а) OlegNT - 25.3.2006, 22:07

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  templates.rar 1,38 Kb
PM MAIL WWW Jabber   Вверх
Ciber SLasH
Дата 25.3.2006, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Посмотри как другие делали такое: http://forum.vingrad.ru/index.php?showtopi...st&p=395070
PM   Вверх
RomanK
Дата 25.3.2006, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 25.6.2005
Где: Россия, Выборг

Репутация: 1
Всего: 2



OlegNT, я вот тоже написал собственный шаблонизатор. Я его написал для себя. Знаю что существует достаточно много других шаблонных движков, но мне гараздо ближе свое. Тем более писал его для преобретения опыта в этом деле. И навязывать его никому не хочу. Я его написал давно... НО: он требует небольшой доработки. Там есть небольшой глюк при парсинге блоков сложной вложенности. Но это не очень мешает. С использованием этого шаблонизатора я сделал уже один проект... кому интересно, могу дать ссылку.

Ну а теперь немного о том как он работает:
Код

<?php
$tpl=new ParseTemplates('.', 1); // Назначаем каталог с шаблонами. В данном случае это текущий каталог. Второй параметр - это режим отладки (вкл/выкл).

$tpl->SetFile('Main', 'main.tpl'); // Назначаем файл шаблона.

// Сразу можем назначить шаблонные переменные:
$tpl->SetVars
(
    'Main', // Шаблон, для которого назначаем переменные.
    array
    (
        'key1'=>'value1', // Переменная => Значение. То есть в шаблоне замениться переменная @key1@ на 'value1'.
        'key2'=>'value2'
    )
);

// Далее можем повторить определенный блок несколько раз.
for($i=0; $i<10; $i++)
{
    // Для каждого блока можем назначть свои переменные.
    $tpl->SetVars
    (
        'Main:block', // Блок, для которого назначаем переменные.
        array
        (
            'key1'=>'value1',
            'key2'=>'value2'
        )
    );
    // Можем назначить вложенный блок и тоже его повторить несколько раз.
    for($j=0; $j<5; $j++)
    {
        $tpl->SetVars
        (
            'Main:block/subblock',
            array
            (
                'key1'=>'value1',
                'key2'=>'value2'
            )
        );
        $tpl->Parse('Main:block/subblock'); // Парсим subblock.
    }
    $tpl->Parse('Main:block'); // Парсим block.
}

// Ну в принципе и все, выводим на экран (если были назначены несколько файлов, то они выведутся (отпарсенные) в порядке из назначения):
$tpl->Display_();
// Или возвращаем в переменную:
$html=$tpl->Return_();

// Так же существует возможность вставить один файл шаблона внутрь другого заменив какую-либо шаблонную переменную.
?>

Если еще что-нибудь интересно, спрашивай. smile

Это сообщение отредактировал(а) RomanK - 26.3.2006, 00:04

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  class.ParseTemplates.rar 2,00 Kb
PM MAIL WWW ICQ   Вверх
AntonioBanderaz
Дата 26.3.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



на самом деле очень похоже на шаблонизатор в пакете PEAR... Зачем переписывать если за тебя это уже сделали, и довольно качественно... Ты же ничего нового не придумал.... )))


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
RomanK
Дата 26.3.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 25.6.2005
Где: Россия, Выборг

Репутация: 1
Всего: 2



AntonioBanderaz, если Вы намекаете, что я из PEAR что-то содрал, так Вы глубоко ошибаетесь.
Цитата(AntonioBanderaz @ 26.3.2006, 10:26 Найти цитируемый пост)
Зачем переписывать если за тебя это уже сделали, и довольно качественно... Ты же ничего нового не придумал.... )))

Блин. Это опять из той области типа "зачем изоретать колесо". Так вот что я Вам скажу. Я на тот момент знал, что существует большое количество этих шаблонных движков. Но, мне хотелось написать это самому, просто для приобретения опыта. smile И у меня это получилось. Думаю, что довольно неплохо, хотя может и работает он не так быстро, как какие-нибудь FastTemplates или XTemplates. Правда возможно и наоборот, так как скорость работы я не сравнивал.
Так же я понимаю OlegNT`a. Думаю он тоже это делает ради практики. smile
PM MAIL WWW ICQ   Вверх
OlegNT
Дата 26.3.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.3.2006
Где: Нижний Тагил

Репутация: нет
Всего: нет



Цитата(RomanK @ 26.3.2006, 16:42 Найти цитируемый пост)
Так же я понимаю OlegNT`a. Думаю он тоже это делает ради практики.

Да, вы правы.

Первоначально я увидел систему шаблонов в phpBB. Там есть, естественно, шаблонизатор, но, честно сказать, я в нем так и не разобрался. Поэтому решил сделать что-то свое
PM MAIL WWW Jabber   Вверх
RomanK
Дата 26.3.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 25.6.2005
Где: Россия, Выборг

Репутация: 1
Всего: 2



Цитата(OlegNT @ 26.3.2006, 14:22 Найти цитируемый пост)
но, честно сказать, я в нем так и не разобрался

А, честно, даже не разбирался. smile Там помойму FastTemplates и стоит. Хотя точно не знаю. Просто где-то слышал. smile Единственно на что я смотрел при разработке своего шаблонного движка, так это примеры работы XTemplates.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.