Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вопрос? Автопереход в новость после ее добавления

Тема в разделе "Вопросы- ответы", создана пользователем Estomel, 14 дек 2025.

14.12.25 в 03:14
17.12.25 в 23:03
3
919
0
  1. TopicStarter Overlay
    Estomel

    Estomel Посетитель

    Регистрация:
    5 фев 2018
    Сообщения:
    95
    Лучших ответов:
    0
    Рейтинги:
    +37 / 3 / -0
    Всем привет

    DataLife Engine: 19.0

    При создании новости появляется информация о предложении создать ещё одну новость или вернуться на главную

    cxccl11sTAyoRB-lcRHqXUy4EtdBgxQeNeogkMVbMt-zqA6cegUEDJJV2HGwltVTAIY_QbR-5LAkAsjDIYv3q1EO.jpg

    Можно ли как нибудь заставить актуальную версию dle переходить сразу в только что созданную мной новость без вот таких сообщений?

    Пробовал разные хаки чтобы это исправить но они все на очень старые версии dle и на 19 версии не работают.
     
  2. Kandi

    Kandi Бывалый

    Регистрация:
    19 апр 2019
    Сообщения:
    593
    Лучших ответов:
    1
    Рейтинги:
    +121 / 43 / -0
    Estomel думаю, физически это возможно, но нужно уметь в PHP/DLE, либо найти того кто умеет и поможет
     
  3. Nimad

    Nimad Зелёный

    Регистрация:
    29 дек 2017
    Сообщения:
    14
    Лучших ответов:
    0
    Рейтинги:
    +2 / 0 / -0
    Патч для твоего файла engine/inc/addnews.php (админка)
    Найди самый низ в elseif( $action == "doaddnews" ), там где:


    Код:
    $_SESSION['dp']['dp_'.md5($_POST['duplicateprotection'])] = true;
    
    msg( "success", ... );
    Замени этот блок на:


    Код:
    $_SESSION['dp']['dp_'.md5($_POST['duplicateprotection'])] = true;
    
    // === АВТОРЕДИРЕКТ ПОСЛЕ ДОБАВЛЕНИЯ ===
    // 1) на созданную новость
    $redirect_url = $full_link;
    
    // если вдруг вернулся относительный путь — делаем абсолютный
    if (strpos($redirect_url, 'http://') !== 0 && strpos($redirect_url, 'https://') !== 0) {
       $redirect_url = $config['http_home_url'] . ltrim($redirect_url, '/');
    }
    
    header("Location: " . $redirect_url);
    exit;
    Если хочешь редиректить в редактирование, замени $redirect_url на:


    Код:
    $redirect_url = $config['http_home_url'] . "admin.php?mod=editnews&action=editnews&id=" . intval($id);
    Важно ЭТО работает из Админки.
    Для пользовательского шаблона:
    2) Добавь создание $full_link всегда (после вставки/обновления, когда известен $insert_id)
    Сразу перед строкой:


    Код:
    msgbox( $lang['add_ok'], ...
    вставь:


    Код:
    // === BUILD FULL LINK FOR REDIRECT ===
    $redirect_id = intval($insert_id ? $insert_id : $row['id']);
    
    if ($redirect_id > 0) {
    
       $r = $db->super_query("SELECT id, date, category, alt_name FROM " . PREFIX . "_post WHERE id='{$redirect_id}' LIMIT 1");
    
       if (!empty($r['id'])) {
    
           $r['date'] = strtotime($r['date']);
    
           $full_link = DLEUrl::BuildUrl('showfull', [
               'category'  => get_url($r['category']),
               'year'      => date('Y', $r['date']),
               'month'     => date('m', $r['date']),
               'day'       => date('d', $r['date']),
               'news_name' => $r['alt_name'],
               'newsid'    => $r['id']
           ]);
    
           // абсолютный URL, если вернулся относительный
           if (strpos($full_link, 'http://') !== 0 && strpos($full_link, 'https://') !== 0) {
               $full_link = $config['http_home_url'] . ltrim($full_link, '/');
           }
    
           header("Location: " . $full_link);
           exit;
       }
    }
    3) И сразу после этого удали/закомментируй старый msgbox(...), иначе он уже не выполнится (после exit).
    Поверка была на DLE 19.0
     
    • Нравится Нравится x 2
  4. Nimad

    Nimad Зелёный

    Регистрация:
    29 дек 2017
    Сообщения:
    14
    Лучших ответов:
    0
    Рейтинги:
    +2 / 0 / -0
    Но мне кажеться логичнее бы было в твой блок добавить вопрос с переходом в новость! Что бы не заниматься принудиловкой!
     
Яндекс.Метрика