Срок показа статьи

#1 30 октября 2009 в 13:12
В чём заключается опция во вкладке СРОКИ — Срок показа статьи (при создании статьи)? У меня выставлено было до 29.10.2009 показывать статью, но досих пор она показывается. И куда статья должна деваться после окончания срока показа — в корзину или полностью удаляться?
#2 30 октября 2009 в 14:10
Статья никуда не девается, она просто перестает выводиться в модуле "Последние материалы" и по идее в разделе статей.
Я себе немного подкручивал модуль чтобы это начинало применяться — разработчики слегка упустили из виду этот аспект когда делали модуль.
Для себя я решил что у меня на сайте эта дата будет действовать только на модуль вывода последних материалов. Так как я его пристроил для вывода киноафишы.
Не помню говорил или нет как это сделать — щас гляну...
Не, не писал еще, так вот сделать это проще простого...
Заходим в папку /modules/latest и находим файл module.php
Там в строке 38 начинается следующий фрагмент:
  1. $sql = "SELECT DISTINCT con.*, DATE_FORMAT(con.pubdate, '%d-%m-%Y (%H:%i)') as fdate, u.nickname as author, u.login as author_login
  2. FROM cms_content con, cms_category cat, cms_users u
  3. WHERE con.published = 1 AND con.showlatest = 1 AND con.user_id = u.id ".$catsql."
  4. ORDER BY con.pubdate DESC
  5. LIMIT ".$cfg['newscount'];
  6.  
так вот нужно его дополнить до вида:
  1. $sql = "SELECT DISTINCT con.*, DATE_FORMAT(con.pubdate, '%d-%m-%Y (%H:%i)') as fdate, u.nickname as author, u.login as author_login
  2. FROM cms_content con, cms_category cat, cms_users u
  3. WHERE con.published = 1 AND con.showlatest = 1 AND con.user_id = u.id ".$catsql." AND con.enddate >= NOW() AND con.pubdate <= NOW()
  4. ORDER BY con.pubdate DESC
  5. LIMIT ".$cfg['newscount'];
  6.  
Смотреть в строку начинающуюся на WHERE, после двойной кавычки дописать AND con.enddate >= NOW() (не забыв поставить сразу после кавычек пробел 😊) — это ограничит вывод материала датой окончания если же дописать еще как в блоке выше и AND con.pubdate <= NOW() (опять же смотрите на разделяющие пробелы), то получите механизм отложенной выдачи материала в модуле, т.е. пока не наступит дата указанная в дате публикации статьи
#3 30 октября 2009 в 14:18
Спасибо за ответ на мой вопрос и за то, что сразу подсказал про Вывод Отложенной Статьи!!!
#4 30 октября 2009 в 15:06
C выводом отложенной статьи AND con.pubdate <= NOW() вопросов нет, то что надо, а вот с окончанием вывода статей AND con.enddate >= NOW() вопрос возник, получается, что статья не выводится даже если выбрано в настройках НЕ ОГРАНИЧЕНО. Если при создании статьи не менять дату окончания показа, то по умолчанию дата ставится того времени когда была создана сатья, и получается даже при включеном НЕ ОГРАНИЧЕНО статья уже на следующий день публиковаться не будет. Может кто-то подправит AND con.enddate >= NOW(), чтобы этот код действовал только при включеной опции ПО ДАТУ ОКОНЧАНИЯ.
#5 30 октября 2009 в 21:30
да немного спешил 😥
правильный добавочный код вот такой:
  1. AND ( con.is_end='0' OR (con.is_end='1' AND con.enddate >= NOW() AND con.pubdate <= NOW()))
  2.  
#6 2 ноября 2009 в 17:18

да немного спешил
правильный добавочный код вот такой:

Виктор
Этот вобще почему-то у меня не работает, точнее главная страница не доконца грузится и что-то там пишется о каких-то ошибках
#7 2 ноября 2009 в 17:38
поменять обратные кавычки не забыл?
сам несколько раз попадался на это 😊
#8 3 ноября 2009 в 16:33

поменять обратные кавычки не забыл?
сам несколько раз попадался на это

Виктор
Да, проблема была именно в них. Спасибо за помощь, интересно в версии 1.5.3 сделают, чтобы работало без правки модуля
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.