• Страница 2 из 10
  • «
  • 1
  • 2
  • 3
  • 4
  • 9
  • 10
  • »
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Условные операторы и коды системы юКоз (uCoz) » Как сделать ... ? Вопросы только по операторам юКоз (uCoz) (Вопросы, ответы, интересные решения по условными операторам)
Как сделать ... ? Вопросы только по операторам юКоз (uCoz)
Дата: Суббота, 13.08.2011, 00:05 |
Elones
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline


Quote (likbezz)
Да ... не перевелись ещё умельцы на юкоз ... постоянно радует глаз прямота их “скриптов и хаков”

Ладно не будем обижать автора скрипта))), то что написано мной в сообщении - исковерканное мной произведение искусства biggrin . Короче говоря оригинал был вполне нормальным, а то что выше - переделалось мной по ходу написания сообщения.
Пойду читать статьи про ява-скрипты =\

Quote (likbezz)
ID - это уникальный (единственный в своем роде) элемент в пределах страницы

Да.. да.. знаю, но вот пока писал сообщение, а с ним и переделывал скрипт, это не учел)

Quote (likbezz)
))) - а я что предложил? - те же яйца, только в профиль - пользователь должен совершить клик.

Ну в принципе да... happy А стандартному аякс окну юкоз (uWnd) реально абсолютное позиционирование задать и что бы по тому же клику, что и вызвано, оно закрывалось (дабы не выводить кнопок "закрыть"\"скрыть"\"развернуть")?


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


Elones,
Quote (Elones)
Ладно не будем обижать автора скрипта)

Конечно не будем ... )))
Тем более - это не оскорбление, на что можно (в оч. редких случаях) обидеться, а просто констатация фактов.
...

Quote (Elones)
Короче говоря оригинал был вполне нормальным

Очень сомневаюсь, так как ни один скрипт, который запихнули в (!!!!!!) шаблон вида материала (поста), не может быть “нормальным”. Многократное повторение одного и того же в коде - это НЕ нормально. (Кроме оОочерь редких случаев, что к данному скрипту никак не относится) ...
...

Quote (Elones)
Да.. да.. знаю, но вот пока писал сообщение, а с ним и переделывал скрипт, это не учел)

А вообще, привязывать изначально множественные объекты по ID ... это как-то не очень, если можно так сказать .... )))
Тем более, задавать стили через ID, причём одинаковые ....

Quote (Elones)
А стандартному аякс окну юкоз (uWnd) реально абсолютное позиционирование задать и что бы по тому же клику, что и вызвано, оно закрывалось (дабы не выводить кнопок "закрыть"\"скрыть"\"развернуть")?

Возможно, но суть примера была не в этом, а в том что бы получить определённые данные из удалённой страницы.
Вывести же их можно куда угодно - хоть под аватар - что, кстати, гораздо проще, чем в окошко, хоть в любое другое место - там главное принцип ...
Code
_uWnd.close('имя_окна');


Подробно о создании uWnd (аякс) окошек (примеры реализации)
...


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


likbezz, оригинал - это был скрипт информера сообщений с форума:

Так что это я просто такой "умный" =\

Quote (likbezz)
суть примера была не в этом, а в том что бы получить определённые данные из удалённой страницы

Благодарю smile

Quote (likbezz)
_uWnd.close('имя_окна');

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


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


Elones,
Quote (Elones)
likbezz, оригинал - это был скрипт информера сообщений с форума:

Данный скрипт ни чем не лучше твоего варианта.
Всё те же ошибки:
Quote (likbezz)
ни один скрипт, который запихнули в (!!!!!!) шаблон вида материала (поста), не может быть “нормальным”. Многократное повторение одного и того же в коде - это НЕ нормально

- Это делается гораздо проще - вся эта муть выносится в одну отдельную функцию - в шаблоне остаётся только блок для контента ... И всё.

Quote (Elones)
Я даже подобного и нигде не видел...

