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

Помощь Как сделать ссылку на случайную новость?

Dagazz

Создатель
Регистрация
24 Янв 2010
Сообщения
41
Реакции
3
Время доброе! Подскажите, как сделать ссылку при нажатии на которую будет открываться случайная новость?

Необходимо чтоб ссылку можно было выводить примерно такого вида:
<a href="/?do=randpost">..</a>

-----------

Ответ на данный вопрос есть в данном посте:
Для просмотра ссылки Войди или Зарегистрируйся

вот только не всё так гладко ..

Там сказано, что в engine/modules/ надо создать randpost.php с содержимым:
PHP:
<?php

if( !defined( 'DATALIFEENGINE' ) AND !LOGED_IN ) {
    die( "Hacking attempt!" );
}

$rand_post = $db->super_query( "SELECT id, title, category, date, alt_name, flag FROM " . PREFIX . "_post ORDER BY RAND() LIMIT 1" );

if( $config['allow_alt_url'] == "yes" ) {
           
    if( $rand_post['flag'] and $config['seo_type'] ) {
               
        if( $rand_post['category'] and $config['seo_type'] == 2 ) {
                   
            $full_link = $config['http_home_url'] . get_url( $rand_post['category'] ) . "/" . $rand_post['id'] . "-" . $rand_post['alt_name'] . ".html";
               
        } else {
                   
            $full_link = $config['http_home_url'] . $rand_post['id'] . "-" . $rand_post['alt_name'] . ".html";
               
        }
           
    } else {
               
        $full_link = $config['http_home_url'] . date( 'Y/m/d/', $rand_post['date'] ) . $rand_post['alt_name'] . ".html";
    }
       
} else {
           
    $full_link = $config['http_home_url'] . "index.php?newsid=" . $rand_post['id'];
       
}

header("Location: ".$full_link);

?>

в engine/engine.php после
Код:
case "deletenews" :

        include ENGINE_DIR . '/modules/deletenews.php';
        break;

Вставить:
Код:
case "randpost" :

        include ENGINE_DIR . '/modules/randpost.php';
        break;

И далее ссылка на случайный пост будет иметь вид: mysite.ru/?do=randpost

----------------

Всё работает/работало, но не на ДЛЕ 9.8 .. На версии 9.8 выдаёт ошибку БД Для просмотра ссылки Войди или Зарегистрируйся . (Другие рекомендации с того поста также пробовались, тажа проблема.)

----------------

Помогите пожалуста разобраться с данной ситуацией.
 
Зайди в бд через phpmyadmin и в таблицу с новостями dle_post добавь поле flag, Раное 1 скорее всего

Или удали flag из кода
За тебя удалил:

PHP:
<?php

if( !defined( 'DATALIFEENGINE' ) AND !LOGED_IN ) {
    die( "Hacking attempt!" );
}

$rand_post = $db->super_query( "SELECT id, title, category, date, alt_name FROM " . PREFIX . "_post ORDER BY RAND() LIMIT 1" );

if( $config['allow_alt_url'] == "yes" ) {
      
    if($config['seo_type'] ) {
          
        if( $rand_post['category'] and $config['seo_type'] == 2 ) {
              
            $full_link = $config['http_home_url'] . get_url( $rand_post['category'] ) . "/" . $rand_post['id'] . "-" . $rand_post['alt_name'] . ".html";
          
        } else {
              
            $full_link = $config['http_home_url'] . $rand_post['id'] . "-" . $rand_post['alt_name'] . ".html";
          
        }
      
    } else {
          
        $full_link = $config['http_home_url'] . date( 'Y/m/d/', $rand_post['date'] ) . $rand_post['alt_name'] . ".html";
    }
  
} else {
      
    $full_link = $config['http_home_url'] . "index.php?newsid=" . $rand_post['id'];
  
}

header("Location: ".$full_link);

?>
 
Последнее редактирование:
Ребят, Вы психи..
Код:
{custom limit="1" order="rand" template="custom"}
И custom.tpl:
Код:
[full-link]<img ... >[/full-link]

Если картинку надо брать из той же новости - милости прошу в мой мануал по слайдеру... Для просмотра ссылки Войди или Зарегистрируйся

По поводу ошибки с флагом, раз уж приспичило править код ДЛЕ, из запроса:
Код:
$rand_post = $db->super_query( "SELECT id, title, category, date, alt_name, flag FROM " . PREFIX . "_post ORDER BY RAND() LIMIT 1" );
Удаляем flag и получаем такой запрос:
Код:
$rand_post = $db->super_query( "SELECT id, title, category, date, alt_name FROM " . PREFIX . "_post ORDER BY RAND() LIMIT 1" );
Строку:
Код:
 if( $rand_post['flag'] and $config['seo_type'] ) {
Заменяем на:
Код:
 if( $config['seo_type'] ) {
ВСЁ!
 
Назад
Сверху