Помогни ни да направим Uroci.net по - богат! Добави урок

Oпростена схема за темплейтизация

PHP » PHP
lyubo   трудност:    видян: 7190

В това уроче, ще видим как можем да си направим проста схема за темплейтизация която поддържа парсване на цикли и променливи.

Първо предполагаме, че такова чудо ни е нужно за да отделим бизнес логиката на нашето приложение от графиката.
Имаме следната постановка на задачата:

  1. Имаме данни с които трябва да напълним шаблона.
  2. Разполагаме със темплейт (шаблон) написан на HTML.
  3. Имаме една две функции които вършат цялата работа.


Данни

Нека предположим, че от някъква база данни сме изкопали едно кило народ със своите особени белези: пол, ръст, сексуална ориентация, години и прочее.
Без да се интересуваме как сме го направили, ще предположим че предварително сме натикали тези данни в следния асоциативен масив:

$PARSE_ARRAY['people'][0]['NAME'] = "Пенчо Щръмбалски";
$PARSE_ARRAY['people'][0]['TALL'] = "179";
$PARSE_ARRAY['people'][0]['SEX_ORIENT'] = "нормален";
$PARSE_ARRAY['people'][0]['AGE'] = "79";

$PARSE_ARRAY['people'][1]['NAME'] = "Гинка Лшникова";
$PARSE_ARRAY['people'][1]['TALL'] = "160";
$PARSE_ARRAY['people'][1]['SEX_ORIENT'] = "неизвестна";
$PARSE_ARRAY['people'][1]['AGE'] = "16";

$PARSE_ARRAY['people'][2]['NAME'] = "Магдалена Чумбюшликова";
$PARSE_ARRAY['people'][2]['TALL'] = "170";
$PARSE_ARRAY['people'][2]['SEX_ORIENT'] = "малийй";
$PARSE_ARRAY['people'][2]['AGE'] = "20";

............

$PARSE_ARRAY['people'][137]['NAME'] = "Лакто Марселски";
$PARSE_ARRAY['people'][137]['TALL'] = "190";
$PARSE_ARRAY['people'][137]['SEX_ORIENT'] = "абсолютен гей";
$PARSE_ARRAY['people'][137]['AGE'] = "28";


Освен това някак сме сметнали колко е общия брой на хората и сме го записали отново като елемент от този масив:

$PARSE_ARRAY['TOTAL_COUNT'] = "138";


Темплейт

Ще поискаме нашия шаблон (нека да го наречем template.html) да визуализира една най обикновена табличка с редове, в които са нанесени стойностите дискутирани по-горе.
Нека специалните таговe в нашия шаблон бъдат следните
<?VARIABLE?> - предназначен за извличане на стойност от "променливата" VARIABLE
и
<?loop lpID>
...
<lpID loop?>

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

Нека нашия темплейт изглежда така:

<table border="0" width="100%">
<tbody>
<tr>
<td>Имена</td>
<td>Ръст</td>
<td>Сексуалистика</td>
<td>Години</td>
</tr>
<?loop people>
<tr>
<td><?NAME?></td>
<td><?TALL?></td>
<td><?SEX_ORIENT?></td>
<td><?AGE?></td>
</tr>
</tbody>
</table>



Коментари (4)

kali. на 20.01 2007 в 19:16ч.
Опростена!
skus на 23.01 2007 в 00:52ч.
Честно казано не виждам никакъв смисъл в цялата работа.. А и ако тоз дет пише скрипта знае как да направи цялата история със масивите, сигурен съм, че знае и как да я изкара в .html
lyubo на 26.01 2007 в 20:47ч.
Sorry пичове, ама се опитах да save-на туй що бях писал и това чудо изпрати урока за публикуване и сега не мога да разбера от къде да го редактирам.
Във формата в която се намира хич не е завършен и даже аз не разбирам какво пише там :)

Иначе схемате е проста и се доближава до функционалността на smarty.
Идеята е да се раздели бизнес логиката от потребителския интерфейс, щото аз лично мразя някакав си HTML да ми се мандахерца из PHP кода...

Обаче, нямам никакви нерви да се занимавам да пиша статията наново... По-добре да я изтрият админите - в момента е абсолютно безполезна!
Lentavia на 26.03 2007 в 03:24ч.
имам идея :) като имаш време я напиши на нотепад (ако не ти се пише на 1 път) кат стане готова я сложи в форума и тук в коментар даи просто линк към форума за темата ...

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: IT Новини