Улыбнуло.
Интересно, а как вы пришли к мысли, что если вы «это» не видели, то «этого» нельзя (сложно, затруднительно, невозможно) сделать?
Так или иначе - любая функция однажды бывает написана первой ... тем более такие специфические, как управление юВинд окнами ...
Quote (Code)
<a id="chpuLink" href="javascript://">Открыть / Закрыть окошко</a>
<script type="text/javascript">
$('#chpuLink').toggle(function(){
alert('Отрыли окно');/* 1-ый клик по ссылке */
return false;/* возвращаем false */
},function(){
alert('Закрыли окно');/* 2-ый клик по ссылке */
return false;/* возвращаем false */
});
</script>

- Вместо функций прописаны алерты ....
...


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


Quote (likbezz)
Всё те же ошибки:

Так ведь оператор $NUMBER$ не повторяется(в информере это цифры по порядку от "1" и более), а значит и ID будет каждый раз разным, но вот зачем там классу прописан был оператор, я хз)) Как вариант в шаблоне вида материалов, можно использовать оператор $ID$, который так же не повторяется...
------
Так, что ли?)
Code
<a id="chpuLink$ID$" href="javascript://"><img title="Уровень" src="/images/level-inf.png" alt=""></a>
     <script type="text/javascript">
     $('#chpuLink$ID$').toggle(function(){
     new  _uWnd('referTxtLink','Уровень',80,30,{header:0,fadespeed:0,  fadeclosespeed:0,  fadetype:0,fadeclosetype:0,autisize:1,speeds:0,popu p : 1,shadow:1, align:'center',min:0,max:0,   close:0,minw:80,minh:30,maxw:80,maxh:30,resize:0,hideonresize:1,oncontent:function(){$.get('/index/8-$UID$',function(d)  {$('#referCont').append($('#level',d).html());});}}, '<div  id=\'referCont\'></div>');/* 1-ый клик по ссылке */     
     return false;/* возвращаем false */     
     },function(){
     _uWnd.close('referTxtLink');/* 2-ый клик по ссылке */     
     return false;/* возвращаем false */     
     },function(){
     setTimeout("_uWnd.close('referTxtLink')",5000);
     return false;
     });
</script>

Попытался еще и таймаут приписать, но знаний не хватило... И кстати, если $ID$ не прописывать, то действует только для 1го сообщения.

Добавлено (13.08.2011, 03:04)
---------------------------------------------
В вашем шаблоне надо бы классу codeMessage прописать ширину, а то если вдруг код содержит достаточно длинную строку, то в Firefox (6) вся страница едит и причем прокрутки по горизонтали тогда нет..


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


Elones,
Quote (Elones)
Так ведь оператор $NUMBER$ не повторяется(в информере это цифры по порядку от "1" и более), а значит и ID будет каждый раз разным

Ёлки-зелёные ...
Я же написал:
Quote (likbezz)
вся эта муть выносится в одну отдельную функцию - в шаблоне остаётся только блок для контента ... И всё.

Code
<a href="javascript://" onclick="имяФункции('$ID$');return false;"><img title="Уровень" src="/images/level-inf.png" alt=""></a>     
<div class="mainblock" id="mb$ID$"></div>

- Всё.
И больше ничего.
Остальное убирается в функцию, вызываемую при клике.
...

Quote (Elones)
В вашем шаблоне надо бы классу codeMessage прописать ширину, а то если вдруг код содержит достаточно длинную строку, то в Firefox (6) вся страница едит и причем прокрутки по горизонтали тогда нет..

Да, я знаю.
Но не хочу вписывать фиксированную ширину блоку, а на относительную руки не доходят )
Quote (Elones)
то в Firefox (6) вся страница едит и причем прокрутки по горизонтали тогда нет..

Это что? - Мозилла шестая вышла? ... да ладно ...
И кроме того, не “вся страница едит”, а только один пост .....
Или киньте скриншот - гляну чё за байда ...

P.S. Надо будет, кстати, заняться ....
...

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

