Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Новости пользователя, могут смотреть только авторы, что подправить?

Новости пользователя, могут смотреть только авторы, что подправить?


     29.01.2015    Все вопросы » Общие вопросы по PHP    2834

вопрос
Чувствую замучаю вас, постараюсь сильно не нагружать.
Нужно, что бы новости пользователя, которые находятся по ссылке http://test1.ru/user/admin/news/ , могли смотреть сами пользователи+ админы
Код где править я нашел, но знания не позволяют(((


// ################ Вывод всех новостей пользователя #################
            if ($cstart) {
                
                $cstart = $cstart - 1;
                $cstart = $cstart * $config['news_number'];
            
            }
            
            $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news";
            $user_query = "subaction=allnews&user=" . urlencode ( $user );
            
            if (isset ( $view_template ) and $view_template == "rss") {
                
                $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name FROM " . PREFIX . "_post where {$stop_list}autor = '$user'  ". $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
            
            } else {
                
                if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews'];
                if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews'];
                
                $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}autor = '$user'  ". $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}autor = '$user'  " . $where_date;
            }
            
            $allow_active_news = true;
        
        } elseif ($subaction == 'newposts') {

Ответа пока нет


9 комментариев

FastFud
Юзер

FastFud - 29 января 2015 21:19 -

Я не понял вопрос, в заголовке сказано одно в вопросе другое. Что требуется то?

Sander
PHP-developer

Sander - 29 января 2015 21:31 -

Что непонятного?
Страница http://test1.ru/user/admin/news/ должна быть доступна только хозяину профиля и админам.

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

FastFud
Юзер

FastFud - 29 января 2015 21:58 -

Попробуйте так:
} elseif ($subaction == 'allnews') {
заменить на
} elseif ($subaction == 'allnews' AND $member_id['name']==$user AND $member_id['user_group']==1) {

Kane
Юзер

Kane - 30 января 2015 10:52 -

Тут должно быть OR а не AND а иначе исходя из вашего условия получается что пользователь должен быть автором и админом одновременно

kent
Юзер

kent - 29 января 2015 22:15 -

к сожалению не помогло

Kane
Юзер

Kane - 30 января 2015 10:45 -

// ################ Вывод всех новостей пользователя #################
            if ($cstart) {
                
                $cstart = $cstart - 1;
                $cstart = $cstart * $config['news_number'];
            
            }
            
            $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news";
            $user_query = "subaction=allnews&user=" . urlencode ( $user );
            
            if (isset ( $view_template ) and $view_template == "rss") {
                
                $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name FROM " . PREFIX . "_post where {$stop_list}autor = '$user'  ". $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
            
            } else {
                
                if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews'];
                if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews'];
                
                $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}autor = '$user'  ". $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}autor = '$user'  " . $where_date;
            }
            
            $allow_active_news = true;


Заменить на
// ################ Вывод всех новостей пользователя #################
            if ($member_id['name'] == $user OR $member_id['user_group'] == 1 ) {
                if ($cstart) {
                    
                    $cstart = $cstart - 1;
                    $cstart = $cstart * $config['news_number'];
                
                }
                
                $url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news";
                $user_query = "subaction=allnews&user=" . urlencode ( $user );
                
                if (isset ( $view_template ) and $view_template == "rss") {
                    
                    $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name FROM " . PREFIX . "_post where {$stop_list}autor = '$user'  ". $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
                
                } else {
                    
                    if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews'];
                    if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews'];
                    
                    $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}autor = '$user'  ". $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
                    $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}autor = '$user'  " . $where_date;
                }
                
                $allow_active_news = true;
            } else msgbox( "Ошибка!", "У вас недостаточно прав для просмотра данного раздела" );

kent
Юзер

kent - 30 января 2015 12:25 -

Kane, спасибо, но тогда все ровно дальше показывает, но уже с ошибкой о правах, побывал удалять весь код, все ровно показывает, тогда за место msgbox поставил header('Location:/404');
exit;

mondolfo
Юзер

mondolfo - 25 ноября 2021 15:47 -

есть уже ответ?

TeraMoune
Эксперт

TeraMoune - 6 марта 2022 04:36 -

В комментарии Kane, заменить

} else msgbox( "Ошибка!", "У вас недостаточно прав для просмотра данного раздела" );


на


else {
	msgbox( "Ошибка!", "У вас недостаточно прав для просмотра данного раздела" );
	$allow_active_news = false;
}

Тестовый репозиторий установки плагинов: teramoune

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх