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");
}
}
?>