Появилось несколько вопросов касательно юкоза... Сам их решить не смог, недели две наверное бьюсь. Вот решил написать.)
У меня есть несколько информеров. Каждый выводит последние материалы из всех активных модулей.
На все эти информеры распрострянется действие сортировщика, чтобы материалы шли в правильном порядке (ну, лента в общем).
Задача состоит в следующем. Как сделать общий переключатель по материалам информеров? То есть отсчиталось 30 материалов (как пример), последующие материалы обрубаются и доступны уже на другой, так сказать, странице.
Я прочел вот эту тему - http://likbezz.ru/forum/68-762-9581-16-1336339366 Круто, но сумел применить только к информерам по отдельности.
На всякий случай прикрепляю сортировщик:
Код
<div id="feed"> $MYINF_1$ $MYINF_2$ $MYINF_3$ $MYINF_4$ $MYINF_5$ </div> <script type="text/javascript"> function parseDate(input) { var parts = input.match(/(\d+)/g); return new Date(parts[2],parts[1]-1,parts[0],parts[3]-1,parts[4]-1,Math.random()).getTime(); } $(document).ready(function() { var elems = $.makeArray($('#feed .feed-item')); elems.sort(function(a, b) { if (parseDate($(a).find('.feed-date').text()) > parseDate($(b).find('.feed-date').text())) return -1; if (parseDate($(a).find('.feed-date').text()) < parseDate($(b).find('.feed-date').text())) return 1; return 0; }); $('#feed').html(elems); }); </script>
Обрамление даты в информере:
Код
<span class="feed-date">$DATE$ в $TIME$</span>
Вишу на этом сайте с самого начала пребывания на юкозе. Просто кладезь знаний, спасибо. Надеюсь, что с моими вопросами тоже получится найти решение.)
Как сделать общий переключатель по материалам информеров? То есть отсчиталось 30 материалов (как пример), последующие материалы обрубаются и доступны уже на другой, так сказать, странице.
Ну, можно через табы - вкладки, .. для этого нужен скрипт самих вкладок и модифицировать сортировщик, что бы он формировал html код для табов. По сути - там должны быть управляющие элементы - список страниц, и блоки контента. По завершению формирования кода, запускать скрипт вкладок.
likbezz, ура, вы пришли.)) Вчера заснул, так и не дождался.
Цитата
Ну, можно через табы - вкладки, .. для этого нужен скрипт самих вкладок и модифицировать сортировщик, что бы он формировал html код для табов. По сути - там должны быть управляющие элементы - список страниц, и блоки контента. По завершению формирования кода, запускать скрипт вкладок.
Поможете? Мне бы хоть самый простенький пример. Реально ничего не получается, как не пытался.(
likbezz, офигеть. оО Прям конкретно под наш сайт... Спасибо.)) Сейчас пробовать буду.) Немного позже отпишусь.
Добавлено (02.08.2014, 20:28) --------------------------------------------- likbezz, все, разобрался.)) Только одно не понял - как сделать, чтобы страница при переключении поднялась наверх (к верхним подгруженным материалам)?
У нас точного количество материалов в каждом информере нет. То есть там может быть и 50 и 100 и больше. Сколько добавлено, столько и выводится (это первоначальная идея).
likbezz, можете показать как сделать так, чтобы были не переключатели, а кнопка "Подгрузить еще"? И так до тех пор, пока не кончаться материалы в информерах.
Извините, что не сразу донес мысль. Только сейчас дошло, что придется вручную добавлять переключатели страниц (в зависимости от увеличения объема материала).
Хотя сам виноват, надо было правильно писать. Возможно, что "такую кнопку" делать дольше . Тогда бы просто решить проблему с "поднятием страницы наверх".) А то при переключении не очень удобно...
likbezz, можете показать как сделать так, чтобы были не переключатели, а кнопка "Подгрузить еще"? И так до тех пор, пока не кончаться материалы в информерах.
likbezz, можете показать как сделать так, чтобы были не переключатели, а кнопка "Подгрузить еще"? И так до тех пор, пока не кончаться материалы в информерах.
likbezz, большое спасибо!! Просто супер. Знал, что здесь точно помогут.
Вот... Из "накипевшего" у меня осталось два вопроса. Задам сначала самый идиотский (вам странным образом удалось сделать так, что вы единственный в сети у кого мне не стремно просить помощи. оО)
.load() Осуществляет запрос к серверу без перезагрузки страницы. Полученные от сервера данные будут автоматически помещены внутрь выбранных элементов. Функция имеет несколько необязательных параметров. .load() является наиболее простым средством для подгрузки и вставки недостающего содержимого с сервера. Он делает ajax-запрос к серверу и вставляет полученные данные в элементы страницы, к которым применялся метод
Данная часть просто проверяет наличие подгруженного контента, и заменяет историю.
Мда... *Чешет затылок*. Ну, ладно. Какие наши годы. хд Зато вкуривать работу скрипта наконец начал.
Цитата
пихаем код открытия окошка, типа:
Все, дошло.)) Спасибо.)
Пошел устанавливать это все и любоваться.) Скоро вернусь с нашей третьей Ахиллесовой пятой.))
Добавлено (04.08.2014, 09:23) --------------------------------------------- likbezz, а можно к функции закрытия аякс-окна (http://arkham-world.ru/snimok.png) привинтить события onclick-а этой кнопки
Просто первоначально скрипт подразумевал закрытие новости по повторному щелчку по названию. И если просто закрыть аякс-окно, адрес подгруженного материала так и остается в адресной строке... Ох.(
Добавлено (04.08.2014, 09:52) --------------------------------------------- likbezz, как раз писал.))
Добавлено (04.08.2014, 09:54) --------------------------------------------- likbezz, likbezz, вооот... Кайф. Теперь идеал.
Добавлено (04.08.2014, 22:54) --------------------------------------------- likbezz, ура. Закончил с лентой.)
Вот и третья наша проблема...
Скрипт
Код
function offset(a) { for (var b = 0; a;) b += parseInt(a.offsetTop), a = a.offsetParent; return b } var s = !0; window.onload = function () { var a = document.querySelector(".utility_bar"), b = offset(a), f = window.getComputedStyle ? getComputedStyle(a, "") : a.currentStyle, d = a.offsetHeight + parseInt(f.marginTop) || 0, e = offset(document.querySelector(".shoes")); window.onscroll = function () { var c = window.pageYOffset || document.documentElement.scrollTop, c = e - (c + d + b); s != 0 < c && ((s = 0 < c) ? (a.style.top = b + "px", a.style.position = "fixed") : (a.style.top = e - d + "px", a.style.position = "absolute")) } };
Суть в том, чтобы абсолютно позиционированный блок замирал над футером. И все хорошо, но при смене высоты страницы (а это дело плевое... Добавил коммент - уже новая высота) скрипт фиксируется на месте, где стоит и дальше никуда. Так и висит там. Исправить не удалось. Не понимаю как сделать так, чтобы скрипт принимал и новую высоту страницы... Скорее всего вообще неправильно подхожу к решению вопроса.(