Here I come, there I am.

 

В петък успешно закъснях с крайния срок на една фаза, разчитайки на bTemplate сляпо. Оказа се, че е почти невъзможно да подам PHP код за интерпретация, който да се изпълни и резултатът му да се подаде като параметър на желаното място в шаблона. Ето защо трябваше да пренапиша няколко странички (за щастие имаме повече backend и разчитаме малко на шаблона) с нов outlook, така че да мога да подавам безпроблемно динамично съдържание. Credits на Борис Червенков, че ми даде много полезни идеи от собствен опит за реализация на шаблона.

Цялостният модел изглежда горе-долу като MVC модела, т.е. данните са привидно ограничени под тези три направления на model-view-controller. Страниците са приведени под следния формат:

page1.php -> page1.view.php -> someController.php -> page2.php -> page2.view.php

page1.php и page2.php се занимават с модела. Те извършват връзката към базата от данни, XML, процедури и прочие и в крайна сметка от тях се извличат масиви с данни или някакви важни променливи. В тези модели се пазят също и пътища към файлове за включване в шаблона или променливи като заглавието на страницата. В тези страници включваме страницата-шаблон и подаваме като параметър определеното view!

page1.view.php и page2.view.php обслужват нормалния преглед на съдържанието. Те използват данните от предните страници и го извеждат на потребителя.

layout.php - шаблона, еднакъв за всички страници. Има някои празни места за променливи или пътища до менюта, хедъри и прочие.

someController - изпълнява ролята на препращач; може да има контролер за всеки по-основен event или един глобален контролер, който обслужва целия портал.

Кратка структура на модела:

<?php	$arrayData = getData();		$tmplTitle = "List title"	$tmplContentFile = "list.view.php"	....		include(\\''layout.php\\'');?>

Примерна view страница:

<table>	<?php for ($arrayData as $a) { ?>	<tr><td> ... </td><tr>	<?php } ?></table>

Шаблонът layout.php:

<?php	// parameters 	$tmplTitle = (isset($tmplTitle)) ? $tmplTitle : "Default title";	$tmplHeaderFile = ....	.	.	.	.?><html>...<title><?php echo $tmplTitle; ?></title> <body>	<?php inlcude($tmplHeaderFile) ?>	....	<?php include($tmplContentFile); ?>	....</body></html>
Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • MySpace
  • Slashdot
  • Technorati
  • TwitThis
del.icio.us Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati ReadMe.ru Dobavi.com Dao.bg Lubimi.com Ping.bg Pipe.bg Svejo.net Web-bg.com

Безподобния пост.

Related posts brought to you by Yet Another Related Posts Plugin.

Comments

One Response to “Смених bTemplate със собствен прост engine”

  1. Techies & Personals» Countdown JavaScript брояч с време от сървъра on February 2nd, 2009 0:32 [#]

    [...] Със сигурност има по-оптимално решение, но това работи в този случай. Ето и логиката в модела от даннитe: test.php (скелета на проектите ми приблизително описан тук): [...]

Leave a Reply