• Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Раздел для начинающих » Вопросы/ответы на тему JQuery и JScript на сайтах в uCoz » Вывод изображений доб. пользователем на персональную стр.
Вывод изображений доб. пользователем на персональную стр.
Дата: Понедельник, 17.09.2012, 19:48 |
bandjuk
Генерал-майор
Группа: Пользователи
Сообщений: 290
Награды: 1
Репутация: 22
Статус: Offline


Антон, нужен твой совет/помощь по скрипту.
Требуется вывести на "Персональная страница пользователя" определённое количество изображений, добавленных пользователем в фотоальбом.
Собственно с выводом проблем нет, действую по накатанной схеме smile :
ПУ -- фотоальбом -- Страница рейтинга и поиска фотографий, лепим $BODY$ ИД:

Quote
<span id="userFoto">
$BODY$
</span>


в шаблон "Персональная страница пользователя":
Quote
<span id="uFoto">
<script type="text/javascript">
$('#uFoto').load('http://fotki.ucoz.ua/photo/0-1-0-17-$_USER_ID$ #userFoto');
</script>
</span>


выводит кол-во фотографий, выставленное в настройках модуля фотоальбом, только не пойму какая из 2-х настройка за это отвечает, но это и не важно!

т.е. в моём случае выводит последних 12 добавленных мной изображений.
Собственно вопрос - как скриптом ограничить вывод например до 3-х изображений?

Прикрепления: 3151986.jpg (18.6 Kb)

Сообщение отредактировал bandjuk - Понедельник, 17.09.2012, 19:49
 
Дата: Пятница, 21.09.2012, 23:37 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Собственно с выводом проблем нет, действую по накатанной схеме smile :

Вот только ты не понимаешь одной простой вещи ... какждый такой скрипт - запрос.
Сколько их у тебя уже? навскидку? два, три, больше? ....
Делать нужно только один запрос, ведь получаются все данные, АБСОЛЮТНО все, включая титле страницы... и .. распихивать нужные элементы по странице.
... Это так, считай не в теме.


выводит кол-во фотографий, выставленное в настройках модуля фотоальбом, только не пойму какая из 2-х настройка за это отвечает, но это и не важно!

По-моему, там какая-то стандартная установленная цифра и она не меняется. Насколько я знаю, конечно..

Собственно вопрос - как скриптом ограничить вывод например до 3-х изображений?

Либо скриптом, либо ограничить блоком с фиксированными размерами.
Как еще? только так
Code
<div id="uFoto"></div>
<script type="text/javascript">
$.get('http://fotki.ucoz.ua/photo/0-1-0-17-$_USER_ID$',function(d){
if($('#userFoto img',d).length){
   for(var i=3;--i>=0;){
    $('#uFoto').append($('#userFoto img',d).eq(i));
   }
}
});
</script>


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


 
Дата: Понедельник, 21.01.2013, 03:17 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Интересное решение

<div id="uFoto"></div>
<script type="text/javascript">
$.get('http://fotki.ucoz.ua/photo/0-1-0-17-$_USER_ID$',function(d){
if($('#userFoto img',d).length){
for(var i=3;--i>=0;){
$('#uFoto').append($('#userFoto img',d).eq(i));
}
}
});
</script>

но материал выводится в обратном порядке я-a, начиная с последних, которые найдет функция. Как сделать так, чтобы сначала выводились первые а-я. Спасибо..


 
Дата: Понедельник, 21.01.2013, 07:45 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


chila,
Цитата (chila, Пн, 21.01.2013, 03:17:12)
if($('#userFoto img',d).length){
for(var i=3;--i>=0;){
$('#uFoto').append($('#userFoto img',d).eq(i));
}
}

Если фоток меньше 3 будет ошибка.
Тогда уж вот так:
Код
<div id="uFoto"></div>
<script type="text/javascript">
$.get('http://fotki.ucoz.ua/photo/0-1-0-17-$_USER_ID$',function(d){
if($('#userFoto img',d).length){
var j=$('#userFoto img',d).length<3?$('#userFoto img',d).length:3;
for(i=0;i<j;i++){
$('#uFoto').append($('#userFoto img',d).eq(i));
}
}
});
</script>


 
Дата: Понедельник, 21.01.2013, 12:04 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Спасибо огромное, я убрал img и скрипт подтягивает весь блок с id - это именно то, что искал вторую неделю. Буду обращаться, вопросы по скриптам бывают частенько...
дополнительный вопрос: как дописать что-то вроде такого: if(i==0) {result ='<div>код, если результат скрипта нулевой</div>'
P.S. естественно не безвозмездно, что и сколько можешь в личку))


 
Дата: Понедельник, 21.01.2013, 12:38 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