Дошли ... )
...


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


Elones,
Quote (Elones)
Так, что ли?)

Нет .....
Вот так:
Это скрипт - один раз в шаблон вид форума, через условные операторы.
Code
<script type="text/javascript">
function getByProfInfo(b,u){
var c=$('#mb'+b),url='/index/8-'+u;
if(c.is(':hidden')){
if(c.is(':empty')){
c.html('<img src="/.s/img/icon/ajsml.gif" />');
$.get(url,function(d){var a='';a+=$('#block1',d).html();a+='<hr />';a+=$('#block22',d).html();a+='<hr />';a+=$('#block21 div:eq(1)',d).html();c.html(a)})};
c.show()}else{c.hide()}};
</script>

Где:
getByProfInfo(b) - передаём в скрипт ID - $ID$ ...
var c=$('#mb'+b),url='/index/8-'+u; - устанавливаем переменные: c - для блока с контентом и url - для адреса запроса (страница профиля)
if(c.is(':hidden')) - проверяем, открыт ли блок с контентом ....
if(c.is(':empty')) - проверяем: пустой блок с контентом, или там уже есть инфа и делать повторный запос не нужно.
__c.html('<img src="/.s/img/icon/ajsml.gif" />'); - если пустой - c.is(':empty') - пихаем в него картинку загрузки и .... »»»
__$.get(url,function(d){ .... }); .... и совершаем запрос на страницу профиля .... и ... »»»
c.show() - открываем блок с контентом. Если он не пустой (с данными из профиля) - просто открываем.
c.hide() - если блок уже открыт - закрываем. ....
....

Это - в шаблон вид поста - под аватар и ли куда нужно.
Quote
<a href="javascript://" onclick="getByProfInfo('$ID$','$UID$');return false;"><strong>«Уровень»</strong></a>
<div style="display:none;" class="mainblock" id="mb$ID$"></div>


Типа так:

- Все необходимые блоки к которым совершается запрос должны быть (присутствовать в профиле), либо нужно делать проверку на наличие, иначе будет выводить «null» - например, если у пользователя нет подписи - а в примере я совершаю запрос и к блоку с подписью тоже ....
...

Опять же, это всего лишь пример, а не готовый код для вставки ...
....


...

Прикрепления: getByProfInfo.txt (1.0 Kb)

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


Quote (likbezz)
Нет .....

Во блин) А мой вариант (если функцию таймаута убрать) тоже работал biggrin )
Quote (likbezz)
Вот так

Прямо таки спойлер с запросом получился. Тоже хороший вариант, сейчас опробую.
---------------
По поводу отображения кода в фф:


Сообщение отредактировал Elones - Суббота, 13.08.2011, 21:11
 
Дата: Суббота, 13.08.2011, 23:26 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Elones,
Quote (Elones)
К сожалению на Firefox 6b5 все так же.

Скорее всего, у вас старый кеш.
Так как изменения в стили внёс недавно ...
В пятой нормально (спецом установил), следовательно и в остальных тоже.


...

Quote (Elones)
Во блин) А мой вариант (если функцию таймаута убрать) тоже работал

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

Прикрепления: 0703924.png (18.6 Kb)

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


Quote (likbezz)
Это скрипт - один раз в шаблон вид форума, через условные операторы.

В смысле через операторы? confused
Quote (likbezz)
Скорее всего, у вас старый кеш.

Да, ща все норм, надо было мне сразу пару раз страницу обновить или ctr+f5 нажать. smile

Добавлено (13.08.2011, 23:54)
---------------------------------------------

Quote (Elones)
вы ж, вроде говорили что с окном не айс ... Но можно и с окном .... переделать немного - вместо функции «показать блок» - открыть окно, а вместо «закрыть блок» - закрыть окно ....

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

Это однозначно +


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


Elones,
Quote (Elones)
В смысле через операторы?

Code
<?if($PAGE_ID$='threadpage'))?>
скрипт
<?endif?>

