• Страница 1 из 10
  • 1
  • 2
  • 3
  • 9
  • 10
  • »
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Условные операторы и коды системы юКоз (uCoz) » Как сделать ... ? Вопросы только по операторам юКоз (uCoz) (Вопросы, ответы, интересные решения по условными операторам)
Как сделать ... ? Вопросы только по операторам юКоз (uCoz)
Дата: Вторник, 07.06.2011, 11:13 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Вопросы, ответы, интересные решения по условными операторам
...


 
Дата: Вторник, 07.06.2011, 15:24 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Q: Как разбить условными операторами и функциями, одно дополнительное поле на два?
...

Code
<?if($OTHER1$)?>
<?if(strpos($OTHER1$,'#')!='-1')?>
<?substr($OTHER1$,0,strpos($OTHER1$,'#'))?>|<?substr($OTHER1$,strpos($OTHER1$,'#')+1)?  >
<?else?>$OTHER1$<?endif?>
<?endif?>


 
Дата: Четверг, 21.07.2011, 01:43 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


Привет, дружище!
Поясни, пожалуйста, вот такое условие
Quote
<?ifnot($PAGE_ID$='recentthreads')?>содержимое которое не должно выводиться на данной странице<?endif?>
можно применять ко всему, где нужно отрицательное условие? Просто как я понял, вот такое условие
Quote
<?if(!$USER_LOGGED_IN$)?>условие для не авторизованных<?endif?>
работает не со всеми операторами и не является аналогом указанного выше. Тогда чем они отличаются? Просто хочу уяснить для себя.


Сообщение отредактировал Komoff - Четверг, 21.07.2011, 01:45
 
Дата: Четверг, 21.07.2011, 01:59 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Komoff,
Quote (Komoff)
можно применять ко всему, где нужно отрицательное условие?

Да. Это просто ещё один вид записи, так же как и «and» == «&&» и «or» == «||» ....
...
Quote (Komoff)
Просто как я понял, вот такое условие
Code
<?if(!$USER_LOGGED_IN$)?>условие для не авторизованных<?endif?>

работает не со всеми операторами и не является аналогом указанного выше.

-- Это с какими оно не работает? - оно работает со всеми, точно также как и оператор «not» ... Может ты просто записываешь не верно?

Если есть знак сравнения - ставится перед знаком:
Quote (Code)
<?if($PAGE_ID$!='recentthreads')?>содержимое которое не должно выводиться на данной странице<?endif?>


Если проверка на присутствие -- перед оператором:
Quote (Code)
<?if(!$USER_LOGGED_IN$)?>содержимое которое не должно выводиться для пользователей<?endif?>


Если есть группа условий - перед скобкой группы:
Quote (Code)
<?if($USER_LOGGED_IN$&&!($MODULE_ID$='blog'||$MODULE_ID$='publ'))?>То, что будет выводится для пользователей в модулях НЕ \blog\ и НЕ \publ\<?endif?>


Или перед каждым отрицанием:
Quote (Code)
<?if($USER_LOGGED_IN$&&($MODULE_ID$!='blog'||$MODULE_ID$!='publ'))?>То, что будет выводится для пользователей в модулях НЕ \blog\ и НЕ \publ\<?endif?>

...

Quote (Komoff)
Тогда чем они отличаются?

-- Ничем не отличается, полный аналог.
...


 
Дата: Четверг, 21.07.2011, 15:13 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


Quote (likbezz)
Если есть знак сравнения - ставится перед знаком
А, вот про это я и не знал, я перед оператором ставил, теперь все понятно. Спасибо за пояснение!


 
Дата: Четверг, 21.07.2011, 20:50 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Komoff,
Quote (Komoff)
Спасибо за пояснение!

Незачто, спрашивай, если что )
...


 
Дата: Понедельник, 25.07.2011, 17:30 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


А вот ещё вопрос, мне нужно чтобы в профиле пользователя скрывался один блок, но при просмотре других профилей он был. Там можно было бы зацепиться за $URI_ID$, я задал такое условие
Code
<?if($URI_ID$!='userDetails$USER_ID$')?>не выводить на персональной странице пользователя<?endif?>
но это не сработало. Т.е. нельзя так вкладывать системные коды? А возможно как-то ещё операторами создать такое условие?

