Синтаксис

В основе cSmarty лежит синтаксис языка Паскаль и, его реализации, freepascal со вставками HTML кода. Шаблон,  по  умолчанию, состоит из   HTML кода, а программный код помещается  между символов <{ и }>.

В отличии от паскаля cSmarty не требует обязательного объявления переменныхи автоматически определяет их типыдобавлен оператор соединения «.» (точка, аналог языка PHP):

<{

s := 'яблоко №' . 55 . 44;

$s;

// результат 'яблоко №5544'

}>

 

Для вывода строки можно просто в ее начало поставить знак $. Текстовые значения заключаются в одинарные кавычкиесли нужно поставить апостроф— ставится два апострофа подряд.

 

Основные операторы cSmarty:

:= Оператор присвоения (s := 'новое значение переменной';);

+= Присоединяет к значению переменной дополнительное значение (s += 'еще текст';)

Оператор сравнения возвращает в случае совпадения значений (if a = 5 then $'a равно 5';);

Если левое значение больше правого возвращает 1 (if a > 5 then $'a больше 5';);

Если левое значение меньше правого возвращает 1 (if a < 5 then $'a меньше 5';);

>= Если левое значение больше или равно правому возвращает 1 (if a >= 5 then $'a больше или равно 5';);

<= Если левое значение меньше или равно правому возвращает 1 (if a <= 5 then $'a меньше или равно 5';);

<> Если левое и правое значение не равны возвращает 1 (if a <> 5 then $'a не равна 5-и';);

Соединяет значения ('яблоко №' . 55 . 44 );// результат 'яблоко №5544

Суммирует значения ('яблоко №' + (55 + 44) );// результат 'яблоко №99'

Оператор умножения (i := 5 * 5 );// I равняется 25

Оператор деления (i := 25 / 5 );// I равняется 5

mod  Возвращает остаток (i := 10 mod 3 );// I равняется 1

and  Если левое и правое значение не равняется нолю — возвращает 1 (if (a < 5and (b < 5then $'a и b меньше 5-и';);

or  Если левое или правое значение не равняется нолю — возвращает 1 (if (a < 5or (b < 5then $'a или b меньше 5-и';);

not Превращает правое значение в обратное (if not (a < 5) then $'a не меньше 5-и';);

xor Сумматор по модулю 2.

 

 

Проверки и условия.

Для тогочтоб поставить условие для исполнения строкиможно просто в ее конце вставить оператор if и условие

<{

$'a больше 5-ти' if a > 5;

}>

При стандартной постановке условия сначала ставиться оператор if потом условиепотом оператор thenпотом исполняемый код (этот кодисполняется если условие не вернет 0), после else код исполняется если условие вернет 0.

<{

if x > 5 then $'x больше 5-ти' else $'x не больше 5-ти';

}>

Оператор else можно не вставлять

<{

if x > 5 then $'x больше 5-ти';

}>

Для того чтоб при условии исполнить сразу несколько строк можно использовать блок begin and;

<{

if x > 5 then

begin

x := 6;

$'i больше 5-типеременной x присвоено 6';

end

else

begin

x := 4;

$'i не больше 5-типеременной x присвоено 4';

end;

}>

 

Если нужно при разных значениях исполнять различные операции — можно использовать оператор case.

В начале ставим оператор caseпотом значение которое хотим сравниватьпотом do и обрабатываем значения

<{

Case x do // caseпотом значение которое хотим сравниватьпотом do

4: $'x равно 4'// значение с которым хотим сравнитьдвоеточие и действие.

7: $'x равно 7';

8:

begin

x := 10;

$'x было 8, стало 10';

end;

'яблоко'$'x равно «яблоко»';

else $'x равно чему-то иному'// эту строку можно не ставить

end// в конце end обязательно

}>

Цыклы

Для цыклов можно использовать нескольких операторовrepeatforwhile.

Оператор For:

Работает с конкретной переменнойцыкл повторяется до тех пор пока данная переменная не пройдет от первого до второго значения

<{

for i := 10 to 20 do $'цыкл №' . i . считая от 10 до 20';

}>

Если в цыкле нужно исполнять несколько операций то можно использовать блок begin end

<{

loop := 0;

for i := 10 to 20 do

begin

$'цыкл №' i . считая от 10 до 20';

loop := loop+1;

$'Этот цыкл уже прошел ' . loop . раз';

end;

}>

Оператор While

Оператор while повторяет действие если условие возвращает не 0, если условие сразу равно 0 — действие вообще не исполняется.

<{

i := 20;

while i > 10 do i := i - 1;

}>

Если в цыкле нужно исполнять несколько операций то можно использовать блок begin end

<{

i := 20;

while i > 10 do

begin

i := i – 1;

$'переменная «i» > 10, делаем ее меньше на один';

end;

}>



Оператор repeat

Оператор repeat повторяет участок кода до оператора until пока условие указанное в until вернет не 0

<{

i := 20;

repeat

i := i -1;

$'переменная i не достигла значения меньше десятиповторяем операцию';

until i < 10;

}>

© 2008-2011 Studio "V7"
Разработка и продвижение сайтов
Тел.: (044) 502-39-78 ; (093) 450-92-66
Украина, Киев, ул. Туполева 8, оф 11.
Эл. адрес: info@v7.net.ua