• Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: JonMagon  
Автоматическое скрытие объявлений в каталоге сайтов
PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 1 | 18:29:34
Здравствуйте можно ли узнать работает этот ли скрипт и как?И можно ли это сделать в каталоге сайтов!

Автоматическое скрытие неактуальных объявлений!Заранее спасибо!
Код
<?if($PAGE_ID$='add')?>  
<script>  
        var toDays=7  
        var row=$('#bdM31')  
        row.next().remove()  
        row.remove();  
        var toDate=new Date($YEAR$,$MONTH$-1,$DAY$+toDays)  
        $('#addEntForm').append("<input name='pya' type='hidden' value="+toDate.getFullYear()+  
           "><input name='pma' type='hidden' value="+(toDate.getMonth()+1)+  
           "><input name='pda' type='hidden' value="+toDate.getDate()+">")  
</script>  
<?endif?>  
<?if($PAGE_ID$='edit')?>  
<script>  
        var row=$('#bdM31').hide().next().hide()  
</script>  
<?endif?>
Татуированый
Сообщений: 545
Репутация: 115

Сообщение # 2 | 22:37:08
PC-MASTER, ты ведь где-то нашел этот скрипт?
Там было написано что и куда вставить?
Вот поставь себе на сайт и узнаешь, работает он или нет. Так все и делают smile

PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 3 | 22:47:36
Татуированый, спасибо но я знаю что надо куда то вставить, но дело в что там не было инструкции... smile

вот текст где нашел на этом форуме не помню в каком разделе но при установке он не работает вот и хотел бы его разобрать и понять что куда и установить на на разные модули помимо доски объявлений в католог файлов,сайтов и т.д
Код
Автоматическое скрытие неактуальных объявлений   

<?if($PAGE_ID$='add')?>   
<script>   
         var toDays=7   
         var row=$('#bdM31')   
         row.next().remove()   
         row.remove();   
         var toDate=new Date($YEAR$,$MONTH$-1,$DAY$+toDays)   
         $('#addEntForm').append("<input name='pya' type='hidden' value="+toDate.getFullYear()+   
            "><input name='pma' type='hidden' value="+(toDate.getMonth()+1)+   
            "><input name='pda' type='hidden' value="+toDate.getDate()+">")   
</script>   
<?endif?>   
<?if($PAGE_ID$='edit')?>   
<script>   
         var row=$('#bdM31').hide().next().hide()   
</script>   
<?endif?>1

17

Ставить в шаблон страницы добавления-редактирования после кода $BODY$, число в строке toDays=7 задает "время жизни" объявлений в днях.   

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

вот текст полный который у меня просто сохранен в компе!ВСЁ ДЕЛАЮ ПО ИНСТРУКЦИИ НЕ РАБОТАЕТ!
Сообщение отредактировал PC-MASTER - Четверг, 18 Июл 2013, 23:06:17
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 4 | 19:08:38
Опиши задачу? нужно срывать объявления, дата которых больше установленной автором, или какой принцип актуальности? Это не сложно вроде делается.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
Сообщение отредактировал Head-Mad - Понедельник, 22 Июл 2013, 19:45:25
PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 5 | 22:06:49
Например: пользователь добавил 22.07.2013 после 2 месяцев его объявление станет не активным 22.09.2013 если я его активирую то опять идёт отсчёт 2 месяца!!!Я хотел бы что бы это работала в модулях: каталоге файлов,доске объявлений,каталоге сайтов и т.д.Если это возможно!!!!Заранее Спасибо!!!
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 6 | 15:42:00
Для доски объявлений- там есть функция разместить до , но можно и по другому, с помощью условных операторов и небольшого js...
вид новости оборачиваем в div с атрибутом data-time="<?$LASTMOD$+5184000?>" 5184000 - это 60 дней в секундах (примерно 2 месяца)
и в конец этого блока - ссылку для редактирования материалов администратором
Код
<div data-time="<?$LASTMOD$+5184000?>"> Тут шаблон вида материала
<?if($CUR_GROUP_ID$=4)?><a href="/ [b][i]адрес модуля[/i] [/b]/0-0-0-$ID$-13" class="notActive">Материал не активен</a><?endif?></div>

