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

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

Вопрос? Помогите с php кодом

Тема в разделе "Вопросы- ответы", создана пользователем maxtv, 28 мар 2018.

28.03.18 в 22:18
28.03.18 в 23:11
1
245
0
  1. TopicStarter Overlay
    maxtv

    maxtv Новичок

    Регистрация:
    28 мар 2018
    Сообщения:
    27
    Лучших ответов:
    0
    Рейтинги:
    +2 / 0 / -0
    Привет,есть модуль рецензии помогите поменять местами список и добавление рецензии
    Нужно чтобы форма добавление была сверху


    PHP:
    <?
    /*
    =============================================================================
    Модуль: Reviews - Отзывы и рецензии для DLE
    =============================================================================
    Автор модуля: iNol
    =============================================================================
    Файл: /modules/reviews.php
    =============================================================================
    Версия модуля: v0.9
    =============================================================================
    */

    if(!defined('DATALIFEENGINE')) die("Hacking attempt!");

    include 
    ENGINE_DIR "/data/reviews_opt.php";
    include 
    "language/Russian/reviews.lng";

    //Собираем переменные
    $clear is_numeric($reviews_opt['r_cache']) ? intval($reviews_opt['r_cache']) : false; if($clear === false) return;
    $message is_numeric($reviews_opt['r_message']) ? intval($reviews_opt['r_message']) : false; if($message === false) return;
    $newsid is_numeric($newsid) ? intval($newsid) : false; if($newsid === false) return;
    $userid $member_id['user_id'];
    $username $member_id['name'];
    $usergroup $member_id['user_group'];
    $userphoto $member_id['foto'];
    $prefix $reviews_opt['r_prefix'];

    //Настройки кэша
    $allow_cache = ($config['version_id'] >= '10.2') ? $config['allow_cache'] == '1' $config['allow_cache'] == "yes";
    $cache_change false;
    if(!
    $allow_cache)
    {
        if (
    $config['version_id'] >= '10.2'$config['allow_cache'] = '1';
        else 
    $config['allow_cache'] = "yes";
        
    $cache_change true;
    }
    $config['clear_cache'] = (intval($config['clear_cache']) > 1) ? intval($config['clear_cache']) : 0$clear_change false;
    if(
    $config['clear_cache'] == 0)
    {
        
    $config['clear_cache'] = is_numeric($clear) ? intval($clear) : 10080;
        
    $clear_change true;
    }
    $reviews_cache dle_cache($prefix "_revcache_" $newsid$config['skin']);
    if(
    $reviews_cache !== false)
    {
        echo 
    $reviews_cache;
        goto 
    form;
    }

    //Выводим список рецензий
    $select $db->query("SELECT * FROM ".PREFIX."_reviews WHERE newsid='$newsid' AND approve='1' ORDER BY RAND() LIMIT 5000");
    if(
    $db->num_rows($select)>0)
    {
        while(
    $row $db->get_row($select))
        {   
            
    $revid $row['id'];
            
    $rating $row['rating'];
            
    $date $row['date'];   
            if(
    $rating >= 7$color $reviews_opt['r_good'];
            elseif(
    $rating <= 3$color $reviews_opt['r_bad'];
            else 
    $color $reviews_opt['r_neutral'];
            
    $tpl->load_template('reviews_full.tpl');
            
    $tpl->set("{user}"$row['author']);
            
    $tpl->set("{date}"$date);
            
    $avatar = empty($row['avatar']) ? $config['http_home_url'] . 'templates/' $config['skin'] . '/dleimages/noavatar.png' $userphoto;
            
    $tpl->set("{avatar}"$avatar);
            
    $tpl->set("{title}"$row['title']);
            
    $tpl->set("{review}"str_replace(array("&lt;b&gt;","&lt;/b&gt;","&lt;i&gt;","&lt;/i&gt;","&lt;u&gt;","&lt;/u&gt;"),array("<b>","</b>","<i>","</i>","<u>","</u>"),$row['review']));
            
    $tpl->set("{rating}"$row['rating']);
            
    $tools '<a target="_blank" href="'.$config['http_home_url'].$config['admin_path'].'?mod=reviews&action=edit&id='.$revid.'">Редактировать</a> | <a target="_blank" href="'.$config['http_home_url'].$config['admin_path'].'?mod=reviews&action=reject&id='.$revid.'&newsid='.$newsid.'">Снять с публикации</a> | <a target="_blank" href="'.$config['http_home_url'].$config['admin_path'].'?mod=reviews&action=archive&id='.$revid.'&newsid='.$newsid.'">В архив</a>';
            
    $tpl->set("{admin}"$tools);
            
    $tpl->set("{color}"$color);
            
    $tpl->compile('reviews');
            
    $output $tpl->result['reviews'];
            
    $tpl->clear();
        }
        echo 
    $output;
        
    //Создаем кэш
        
    create_cache($prefix "_revcache_" $newsid$output$config['skin'], false);
        if (
    $cache_change)    $config['allow_cache'] = false;
        if (
    $clear_change)    $config['clear_cache'] = 0;
    }
    $db->free($select);

    form:
    // Показываем форму добавления рецензии в соответствии с настройками групп пользователей
    $groups explode(","$reviews_opt['r_groups']);
    foreach(
    $groups as $key => $value)
        {   
            if(
    $usergroup === $value)
            {
                
    $is_allowed true;
                break;
            }
            else 
    $is_allowed false;
        }

    if(
    $is_allowed === false)
    {
        
    $tpl->load_template('info.tpl');
        
    $tpl->set("{title}"$reviews_lng['r_add_review']);
        
    $tpl->set("{error}"$reviews_lng['r_unreg']);
        
    $tpl->compile('info');
        
    $output $tpl->result['info'];
        
    $tpl->clear();
        echo 
    $output;
    }
    else
    {
        
    $token rand(10000,99999);
        
    $tpl->load_template('reviews_full_add.tpl');
        
    $tpl->set("{newsid}"$newsid);
        
    $tpl->set("{authorid}"$userid);
        
    $tpl->set("{authorname}"$username);
        
    $tpl->set("{avatar}"$userphoto);
        
    $tpl->set("{token}"$token);
        
    $tpl->compile('reviews_add');
        
    $output $tpl->result['reviews_add'];
        echo 
    $output;

        
    // Обрабатываем добавленную рецензию
        
    if(isset($_POST['addrev']) and isset($_POST['token']))
        {
            if(
    $_POST['token'] == $_SESSION['lasttoken']) $do_nothing true;
            else
            {
                
    $_SESSION['lasttoken'] = $_POST['token'];

                if(!empty(
    $_POST['review']))
                {
                    
    $title preg_replace('/([^\s]{40})[^\s]+/''',htmlspecialchars(str_replace("script","скрипт",$_POST['title']),ENT_QUOTES,$config['charset']));
                    
    $review nl2br(preg_replace('/([^\s]{50})[^\s]+/''',htmlspecialchars(str_replace("script","скрипт",$_POST['review']),ENT_QUOTES,$config['charset'])));
                    
    $rating intval($_POST['rating']);
                    
    $appgroups explode(','$reviews_opt['r_approved']);
                    foreach(
    $appgroups as $key => $value)
                    {   
                        if(
    $usergroup == $value)
                        {
                            
    $is_approved true;
                            break;
                        }
                        else 
    $is_approved false;
                    }
                    if(
    $is_approved == true$revadd $db->query("INSERT INTO ".PREFIX."_reviews (newsid, date, userid, author, avatar, title, review, rating, approve) VALUES ('$newsid', NOW(), '$userid', '$username', '$userphoto', '$title', '$review', '$rating', '1')");
                    else 
    $revadd $db->query("INSERT INTO ".PREFIX."_reviews (newsid, date, userid, author, avatar, title, review, rating, approve) VALUES ('$newsid', NOW(), '$userid', '$username', '$userphoto', '$title', '$review', '$rating', '0')");
                    if(
    $revadd)
                    {   
                        
    clear_cache($reviews_opt["r_prefix"] . "_revcache_" $newsid$config['skin']);
                        
    $tpl->load_template('info.tpl');
                        
    $tpl->set("{title}"$reviews_lng['r_added']);
                        if(
    $is_approved == true$tpl->set("{error}"$reviews_lng['r_nocheck']);
                        else 
    $tpl->set("{error}"$reviews_lng['r_check']);
                        
    $tpl->compile('info');
                        
    $output $tpl->result['info'];
                        
    $tpl->clear();
                        echo 
    $output;

                        
    // Отправляем письмецо
                        
    if($message == 1)
                        {
                            
    $news_title $db->query("SELECT title FROM ".PREFIX."_post WHERE id='$newsid'");
                            
    $data $db->get_row($news_title);
                            
    $movie $data['title'];
                            
    $now time();
                            
    $subject $reviews_lng['r_mail1'] . ' ' $movie ' ' $reviews_lng['r_mail2'];
                            
    $subject $db->safesql($subject);
                            
    $from 'Reviews checker';
                            
    $from $db->safesql($from);
                            
    $text $reviews_lng['r_mail3'] . ' <b><a href="' $config['http_home_url'] . 'user/' $username '/">' $username '</a></b> ' $reviews_lng['r_mail4'] . ' <h3>"' $movie '"</h3><p><a href="' $config['admin_path'] . '?mod=reviews" target="_blank">' $reviews_lng['r_mail5'] . '</a><p>';
                            
    $text $db->safesql($text);
                            
    $user_id explode(","$reviews_opt['r_users']);
                            foreach(
    $user_id as $key => $value)
                            {
                                
    $value intval($value);
                                
    $db->query("INSERT into " PREFIX "_pm (subj, text, user, user_from, date, pm_read, folder) VALUES ('$subject', '$text', '$value', '$from', '$now', '0', 'inbox')");
                                
    $db->query("UPDATE " USERPREFIX "_users set pm_unread = pm_unread + 1, pm_all = pm_all+1  where user_id = '$value'");
                            }       
                        }
                    }
                    else echo 
    $reviews_lng["r_error_db"];
                }
                else
                {
                    
    $tpl->load_template('info.tpl');
                    
    $tpl->set("{title}"$reviews_lng['r_error']);
                    
    $tpl->set("{error}"$reviews_lng['r_empty_review']);
                    
    $tpl->compile('info');
                    
    $output $tpl->result['info'];
                    
    $tpl->clear();
                    echo 
    $output;
                }
            }
        }
    }
    ?>
     
  2. TopicStarter Overlay
    maxtv

    maxtv Новичок

    Регистрация:
    28 мар 2018
    Сообщения:
    27
    Лучших ответов:
    0
    Рейтинги:
    +2 / 0 / -0
    Сделал так
    PHP:
    <?
    /*
    =============================================================================
    Модуль: Reviews - Отзывы и рецензии для DLE
    =============================================================================
    Автор модуля: iNol
    =============================================================================
    Файл: /modules/reviews.php
    =============================================================================
    Версия модуля: v0.9
    =============================================================================
    */

    if(!defined('DATALIFEENGINE')) die("Hacking attempt!");

    include 
    ENGINE_DIR "/data/reviews_opt.php";
    include 
    "language/Russian/reviews.lng";

    //Собираем переменные
    $clear is_numeric($reviews_opt['r_cache']) ? intval($reviews_opt['r_cache']) : false; if($clear === false) return;
    $message is_numeric($reviews_opt['r_message']) ? intval($reviews_opt['r_message']) : false; if($message === false) return;
    $newsid is_numeric($newsid) ? intval($newsid) : false; if($newsid === false) return;
    $userid $member_id['user_id'];
    $username $member_id['name'];
    $usergroup $member_id['user_group'];
    $userphoto $member_id['foto'];
    $prefix $reviews_opt['r_prefix'];

    //Настройки кэша
    $allow_cache = ($config['version_id'] >= '10.2') ? $config['allow_cache'] == '1' $config['allow_cache'] == "yes";
    $cache_change false;
    if(!
    $allow_cache)
    {
        if (
    $config['version_id'] >= '10.2'$config['allow_cache'] = '1';
        else 
    $config['allow_cache'] = "yes";
        
    $cache_change true;
    }
    $config['clear_cache'] = (intval($config['clear_cache']) > 1) ? intval($config['clear_cache']) : 0$clear_change false;
    if(
    $config['clear_cache'] == 0)
    {
        
    $config['clear_cache'] = is_numeric($clear) ? intval($clear) : 10080;
        
    $clear_change true;
    }
    $reviews_cache dle_cache($prefix "_revcache_" $newsid$config['skin']);
    if(
    $reviews_cache !== false)
    {
        echo 
    $reviews_cache;
        goto 
    form;
    }


    form:
    // Показываем форму добавления рецензии в соответствии с настройками групп пользователей
    $groups explode(","$reviews_opt['r_groups']);
    foreach(
    $groups as $key => $value)
        {   
            if(
    $usergroup === $value)
            {
                
    $is_allowed true;
                break;
            }
            else 
    $is_allowed false;
        }

    if(
    $is_allowed === false)
    {
        
    $tpl->load_template('info.tpl');
        
    $tpl->set("{title}"$reviews_lng['r_add_review']);
        
    $tpl->set("{error}"$reviews_lng['r_unreg']);
        
    $tpl->compile('info');
        
    $output $tpl->result['info'];
        
    $tpl->clear();
        echo 
    $output;
    }
    else
    {
        
    $token rand(10000,99999);
        
    $tpl->load_template('reviews_full_add.tpl');
        
    $tpl->set("{newsid}"$newsid);
        
    $tpl->set("{authorid}"$userid);
        
    $tpl->set("{authorname}"$username);
        
    $tpl->set("{avatar}"$userphoto);
        
    $tpl->set("{token}"$token);
        
    $tpl->compile('reviews_add');
        
    $output $tpl->result['reviews_add'];
        echo 
    $output;

        
    // Обрабатываем добавленную рецензию
        
    if(isset($_POST['addrev']) and isset($_POST['token']))
        {
            if(
    $_POST['token'] == $_SESSION['lasttoken']) $do_nothing true;
            else
            {
                
    $_SESSION['lasttoken'] = $_POST['token'];

                if(!empty(
    $_POST['review']))
                {
                    
    $title preg_replace('/([^\s]{40})[^\s]+/''',htmlspecialchars(str_replace("script","скрипт",$_POST['title']),ENT_QUOTES,$config['charset']));
                    
    $review nl2br(preg_replace('/([^\s]{50})[^\s]+/''',htmlspecialchars(str_replace("script","скрипт",$_POST['review']),ENT_QUOTES,$config['charset'])));
                    
    $rating intval($_POST['rating']);
                    
    $appgroups explode(','$reviews_opt['r_approved']);
                    foreach(
    $appgroups as $key => $value)
                    {   
                        if(
    $usergroup == $value)
                        {
                            
    $is_approved true;
                            break;
                        }
                        else 
    $is_approved false;
                    }
                    if(
    $is_approved == true$revadd $db->query("INSERT INTO ".PREFIX."_reviews (newsid, date, userid, author, avatar, title, review, rating, approve) VALUES ('$newsid', NOW(), '$userid', '$username', '$userphoto', '$title', '$review', '$rating', '1')");
                    else 
    $revadd $db->query("INSERT INTO ".PREFIX."_reviews (newsid, date, userid, author, avatar, title, review, rating, approve) VALUES ('$newsid', NOW(), '$userid', '$username', '$userphoto', '$title', '$review', '$rating', '0')");
                    if(
    $revadd)
                    {   
                        
    clear_cache($reviews_opt["r_prefix"] . "_revcache_" $newsid$config['skin']);
                        
    $tpl->load_template('info.tpl');
                        
    $tpl->set("{title}"$reviews_lng['r_added']);
                        if(
    $is_approved == true$tpl->set("{error}"$reviews_lng['r_nocheck']);
                        else 
    $tpl->set("{error}"$reviews_lng['r_check']);
                        
    $tpl->compile('info');
                        
    $output $tpl->result['info'];
                        
    $tpl->clear();
                        echo 
    $output;

                        
    // Отправляем письмецо
                        
    if($message == 1)
                        {
                            
    $news_title $db->query("SELECT title FROM ".PREFIX."_post WHERE id='$newsid'");
                            
    $data $db->get_row($news_title);
                            
    $movie $data['title'];
                            
    $now time();
                            
    $subject $reviews_lng['r_mail1'] . ' ' $movie ' ' $reviews_lng['r_mail2'];
                            
    $subject $db->safesql($subject);
                            
    $from 'Reviews checker';
                            
    $from $db->safesql($from);
                            
    $text $reviews_lng['r_mail3'] . ' <b><a href="' $config['http_home_url'] . 'user/' $username '/">' $username '</a></b> ' $reviews_lng['r_mail4'] . ' <h3>"' $movie '"</h3><p><a href="' $config['admin_path'] . '?mod=reviews" target="_blank">' $reviews_lng['r_mail5'] . '</a><p>';
                            
    $text $db->safesql($text);
                            
    $user_id explode(","$reviews_opt['r_users']);
                            foreach(
    $user_id as $key => $value)
                            {
                                
    $value intval($value);
                                
    $db->query("INSERT into " PREFIX "_pm (subj, text, user, user_from, date, pm_read, folder) VALUES ('$subject', '$text', '$value', '$from', '$now', '0', 'inbox')");
                                
    $db->query("UPDATE " USERPREFIX "_users set pm_unread = pm_unread + 1, pm_all = pm_all+1  where user_id = '$value'");
                            }       
                        }
                    }
                    else echo 
    $reviews_lng["r_error_db"];
                }
                else
                {
                    
    $tpl->load_template('info.tpl');
                    
    $tpl->set("{title}"$reviews_lng['r_error']);
                    
    $tpl->set("{error}"$reviews_lng['r_empty_review']);
                    
    $tpl->compile('info');
                    
    $output $tpl->result['info'];
                    
    $tpl->clear();
                    echo 
    $output;
                }
            }
        }
    }




    //Выводим список рецензий
    $select $db->query("SELECT * FROM ".PREFIX."_reviews WHERE newsid='$newsid' AND approve='1' ORDER BY RAND() LIMIT 5000");
    if(
    $db->num_rows($select)>0)
    {
        while(
    $row $db->get_row($select))
        {   
            
    $revid $row['id'];
            
    $rating $row['rating'];
            
    $date $row['date'];   
            if(
    $rating >= 7$color $reviews_opt['r_good'];
            elseif(
    $rating <= 3$color $reviews_opt['r_bad'];
            else 
    $color $reviews_opt['r_neutral'];
            
    $tpl->load_template('reviews_full.tpl');
            
    $tpl->set("{user}"$row['author']);
            
    $tpl->set("{date}"$date);
            
    $avatar = empty($row['avatar']) ? $config['http_home_url'] . 'templates/' $config['skin'] . '/dleimages/noavatar.png' $userphoto;
            
    $tpl->set("{avatar}"$avatar);
            
    $tpl->set("{title}"$row['title']);
            
    $tpl->set("{review}"str_replace(array("&lt;b&gt;","&lt;/b&gt;","&lt;i&gt;","&lt;/i&gt;","&lt;u&gt;","&lt;/u&gt;"),array("<b>","</b>","<i>","</i>","<u>","</u>"),$row['review']));
            
    $tpl->set("{rating}"$row['rating']);
            
    $tools '<a target="_blank" href="'.$config['http_home_url'].$config['admin_path'].'?mod=reviews&action=edit&id='.$revid.'">Редактировать</a> | <a target="_blank" href="'.$config['http_home_url'].$config['admin_path'].'?mod=reviews&action=reject&id='.$revid.'&newsid='.$newsid.'">Снять с публикации</a> | <a target="_blank" href="'.$config['http_home_url'].$config['admin_path'].'?mod=reviews&action=archive&id='.$revid.'&newsid='.$newsid.'">В архив</a>';
            
    $tpl->set("{admin}"$tools);
            
    $tpl->set("{color}"$color);
            
    $tpl->compile('reviews');
            
    $output $tpl->result['reviews'];
            
    $tpl->clear();
        }
        echo 
    $output;
        
    //Создаем кэш
        
    create_cache($prefix "_revcache_" $newsid$output$config['skin'], false);
        if (
    $cache_change)    $config['allow_cache'] = false;
        if (
    $clear_change)    $config['clear_cache'] = 0;
    }
    $db->free($select);

    ?>
    Вроде всё нормально,но когда добавляешь отзыв,то они поевляються сверху.а когда кэш почистишь и всё нормально
     
Похожие темы
  1. Elus1ve
    Ответов:
    12
    Просмотров:
    1.509
  2. Elus1ve
    Ответов:
    0
    Просмотров:
    388
  3. Hoolenado
    Ответов:
    18
    Просмотров:
    1.770
Загрузка...
Яндекс.Метрика