- дабы не запускать лишние функции там, где они совсем не нужны ....
...


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


Quote (likbezz)
Code
<script type="text/javascript">
function getByProfInfo(b){
var c=$('#mb'+b),url='/index/8-'+b;
if(c.is(':hidden')){
if(c.is(':empty')){
c.html('<img src="/.s/img/icon/ajsml.gif" />');
$.get(url,function(d){var a='';a+=$('#block1',d).html();a+='<hr />';a+=$('#block22',d).html();a+='<hr />';a+=$('#block21 div:eq(1)',d).html();c.html(a)})};
c.show()}else{c.hide()}};
</script>

Я ща моск себе поломаю biggrin
В скрипте "/index/8-" и в вашем примере заданны абсолютные ссылки, а как же c /index/8-$UID$ прописать? Если просто добавить, то выводит null

А если еще и в оператор pageid засунуть скрип, то он перестает работать

Добавлено (14.08.2011, 02:08)
---------------------------------------------
Все, разобрался) Ваш пример с $ID$ меня сбил )) Надо было $UID$ вместо этого прописывать)
Но операторы все равно нельзя happy

Добавлено (14.08.2011, 02:15)
---------------------------------------------

Quote (Elones)
Надо было $UID$ вместо этого прописывать

dry Нифига не вариант, id становится повторяющимся...


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


Elones,
Quote (Elones)
В скрипте "/index/8-" и в вашем примере заданны абсолютные ссылки, а как же c /index/8-$UID$ прописать? Если просто добавить, то выводит null

Ничё не понял ....
В скрипт мы перезаём ID из клика по ссылке, написано же выше:
Quote (likbezz)
getByProfInfo(b,u) - передаём в скрипт ID блока для контента - $ID$ ... и ID пользователя - для ссылки.

и в скрипте, уже «b» == ID из ссылки.
Скрипт вставлять как есть. Код тоже так же вставлять - как есть.
ID передайтся из клика:
Quote (Js)
<a href="javascript://" onclick="getByProfInfo('$ID$','$UID$');return false;"><strong>«Уровень»</strong></a>

и блок нужный там же определяется, так как к нему привязан в шаблоне ID
Quote (HTML)
<div style="display:none;" class="mainblock" id="mb$ID$"></div>

...
Ой, блин, ёж твою за ногу ... )))) ID пользователя это $UID$ .... а $ID$ - это ID поста .... )
))))... Ща поправлю.

Code
<script type="text/javascript">
function getByProfInfo(b,u){
var c=$('#mb'+b),url='/index/8-'+u;
if(c.is(':hidden')){
if(c.is(':empty')){
c.html('<img src="/.s/img/icon/ajsml.gif" />');
$.get(url,function(d){var a='';a+=$('#block1',d).html();a+='<hr />';a+=$('#block22',d).html();a+='<hr />';a+=$('#block21 div:eq(1)',d).html();c.html(a)})};c.show()}else{c.hide()}};
</script>


Code
<a href="javascript://" onclick="getByProfInfo('$ID$','$UID$');return false;"><strong>«Уровень»</strong></a>
<div style="display:none;" class="mainblock" id="mb$ID$"></div>

... Во как)


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


Угу =) Сенк.
Quote (likbezz)
getByProfInfo(b,u)

Quote (likbezz)
('$ID$','$UID$')

Вот у меня была "мысля", что можно в скрипте больше 1й переменной таким образом задавать, но я не знал наверняка


Сообщение отредактировал Elones - Воскресенье, 14.08.2011, 03:09
 
Дата: Воскресенье, 14.08.2011, 03:18 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Elones,
Quote (Elones)
Вот у меня была "мысля", что можно в скрипте больше 1й переменной

В принципе, пожно было обойтись одной - UID, но велика вероятность того, что два поста одного пользователя будут на одной странице ... ) ... Так что, лучше так - ID блока - отдельно, ID юзера - отдельно ...


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


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