Страница 1 из 11
Форум » uCoz » Помощь по uCoz » Исключить из информера прошлогодние материалы
Исключить из информера прошлогодние материалы
brabus Offline
Проверенный
7
Дата: Суббота, 06.02.2016, 20:32 | Сообщение # 1
Существует ли возможность как-то исключить из информера, который выводит материалы в случайном порядке, материалы добавленные позднее определенной даты?

Есть возможность реализовать без PHP? Если нет, то кто может помочь с PHP?


futurage.ru - ты либо читаешь нас, либо мне не о чем с тобой говорить.

Сообщение отредактировал brabus - Суббота, 06.02.2016, 20:32
Профиль
jpios Offline
Проверенный
7
Дата: Воскресенье, 07.02.2016, 02:31 | Сообщение # 2
Должно помочь такое решение: в настройках шаблона информера все содержимое заключить в условный блок

Код
<?if(substr($DATE$,6)>=2015)?> Содержимое шаблона информера <?endif?>

Тогда будут выводиться материалы только 2015 года и следующих годов.


Профиль
brabus Offline
Проверенный
7
Дата: Воскресенье, 07.02.2016, 05:04 | Сообщение # 3
Ну, смотри, я уже думал сделать так.

Допустим, в информере стоит вывод пяти материалов в случайном порядке, если по случайности все 5 материалов оказываются 2015 года(которые нам не нужны), не получится ли так, что на их месте просто останется пустое место, а не другие материалы?

Добавлено (07.02.2016, 04:39)
---------------------------------------------
В общем, я сейчас протестирую и отпишусь ;)

Добавлено (07.02.2016, 04:43)
---------------------------------------------
Не работает, дело даже не в моем предположении, видимо система не воспринимает дату за исчисляемое число, отсюда и не работает >=

Добавлено (07.02.2016, 04:46)
---------------------------------------------
Вот такой ответ от поддержки.

Цитата
К сожалению в данный момент невозможно сделать вашу задумку с помощью системных переменных. В шаблоне информера недоступны некоторые
необходимые коды, с помощью которых можно было-бы сделать подсчет и
построить условие.
Вы можете добавить предложение на сайте http://all.uwishlist.ru/ по расширению данного функционала в информерах.

Добавлено (07.02.2016, 05:04)
---------------------------------------------
Нашел на одном сайте вот такое решение на JS,

Код
//сортировка и вывод популярных новостей за последние дни
a = new Date();
date=Date.parse(a);
$('#content2 .news-det').each(function(){
    c = $(this).text().replace( /(\d{2}).(\d{2}).(\d{4})/, "$2/$1/$3");
    newdate = Date.parse(c);
    res = (date-newdate)/86400000;

    if(res>15){
         $(this).parent().parent().remove();
     if($('#content2').children().length ==0){
      $('#content2').append('<p>Нет популярных новостей</p>');
     }
    }
});


Помогите разобраться 0:)


futurage.ru - ты либо читаешь нас, либо мне не о чем с тобой говорить.
Профиль
admin Offline
Гл. администратор
429
Дата: Воскресенье, 07.02.2016, 10:44 | Сообщение # 4
Тогда нужно преврать в исчисляемое. Там есть какой-то оператор, чтобы такое провернуть. Вроде int, но он округляет.

Я имею ввиду такой код, но вместо int может что-то другое:

Код
<?if(int(substr($DATE$,6))>=2015)?> Содержимое шаблона информера <?endif?>


Помог? Ставь или поддержи проект.
Профиль
jpios Offline
Проверенный
7
Дата: Воскресенье, 07.02.2016, 14:01 | Сообщение # 5
Цитата
Не работает, дело даже не в моем предположении, видимо система не воспринимает дату за исчисляемое число, отсюда и не работает >=

Не работает, скорее всего, из-за того, что у Вас стоит другой формат даты. Данный код для формата даты dd.mm.yyyy.

Еще можно попробовать опираться не на дату, а на ID материала, и выводить новости, ID материала которых больше заданного.

Например, вот так:

Код
<?if($ID$>ID материала)?> <?endif?>


Но это все не совсем то - во всех случаях (и с датой, и с ID) материал просто не будет выводиться (т.е если у Вас, например, информер выводит 5 случайных материалов и 3 из них не подходят по условию ID или даты, то будет выведено 2 материала). И если все 5 материалов не будут подходить, то, соответственно, ничего не будет выводиться.

