Permalink
Browse files

[Guide] Added topics.prado

  • Loading branch information...
1 parent a78bb6a commit 572010db6db87931d2e736fd04a6ca6662b15777 @Borales Borales committed May 24, 2012
Showing with 171 additions and 0 deletions.
  1. +171 −0 docs/guide/uk/topics.prado.txt
@@ -0,0 +1,171 @@
+Альтернативна мова шаблонів
+===========================
+
+Yii дозволяє розробнику використовувати свою улюблену мову шаблонів (наприклад, Prado або Smarty)
+для опису представлень контролера або віджету.
+Для цього потрібно написати і встановити свій компонент [viewRenderer|CWebApplication::viewRenderer].
+Обробник представлення перехоплює виклики [CBaseController::renderFile],
+компілює файл представлення з альтернативним синтаксисом і віддає результат компіляції.
+
+> Info|Інформація: Не рекомендується використовувати альтернативний синтаксис шаблонів для опису представлень компонентів, які викладаються у відкритий доступ. Це призведе до вимоги використовувати той же синтаксис, що використовується у представленні компонента.
+
+Далі ми покажемо, як використовувати [CPradoViewRenderer] — обробник представлень,
+що дозволяє розробнику використовувати синтаксис шаблонів, який використовується у фреймворку
+[Prado](http://www.pradosoft.com/). Якщо ви хочете реалізувати свої обробники представлень, обовʼязково ознайомтеся із [CPradoViewRenderer].
+
+Використання `CPradoViewRenderer`
+---------------------------------
+
+Для використання [CPradoViewRenderer] необхідно налаштувати додаток наступним чином:
+
+~~~
+[php]
+return array(
+ 'components'=>array(
+ …,
+ 'viewRenderer'=>array(
+ 'class'=>'CPradoViewRenderer',
+ ),
+ ),
+);
+~~~
+
+За замовчуванням [CPradoViewRenderer] буде компілювати вихідні файли представлень і зберігати отримані файли PHP в директорію [runtime](/doc/guide/basics.convention#directory).
+PHP-файли змінюються тільки у тому випадку, якщо змінено вихідне представлення.
+Тому, використання [CPradoViewRenderer] тягне за собою дуже незначне падіння продуктивності.
+
+> Tip|Підказка: Незважаючи на те, що [CPradoViewRenderer] додає новий синтаксис для більш швидкого і зручного опису представлень, ви можете використовувати код PHP також, як і у звичайних представленнях.
+
+Нижче будуть описані конструкції, які підтримуються [CPradoViewRenderer].
+
+### Скорочені PHP-теги
+
+Скорочені PHP-теги — гарний спосіб скоротити код, який використовується у представленні.
+Вираз `<%= expression %>` перетворюється у `<?php echo expression ?>`.
+`<% statement %>` — у `<?php statement ?>`. Приміром:
+
+~~~
+[php]
+<%= CHtml::textField($name,'value'); %>
+<% foreach($models as $model): %>
+~~~
+
+перетворюється у
+
+~~~
+[php]
+<?php echo CHtml::textField($name,'value'); ?>
+<?php foreach($models as $model): ?>
+~~~
+
+### Компонентні теги
+
+Компонентні теги використовуються для того, щоб вставити у представлення
+[віджет](/doc/guide/basics.view#widget). Синтаксис наступний:
+
+~~~
+[php]
+<com:WidgetClass property1=value1 property2=value2 …>
+ // вміст віджета
+</com:WidgetClass>
+
+// віджет без вмісту
+<com:WidgetClass property1=value1 property2=value2 …/>
+~~~
+
+
+Тут `WidgetClass` визначає імʼя класу віджета або
+[псевдонім шляху](/doc/guide/basics.namespace).
+Початкові значення властивостей можуть бути як рядками, укладеними у лапки,
+так і виразами PHP, укладеними у фігурні дужки. Наприклад:
+
+~~~
+[php]
+<com:CCaptcha captchaAction="captcha" showRefreshButton={false} />
+~~~
+
+перетворюється у
+
+~~~
+[php]
+<?php $this->widget('CCaptcha', array(
+ 'captchaAction'=>'captcha',
+ 'showRefreshButton'=>false)); ?>
+~~~
+
+> Note|Примітка: Значення `showRefreshButton` задано як `{false}`
+замість `"false"` так як останнє означає рядок, а не логічне значення.
+
+### Кешуючі теги
+
+Кешуючі теги — короткий спосіб використання
+[кешування фрагментів](/doc/guide/caching.fragment). Синтаксис наступний:
+
+~~~
+[php]
+<cache:fragmentID property1=value1 property2=value2 …>
+ // вміст, який необхідно кешувати
+</cache:fragmentID >
+~~~
+
+Тут `fragmentID` — унікальний ідентифікатор кешувального обʼєкта.
+Пари імʼя-значення використовуються для налаштування кешування фрагментів. Наприклад:
+
+~~~
+[php]
+<cache:profile duration={3600}>
+ // інформація із профілю користувача
+</cache:profile >
+~~~
+
+буде перетворено у
+
+~~~
+[php]
+<?php if($this->beginCache('profile', array('duration'=>3600))): ?>
+ // інформація із профілю користувача
+<?php $this->endCache(); endif; ?>
+~~~
+
+### Захоплюючі теги
+
+Як і кешуючі теги, захоплюючі теги - компактний спосіб використання
+[CBaseController::beginClip] та [CBaseController::endClip]. Синтаксис наступний:
+
+~~~
+[php]
+<clip:clipID>
+ // вміст для захоплення
+</clip:clipID >
+~~~
+
+Тут `clipID` — унікальний ідентифікатор захопленого вмісту.
+Захоплюючі теги перетворюються таким чином:
+
+~~~
+[php]
+<?php $this->beginClip('clipID'); ?>
+ // вміст для захоплення
+<?php $this->endClip(); ?>
+~~~
+
+### Теги коментарів
+
+Теги коментарів використовуються для написання коментарів, доступних виключно розробникам.
+Дані теги будуть видалені безпосередньо перед відображенням представлення. Синтаксис наступний:
+
+~~~
+[php]
+<!---
+Цей коментар буде вирізаний…
+--->
+~~~
+
+Одночасне використання шаблонів різного формату
+-----------------------------------------------
+
+Починаючи з версії 1.1.2 можна використовувати одночасно як альтернативний, так і звичайний PHP синтаксис шаблонів.
+Для цього необхідно задати властивості обробника шаблонів [CViewRenderer::fileExtension] значення, відмінне від `.php`.
+Приміром, якщо воно буде виставлено у `.tpl`, то всі шаблони із розширенням `.tpl` будуть оброблятися обраним обробником представлень. Шаблони з розширенням `.php`, як і раніше, будуть використовувати стандартний синтаксис PHP.
+
+<div class="revision">$Id: topics.prado.txt 3226 2011-05-18 10:37:47Z mdomba $</div>

0 comments on commit 572010d

Please sign in to comment.