HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/NVonken/mijneigenlied.com/wwwroot/Core/Components/news.com.php
<?php

class News
{
    var $_settings;
    var $_tpl;

    public static function Settings()
    {
        return array("Pageable" => true,
            "DisplayName" => "Nieuws",
            "Version" => 1.0,
            "HasAdmin" => true,
            "Filename" => "news.com.php",
            "ContentOptions" => array("Nieuws" => "overzicht"),
            "AdminOptions" => array("all" => "Beheer"));
    }

    public function __construct()
    {
        General::Load("NewsItem");
        General::Load("NewsItemTranslation");
        General::Load("User");

        $this->_tpl = new tpl();
    }


    public function Run()
    {

    }

    public function Dependancies()
    {
        return array("js" => array(),
            "css" => array());
    }

    public function Admin()
    {
        if (User::CheckLogin()) {
            $_currentUser = User::GetUserInfo();
        } else return "";

        $langs = General::LoadLanguages();
        if ((defined("GET_5") && strtolower(GET_5) == "new") || (defined("GET_5") && strtolower(GET_5) == "edit")) {
            $edit = false;
            $valid = true;
            $message = "";
            $newsItem = new NewsItem();
            $newsItemTranslations = array();

            if (defined("GET_6") && is_numeric(GET_6)) {
                $edit = true;
                $newsItem = NewsItem::Select(GET_6);
                $newsItemTranslations = General::MapArray(NewsItemTranslation::SelectAllByNewsItem($newsItem->Id), "Lang");
            }

            if ($_SERVER["REQUEST_METHOD"] == "POST") {
                if (!$edit) {
                    $newsItem->UserId = $_currentUser->Id;
                    $newsItem->Id = $newsItem->Insert();
                }

                foreach ($langs as $lang) {
                    if ($newsItemTranslations[$lang] == null)
                        $newsItemTranslations[$lang] = new NewsItemTranslation();

                    if (!isset($_POST["txtContent_" . $lang]) && $_POST["txtContent_" . $lang] != "") {
                        $valid = false;
                        $message = "U dient een nieuwsbericht te schrijven voor taal " . $lang;
                    } else $newsItemTranslations[$lang]->Content = $_POST["txtContent_" . $lang];

                    if (!isset($_POST["txtTitle_" . $lang]) && $_POST["txtTitle_" . $lang] != "") {
                        $valid = false;
                        $message = "U dient het nieuwsbericht een titel te geven voor taal " . $lang;
                    } else $newsItemTranslations[$lang]->Title = $_POST["txtTitle_" . $lang];

                    if ($valid) {
                        if ($newsItemTranslations[$lang]->Created == null) {
                            $newsItemTranslations[$lang]->Lang = $lang;
                            $newsItemTranslations[$lang]->NewsItemId = $newsItem->Id;
                            $newsItemTranslations[$lang]->Insert();
                        } else {
                            $newsItemTranslations[$lang]->Update();
                        }
                    } else {
                        if (!$edit) {
                            $newsItem->Delete();
                        }
                        break;
                    }
                }

                if ($valid) {
                    $this->_tpl->assign("message", "Het nieuwsbericht is met succes opgeslagen");
                    $this->_tpl->assign("message", $this->_tpl->parse("General/success"));
                } else {
                    $this->_tpl->assign("message", $message);
                    $this->_tpl->assign("message", $this->_tpl->parse("General/error"));
                }
            }
            $languageFields = "";
            foreach ($langs as $lang) {
                $this->_tpl->assign("lang", $lang);

                $this->_tpl->assign("txtContent", isset($_POST["txtContent_" . $lang]) ? $_POST["txtContent_" . $lang] : isset($newsItemTranslations[$lang]) != "" ? $newsItemTranslations[$lang]->Content : "");
                $this->_tpl->assign("txtTitle", isset($_POST["txtTitle_" . $lang]) ? $_POST["txtTitle_" . $lang] : isset($newsItemTranslations[$lang]) != "" ? $newsItemTranslations[$lang]->Title : "");

                $languageFields .= $this->_tpl->parse("Admin/News/language-fields");
            }
            $this->_tpl->assign("language-fields", $languageFields);

            return $this->_tpl->parse("Admin/News/newedit");
        }
        if (defined("GET_5") && strtolower(GET_5) == "delete") {
            if (defined("GET_6") && is_numeric(GET_6)) {
                $newsItem = NewsItem::Select(GET_6);
                if ($newsItem != null) {
                    $newsItem->Delete();

                    $this->_tpl->assign("message", "Het nieuwsbericht is met succes verwijderd");
                    $this->_tpl->assign("message", $this->_tpl->parse("General/success"));
                } else {
                    $this->_tpl->assign("message", "Onbekende fout");
                    $this->_tpl->assign("message", $this->_tpl->parse("General/error"));
                }
            }
        }

        $news = NewsItem::SelectAll();
        if (count($news) > 0) {
            $newsList = "";
            $newsItemIds = General::GetField($news, "Id");
            $newsItemTranslations = General::MapArray(NewsItemTranslation::SelectRange($newsItemIds, DEFAULT_LANGUAGE), "NewsItemId");
            foreach ($news as $newsItem) {
                $this->_tpl->assign("newsItemId", $newsItem->Id);
                $this->_tpl->assign("newsItemTitle", $newsItemTranslations[$newsItem->Id]->Title);
                $this->_tpl->assign("newsItemCreated", date("d-m-Y", $newsItem->Created));
                $newsList .= $this->_tpl->Parse("Admin/News/overview-item");
            }
            $this->_tpl->assign("newsItems", $newsList);
        } else {
            $this->_tpl->assign("colspan", 4);
            $this->_tpl->assign("message", "Geen nieuwsitems beschikbaar");
            $this->_tpl->assign("newsItems", $this->_tpl->parse("General/empty-tr"));
            $this->_tpl->assign("message", "");
        }
        return $this->_tpl->parse("Admin/News/overview");
    }

}

?>