Модератор форума: 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$)?> |
fflesh, спасибо, просто я думал как то надо еще проверять заполненность этого поля))))
|
WondeRKiD, нужно активировать пда шаблоны и не ставить туда слайдер.
|
webanet, у меня он поставлен через редактор страниц.Он же вроде автоматически появляется в pda версии
Добавлено (05 Май 2013, 00:01:07) Код <div align="center"><div id="featured" > <ul class="ui-tabs-nav"> <li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-1"><a href="#fragment-1"> <img src="http://s2.ipicture.ru/uploads/20130323/vjwwVkwg.jpg" width=80 height=50 alt="" /> <span>НОВЫЙ САЙТ WWW.SOGDRAP.TK</span></a></li> <li class="ui-tabs-nav-item" id="nav-fragment-2"><a href="#fragment-2"> <img src="http://s1.ipicture.ru/uploads/20130322/CWmbY6AA.jpg" width=80 height=50 alt="" /> <span>SOGDRAP.TK® В СОЦСЕТЯХ</span></a></li> <li class="ui-tabs-nav-item" id="nav-fragment-3"><a href="#fragment-3"> <img src="http://s2.ipicture.ru/uploads/20130323/Recc94RW.jpg" width=80 height=50 alt="" /> <span>ДОБАВЬТЕ СВОЙ ТРЕК НА НАШ САЙТ</span></a></li> <li class="ui-tabs-nav-item" id="nav-fragment-4"><a href="#fragment-4"> <img src="http://s1.ipicture.ru/uploads/20130418/O6Qnw2Ea.jpg" width=80 height=50 alt="" /> <span>ё-life band & Leader.One - Девочка (new)</span></a></li> </ul> <!-- First Content --> <div id="fragment-1" class="ui-tabs-panel" style=""> <img src="http://s2.ipicture.ru/uploads/20130323/vjwwVkwg.jpg" width=400 height=250 alt="" /> <div class="info" > <h2><a href="http://sogdrap.tk/news/novyj_sajt_sogdrap_tk/2013-03-18-1" >НОВЫЙ САЙТ WWW.SOGDRAP.TK</a></h2> <p>Открылся сайт WWW.SOGDRAP.TK про Хип-Хоп....<a href="http://sogdrap.tk/news/novyj_sajt_sogdrap_tk/2013-03-18-1" >read more</a></p> </div> </div> <!-- Second Content --> <div id="fragment-2" class="ui-tabs-panel ui-tabs-hide" style=""> <img src="http://s1.ipicture.ru/uploads/20130322/CWmbY6AA.jpg" width=400 height=250 alt="" /> <div class="info" > <h2><a href="http://vk.com/club51165390" >МЫ ВКОНТАКТЕ</a></h2> <p>СЛЕДИ ЗА ХИП-ХОПОМ ВК....<a href="http://vk.com/club51165390" >read more</a></p> </div> </div> <!-- Third Content --> <div id="fragment-3" class="ui-tabs-panel ui-tabs-hide" style=""> <img src="http://s2.ipicture.ru/uploads/20130323/Recc94RW.jpg" width=400 height=250 alt="" /> <div class="info" > <h2><a href="http://sogdrap.tk/forum/16-14-1" >ДОБАВЬТЕ СВОЕ ТВОРЧЕСТВО НА НАШ САЙТ</a></h2> <p>Если желаете увидеть свое творчество в SOGDRAP.TK, заполните форму....<a href="http://sogdrap.tk/forum/16-14-1" >read more</a></p> </div> </div> <!-- Fourth Content --> <div id="fragment-4" class="ui-tabs-panel ui-tabs-hide" style=""> <img src="http://s1.ipicture.ru/uploads/20130418/O6Qnw2Ea.jpg" width=400 height=250 alt="" /> <div class="info" > <h2><a href="http://sogdrap.tk/news/jo_life_band_leader_one_devochka_new/2013-04-18-29" >ё-life band & Leader.One - Девочка (new)</a></h2> <p>Новый трек от Leader.One и ё-life band <a href="http://sogdrap.tk/news/jo_life_band_leader_one_devochka_new/2013-04-18-29" >read more</a></p> </div> </div> </div></div> |
WondeRKiD, пда-шаблоны отдельные! Нужно просто из пда-шаблонов убрать код слайдера!
Цитата (WondeRKiD) он поставлен через редактор страниц. всмысле?! как такое вообще возможно?! через Редактор страниц создаются страницы и подстраницы. Слайдер добавляется непосредственно через шаблоны в Управлении дизайном! u-Helper |
|
Nuras_Bolandi, ну вот так!
Код #featured{ width:400px; padding-right:250px; position:relative; height:250px; background:#bdb7b7; border:5px solid #ccc; } #featured ul.ui-tabs-nav{ position:absolute; top:0; left:400px; list-style:none; padding:0; margin:0; width:250px; } #featured ul.ui-tabs-nav li{ padding:1px 0; padding-left:13px; font-size:12px; color:#666; } #featured ul.ui-tabs-nav li img{ float:left; margin:2px 5px; background:#a8a8a8; padding:2px; border:1px solid #eee; } #featured ul.ui-tabs-nav li span{ font-size:11px; font-family:Verdana; line-height:18px; } #featured li.ui-tabs-nav-item a{ display:block; height:60px; color:#333; background:#fff; line-height:20px; } #featured li.ui-tabs-nav-item a:hover{ background:#f2f2f2; } #featured li.ui-tabs-selected{ background:url('images/selected-item.gif') top left no-repeat; } #featured ul.ui-tabs-nav li.ui-tabs-selected a{ background:#ccc; } #featured .ui-tabs-panel{ width:400px; height:250px; background:#999; position:relative; } #featured .ui-tabs-panel .info{ position:absolute; top:180px; left:0; height:70px; background: url('images/transparent-bg.png'); } #featured .info h2{ font-size:18px; font-family:Georgia, serif; color:#fff; padding:5px; margin:0; overflow:hidden; } #featured .info p{ margin:0 5px; font-family:Verdana; font-size:11px; line-height:15px; color:#f0f0f0; } #featured .info a{ text-decoration:none; color:#fff; } #featured .info a:hover{ text-decoration:underline; } #featured .ui-tabs-hide{ display:none; } в css такой код поставлен остальное в редакторе страниц |
WondeRKiD, в Управлении дизайном есть пункт сверху (если вы конечно активировали пда-версию сайта)
выберите "Шаблоны для PDA версии сайта"...перейдите в раздел "Страницы сайта"...и отсюда удалите код слайдера! Прикрепления:
4809220.jpg
(7.6 Kb)
u-Helper |
|
Nuras_Bolandi,
Код <html> <head> <title>$SITE_NAME$</title> <link type="text/css" rel="StyleSheet" href="/_st/pda.css" /> <link type="text/css" rel="StyleSheet" href="http://s43.ucoz.net/src/layer3.css" /> <script type="text/javascript" src="http://s43.ucoz.net/src/jquery-1.6.1.js"></script> <script type="text/javascript" src="http://s43.ucoz.net/src/uwnd.js?2"></script> <?if($USER_AGENT_PDA$!='0' && $USER_AGENT$!='opera')?><meta name="viewport" content="width=device-width; initial-scale=0.85; maximum-scale=0.85; user-scalable=0;" /><?endif?> </head> <body> <!-- Header --> <div class="logo"> <div class="tp_0"><a href="$HOME_PAGE_LINK$"><!-- <logo> -->$SITE_NAME$<!-- </logo> --></a></div> <div class="tp_1"> </div><div class="tp_2"><div class="tp_1"> </div></div></div> <!-- /Header --> <div class="cnt"> <?if($USER_LOGGED_IN$)?> <div class="bl0"><div class="bl1"> </div></div><div class="bl1"> </div> <div class="bl2"><b><!--<s5158>-->Мой профиль<!--</s>--></b></div> <div class="bl3" id="fmr"> <table class="td"> <tr><?if($USER_AVATAR_URL$)?><td><a href="$PERSONAL_PAGE_LINK$"><img src="$USER_AVATAR_URL$" width="25"></a></td><td> </td><?endif?> <td><a href="$PERSONAL_PAGE_LINK$"><b>$USERNAME$</b></a><br><a href="$LOGOUT_LINK$"><!--<s5164>-->Выход<!--</s>--></a></td> </tr></table> </div> <div class="bl4"> </div><div class="bl5"><div class="bl4"> </div></div> <?endif?> <?if($LOGIN_FORM$)?> <div class="bl0"><div class="bl1"> </div></div><div class="bl1"> </div> <div class="bl2"><b><!--<s5158>-->Форма входа<!--</s>--></b></div> <div class="bl3" id="fmr">$LOGIN_FORM$</div> <div class="bl4"> </div><div class="bl5"><div class="bl4"> </div></div> <?endif?> <div class="bl0"><div class="bl1"> </div></div><div class="bl1"> </div> <div class="bl2"><b><!--<s5184>-->Меню сайта<!--</s>--></b></div> <div class="bl3_nopd">$SMENU_1$</div> <div class="bl4"> </div><div class="bl5"><div class="bl4"> </div></div> <?if($CATEGORIES$)?> <div class="bl0"><div class="bl1"> </div></div><div class="bl1"> </div> <div class="bl2"><b><!--<s5158>-->Категории<!--</s>--></b></div> <div class="bl3">$CATEGORIES$</div> <div class="bl4"> </div><div class="bl5"><div class="bl4"> </div></div> <?endif?> <div class="bl0"><div class="bl1"> </div></div><div class="bl1"> </div> <div class="bl2"><b><!--<s5158>-->Материалы<!--</s>--></b></div> <div class="bl3"><table class="td" width="100%"><tr><td><!-- <body> -->$CONTENT$<!-- </body> --><td></tr></table></div> <div class="bl4"> </div><div class="bl5"><div class="bl4"> </div></div> <?if($CALENDAR$)?> <div class="bl0"><div class="bl1"> </div></div><div class="bl1"> </div> <div class="bl2"><b><!--<s5158>-->Календарь<!--</s>--></b></div> <div class="bl3"><div align="center">$CALENDAR$</div></div> <div class="bl4"> </div><div class="bl5"><div class="bl4"> </div></div> <?endif?> </div> <div class="btm"><a href="/index/53"><!--<s5312>-->Полная версия сайта<!--</s>--></a></div> </body> </html> |
fflesh, спасибо,теперь все робит
|
Добрый день, помогите пожалуйста. Пытаюсь реализоваться изменение оформления сайта через профиль, то есть, человек заходит в свой профиль, изменяет значения поля (в моем случая это YAHOO) к примеру на "зеленый", сохраняет, и после этого у него используется другая таблица стилей. Проблема в том, что условный оператор не работает как надо (не читает значение, всегда применяет else) вот код:
Код <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>$SITE_NAME$ - $MODULE_NAME$</title> <?$META_DESCRIPTION$?> <?if($USER_LOGGED_IN$)?> <?if($_YAHOO$='зеленый')?> <link type="text/css" rel="StyleSheet" href="/green.css" /> <?else?> <link type="text/css" rel="StyleSheet" href="/_st/my.css"/> <?endif?> <?else?> <link type="text/css" rel="StyleSheet" href="/_st/my.css" /> <?endif?> </head> |
mrshl9pa, что за бред, зачем два раза стандартный css подключать?
Вот. Код <?if($USER_LOGGED_IN$)?> <?if($_YAHOO$='зеленый')?> <link type="text/css" rel="StyleSheet" href="/green.css" /> <?else?> <link type="text/css" rel="StyleSheet" href="/_st/my.css"/> <?endif?> <?endif?> Сообщение отредактировал Rad_van_Cor - Воскресенье, 05 Май 2013, 13:43:13
|
Rad_van_Cor,
Цитата (Rad_van_Cor) что за бред, зачем два раза стандартный css подключать? Добавлено (05 Май 2013, 13:49:22) |
Цитата (mrshl9pa) <?if($_YAHOO$='зеленый')?> Например условьтесь, что 1 - это красный, 2 - зелёный и т.п. и сравнивайте так: Код <?if($_YAHOO$='2')?> А в форме редактирования сделайте выпадающий список. Absit invidia verbo
|
Вансан, спасибо, я так уже делал, но дело в том, что значение не читается..
Вот форма редактирования: Код <?if($YAHOO_FL$)?> <tr><td>$YAHOO_SIGN$</td><td>$YAHOO_FL$</td></tr> <?endif?> Код <?if($_YAHOO$)?> <div class="udtb"><div class="udtlb">Тема:</div>$_YAHOO$</div> <?endif?> Код <?if($USER_LOGGED_IN$)?> <?if($_YAHOO$='2')?> <link type="text/css" rel="StyleSheet" href="/green.css" /> <?else?> <link type="text/css" rel="StyleSheet" href="/_st/my.css"/> <?endif?> <?else?> <link type="text/css" rel="StyleSheet" href="/_st/my.css" /> <?endif?> Добавлено (05 Май 2013, 15:26:03) |
Цитата (mrshl9pa) Код с цифрами: Вы уверены что там вообще доступен $_YAHOO$? Добавлено (05 Май 2013, 15:30:21) Absit invidia verbo
|
| |||