chila,
Цитата (chila, Пн, 21.01.2013, 12:04:30)
как дописать что-то вроде такого: if(i==0) {result ='<div>код, если результат скрипта нулевой</div>'

Код
<div id="uFoto"></div>
<script type="text/javascript">
$.get('http://fotki.ucoz.ua/photo/0-1-0-17-$_USER_ID$',function(d){
if($('#userFoto img',d).length){
var j=$('#userFoto img',d).length<3?$('#userFoto img',d).length:3;
  for(i=0;i<j;i++){
   $('#uFoto').append($('#userFoto img',d).eq(i));
  }
}else{
  $('#uFoto').html('<div>код, если результат скрипта нулевой</div>');
}
});
</script>

Цитата (chila, Пн, 21.01.2013, 12:04:30)
естественно не безвозмездно

)
Если есть большое желание, вот мои реквизиты:
Цитата (Info Реквизиты)
WebMoney (кошелёк):
R426443544810
Z120914141775
E305902557268
U399148405304
B258688647365

Яндекс деньги (№ счета):
41001660518076

Единый кошелек (№ счета):
181342928825@W1

QIWI Кошелек (№ счета):
9688596198


 
Дата: Понедельник, 21.01.2013, 12:51 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Спасибо, безвозмездность перевел!

Добавлено (21.01.2013, 12:51)
---------------------------------------------
Извини, чисто спортивное любопытство... Запрос $.get - загружает полностью указанную страницу и отбрасывает лишнее или ищет нужное и выводит?

 
Дата: Понедельник, 21.01.2013, 13:02 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


chila,
Цитата (chila, Пн, 21.01.2013, 12:51:52)
Извини, чисто спортивное любопытство... Запрос $.get - загружает полностью указанную страницу и отбрасывает лишнее или ищет нужное и выводит?

$.get(), $ajax(), $.load() - все это одно и то же, просто сокращенные версии и все они изначально загружают всю страницу, отдавая только только нужное.
Если вы об этом, конечно.


 
Дата: Суббота, 26.01.2013, 17:47 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Спасибо еще раз, по скриптам теперь только к Вам)

Добавлено (26.01.2013, 17:47)
---------------------------------------------
Все же я считаю, что этот скрипт дает необоснованную дополнительную нагрузку, раз $.get(), $ajax(), $.load() загружают все страницу целиком. Есть ли способ, который не загружал бы все, а искал и выдавал то, что нужно... возможно что-то вроде find или другим способом. Есть варианты? Если это стоит дополнительного финансирования, рассмотрю.

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


chila,
Цитата (chila, Сб, 26.01.2013, 17:47:36)
Все же я считаю, что этот скрипт дает необоснованную дополнительную нагрузку, раз $.get(), $ajax(), $.load() загружают все страницу целиком

Без сомнения.
Кто-то говорил иначе?)

Цитата (chila, Сб, 26.01.2013, 17:47:36)
Есть ли способ, который не загружал бы все, а искал и выдавал то, что нужно.

Нет, при помощи JavaScript нет такого способа.

Цитата (chila, Сб, 26.01.2013, 17:47:36)
возможно что-то вроде find или другим способом.

А вот, чисто теоретически, .. как вы думаете, в чем денная: $.find() функция что-то ищет?

Что-бы что-то найти нужно это что-то получить, а страница - это единое целое.
Единственное, что работает немного не так - это базы данных - там есть индексы.
Все остальное, сначала получают все, а потому уже делают выборку.

Цитата (chila, Сб, 26.01.2013, 17:47:36)
Есть варианты?

Только очень сложные, связанные с запоминанием результата уже сделанного запроса, на определенное время, скажем на 6-12 часов..
И нормально реализовать это можно только с php. Остальное - это сложные костыли.
Как вариант попроще - ссылки на изображения можно писать в куку и лакал сторадж.
..


 
Дата: Среда, 13.02.2013, 16:03 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Есть незамысловатый скрипт:
Код

<script type="text/javascript">  
  if ($("#selector").find(".swchItem:contains('»')").text() == '»') {  
  $("#selector").after('<br><div id="nextCont" style="display:block; text-align:center;"><div onclick="Conti.to();" class="buttonq" style="width: 100%;">Просмотреть еще...</div></div>');  
  };  
  Conti = {  
  to:function(){  
  $("#nextCont").html('<div style="padding:4px"><img src="/img/loading.gif" border="0" /></div>');  
  nextik = $("#selector").find(".swchItem:contains('»')").attr('onclick').toString();  
  num = nextik.match(/\d/);  
  $.get('адрес сайта/модуль/страница-'+num, function(next){  
  $("#contik").append( $("#contik", next).html() );  
  var $newItems = $('');
$('#portfolio-items').prepend( $newItems)
  .isotope( 'reloadItems' ).isotope({ sortBy: 'original-order' });  
  $("#selector").html( $("#selector", next).html() );  
  $("#nextCont").html('<div onclick="Conti.to();" class="buttonq" style="width: 100%;">Просмотреть еще...</div>');  
  if ($("#selector", next).find(".swchItem:contains('»')").html() == null) { $("#nextCont").fadeOut(); };  
  });  
  }  
  }  
