| Модератор форума: Yuri_G |
| Сообщество uCoz Мастерская uCoz Дизайн: управление шаблонами Условные операторы и системные коды (Особенности использования и интересные решения) |
| Условные операторы и системные коды |
|
Условные операторы от новичка до профи
Если вы совершенно не понимаете, как работают условные операторы, и информации в панели управления для вас мало, то я попробую вам объяснить. Самое главное, чтобы вы настроились на то, что это очень просто. Так оно и есть! И так, начну с понятий. Условные операторы - это специальные коды-символы, которые могут выполнять какие-то сценарии. Вы можете создать совершенно новую опцию на своём сайте, которая собственно не предусмотрена панелью. Для начала нужно понять и привыкнуть к составляющим частям самого кода сценария, а это: Код <?if($код$)?> - это какое-то условие (код), которое говорит оператору с кем мы имеем дело и с чем работать. Заменяем мысленно фразой «Если есть»; Код <?else?>- это оператор которое выполнит то, что вы скажете, когда условие не соответствует названным. Мысленно заменяем фразой «Если нет»; Код <?endif?> - это конец условного оператора, мысленно заменяем «Конец»; Теперь разберем простой пример, который приводится в панели управления: (Из редактора страниц) Код <?if($USER_LOGGED_IN$)?>Hello, $USERNAME$<?else?>You are GUEST. Please register.<?endif?> Что это на нашем языке написано: «Если есть авторизированный пользователь, то «Привет его логину!», а если нет, «Привет Гостю!» и конец.» Почему? Откуда? Подробней! Что в данном коде использовалось: Мы оператору Код <?if($код$)?> Код $USER_LOGGED_IN$ Код <?if($USER_LOGGED_IN$)?> Получаем Код <?if($USER_LOGGED_IN$)?> Привет, $USERNAME$ <?else?> Привет Гость! Осталось закрыть всё это дело концовкой. Код <?if($USER_LOGGED_IN$)?> Привет, $USERNAME$<?else?>Привет Гость! <?endif?> Мы так же можем исключить Гостей совершенно и вывести информацию только зарегистрированным. Для этого просто не используем «Если нет». Получаем следующее: Код <?if($USER_LOGGED_IN$)?> Как хорошо, что вы зарегистрировались! <?endif?> То есть в данном случае фразу «Как хорошо, что вы зарегистрировались!» видят только те, кто вошёл под логином. Условием для работы операторов может быть любой код, который указан как работающий в каком-то модуле. В нашем случае (редактор страниц) могут примеры: Выход и вход: Код <?if($USER_LOGGED_IN$)?> <a href="$LOGOUT_LINK$">ВЫХОД</a> <?else?> <a href="$LOGIN_LINK$">ВХОД</a> <?endif?> Дни после регистрации: Код <?if($USER_LOGGED_IN$)?>Вы с нами уже$USER_REG_DAYS$ дней!<?else?>Пожалуйста, зарегистрируйтесь. <?endif?> И так далее. Условия для сценария можно изменить с помощью дополнительных возможностей, которые поддерживают операторы. Это знаки «=», «>», «<». При необходимости, приравненные разделяются вертикальной чертой. После знака, вы сообщаете оператору на кого направлен весь сценарий. Код <?if($код$='условие')?> Я это вижу <?else?> А вот я вижу это<?endif?> Или Код <?if($код$='условие')?> Самое главное, что я это вижу <?endif?> Пример: Код <?if($USER$='Дима')?> Дима, не забудь каждый день читать почту. <?endif?> То есть, на словах «Если есть логины вошедших и среди них есть Дима (='Дима'), то ему показать это…» То же самое касается групп, имён, пола, даты и всего что работает из кодов. Ещё примеры: Код <?if($USER$='Mike' or $USER$='Lola')?> Дима и Света, вот тайная ссылочка …. <?endif?> Группы: Код <?if($GROUP_ID$=3 or $GROUP_ID$=4)?>Модеры и Админы, все кликаем на рекламу тут… <?endif?> И т.д. Однако операторы могут работать друг в друге. Пример: Код <?if($USER_LOGGED_IN$)?> Привет $USER$! <?if($GROUP_ID$=3 || $GROUP_ID$=4)?> Не забываем кликать на рекламу!<?endif?><?else?>Пожалуйста, зарегистрируйтесь.<?endif?> Сценарий такой: «Если есть вошедшие, то Привет им, а если среди них есть Админы и Модеры, то добавить Кликаем на рекламу, если есть то кто не вошел, то просим зарегистрироваться и конец.» Самое главное хорошо подумать, как написать сценарий, какие для этого использовать коды и кому они будут направляться. Можно написать что угодно, что придет на ум. uCoz настолько гибкий, что мне иногда кажется, что он живой и создатели сами точно не знают сколько и чего будет работать. Ну всё есть! Самое главное подумайте. Теперь напоследок мини-инфо: Код * Сколько <?if($код$)?> столько и <?endif?> * <?else?> нужно, когда выводим инфу для тех, кто не соответствует условиям, в других случаях оно не нужно * Поддерживаются альтернативные условия or и and (||и [&&) * Поддерживается вложенность операторов * Поддерживается сравнение переменных друг с другом: <?if($VAR1$=$VAR2$)?> * При сравнении текст обязательно должен быть в кавычках: <?if($USER$='Mike') ?> Вопрос - ответ Цитата При создании новых страниц, закачанных через FTР, коды Код $SITE_NAME$, $LOGIN_LINK$, $LOGOUT_LINK$ Цитата Как сделать альтернативные условия, например для кода Код $GROUP_ID$ Код <?if($GROUP_ID$=5 or ($GROUP_ID$=4 and $USER$='Alex'))?>...<?endif?> Цитата Есть ли операторы, позволяющие пользователю видеть в списке категорий только те, в которые он имеет доступ? Цитата Код $GROUP_ID$ Цитата Есть код Код $USER_LOGGED_IN$ Код <?if(!$USER_LOGGED_IN$)?> |
|
Добрый день. Мне нужно изменить страницу добавления новостей, но такого шаблона нет. Использую
Код <?else(substr($REQUEST_URI$,6,9) = "0-0-0-0-1")?> Все работает, но в таком случае под палку попадает страница материалов пользователя, у которой в адресе фигурирует 0-0-0-0-17- в этом же месте Пытаюсь сделать так, что страница добавления и редактирования новости несла больше информации для авторов, благодаря подсказкам, в итоге так или иначе подсказки попадаются на других страницах, которые видят смертные посетители. Прошу помщи |
|
Komoff, Это давняя проблема, я не могу этого узнать. В верхней панели у меня нет этой вкладки.
Если есть возможность посмотреть, буду признателен Прикрепления:
5907354.jpg
(9.5 Kb)
|
|
Acht, Для админа сайта в Админ баре должен быть типа пункт - Дизайн и в нём - переменные страницы ... $URI_ID$ от туда ..
|
|
Miss_Esq, вот мой скриншот выше. Мне многие говорили про такой пункт меню, я его никогда не видел. Может он как-то в настройках выключается не явно (например при отключении визуального редактора или конструктора) - хз. У меня такого пункта нет и я его никогда не видел
Сообщение отредактировал Acht - Воскресенье, 25 Авг 2013, 16:01:15
|
|
Здравствуйте))
Помогите разобраться с написанием условий, уже голова болит), не могу разобрать. В общем так: На персональной странице необходимо чтобы было следующее: Если пользователь проявлял активность на форуме и комментировал ($_COM_ENTRIES$ $_FORUM_ENTRIES$), но не проявлял активности в других модулях ($_PUBL_ENTRIES$, $_BLOG_ENTRIES$ и т.д.) то должен стоять 1 текст. Но если пользователь проявлял активность в других модулях, но не комментировал и ничего не писал на форуме, то 1 текста видно не должно быть, а должно быть видна активность в других модулях (2 текст). И последнее, если пользователь вобще не проявлял активности нигде, то должен быть 3 текст. Вот примерный набросок моей головоломки) Но так, как я пишу не выходит(( Код <?if($_IS_ACTIVITY$)?> <?if($_COM_ENTRIES$ || $_FORUM_ENTRIES$)?> 1текст <?else?> <?if($_PUBL_ENTRIES$)?> $_PUBL_ENTRIES$ <?endif?> 2 текст <?if($_BLOG_ENTRIES$)?> $_BLOG_ENTRIES$ <?endif?> <?endif?> <?else?> 3 текст <?endif?> Категорически запрещается любая реклама, в том числе реклама интернет-проектов.
Сообщение отредактировал adminsayta - Вторник, 27 Авг 2013, 16:12:31
|
|
Приветствую.
Решил сделать зависимость между репутацией и постами на форуме. На форуме должна выводиться примерно такая строка: Репутация: 7 ( 15.89% ) Рядом с целочисленным значением репутации должно выводиться число, которое показывает, сколько процентов составляет $REP_RATING$ от $POSTS$. Я написал код для этого, но там иногда выводятся числа в периоде ( 15.89898989898989% ). Код <?($REP_RATING$/$POSTS$*100)?> Как к нему применить substr? Или может есть альтернатива? Сообщение отредактировал SneJik - Среда, 28 Авг 2013, 00:07:06
|
|
апплет пишет кракозяблы вместо кирилицы и никакой возможности повлиять на кодировку,ни изменение параметра, ни изменение в точке вызова скрипта. Помогите
Уточняю, кракозяблы это одинаковые чёрные ромбики со знаком вопроса посередине Сообщение отредактировал Ostap-Bender - Среда, 28 Авг 2013, 00:29:00
|
|
Всем привет.
Дайте, пожалуйста рабочий код для вывода фильтров. Мне нужно вывести каждое значение отдельно из $FILTER2_VALUE$. Заранее благодарен. |
|
cosskay, вот
Код <head> <meta http-equiv="refresh" content="1;URL=***.at.ua " /> </head> Правда вы не туда обратились. |
|
Ljubasha, ну мне пишет ложь.
Это может быть из-за того, что пробелы в фильтре? <?if(substr($FILTER2_VALUE$,0,6)='PlayStation 3')?>правда<?else?>ложь<?endif?> Никак нельзя обойти проблему? Пару дней назад пробовал нижний пробел ставить, тоже ложь. Коды которые в паблике, типа вывод фильтра картинкой, вообще не работают... Уже хз че делать. Сообщение отредактировал Maks_Smela - Вторник, 27 Авг 2013, 23:47:16
|
|
Ljubasha, делал 12 и 13 символов, делал с пробелом и без пробела – не выводит ничего.=(В чистом виде все идеально выводит.
![]() Прикрепления:
9299989.jpg
(18.9 Kb)
Сообщение отредактировал Maks_Smela - Среда, 28 Авг 2013, 00:04:07
|
| |||
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!

Чат сообщества






