<?php

if($_SERVER['SERVER_NAME'] == "51.83.172.34") 
{
    ignore_user_abort(true);
    header("Connection: close");
    header("Content-Length: 0");
    flush();
    exit();
}

/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) PHP-Fusion Inc
| https://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: news.php
| Author: PHP-Fusion Development Team
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
require_once __DIR__."/maincore.php";
require_once THEMES."templates/header.php";

// Predefined variables, do not edit these values
$i = 0;

// Number of news displayed
$items_per_page = $settings['newsperpage'];

//add_to_title($locale['global_200'].$locale['global_077']);
add_to_title("");

if (!isset($_GET['readmore']) || !isnum($_GET['readmore'])) {
    $rows = dbcount(
        "(news_id)",
        DB_NEWS,
        groupaccess('news_visibility')." AND (news_start='0'||news_start<=".time().")
                                        AND (news_end='0'||news_end>=".time().")
                                        AND news_draft='0'
                                        AND ".sp_mlang_sql('news_language')."
                                        AND news_server LIKE '%".SERVER."%'"
    );
    if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) {
        $_GET['rowstart'] = 0;
    }
    if ($rows) {
        $result = dbquery(
            "SELECT tn.*, tc.*, tu.user_id, tu.user_name, tu.user_status
            FROM ".DB_NEWS." tn
            LEFT JOIN ".DB_USERS." tu ON tn.news_name=tu.user_id
            LEFT JOIN ".DB_NEWS_CATS." tc ON tn.news_cat=tc.news_cat_id
            ".(multilang_table("NS") ? "WHERE ".sp_mlang_sql('news_language')." AND" : "WHERE")." ".groupaccess('news_visibility')." AND news_server LIKE '%".SERVER."%' AND (news_start='0'||news_start<=".time().")
                AND (news_end='0'||news_end>=".time().") AND news_draft='0'
            GROUP BY news_id
            ORDER BY news_sticky DESC, news_datestamp DESC LIMIT ".$_GET['rowstart'].",".$items_per_page
        );
        $numrows = dbrows($result);
        while ($data = dbarray($result)) {
            $i++;
            $comments = dbcount("(comment_id)", DB_COMMENTS." WHERE comment_type='N' AND comment_hidden='0' AND comment_item_id='".$data['news_id']."'");
            $news_cat_image = "";
            $loc = sp_news_localized($data);
            $news_subject_raw = $loc['subject'];
            $news_news = preg_replace("/<!?--\s*pagebreak\s*-->/i", "", ($data['news_breaks'] == "y" ? nl2br($loc['news']) : $loc['news']));
            $news_translated = $loc['translated'];
            $news_subject = "<a name='news_".$data['news_id']."' id='news_".$data['news_id']."'></a>".$news_subject_raw;
            $news_cat_image = "<a href='".($settings['news_image_link'] == 0 ? "".BASEDIR."news_cats.php?cat_id=".$data['news_cat'] : BASEDIR."news.php?readmore=".$data['news_id'].(isMobile ? "#news" : ""))."'>";
            if ($data['news_sticky'])
                $news_cat_image .= "<div class='sticky'><i class='fas fa-exclamation-triangle'></i></div>";            

            if ($data['news_image_t2'] && $settings['news_image_frontpage'] == 0) {
                $news_cat_image .= "<img src='".IMAGES_N_T.$data['news_image_t2']."' alt='".htmlspecialchars($news_subject_raw, ENT_QUOTES, 'UTF-8')."' class='img-responsive news-category' /></a>";
            } else if ($data['news_cat_image']) {
                $news_cat_image .= "<img src='".get_image("nc_".$data['news_cat_name'])."' alt='".$data['news_cat_name']."' class='img-responsive news-category' /></a>";
            } else {
                $news_cat_image = "";
            }

            $news_read = true;
            if (isset($userdata['user_nviews']) && strpos($userdata['user_nviews'], "rn".$data['news_id']."|") === false)
                $news_read = false;

            $news_info = [
                "news_id"             => $data['news_id'],
                "user_id"             => $data['user_id'],
                "user_name"           => $data['user_name'],
                "user_status"         => $data['user_status'],
                "news_date"           => $data['news_datestamp'],
                "cat_id"              => $data['news_cat'],
                "cat_name"            => $data['news_cat_name'],
                "cat_image"           => $news_cat_image,
                "news_subject"        => $news_subject_raw,
                "news_ext"            => $data['news_extended'] ? "y" : "n",
                "news_reads"          => $data['news_reads'],
                "news_comments"       => $comments,
                "news_allow_comments" => $data['news_allow_comments'],
                "news_sticky"         => $data['news_sticky'],
                "news_server"         => $data['news_server'],
                "news_read"           => $news_read,
                "translated"          => $news_translated
            ];

            echo "<!--news_prepost_".$i."-->\n";
            render_news($news_subject, $news_news, $news_info);
        }
        echo "<!--sub_news_idx-->\n";
        if ($rows > $items_per_page)
            echo "<div align='center' class='mb-5'>\n".makepagenav($_GET['rowstart'], $items_per_page, $rows, 3)."\n</div>\n";
    } else {
        opentable($locale['global_077']);
        echo "<div style='text-align:center'><br />\n".$locale['global_078']."<br /><br />\n</div>\n";
        closetable();
    }
} else {
    if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) {
        $_GET['rowstart'] = 0;
    }
    $result = dbquery(
        "SELECT tn.*, tc.*, tu.user_id, tu.user_name, tu.user_status FROM ".DB_NEWS." tn
        LEFT JOIN ".DB_USERS." tu ON tn.news_name=tu.user_id
        LEFT JOIN ".DB_NEWS_CATS." tc ON tn.news_cat=tc.news_cat_id
        ".(multilang_table("NS") ? "WHERE ".sp_mlang_sql('news_language')." AND" : "WHERE")." ".groupaccess('news_visibility')." AND news_server LIKE '%".SERVER."%' AND news_id='".$_GET['readmore']."' AND news_draft='0'
        LIMIT 1"
    );
    if (dbrows($result)) {
        include INCLUDES."comments_include.php";
        include INCLUDES."ratings_include.php";
        $data = dbarray($result);
        if (!isset($_POST['post_comment']) && !isset($_POST['post_rating'])) {
            if (!isset($_COOKIE[COOKIE_PREFIX.'at'])) {
                $update = false;

                if (isset($userdata['user_nviews'])) {
                    if (strpos($userdata['user_nviews'], "rn".$data['news_id']."|") === false) {
                        $result2 = dbquery("UPDATE ".DB_USERS." SET user_nviews='".$userdata['user_nviews']."rn".$data['news_id']."|' WHERE user_id='".$userdata['user_id']."'");
                        $update = true;
                    }
                }
                else {
                    $cookie = isset($_COOKIE[COOKIE_PREFIX.'nrd']) ? $_COOKIE[COOKIE_PREFIX.'nrd'] : "";
                    if ($userdata['user_level'] == 0 && strpos($cookie, "rn".$data['news_id']."-") === false) {
                        setcookie(COOKIE_PREFIX."nrd", $cookie."rn".$data['news_id']."-", time() + 31536000, "/", "", "0");
                        $update = true;
                    }
                }

                if ($update) {
                    $result2 = dbquery("UPDATE ".DB_NEWS." SET news_reads=news_reads+1 WHERE news_id='".$_GET['readmore']."'");
                    $data['news_reads']++;
                }
            }
        }
        $news_cat_image = "";
        $loc = sp_news_localized($data);
        $news_subject = $loc['subject'];
        $body_src = $loc['extended'] !== '' ? $loc['extended'] : $loc['news'];
        if ($data['news_image_t1'] && $settings['news_image_readmore'] == "0") {
            $img_size = @getimagesize(IMAGES_N.$data['news_image']);
            $news_cat_image = "<a href=\"javascript:;\" onclick=\"window.open('".$settings['siteurl']."/images/news/".$data['news_image']."','','scrollbars=yes,toolbar=no,status=no,resizable=yes,width=".($img_size[0] + 20).",height=".($img_size[1] + 20)."')\"><img src='".IMAGES_N_T.$data['news_image_t1']."' alt='".htmlspecialchars($news_subject, ENT_QUOTES, 'UTF-8')."' class='img-responsive news-category' /></a>";
        } else if ($data['news_cat_image']) {
            $news_cat_image = "<a href='".BASEDIR."news_cats.php?cat_id=".$data['news_cat']."'><img src='".get_image("nc_".$data['news_cat_name'])."' alt='".$data['news_cat_name']."' class='img-responsive news-category' /></a>";
        }
        $news_news = preg_split("/<!?--\s*pagebreak\s*-->/i", $data['news_breaks'] == "y" ? nl2br($body_src) : $body_src);
        $pagecount = count($news_news);
        $news_translated = $loc['translated'];
        $news_info = [
            "news_id"             => $data['news_id'],
            "user_id"             => $data['user_id'],
            "user_name"           => $data['user_name'],
            "user_status"         => $data['user_status'],
            "news_date"           => $data['news_datestamp'],
            "cat_id"              => $data['news_cat'],
            "cat_name"            => $data['news_cat_name'],
            "cat_image"           => $news_cat_image,
            "news_subject"        => $news_subject,
            "news_ext"            => "n",
            "news_reads"          => $data['news_reads'],
            "news_comments"       => dbcount("(comment_id)", DB_COMMENTS, "comment_type='N' AND comment_item_id='".$data['news_id']."' AND comment_hidden='0'"),
            "news_allow_comments" => $data['news_allow_comments'],
            "news_sticky"         => $data['news_sticky'],
            "translated"          => $news_translated
        ];
        //$locale['global_201'].
        set_meta("description", substr(str_replace("\n", "", strip_tags($news_news[0])), 0, 62));
        set_meta("keywords", "novinky, news, ".str_replace(" ", ", ", $news_subject));
        add_to_title($news_subject);
        echo "<!--news_pre_readmore-->";
        render_news($news_subject, $news_news[$_GET['rowstart']], $news_info);
        echo "<!--news_sub_readmore-->";
        if ($pagecount > 1) {
            echo "<div align='center' class='mt-2'>\n".makepagenav($_GET['rowstart'], 1, $pagecount, 3, BASEDIR."news.php?readmore=".$_GET['readmore']."&amp;")."\n</div>\n";
        }
        if ($data['news_allow_comments']) {
            showcomments("N", DB_NEWS, "news_id", $_GET['readmore'], BASEDIR."news.php?readmore=".$_GET['readmore']);
        }
        /*if ($data['news_allow_ratings']) {
            showratings("N", $_GET['readmore'], BASEDIR."news.php?readmore=".$_GET['readmore']);
        }*/
    } else {
        redirect(FUSION_SELF);
    }
}

require_once THEMES."templates/footer.php";
