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

Тема в разделе "DLE", создана пользователем yuazakharov, 6 июл 2015.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. yuazakharov

    yuazakharov

    Регистр.:
    22 янв 2013
    Сообщения:
    281
    Симпатии:
    131
    Автор: 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);
     

    Вложения:

    Последнее редактирование: 6 июл 2015
    Горбушка нравится это.
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Не плохо бы такое в тему модуля писать или приложить его...
     
  3. yuazakharov

    yuazakharov

    Регистр.:
    22 янв 2013
    Сообщения:
    281
    Симпатии:
    131
    Могу конечно приложить оформив как надо.

    Модераторы, поменяйте пожалуйста префикс на "Модуль", и заголовок на "Следующая и предыдущая публикация" [9.2-10.0]
     
    Горбушка нравится это.
  4. yuazakharov

    yuazakharov

    Регистр.:
    22 янв 2013
    Сообщения:
    281
    Симпатии:
    131
    Подскажите пожалуйста что дальше писать, редактировать к коде
     
  5. Gameer

    Gameer Постоялец

    Регистр.:
    25 апр 2014
    Сообщения:
    120
    Симпатии:
    77
    работает на 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"
    Горе кодеры.
     
    cantsave нравится это.