Добавлено (25.07.2011, 17:30)
---------------------------------------------
Придумал как вывести это условие
Code
<?if($USER_ID$!=$_USER_ID$)?>не выводить на персональной странице пользователя<?endif?>
А вот как ограничить это условие только на страницу пользователя? Например, с помощью $PAGE_ID$='userdetails' или $_USER_ID$ только там работает?


Сообщение отредактировал Komoff - Понедельник, 25.07.2011, 17:32
 
Дата: Вторник, 26.07.2011, 01:59 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Komoff,
Чёт я слегка не въехал, что вы пытаетесь скрыть, и от кого.

Quote (Komoff)
А вот как ограничить это условие только на страницу пользователя?

Для страницы пользователя - отдельный шаблон - в нём и прописываются условия.

Например:
Code
<?($PAGE_ID$='userdetails')?>
<?if(!$_IS_OWN_PROFILE$)?>выводит данные для всех, кроме хозяина профиля<?endif?>
<?endif?>


$_IS_OWN_PROFILE$ - флаг, указывающий, что просматриваемый профиль принадлежит пользователю, который его просматривает.

Quote (Komoff)
... или $_USER_ID$ только там работает?

Да, оператор $_USER_ID$ работает только в шаблоне «Персональная страница пользователя».
...


 
Дата: Вторник, 26.07.2011, 12:06 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


Quote (likbezz)
Чёт я слегка не въехал, что вы пытаетесь скрыть, и от кого.
Я пытался скрыть часть текста в глобальном блоке на странице профиля пользователя от него самого. biggrin Ну задумка там такая. В общем-то можно или даже правильней использовать $_IS_OWN_PROFILE$, я не обратил на него внимания. Вообще, я, кстати, и не думал, что если вставить глобальный блок в профиль пользователя, то системные коды работающие только на этой странице, будут работать и в нем, конечно только для этой страницы. В общем каламбур получился, но главное я разобрался как решить проблему. smile


 
Дата: Среда, 10.08.2011, 23:52 |
Elones
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline


В общем решил я сделать этакую систему опыта. Она работает (кому интересно, можете себе забрать и настроить под себя smile )
Code
<b>Уровень:</b>
<?if($_BAN_RATING$<1)?><?int(($_FORUM_ENTRIES$+$_COM_ENTRIES$+$_NEWS_ENTRIES$*60+ $_PUBL_ENTRIES$*60+$_LOAD_ENTRIES$*60+$_REPUTATION$+$AWARDS $*2)/100)?>
<?else?><?int((($_FORUM_ENTRIES$+$_COM_ENTRIES$+$_NEWS_ENTRIES$*60+ $_PUBL_ENTRIES$*60+$_LOAD_ENTRIES$*60+$_REPUTATION$+$AWARDS$*2)
-($_FORUM_ENTRIES$+$_COM_ENTRIES$+$_NEWS_ENTRIES$*60+ $_PUBL_ENTRIES$*60+$_LOAD_ENTRIES$*60+$_REPUTATION$+$AWARDS$*2)
/100*($_BAN_RATING$*10))/100)?>
<?endif?>
<br />
<b>Опыт:</b>
<?if($_BAN_RATING$<1)?>
<?int(($_FORUM_ENTRIES$+$_COM_ENTRIES$+$_NEWS_ENTRIES$*60+ $_PUBL_ENTRIES$*60+$_LOAD_ENTRIES$*60+$_REPUTATION$+$AWARDS$*2))?>
<?else?>
<?int(($_FORUM_ENTRIES$+$_COM_ENTRIES$+$_NEWS_ENTRIES$*60+ $_PUBL_ENTRIES$*60+$_LOAD_ENTRIES$*60+$_REPUTATION$+$AWARDS$*2)
-($_FORUM_ENTRIES$+$_COM_ENTRIES$+$_NEWS_ENTRIES$*60+ $_PUBL_ENTRIES$*60+$_LOAD_ENTRIES$*60+$_REPUTATION$+$AWARDS$*2)
/100*($_BAN_RATING$*10))?>
<?endif?>

Но из-за того, что на страницах сообщений форума не выводятся переменные отвечающие за отображение количества публикаций(количество статей, файлов и т.д.), данная система не работает там полноценно.
Вопрос: можно ли через операторы $MODULE_ID$, $PAGE_ID$ или $URI_ID$ как-то вывести систему в сообщения форума (блок под аватарой)?


Сообщение отредактировал likbezz - Четверг, 11.08.2011, 06:24
 
Дата: Четверг, 11.08.2011, 01:54 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Elones,
Quote (Elones)
Вопрос: можно ли через операторы $MODULE_ID$, $PAGE_ID$ или $URI_ID$ как-то вывести систему в сообщения форума (блок под аватарой)?

Можно, но только скриптом, совершающим GET - запрос на страницу где это всё работает (страницу профиля).
Дабы не схватить бан по превышению запросов, организовать можно при помощи помощи ссылки открывающей юВинд окошко с данными данными (или скрытым блоком), - как «репутация» ... а в самом скрипте для окна - организовать запрос на получение и вывод данных...
Можно красиво оформить - с аватаркой, дополнительными данными и тп.
...


 
Дата: Четверг, 11.08.2011, 02:21 |
Elones
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline


Quote (likbezz)
Можно красиво оформить - с аватаркой, дополнительными данными и тп.

Ну по сути будет открываться профиль, а в нем уже уровень и опыт прописал, и тоже он в аякс окне smile
Quote (likbezz)
только скриптом, совершающим GET - запрос

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


Сообщение отредактировал Elones - Четверг, 11.08.2011, 02:25
 
Дата: Четверг, 11.08.2011, 06:22 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Elones,
Quote (Elones)
Ну по сути будет открываться профиль

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




...

Quote (Elones)
Не, бан мне конечно не хочется

- Другой ваниант писать функцию, заполняющую поля для этих данных через тайм-аут. Я уже писал подобную для вывода медалей, 500ms вполне хватает чтобы обойти ограничение по запросам ...
...

Прикрепления: referTxtLink.txt (0.7 Kb)

 
Дата: Пятница, 12.08.2011, 02:00 |
Elones
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline


Quote (likbezz)
Нет, по сути будет открывать только то, что прописано, а в профиль будет совершаться запрос с получением данных из запрошенных блоков

Не, ну это то понятно smile просто с тем же успехом можно открыть профиль по кнопке под сообщением и увидеть там же уровень.
Смысл как раз в том, что бы сразу видеть, к примеру под аватаркой, типа строки "Группа: Пользователи".
Quote (likbezz)
Другой ваниант писать функцию, заполняющую поля для этих данных через тайм-аут. Я уже писал подобную для вывода медалей, 500ms вполне хватает чтобы обойти ограничение по запросам ...

Ну так я сделать вряд ли смогу, но у меня есть еще вариант - сделать подгрузку, то есть, что бы по клику выводилось число уровня и число опыта.
Что-то типа того как на IPB3 выводится краткая информация по клику на ник.

Кстати, по поводу такого подсчета с помощью одних переменных, на сколько это будет нагружать сервер, и в противном случае не проще ли сделать тот же подсчет, но только через скрипт?

Добавлено (12.08.2011, 01:10)
---------------------------------------------
Вот короче нашел один скрипт подгрузки по клику и попытался под себя отредактировать, но боюсь не совсем верно...
Code

<style>
.mainblocker$USERNAME$ {background:#16191E;opacity:0.9;box-shadow:1px 1px 3px #222;border:3px solid #358AA2;border-radius:3px;position:absolute;margin-left:125px;padding:2px;min-width:70px;}
</style>        

<a href="javascript://"><img width="16px" border="0" src="/images/level-inf.png" class="im1" id="licon$USERNAME$" title="Узнать уровень" /></a>         

      <script>
      $('img#licon$USERNAME$').toggle(function() {
       $(this).before('<div class="mainblocker$USERNAME$"  id="lhere$USERNAME$"><center><img height="12px"  src="/images/loading.gif" /></center></div>');
      $('div#lhere$USERNAME$').load('/index/8-$UID$ #level', function () {          
          this.innerHTML = this.innerHTML.slice(0, 500);          
      });          
      }, function() {
      $('div#lhere$USERNAME$').fadeOut(500);
      $('.im1').fadeIn(300);
      });
      </script>


А "системе" опыта (хз как ее еще называть biggrin ) приписать div id="level"

Добавлено (12.08.2011, 01:47)
---------------------------------------------
Проверил вставив скрип возле имени пользователя в шаблоне вида материалов форума. Скрипт выводит все вроде бы как и надо, но если сообщения пользователя неоднократно подряд повторяются, то скрипт работате через 1 пост, а если все юзеры разные, то все норм



Добавлено (12.08.2011, 02:00)
---------------------------------------------
Кстати, подобным же образом можно сделать авто подгрузку? То есть, к примеру, при загрузке страницы форума с сообщениями темы подгружались и данные сразу в блок под аватаром? Я не силен в ява-скриптах, но здесь вроде как гет-запроса нет...[/spoiler]


Сообщение отредактировал Elones - Пятница, 12.08.2011, 02:19
 
Дата: Пятница, 12.08.2011, 03:16 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Elones,
Quote (Elones)
но у меня есть еще вариант - сделать подгрузку, то есть, что бы по клику выводилось число уровня и число опыта.

))) - а я что предложил? - те же яйца, только в профиль - пользователь должен совершить клик.
...
Quote (Elones)
Кстати, по поводу такого подсчета с помощью одних переменных, на сколько это будет нагружать сервер, и в противном случае не проще ли сделать тот же подсчет, но только через скрипт?

- Не знаю насколько это загружает сервер, не думаю что на серьёзное (целое) число (в миллисекундах) ...
...
Quote (Elones)
Вот короче нашел один скрипт подгрузки по клику

- Как всегда ... ))) муть несусветная ))) Наверняка по запросу «скрипт для юкоз скачать бесплатно» .... ヅ ...
...
Quote (Elones)
Скрипт выводит все вроде бы как и надо, но если сообщения пользователя неоднократно подряд повторяются, то скрипт работате через 1 пост

- Не удивительно ...
Quote (Соде)
....
<div class="mainblocker$USERNAME$" id="lhere$USERNAME$">
...
- ID - это уникальный (единственный в своем роде) элемент в пределах страницы ...

Интересно, как воспримет скрипт и стили значение $USERNAME$ == @dmin или =brat2= или другие юзернеймы со спец.символами ... biggrin ... Стили точно работать не будут )))

... представляю как данный скрипт работал бы у меня на форуме (где через пост - моё сообщение) ... )))) ... ヅ ... Да ... не перевелись ещё умельцы на юкоз ... постоянно радует глаз прямота их “скриптов и хаков” ....

Quote (Info)
Хак - по определению нового поколения - “всё что не понятно с первого взгляда” (то бишь - не анекдот и не игровой патч).
Может быть как HTML-кодом, PHP/Perl/JavaScript/jQuery скриптом, так и CSS стилем или мешаниной того другого и третьего (и так далее, в том числе и понятия здесь не упомянутые), включая картинки формата Base64 - что делает это определение, воистину разносторонним (безграничном в понимании/определении сущности) ...

...
Quote (Elones)
Я не силен в ява-скриптах, но здесь вроде как гет-запроса нет...

Да, вы правы - вы не сильны в “ява-скриптах” ...
Quote (Info)
Ajax - .load()
Осуществляет запрос к серверу без перезагрузки страницы. Полученные от сервера данные будут автоматически помещены внутрь выбранных элементов.
.load() является наиболее простым средством для подгрузки и вставки недостающего содержимого с сервера. Он делает ajax-запрос к серверу и вставляет полученные данные в элементы страницы, к которым применялся метод

...
Quote (Elones)
но здесь вроде как гет-запроса нет...

А как по-вашему, откуда берутся данные, и для чего нужен адрес?
Quote (JS)
$('div#lhere$USERNAME$').load('/index/8-$UID$ #level', function () {
this.innerHTML = this.innerHTML.slice(0, 500);
});

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


 
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Условные операторы и коды системы юКоз (uCoz) » Как сделать ... ? Вопросы только по операторам юКоз (uCoz) (Вопросы, ответы, интересные решения по условными операторам)
  • Страница 1 из 10
  • 1
  • 2
  • 3
  • 9
  • 10
  • »
Поиск:


Мобильная версия