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

Модуль Следующая и предыдущая публикация [9.2-10.0]

yuazakharov

Постоялец
Регистрация
22 Янв 2013
Сообщения
300
Реакции
159
Автор: Rave
Версия движка DLE: 9.2 - 10.0 (на 10.4 работает)

Описание:
Добавляет ссылки перехода на предыдущую и следующую новость с заголовком в полной публикации, тем самым поможет сделать перелинковку внутренних страниц сайта на DLE.


Исходник приложил


И собственно моя проблема.
DLE 10.4
Делаю небольшую правку на модуль "Следующая и предыдущая публикация". Добавил AND category='".$row['category'] для отображения только из текущей категории. После этой правки это теперь не отображается:

if ($nextid > $row_max['id']) {
$tpl->set('{next.title}', 'Это последняя публикация!');
}
if ($previd < 1) {
$tpl->set('{prev.title}', 'Это первая публикация!');
}

Тут надо вроде как-то так сделать? if ($row['category'] > ... ). Дальше требуется помощь знатоков.

Код:
$previd = $row['id'] - 1;
$nextid = $row['id'] + 1;
$currentcat = $row['category'];
$row_next = $db->get_row($db->query("SELECT id,title,alt_name,date,category FROM " . PREFIX . "_post WHERE `id`='$nextid' AND category='".$row['category']."'"));
$row_prev = $db->get_row($db->query("SELECT id,title,alt_name,date,category FROM " . PREFIX . "_post WHERE `id`='$previd' AND category='".$row['category']."'"));
$row_max = $db->get_row($db->query("SELECT id FROM " . PREFIX . "_post ORDER BY id DESC"));

if ($config['allow_alt_url'] == "yes") {
    if ($config['seo_type'] == 1 OR $config['seo_type'] == 2) {
        if ($row['category'] and $config['seo_type'] == 2) {
            if ($nextid > $row_max['id']) {
                $next_link = '#';
            }
            else {
                $next_link = $config['http_home_url'] . get_url($row_next['category']) . "/" . $row_next['id'] . "-" . $row_next['alt_name'] . ".html";
            }

            if ($previd < 1) {
                $prev_link = '#';
            }
            else {
                $prev_link = $config['http_home_url'] . get_url($row_prev['category']) . "/" . $row_prev['id'] . "-" . $row_prev['alt_name'] . ".html";
            }
        }
        else {
            if ($nextid > $row_max['id']) {
                $next_link = '#';
            }
            else {
                $next_link = $config['http_home_url'] . $row_next['id'] . "-" . $row_next['alt_name'] . ".html";
            }

            if ($previd < 1) {
                $prev_link = '#';
            }
            else {
                $prev_link = $config['http_home_url'] . $row_prev['id'] . "-" . $row_prev['alt_name'] . ".html";
            }
        }
    }
    else {
        if ($nextid > $row_max['id']) {
            $next_link = '#';
        }
        else {
            $next_link = $config['http_home_url'] . date('Y/m/d/', $row_next['date']) . $row_next['alt_name'] . ".html";
        }

        if ($previd < 1) {
            $prev_link = '#';
        }
        else {
            $prev_link = $config['http_home_url'] . date('Y/m/d/', $row_prev['date']) . $row_prev['alt_name'] . ".html";
        }
    }
}
else {
    if ($nextid > $row_max['id']) {
        $next_link = '#';
    }
    else {
        $next_link = $config['http_home_url'] . "index.php?newsid=" . $row_next['id'];
    }

    if ($previd < 1) {
        $prev_link = '#';
    }
    else {
        $prev_link = $config['http_home_url'] . "index.php?newsid=" . $row_prev['id'];
    }
}

if ($nextid > $row_max['id']) {
    $tpl->set('{next.title}', 'Это последняя публикация!');
}
else {
    $tpl->set('{next.title}', $row_next['title']);
}

if ($previd < 1) {
    $tpl->set('{prev.title}', 'Это первая публикация!');
}
else {
    $tpl->set('{prev.title}', $row_prev['title']);
}

$tpl->set('{next.link}', $next_link);
$tpl->set('{prev.link}', $prev_link);
 

Вложения

  • nextprev-news.zip
    1,6 KB · Просмотры: 1
Последнее редактирование:
Не плохо бы такое в тему модуля писать или приложить его...
 
Не плохо бы такое в тему модуля писать или приложить его...
Могу конечно приложить оформив как надо.

Модераторы, поменяйте пожалуйста префикс на "Модуль", и заголовок на "Следующая и предыдущая публикация" [9.2-10.0]
 
Подскажите пожалуйста что дальше писать, редактировать к коде
 
Подскажите пожалуйста что дальше писать, редактировать к коде
работает на 10.4 ? как бы не так, тип конфига поменялся с 10.2 и это
PHP:
$config['allow_alt_url'] == "yes"
уже не работает на DLE >= 10.2 нужно так
PHP:
$config['allow_alt_url']
а еще лучше
PHP:
$allow_alt_url = ($this->config['version_id'] >= '10.2') ? $this->config['allow_alt_url'] == '1' : $this->config['allow_alt_url'] == "yes";
и использовать вместо
PHP:
$config['allow_alt_url'] == "yes"

Горе кодеры.
 
Назад
Сверху