далее, на главную страницу, страницы со списком материалов раздела и категории, пишем следующий js:

Код
<script>
        $(document).ready(function(){
         var unixTimestamp = Math.round(new Date().getTime() / 1000);
$('div[data-time]').each(function(i){       
    var dataTime = $(this).attr('data-time');
       if (unixTimestamp > dataTime)
<?if($GROUP_ID$=4)?>
{$(this).children('.notActive').css('display','block');}
<?else?>
{ $(this).parent().remove();}
<?endif?>
}
};);
        };);
        </script>

и стили для ссылки редактирования материала

Код
<?if($GROUP_ID$=4)?>
<style>
    .notActive{
    display:none;
    height:40px;
line-height:40px;
    text-align:center;
text-decoration:none;
    color:#b50000;
    border:1px solid #b50000;
    background:#f69191}
    </style>
<?endif?>

Теперь у всех смертных групп пользователей кроме администраторов будут видны материалы, временная метка модификации(добавления) материала не старше 60 дней. Проблемы конечно с переключателями страниц. И если отредактированные материалы где-то на 4 или 5 странице, они не появятся на первой... а на первой при этом может не оказаться ни одной...

P.S:
Метод далеко не универсальный. Но если бы вдруг wink в шаблонах вида материалов и прочих появилась переменная которая выводила бы Timestamp текущего момента, а не только метку времени добавления и редактирования материала, тогда подобные задачи будут решаться гораздо проще.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
Сообщение отредактировал Head-Mad - Вторник, 23 Июл 2013, 15:58:00
PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 7 | 23:28:51
Head-Mad, Спасибо за помощь,но почему то не работает я время убираю примерно до 2 минут и не удаляется материал а на счёт $TIMESTAMP$ он есть в виде материалов во всех модулях!!!Что может не дописал и ли я что то не дописал!

Добавлено (23 Июл 2013, 23:28:51)
---------------------------------------------
Что я делаю не так может надо в настройках модуля что то поменять?

Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 8 | 07:17:01
PC-MASTER, ну не знаю, я попробовал, у меня- работает. В шаблонах материалов тех модулей, про которые ты говорил, $LASTMOD$ и $TIMESTAMP$ - есть, так что проблем быть не должно. Скинь ссылку где делал и не получилось.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 9 | 09:53:01
Каталог сайтов может скрипт в одну строку где то надо прописать а тут он не правильно копирует а можешь кинуть ссылку где у тебя получилось!!!
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 10 | 10:22:23
Ничего не надо в одну строку. Все 4 материала- не старше 2х месяцев. В виде материала у div напиши data-time="<?$LASTMOD$+172800?>" и материалы старше двух дней должны скрыться.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 11 | 10:39:16
Head-Mad, они не скрываются! вот эти цыфры что означают +172800
PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 12 | 10:44:43
Так должно быть!!!
Прикрепления: 4208871.jpg (66.0 Kb)
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 13 | 10:55:00
Цитата (PC-MASTER)
эти цыфры что означают +172800

Это 2 дня в секундах.
Сори, лишняя скобка
Код
<script>  
         $(document).ready(function(){  
          var unixTimestamp = Math.round(new Date().getTime() / 1000);  
$('div[data-time]').each(function(i){        
     var dataTime = $(this).attr('data-time');  
        if (unixTimestamp > dataTime)  
<?if($GROUP_ID$=4)?>  
{$(this).children('.notActive').css('display','block');}  
<?else?>  
{ $(this).parent().remove();}  
<?endif?>  
};);  
         };);  
         </script>

Можешь забрать этот код и вставить его себе, сам знаешь куда.
PC-MASTER
Сообщений: 75
Репутация: 6

Сообщение # 14 | 10:59:52
2 дня от даты допустим 13.07.2013 до 15.07.2013 или как?
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 15 | 11:02:12
PC-MASTER, от даты редактирования материала. А если он не редактировался еще, то от даты добавления будет. Вместо этого числа можешь подставлять любое количество дней в секундах

Можешь забрать этот код и вставить его себе, сам знаешь куда.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:
Telegram
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!