• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Модуль Свой архив для каждой рубрики

saifym

Постоялец
Регистрация
14 Авг 2013
Сообщения
30
Реакции
18
Добрый день! Потребовалось на одном сайте реализовать вывод своего архива для каждой рубрики (поделить архив на категории).

Протестировано: на DLE 10.1 - 10.2
Автор: saifym
Демо версия: Для просмотра ссылки Войди или Зарегистрируйся (зайдите в какую нибудь рубрику, в правой колонке будет архив)

Архив для рубрик имеет ЧПУ: /news/2014/08/, где news - рубрика

Установка:
1. Скачайте файл catarchives.php, и положите его в папку /engine/modules/
2. Откройте файл engine/engine.php
------------------------
Найдите:

Код:
// ################ Новости за месяц #################
if ($year != '' and $month != '' and $day == '') {

И замените на:

Код:
// ################ Новости за месяц #################
if ($year != '' and $month != '' and $day == '' and !$cat_archives) {
------------------------
Перед:

Код:
// ################ Новости за месяц #################

Добавьте:

Код:
$cat_archives = @$db->safesql ( strip_tags ( $_GET['catarchive'] ) );
           
            if ($year != '' and $month != '' and $day == '' and $cat_archives) {
               
                if ($cstart) {
                    $cstart = $cstart - 1;
                    $cstart = $cstart * $config['news_number'];
                }
                if (intval($month) < 1 OR intval($month) > 12) {
                    header("HTTP/1.0 301 Moved Permanently");
                    header("Location: ".str_replace("index.php","",$_SERVER['PHP_SELF'])."{$year}/01/");
                    die("Redirect");
                }
               
                $url_page = $config['http_home_url'] . $cat_info[$category_id]['alt_name'] . "/" . $year . "/" . $month;
                $user_query = "catarchive=true&amp;category=" . $category_id . "year=" . $year . "&amp;month=" . $month;
               
                $where_category = "category regexp '[[:<:]](" . $category_id . ")[[:>:]]' AND";
               
                $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$where_category} {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$where_category} {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1" . $where_date;
           
            }

3. И последний шаг, если у вас включен ЧПУ, в файле .htaccess

После:

Код:
RewriteEngine On

Добавить:

Код:
RewriteRule ^([^.]+)/([0-9]{4})/([0-9]{2})(/?)+$ index.php?catarchive=true&category=$1&year=$2&month=$3&cstart=1 [L]
RewriteRule ^([^.]+)/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?catarchive=true&category=$1&year=$2&month=$3&cstart=$4 [L]
========================

Использование

{include file="engine/modules/catarchives.php"} -> будет автоматически выводить архив просматриваемой рубрики

Если необходимо вывести архив определенной рубрики, то необходимо подключить модуль так:

{include file="engine/modules/catarchives.php?category=ID"}, где ID - ID необходимой рубрики
 

Вложения

  • catarchives_saifym.rar
    2,7 KB · Просмотры: 4
Назад
Сверху