</script>

Скрипт работает, это радует, но есть одно но - скрипт подтаскивает страницу с 'адрес сайта/модуль/страница-'+num, если дело доходит до фильтрации материалов, то страницу нужно подтаскивать не с 'адрес сайта/модуль/страница-'+num, а ...'адрес сайта/модуль/страница-'+num+'-6-0-0-21-14-13', или что-то вроде этого.
Как такое можно реализовать/исправить... возможно, брать ссылку из вышеупомянутого ".swchItem:contains('»')" в $PAGE_SELECTOR$, в коде выглядит примерно так:
Код
<a class="swchItem" href="нужный нам адрес" onclick="spages('2','6');return false;"><span>»</span></a>

Заранее спасибо!


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


chila,
Цитата (chila, Ср, 13.02.2013, 16:03:09)
но есть одно но - скрипт подтаскивает страницу с 'адрес сайта/модуль/страница-'+num

Вот это добавьте в скрипт:
Цитата (chila, Ср, 13.02.2013, 16:03:09)
$("#selector").after('<br><div id="nextCont" style="display:block; text-align:center;"><div onclick="Conti.to();return false;" class="buttonq" style="width: 100%;">Просмотреть еще...</div></div>');

нужное выделено синим.
И не будет подскакивать.

Цитата (chila, Ср, 13.02.2013, 16:03:09)
если дело доходит до фильтрации материалов, то страницу нужно подтаскивать не с 'адрес сайта/модуль/страница-'+num, а ...'адрес сайта/модуль/страница-'+num+'-6-0-0-21-14-13', или что-то вроде этого.
Как такое можно реализовать/исправить... возможно, брать ссылку из вышеупомянутого ".swchItem:contains('»')" в $PAGE_SELECTOR$, в коде выглядит примерно так:

Исправить можно - переписать скрипт - нормально.. Ибо этот “уныл”..
И у меня, кстати, ссылка выглядит не так, а вот так:
Цитата (Code)
<a class="swchItem" href="http://likbezz.ru/load/converters/13-2-6" onclick="spages('2','6');return false;"><span>»</span></a>

и зачем брать: .attr('onclick').toString(); и вытаскивать из него строку: num = nextik.match(/\d/); .. мне вообще непонятно.. когда там есть прямой адрес на страницу.
Как с фильтрами, так и без:
Цитата (Code)
<a class="swchItem" href="http://likbezz.ru/news/2" onclick="spages('2');return false;"><span>»</span></a>

..Дауж..


 
Дата: Среда, 13.02.2013, 17:42 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


и зачем брать: .attr('onclick').toString(); и вытаскивать из него строку: num = nextik.match(/\d/); .. мне вообще непонятно.. когда там есть прямой адрес на страницу.
- Да, зачем... Тогда еще проще, как изменить скрипт, чтобы он брал адрес ссылки, которая находится в "»". А зачем проверка (с фильтрацией и без), если ссылка в "»" - будет правильная в любом случае... Вытаскивание номера страницы получается лишнее.
За скрипт переведу немного wmz))

P.S. Вот этот код в скрипте - это мое хулиганство... просьба оставить, без него неправильно отображается подтянутая информация.
Код
var $newItems = $('');  
$('#portfolio-items').prepend( $newItems)  
   .isotope( 'reloadItems' ).isotope({ sortBy: 'original-order' });


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


chila,
Цитата (chila, Ср, 13.02.2013, 17:42:45)
А зачем проверка (с фильтрацией и без), если ссылка в "»" - будет правильная в любом случае...

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

Цитата (chila, Ср, 13.02.2013, 17:42:45)
Вытаскивание номера страницы получается лишнее.

А находя ссылку по атрибуту contains:
Цитата (chila, Ср, 13.02.2013, 16:03:09)
if ($("#selector").find(".swchItem:contains('»')").text() == '»') {

да еще после этого проверяя есть ли в нем » ... ))) когда уже нашли.. )) ну ваапще ))

Цитата (chila, Ср, 13.02.2013, 17:42:45)
За скрипт переведу немного wmz))

Хорошо, ближе к ночи сделаю.. а лучше приходите утром)


 
Дата: Среда, 13.02.2013, 17:55 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Где взял такой скрипт?) Случайно нашел, но сейчас уже не вспомню на каком именно сайте... Спасибо огромное, буду ждать.

 
Скрипты и коды для юкоз - Форум аццкого кодера » Раздел для начинающих » Вопросы/ответы на тему JQuery и JScript на сайтах в uCoz » Вывод изображений доб. пользователем на персональную стр.
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:


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