Просмотр темы
Страница Архив новостей + боковые панели Календарь и Архив
|
|
Chief |
Опубликовано 02.11.2013 21:27
|
![]() Персонал сайта ![]() Сообщений: 206 Зарегистрирован: 22.06.2011 15:00 |
Итак, обо всём по порядку: 1. Страница «Архив новостей». ![]() С легкостью выводит новости за любой выбранный день, месяц или год. news_archive.php?date=2013-05-04 news_archive.php?date=2013-05 news_archive.php?date=2013 За вывод новостей отвечает стандартная функция render_news(), используется стандартный запрос новостей из версии 7.02.07, добавлен лишь дополнительный диапазон выборки по времени. Возможно некоторым покажется что очень чересчур глуповато выглядит обработчик даты (Скрытый текст: но это на самом деле лишь кубики конструктора, переставляя которые, можно за несколько минут полностью изменить все под каждый конкретный вариант использования). 2. Боковая панель календаря, на котором отмечены все дни содержащие новости. Естественно присутствуют всплывающие подсказки с заголовками новостей и прочим. ![]() Выкладываю самую простейшую версию календаря, поскольку за несколько лет их было сделано просто бесчисленное количество, в самых различных вариациях. Есть варианты полностью на ajax, варианты с датами в виде year=2013&month=11&day=02 и т.д. Все давно работает на различных городских новостных сайтах, ну и возможно пригодится кому-нибудь ещё. Панель имеет несколько простых настроек. Найдёте их в небольшом конфиге в файле панели. ========== В первую очередь, это настройка подсветки выходных, кому как нравится. $weekend_highlight = 0; 0 = выкл 1 = воскресенья 2 = субботы и воскресенья ========== Количество новостей в подсказке, для одного дня. Если какой-то день вдруг окажется очень богат на новости, то выведется лишь указанное количество и к списку добавится кнопка наподобие [перейти ко всем новостям за этот день] $limit = 10; ========== Длина, до которой обрезается заголовок новости (в подсказке) $subject_lenght = 40; ========== Направление всплывающих подсказок. Выбираем в зависимости от того в каком сайдбаре вы разместите календарь. $side = "left"; Возможные варианты: up, down, left, right ========== Данная версия календаря не отслеживает дату из строки запроса, поэтому перейдя в архив допустим на месяц назад — календарь остается на текущем месяце. Так сделано по многочисленным пожеланиям 3. Боковая панель архива новостей по месяцам. Выводятся только месяцы содержащие новости. Естественно с учетом уровней доступа. ![]() Имеются шесть возможных вариантов вывода, выбираем наиболее подходящий в конфиге. $news_archive_type = 2; Возможные варианты (в вариантах 3, 4, 5 и 6 — год является ссылкой на архив года) 1 2013-12 2013-11 2013-10 2013-09 2013-08 2 Декабрь 2013 Ноябрь 2013 Октябрь 2013 Сентябрь 2013 Август 2013 3 2013: 1 2 3 4 5 4 2013 01 02 03 04 05 5 2013 янв, фев, мар, апр, май 6 2013 > Январь, Февраль, Март, Апрель, Май ========== Установка: Cоздаем в админке панели из файлов news_calendar_panel.php и news_archives_panel.php, а файл news_archive.php кидаем в корень сайта. ========== Вообщем дегустируем, пробуем, комментируем. Если серьезных замечаний не будет — добавим в базу аддонов.
Chief присоединено следующее:файл:
Chief присоединено следующее:изображения:
У богатых людей — большая библиотека. У бедных людей — большой телевизор.
|
|
|
Zaxap |
Опубликовано 03.11.2013 02:42
|
![]() Элита ![]() Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
Зашибенски! Сам хотел попробовать сделать календарь новостей, но...не буду![]() Зло не дремлет, а я добрый...
|
|
|
jikaka |
Опубликовано 03.11.2013 03:07
|
![]() Супер Администратор ![]() Разработчики ![]() Сообщений: 4849 Зарегистрирован: 26.07.2010 12:10 |
огромное спасибо, ты еще бы в базу закинул![]() |
|
|
Chief |
Опубликовано 03.11.2013 04:19
|
![]() Персонал сайта ![]() Сообщений: 206 Зарегистрирован: 22.06.2011 15:00 |
ты еще бы в базу закинул Сначала нужно проверить и оттестить, мало ли чего.. а то я кучу специфических примочек из кода выкинул, мож чего лишнего зацепил. Зато почти построчно откомментировал код, так что даже Оформление из календаря тоже удалил, лишь слегка подогнав под Stylo, изначально же сверстан под этот календарик, кому нравится — можно за пару минут подправить CSS. В данной версии календаря выводятся даты предыдущего и следующих месяцев, но выборка новостей по ним не идет. То есть если есть новость за 31-е число прошлого месяца, это никак визуально не отметится, а кликнув на ячейку и перейдя в архив — вдруг окажется что были новости. Кому не нравится — могут удалить содержимое этих ячеек, оставив лишь <td class='off'></td> Любители ajax могут совместить это дело с Ajax Calender Panel. Но нужно кой чего подправить, чтобы нормально грузились подсказки (Скрытый текст: это Захару домашнее задание). Из панели архива можно выкинуть все неиспользуемые стили, ну или разбить на несколько разных панелей. Или же вставить горизонтальный архив в футер, как в некоторых темах для Wordpress.. Всё-таки главная фишка в файле архива, а уж как выводить на него ссылки — вопрос не столь серьёзный, можно хоть вручную в панели прописывать. З.Ы. У HobbyMan есть панель архива.. но она выводит новости без учета прав доступа и даты начала-окончания, при этом количество запросов просто зашкаливает.
Chief присоединено следующее:изображение:
У богатых людей — большая библиотека. У бедных людей — большой телевизор.
|
|
|
Zaxap |
Опубликовано 03.11.2013 10:00
|
![]() Элита ![]() Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
Почему даже я? о.о Мне как раз и так понятно, что к чему... Я 2 года назад - да, а сейчас я и так пойму ![]() --- У меня тут ошибки есть, заметил: nyandex.ru/news_archive.php Undefined index: news_in_year Строка: 174 nyandex.ru/news_archive.php Undefined index: months2 Строка: 30 nyandex.ru/news_archive.php Undefined index: news_in_year Строка: 145 nyandex.ru/news_archive.php include(infusions/news_calendar_panel/locale/Russian.php): failed to open stream: No such file or directory Строка: 25 Изменил(а) Zaxap, 03.11.2013 10:50 Зло не дремлет, а я добрый...
|
|
|
Chief |
Опубликовано 03.11.2013 12:39
|
![]() Персонал сайта ![]() Сообщений: 206 Зарегистрирован: 22.06.2011 15:00 |
include(infusions/news_calendar_panel/locale/Russian.php): Ну ты ж видимо залил только панель архива, а локаль берется из панели календаря :) замени в файле news_archive.php if (file_exists(INFUSIONS."news_calendar_panel/locale/".$settings['locale'].".php")) { на $locale['months2'] = " |Января|Февраля|Марта|Апреля|Мая|Июня|Июля|Августа|Сентября|Октября|Ноября|Декабря"; У богатых людей — большая библиотека. У бедных людей — большой телевизор.
|
|
|
Zaxap |
Опубликовано 03.11.2013 13:06
|
![]() Элита ![]() Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
да я залил все содержимое...не подключал панели (не выводил их на сайт), может, в этом дело...но заливал я все))
Зло не дремлет, а я добрый...
|
|
|
Chief |
Опубликовано 03.11.2013 13:22
|
![]() Персонал сайта ![]() Сообщений: 206 Зарегистрирован: 22.06.2011 15:00 |
Проверил на четырех разных установках, с разными версиями движка. Проблем с локалью не обнаружил.
У богатых людей — большая библиотека. У бедных людей — большой телевизор.
|
|
Поделиться этой темой | |
Социальные закладки: |
![]() ![]() ![]() ![]() ![]() ![]() |
URL: | |
BBcode: | |
HTML: |
Перейти на форум: |