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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблонизация: вопросы реализации 
:(
    Опции темы
Zerony
Дата 7.5.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

Идею взял в DLE там в файле шаблона (например main.tpl) там, где встречается - {vote} выводит шаблон с таким же названием. Это лучше сделать методом анализа файла (иф и т.д.) или есть более удобные способы.

Как вариант мне говорили что можна в нужном месте вставлять пхп код типа <? echo ... ?> и там выводить тот файл который мы подключаем, но ходят слухи что движок тогда становится уязвимым.

Надеюсь я правильно выложил свою идею, всем спасибо за внимание smile  smile 
PM MAIL   Вверх
KuZyagroup
Дата 8.5.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


magento solution
**


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

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



мне почему то кажется что Вам рано ещё движок писать.
А по поводу {vote}, почитайте в гугле документацию по smarty, лишним не будет.
PM MAIL   Вверх
gta4kv
Дата 8.5.2009, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

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



Я советую про Smarty не читать, а просто почитать про шаблонизаторы в пхп. 
PM MAIL   Вверх
NewDima
Дата 12.5.2009, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



Цитата(KuZyagroup @ 9.5.2009,  03:49)
мне почему то кажется что Вам рано ещё движок писать

Это точно.
Напишите сначала несколько небольших движков, набейте шишки. Причем каждый раз пишите новый парсер шаблонов, так чтобы они отличались фундаментально. Тогда поймете, как лучше, а как не надо в конкретных случаях
PM ICQ   Вверх
Sanchezzz
  Дата 12.5.2009, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

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



Чисто мое мнение не каких шаблонизаторов ( {}, %% %%, @@ @@, ## ##, итд ) и без них можно все сделать, а главное это будет производительно в 3 раза (все конечно зависит от рук).

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


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
NewDima
Дата 12.5.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



Sanchezzz, очень интересно, как вы работаете в команде с дизайнерами
PM ICQ   Вверх
Sanchezzz
  Дата 12.5.2009, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

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



Новый Дима ты знаешь как разрабатывать сайты в команде?
Цитата

Sanchezzz, очень интересно, как вы работаете в команде с дизайнерами

Легко
Рисуется дизайн его утверждают 
Затем отдают верстальшику
Потом программисту.

и дизайнер не будет лазить в html, чтобы что то поменять его дело нарисовать.



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
NewDima
Дата 12.5.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



Т.е. накатанный прогером проект уже не редактировать верстальщику в будущем? Разве это удобно?
PM ICQ   Вверх
Sanchezzz
  Дата 12.5.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

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



Видишь все зависти какой у вас верстальщик(и).
У нас умные верстальщики подчти прогеры smile
-------------
вернемся к теме

Я считаю что система подключение шаблонов в зависимостей от страницы или параметров удобнее.

Реализация простая:

<? include  'init-before.php';?> 
тут простой хтмл
<? include  'init-after.php';?>

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

tempalete
 default           // папка
    header.php // для вверха 
    foter.php     // для низа.
    gfx               // папка для картинок можно любую как верстальщик сделает
    style.css
 shablon1
 shablon2

порядок подключение шаблонов можно хранить в бд можно в файле

array (0=> 
array('name'=>'Название шаблона на Eng зщадается как и папка шаблона' , 
'description' => 'описание если делать какойто интерфейс',
'sort'=>'0', 
'type'=>'тип уловия подключение шаблона',
'value'=>'Свойство для сравненияусловия или подстовляение параметров'
)
1=>...
);

В ядре нужно определить текушию страницу сайта и какие get параметры передаются.
далее идет условия подключение шаблонов.

Пробегаемся по массиву шаблонов (массив выше) и по пути выполняем условия пока не совполет

Допустим тип (type из массива) задан как index это привязка к шаблона к определенной страницы и не к другой, тогда значение (value) будет адрес этой страницы, если адрес задан как сайт/ то шаблон применяется на все включительные папки и страницы сайта.

Значение 'sort' это для сортировки чтобы отсортировать порядок выполнении условий можно конечно и сразу массив выдавать в соответствующем порядке.

Если условие совпадает то записывает в переименую адрес шаблона и выходим из цикла с помощью break;
$header = '/tempalete/'.$perm1.'/header.php';
$foter= '/tempalete/'.$perm1.'/header.php';

где $perm1 это название шаблона и папки полученной в ранее 

далее дело инклуда include $_SERVER['DOCUMENT_ROOT'] . $header ;
в нижний файл точно также include $_SERVER['DOCUMENT_ROOT'] . $foter ;

проверка если файл шаблона обезательна...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
а теперь в сторону шаблонизаторов за чем писать ввелик который толку мало чего дает только лишнее выполнение кода.

что насчет тупых верстальщеков таких, я еще не видел. ( его дело свестать)
да и инклуд знают все.

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

все можете кидать помидорами...


Это сообщение отредактировал(а) Sanchezzz - 12.5.2009, 12:11


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
NewDima
Дата 12.5.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



Цитата(Zerony @ 8.5.2009,  02:17)
но ходят слухи что движок тогда становится уязвимым.

Любой движок можно сделать уязвимым, или наоборот, снизить уязвимость до предела
Sanchezzz, в любом случае, не буду спорить, елси вы уже используете такую схему и она удобна для команды, в которой вы работаете, что тут скажешь =)
PM 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.0927 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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