Я решил что сайт слишком уныл, поэтому попросил нарисовать мне всяких животных, которых вы видите
04.03.2011

Условные операторы в uCoz

Эта запись написана мною в 2011 году. В те времена деревья были высокими, а доллар стоил меньше 40 рублей. С тех пор прошло много времени и многое изменилось. Учитывайте это, читая.

В системе uCoz существуют специальные коды. Одним из разновидностей этих кодов это условные операторы.

Собственно кода только 3, это: <?if(условие)?> <?else?> <?endif?>

Условные операторы используются в системе повсеместно. К примеру вам нужно вывести определённую информацию только зарегистрированным пользователям или выводить разную информацию для разных групп. Так же можно показывать рекламу только гостям. Всё это и многое другое можно реализовать с помощью условных операторов.

Как это работает?

Итак.

в коде задаётся условие с использованием других uCoz кодов.

Само условие задаётся в скобках, после if:

Code
<?if(условие)?>

Возможно использование как сравнения некоторых величин, так и просто введение как условие отдельных системных кодов.

 

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

код обязателен. Он показывает где конец наших условных операций.

К примеру код

Code
<?if($USER_LOGGED_IN$)?> Группа "$USER_GROUP$" | $USERNAME$ <?else?> Зарегистрируйтесь, гость! <?endif?>

 

Выведет группу и ник пользователя, если он залогинен на вашем сайте, и выведет "Зарегистрируйтесь, гость!" если он не авторизован.

В частности код $USER_LOGGED_IN$ возвращает значение TRUE если пользователь авторизован и FALSE если нет. А условный оператор выполняет написанное сразу после if если условие TRUE (верно), а если условие FALSE, то выполняет то, что после , если данного кода нет, то не выполняет ничего.

Ещё один пример с использованием сравнения:

Code
<?if($_REPUTATION$>10)?> Большая репутация <?endif?>

$_REPUTATION$ — код, выводящий уровень репутации пользователя. И приведённый код будет выводить "Большая репутация" если репутация пользователя больше 10.

При более сложных задачах можно использовать вложенные условия:

Code
<?if(условие1)?><?if(условие2)?>действие1<?else?>действие2<?endif?><?else?>действие3<?endif?>

 

Данный код будет работать так: при выполнении условий 1 и 2 будет выполняться действие1, при выполнении только условия 1 будет выполняться действие2, а при невыполнении условия 1 будет действие3.

Может показаться всё запутанным, но на самом деле всё просто.

Так же в существуют другие операции, которые можно использовать:

арифметические (+ — * /) — ну это понятно что

%  — целочисленный остаток о деления. К примеру 5 & 2 = 1 (1 — остаток)

! — знак отрицания. т.е.

Code
<?if(!$USER_LOGGED_IN$)?>

будет читаться как " если пользователь не авторизирован

& — побитовая операция И

&& — операция И. К примеру

Code
<?if(условие 1 && условие 2)?>

— будет означать "если выполняется условие 1 и условие 2"

 

|| — операция ИЛИ.

Code
<?if(условие 1 || условие 2)?>

— значит "Если условие 1 или условие 2"

P.S. Если вы возьмётесь писать сложный код с использованием условных операторов не забывайте проверять закрытие условий кодом <?endif?>

Категория: Система uCoz Просмотров: 12839 2 комментария

Комментарии

2 комментария

Nik 18.10.2016 в 18:09

Доброго времени суток уже пару дней мучаюсь над одной проблемой, в опциях товара есть 3 опции мне нужно отображать только 2 и только пре выборе последнего пункта 2 опция показывать 3 опцию.
у меня средний уровень знания в JS/PHP и хороший в HTML/CSS я бы сам написал код если бы знал как обращаться к опциям или как вытянуть ид и валию.

заранее спасибо огромное.

z17 24.10.2016 в 02:47

Опции это селекты? Выбор из списка?
В любом случае я не вижу проблемы — ловите событие выбора опции, если это второй пункт, то отображаете третью опцию.

Добавить комментарий для Nik