sbgg.jetzt/page/admin/newsletter/content.php

126 lines
3.0 KiB
PHP

<?php
declare(strict_types = 1);
namespace Kimendisch\Sbgg_Jetzt;
use Flake\Lang;
use Flake\Lang_Dict;
use Flake\Page;
use Flake\Project;
use Flake\Excuse;
// HANDLE AUTHENTICATION //
require("./page/admin/auth_handler.php");
// LOAD CONTENT //
// get content name from url param
$content_name = Project::param("content");
// check whether this content exists
if(!in_array($content_name, Newsletter::content_list())){
Excuse::show("not_found");
}
// load content data
$content = Newsletter::content_file_read(name: $content_name);
// MAYBE PROVIDE PREVIEW HTML //
if(isset($_GET["preview"])){
// validate language
$language = $_GET["preview"];
if(!in_array($language, ["de", "en"])){
http_response_code(400);
echo("invalid preview language requested");
die();
}
// render preview
$preview = Newsletter::content_render_preview(content: $content, language: $language);
// output preview
echo($preview);
die();
}
// LANGUAGE MANAGER //
// hack: fake get param from constant
$_GET["lang"] = "en";
// initialize
$lang = new Lang(list: ["de", "en"], default: "en");
// load dict
$dict = new Lang_Dict($lang);
require("./page/strings.php");
// PAGE INIT //
Page::start();
Page::title("SBGG.jetzt - Admin Area");
Page::icon("./asset/logo-256.png");
Page::lang($lang->get());
Page::viewport(scale: 1, zoom: true);
Page::robots(index: false, follow: false);
Page::author("Kim Endisch");
Page::$head["analytics"] = '<script defer data-domain="sbgg.jetzt" src="https://analytics.tjdev.de/js/script.js"></script>';
Page::css("./page/start/style.css");
Page::js(__DIR__ . "/iframe-magic.js");
Page::font("ubuntu");
Page::font("tabler");
?>
<div class="page-container full-page">
<div class="page">
<div class="section">
<div class="content">
<div class="button-list align-left">
<a href="/admin/newsletter" class="button on-bg">
<span class="icon ti ti-arrow-left"></span>
<span class="text">Go Back</span>
</a>
<a href="/admin" class="button on-bg">
<span class="icon ti ti-home"></span>
<span class="text">Go Home</span>
</a>
</div>
</div>
</div>
<div class="section">
<div class="header">
<span class="icon ti ti-news"></span>
<span class="text">Preview</span>
</div>
<div class="content full-page rows">
<div class="box">
<span class="extra"><i class="ti ti-world"></i> Language: <span class="white">DE</span></span>
<div class="preview-container">
<iframe src="?preview=de" width="576" scrolling="no" onload="iframe_resize(this)"></iframe>
</div>
</div>
<div class="box">
<span class="extra"><i class="ti ti-world"></i> Language: <span class="white">EN</span></span>
<div class="preview-container">
<iframe src="?preview=en" width="576" scrolling="no" onload="iframe_resize(this)"></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
<?php require(dirname(__DIR__) . "/footer.php"); ?>