Возможно, Вам это как-то поможет ;)


Профиль
brabus Offline
Проверенный
7
Дата: Воскресенье, 07.02.2016, 14:32 | Сообщение # 6
Нашел на одном сайте вот такое решение на JS,

Цитата
//сортировка и вывод популярных новостей за последние дни
a = new Date();
date=Date.parse(a);
$('#content2 .news-det').each(function(){
c = $(this).text().replace( /(\d{2}).(\d{2}).(\d{4})/, "$2/$1/$3");
newdate = Date.parse©;
res = (date-newdate)/86400000;

if(res>15){
$(this).parent().parent().remove();
if($('#content2').children().length ==0){
$('#content2').append('<p>Нет популярных новостей</p>');
}
}
});


Помогите разобраться 0:)


futurage.ru - ты либо читаешь нас, либо мне не о чем с тобой говорить.
Профиль
VOYSAX Offline
Проверенный
3
Дата: Воскресенье, 07.02.2016, 15:24 | Сообщение # 7
up / тоже интересует создания информера с выводом материалов за неделю, месяц, год и тд.

Профиль
brabus Offline
Проверенный
7
Дата: Воскресенье, 07.02.2016, 15:29 | Сообщение # 8
Так вот я привел скрипт, взял его с сайта на ucoz, где реализовано подобное решение)

futurage.ru - ты либо читаешь нас, либо мне не о чем с тобой говорить.
Профиль
Вовчик Offline
Проверенный
26
Дата: Среда, 10.02.2016, 19:27 | Сообщение # 9
да да, вопрос интересный...

Добавлено (10.02.2016, 19:27)
---------------------------------------------
up, ну что там?)


гуляю на Webo4ka.Ru:)
Профиль
brabus Offline
Проверенный
7
Дата: Четверг, 11.02.2016, 02:10 | Сообщение # 10
Вовчик На этом форуме с этим справиться можешь только ты) Потому и тихо

futurage.ru - ты либо читаешь нас, либо мне не о чем с тобой говорить.
Профиль
Frilanser Offline
Проверенный
2
Дата: Четверг, 11.02.2016, 08:36 | Сообщение # 11
Можем написать скрипт не трудный!... Но тут фактор всегда один бесплатно что либо делать никто не хочет.

Напишем сайт, скрипт - любой тематики и сложности, в макс. быстрые сроки!.. Предоставляем SEO услуги для продвижения групп и сайтов!. За подробностями обращайтесь по Контактам: vk.com/frilanser | Skype: spammrac ...
Профиль
brabus Offline
Проверенный
7
Дата: Четверг, 11.02.2016, 17:13 | Сообщение # 12
А зачем?) я же предоставил скрипт)))

Добавлено (11.02.2016, 17:13)
---------------------------------------------
Или вы мои сообщения мимо ушей (глаз) пропускаете? ^_^


futurage.ru - ты либо читаешь нас, либо мне не о чем с тобой говорить.
Профиль
vGlad Offline
Проверенный
5
Дата: Пятница, 12.02.2016, 00:30 | Сообщение # 13
Немного покопался в скрипте.
Если в диве с классом .news-det будет дата меньше чем 15 дней от текущей, то новость не выведется, а если все новости старые, то выведется сообщение о том, что "Нет новостей". Надеюсь помог вам :)

Код
<div id="content2">

<div class="news">
<div class="op">Описание</div>
<div class="news-det">20.02.2016</div>
</div>

<div class="news">
<div class="op">Описание</div>
<div class="news-det">20.01.2016</div>
</div>

</div>

<script type="text/javascript">
// вывод новостей за 15 дней, vglad edited
a = new Date();
date=Date.parse(a);
$('.news .news-det').each(function(){
c = $(this).text().replace( /(\d{2}).(\d{2}).(\d{4})/, "$2/$1/$3");
newdate = Date.parse(c);
res = (date-newdate)/86400000;

if(res>15){
$(this).parent().remove();
if ($('#content2').find('*').length == 0) {
$('#content2').append('<p>Нет новостей</p>');
}
}
});
</script>




Сообщение отредактировал vGlad - Пятница, 12.02.2016, 02:01
Профиль
Форум » uCoz » Помощь по uCoz » Исключить из информера прошлогодние материалы
Страница 1 из 11
Поиск: