# Conflicts: # src/com/actions/PageActions.js # src/com/controllers/SettingsIndex.js # src/styles/main/_posts.sass
This commit is contained in:
commit
4151891129
16 changed files with 255 additions and 136 deletions
|
@ -12,6 +12,7 @@ include "../brain/data/Session.inc.php";
|
|||
include "../brain/data/Member.inc.php";
|
||||
include "../brain/data/Auth.inc.php";
|
||||
include "../brain/data/Render.inc.php";
|
||||
include "../brain/data/Themes.inc.php";
|
||||
include "../brain/utility/StringTools.inc.php";
|
||||
include "../brain/utility/FileUploader.inc.php";
|
||||
include "../brain/utility/DocTools.inc.php";
|
||||
|
|
|
@ -21,7 +21,7 @@ class DashControl
|
|||
if (Session::active()) {
|
||||
$config = new Settings();
|
||||
$settings = $config->getSettings();
|
||||
$themes = $config->getThemes();
|
||||
$themes = (new Themes())->getThemes(); //$config->getThemes();
|
||||
$template = "dash/settings.twig";
|
||||
$member = Session::get("member");
|
||||
$form_token = Session::get("form_token");
|
||||
|
@ -101,23 +101,47 @@ class DashControl
|
|||
if (Session::active()) {
|
||||
$template = "dash/page-edit.twig";
|
||||
$mode = $args["third"];
|
||||
if ($mode == "edit") {
|
||||
$uuid = $args["fourth"];
|
||||
$uuid = $args["fourth"];
|
||||
switch ($mode) {
|
||||
case "edit":
|
||||
$customPages = (new Themes())->getCustomViews();
|
||||
$pageOptions = [
|
||||
"title" => "Fipamo | Edit Page",
|
||||
"page" => (new Book("../content/pages"))->findPageById($uuid),
|
||||
"mode" => $mode,
|
||||
"token" => Session::get("form_token"),
|
||||
"status" => Session::active(),
|
||||
"views" => $customPages,
|
||||
];
|
||||
break;
|
||||
case "preview":
|
||||
$config = new Settings();
|
||||
$settings = $config->getSettings();
|
||||
$loader = new \Twig\Loader\FilesystemLoader(
|
||||
"../content/themes"
|
||||
);
|
||||
$display = new \Twig\Environment($loader, []);
|
||||
|
||||
$pageOptions = [
|
||||
"title" => "Fipamo | Edit Page",
|
||||
"page" => (new Book("../content/pages"))->findPageById($uuid),
|
||||
"mode" => $mode,
|
||||
"token" => Session::get("form_token"),
|
||||
"status" => Session::active(),
|
||||
];
|
||||
} else {
|
||||
$pageOptions = [
|
||||
"title" => "Fipamo | Create Page",
|
||||
"token" => Session::get("form_token"),
|
||||
"mode" => $mode,
|
||||
"status" => Session::active(),
|
||||
];
|
||||
$book = new Book("../content/pages");
|
||||
$page = $book->findPageById($uuid);
|
||||
$pageOptions = Sorting::page($page);
|
||||
$preview =
|
||||
$settings["global"]["theme"] .
|
||||
"/" .
|
||||
$page["layout"] .
|
||||
".twig";
|
||||
$html = $display->render($preview, $pageOptions);
|
||||
$response->getBody()->write($html);
|
||||
return $response;
|
||||
break;
|
||||
default:
|
||||
$pageOptions = [
|
||||
"title" => "Fipamo | Create Page",
|
||||
"token" => Session::get("form_token"),
|
||||
"mode" => $mode,
|
||||
"status" => Session::active(),
|
||||
];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
header("Location: /dashboard");
|
||||
|
|
|
@ -63,6 +63,7 @@ class IndexControl
|
|||
|
||||
break;
|
||||
default:
|
||||
//check layout to see what page should be rendered
|
||||
$template = $settings["global"]["theme"] . "/page.twig";
|
||||
$book = new Book("../content/pages");
|
||||
$page = $book->findPageBySlug($args["third"]);
|
||||
|
|
|
@ -178,8 +178,9 @@ class Book
|
|||
];
|
||||
|
||||
//TODO: When form submission is successful, make new form token
|
||||
$form_token = md5(uniqid(microtime(), true));
|
||||
Session::set("form_token", $form_token);
|
||||
//Session token doesn't reset on the front end, so turning this off for now
|
||||
//$form_token = md5(uniqid(microtime(), true));
|
||||
//Session::set("form_token", $form_token);
|
||||
|
||||
//once saved, update menu
|
||||
$body["path"] = $path;
|
||||
|
|
|
@ -119,11 +119,14 @@ class Render
|
|||
"img" => [
|
||||
"allowed_attributes" => ["src", "alt", "title", "class"],
|
||||
"allowed_hosts" => null,
|
||||
"allow_relative_links" => true,
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
$preclean = $sanitizer->sanitize($rendered->getContent());
|
||||
$scrubbed = $sanitizer->sanitize($rendered->getContent());
|
||||
|
||||
//var_dump($scrubbed);
|
||||
|
||||
//just clean renderd string for now, Sanitize doesn't like relative img urls
|
||||
//so another option is needed
|
||||
|
@ -138,6 +141,7 @@ class Render
|
|||
"ul",
|
||||
"li",
|
||||
"i",
|
||||
"em",
|
||||
"h1",
|
||||
"h2",
|
||||
"h3",
|
||||
|
@ -161,7 +165,7 @@ class Render
|
|||
$pageOptions = [
|
||||
"title" => $page["title"],
|
||||
"background" => $page["feature"],
|
||||
"content" => $cleaned,
|
||||
"content" => $scrubbed,
|
||||
"meta" => $meta,
|
||||
"recent" => $recent,
|
||||
"featured" => $featured,
|
||||
|
@ -169,7 +173,7 @@ class Render
|
|||
"menu" => $this->menu,
|
||||
];
|
||||
} else {
|
||||
$template = $this->theme . "/page.twig";
|
||||
$template = $this->theme . "/" . $page["layout"] . ".twig";
|
||||
$location =
|
||||
"../public/" . $page["path"] . "/" . $page["slug"] . ".html";
|
||||
$dir = "../public/" . $page["path"];
|
||||
|
|
|
@ -6,7 +6,6 @@ class Settings
|
|||
{
|
||||
private $folks;
|
||||
private static $tags;
|
||||
private $themes = [];
|
||||
private static $settings;
|
||||
|
||||
public function __construct()
|
||||
|
@ -18,14 +17,6 @@ class Settings
|
|||
file_get_contents("../config/settings.json"),
|
||||
true
|
||||
);
|
||||
|
||||
$_themes = glob("../content/themes/*", GLOB_ONLYDIR);
|
||||
foreach ($_themes as $theme) {
|
||||
array_push(
|
||||
$this->themes,
|
||||
json_decode(file_get_contents($theme . "/theme.json"), true)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static function sync($data)
|
||||
|
@ -101,11 +92,6 @@ class Settings
|
|||
DocTools::writeSettings("../config/settings.json", $settings);
|
||||
}
|
||||
|
||||
public function getThemes()
|
||||
{
|
||||
return $this->themes;
|
||||
}
|
||||
|
||||
public function getFolks($key = null)
|
||||
{
|
||||
if (isset($key)) {
|
||||
|
|
41
brain/data/Themes.inc.php
Normal file
41
brain/data/Themes.inc.php
Normal file
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
class Themes
|
||||
{
|
||||
private $themes = [];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$_themes = glob("../content/themes/*", GLOB_ONLYDIR);
|
||||
foreach ($_themes as $theme) {
|
||||
array_push(
|
||||
$this->themes,
|
||||
json_decode(file_get_contents($theme . "/theme.json"), true)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function getThemes()
|
||||
{
|
||||
return $this->themes;
|
||||
}
|
||||
|
||||
public function getCustomViews()
|
||||
{
|
||||
$settings = (new Settings())->getSettings();
|
||||
$currentTheme = $settings["global"]["theme"];
|
||||
$folder = "../content/themes/" . $currentTheme;
|
||||
$files = array_filter(glob("$folder/*twig"), "is_file");
|
||||
$views = [];
|
||||
|
||||
foreach ($files as $file) {
|
||||
$path = explode("/", $file);
|
||||
$fileName = $path[4];
|
||||
if (str_contains($fileName, "page")) {
|
||||
$page = explode(".", $fileName);
|
||||
$views[] = $page[0];
|
||||
}
|
||||
}
|
||||
return $views;
|
||||
}
|
||||
}
|
|
@ -93,7 +93,9 @@ class DocTools
|
|||
$object["uuid"] .
|
||||
"\n" .
|
||||
"title: " .
|
||||
"'" .
|
||||
$object["title"] .
|
||||
"'" .
|
||||
"\n" .
|
||||
"feature: " .
|
||||
$object["feature"] .
|
||||
|
|
|
@ -155,6 +155,7 @@ class Sorting
|
|||
"ul",
|
||||
"li",
|
||||
"i",
|
||||
"em",
|
||||
"h1",
|
||||
"h2",
|
||||
"h3",
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block stylesheets %}
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=adfdf">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=dfdfdf">
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
|
@ -66,6 +66,19 @@
|
|||
<span id="post-date" type="text">
|
||||
{{ date }}
|
||||
</span>
|
||||
<div id="layouts">
|
||||
<label>LAYOUTS</label>
|
||||
<select id="page-templates">
|
||||
{% for view in views %}
|
||||
{% if view == page['layout'] %}
|
||||
<option value={{ view }} selected>{{ view }}</option>
|
||||
{% else %}
|
||||
<option value={{ view }}>{{ view }}</option>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div id="post-meta" class="column">
|
||||
<label>TAGS</label>
|
||||
|
|
|
@ -17,19 +17,26 @@
|
|||
{% endif %}
|
||||
|
||||
<div id="post-options">
|
||||
<button id="option-menu-pin" class="option-inactive post-option-btn" data-active="{{ menu }}" title='Pin to Menu'>
|
||||
<svg id="option-page-icon" viewbox="0 0 20 20" class="icons">
|
||||
<use id="option-page-icon" xlink:href="/assets/images/global/sprite.svg#entypo-add-to-list"/>
|
||||
</svg>
|
||||
</button>
|
||||
<button id="option-feature" class="option-inactive post-option-btn" data-active="{{ featured }}" title='Feature'>
|
||||
<svg id="option-feature-icon" viewbox="0 0 20 20" class="icons">
|
||||
<use id="option-feature-icon" xlink:href="/assets/images/global/sprite.svg#entypo-star"/>
|
||||
</svg>
|
||||
</button>
|
||||
<button id="option-published" class="option-inactive post-option-btn" data-active="{{ published }}" title='Published'>
|
||||
<svg id="option-published-icon" viewbox="0 0 20 20" class="icons">
|
||||
<use id="option-published-icon" xlink:href="/assets/images/global/sprite.svg#entypo-eye"/>
|
||||
</svg>
|
||||
</button>
|
||||
<button id="option-menu-pin" class="option-inactive post-option-btn" data-active="{{ menu }}" title='Pin to Menu'>
|
||||
<svg id="option-page-icon" viewbox="0 0 20 20" class="icons">
|
||||
<use id="option-page-icon" xlink:href="/assets/images/global/sprite.svg#entypo-add-to-list"/>
|
||||
</svg>
|
||||
</button>
|
||||
<button id="option-feature" class="option-inactive post-option-btn" data-active="{{ featured }}" title='Feature'>
|
||||
<svg id="option-feature-icon" viewbox="0 0 20 20" class="icons">
|
||||
<use id="option-feature-icon" xlink:href="/assets/images/global/sprite.svg#entypo-star"/>
|
||||
</svg>
|
||||
</button>
|
||||
<button id="option-published" class="option-inactive post-option-btn" data-active="{{ published }}" title='Published'>
|
||||
<svg id="option-published-icon" viewbox="0 0 20 20" class="icons">
|
||||
<use id="option-published-icon" xlink:href="/assets/images/global/sprite.svg#entypo-globe"/>
|
||||
</svg>
|
||||
</button>
|
||||
<a href="/dashboard/page/preview/{{ uuid }}" target="_blank">
|
||||
<button id="option-preview" class="option-inactive post-option-btn" data-active="false" title='preview page'>
|
||||
<svg id="option-preview-icon" viewbox="0 0 20 20" class="icons">
|
||||
<use id="option-preview-icon" xlink:href="/assets/images/global/sprite.svg#entypo-eye"/>
|
||||
</svg>
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
|
@ -22,8 +22,8 @@
|
|||
</svg>
|
||||
</button>
|
||||
<button id="render-toggle" title="render on save toggle" data-render="{{ renderOnSave }}">
|
||||
<svg id="render-toggle" class="icons">
|
||||
<use id="submit-update" xlink:href="/assets/images/global/sprite.svg#entypo-circular-graph"/>
|
||||
<svg id="render-toggle-icon" class="icons">
|
||||
<use xlink:href="/assets/images/global/sprite.svg#entypo-circular-graph"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
|
156
composer.lock
generated
156
composer.lock
generated
|
@ -453,16 +453,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
"version": "v6.5.0",
|
||||
"version": "v6.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||
"reference": "a5b5c43e50b7fba655f793ad27303cd74c57363c"
|
||||
"reference": "dd803df5ad7492e1b40637f7ebd258fee5ca7355"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a5b5c43e50b7fba655f793ad27303cd74c57363c",
|
||||
"reference": "a5b5c43e50b7fba655f793ad27303cd74c57363c",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/dd803df5ad7492e1b40637f7ebd258fee5ca7355",
|
||||
"reference": "dd803df5ad7492e1b40637f7ebd258fee5ca7355",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -474,10 +474,12 @@
|
|||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.5.6",
|
||||
"yoast/phpunit-polyfills": "^0.2.0"
|
||||
"squizlabs/php_codesniffer": "^3.6.0",
|
||||
"yoast/phpunit-polyfills": "^1.0.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||
|
@ -517,7 +519,7 @@
|
|||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.0"
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -525,24 +527,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-06-16T14:33:43+00:00"
|
||||
"time": "2021-08-18T09:14:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/container.git",
|
||||
"reference": "2ae37329ee82f91efadc282cc2d527fd6065a5ef"
|
||||
"reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/container/zipball/2ae37329ee82f91efadc282cc2d527fd6065a5ef",
|
||||
"reference": "2ae37329ee82f91efadc282cc2d527fd6065a5ef",
|
||||
"url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
|
||||
"reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.0"
|
||||
"php": ">=7.4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
|
@ -576,9 +578,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/php-fig/container/issues",
|
||||
"source": "https://github.com/php-fig/container/tree/2.0.1"
|
||||
"source": "https://github.com/php-fig/container/tree/2.0.2"
|
||||
},
|
||||
"time": "2021-03-24T13:40:57+00:00"
|
||||
"time": "2021-11-05T16:47:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-factory",
|
||||
|
@ -1096,16 +1098,16 @@
|
|||
},
|
||||
{
|
||||
"name": "sebastian/exporter",
|
||||
"version": "4.0.3",
|
||||
"version": "4.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||
"reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
|
||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
|
||||
"reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1154,14 +1156,14 @@
|
|||
}
|
||||
],
|
||||
"description": "Provides the functionality to export PHP variables for visualization",
|
||||
"homepage": "http://www.github.com/sebastianbergmann/exporter",
|
||||
"homepage": "https://www.github.com/sebastianbergmann/exporter",
|
||||
"keywords": [
|
||||
"export",
|
||||
"exporter"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
|
||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1169,7 +1171,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2020-09-28T05:24:23+00:00"
|
||||
"time": "2021-11-11T14:18:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/recursion-context",
|
||||
|
@ -1236,25 +1238,25 @@
|
|||
},
|
||||
{
|
||||
"name": "slim/psr7",
|
||||
"version": "1.4",
|
||||
"version": "1.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slimphp/Slim-Psr7.git",
|
||||
"reference": "0dca983ca32a26f4a91fb11173b7b9eaee29e9d6"
|
||||
"reference": "a47b43a8da7c0208b4c228af0cb29ea36080635a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim-Psr7/zipball/0dca983ca32a26f4a91fb11173b7b9eaee29e9d6",
|
||||
"reference": "0dca983ca32a26f4a91fb11173b7b9eaee29e9d6",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim-Psr7/zipball/a47b43a8da7c0208b4c228af0cb29ea36080635a",
|
||||
"reference": "a47b43a8da7c0208b4c228af0cb29ea36080635a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"fig/http-message-util": "^1.1.5",
|
||||
"php": "^7.2 || ^8.0",
|
||||
"php": "^7.3 || ^8.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"ralouphie/getallheaders": "^3",
|
||||
"symfony/polyfill-php80": "^1.22"
|
||||
"ralouphie/getallheaders": "^3.0",
|
||||
"symfony/polyfill-php80": "^1.23"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-factory-implementation": "1.0",
|
||||
|
@ -1265,10 +1267,11 @@
|
|||
"ext-json": "*",
|
||||
"http-interop/http-factory-tests": "^0.9.0",
|
||||
"php-http/psr7-integration-tests": "dev-master",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"phpunit/phpunit": "^8.5 || ^9.5",
|
||||
"squizlabs/php_codesniffer": "^3.6",
|
||||
"weirdan/prophecy-shim": "^1.0 || ^2.0.2"
|
||||
"phpspec/prophecy": "^1.14",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpstan/phpstan": "^0.12.99",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"squizlabs/php_codesniffer": "^3.6"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
|
@ -1311,50 +1314,49 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/slimphp/Slim-Psr7/issues",
|
||||
"source": "https://github.com/slimphp/Slim-Psr7/tree/1.4"
|
||||
"source": "https://github.com/slimphp/Slim-Psr7/tree/1.5"
|
||||
},
|
||||
"time": "2021-05-08T18:22:56+00:00"
|
||||
"time": "2021-09-22T04:33:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "slim/slim",
|
||||
"version": "4.8.1",
|
||||
"version": "4.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slimphp/Slim.git",
|
||||
"reference": "c8934c35d9d98b1a1df9f99ee69b77a59e0aa820"
|
||||
"reference": "44d3c9c0bfcc47e52e42b097b6062689d21b904b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim/zipball/c8934c35d9d98b1a1df9f99ee69b77a59e0aa820",
|
||||
"reference": "c8934c35d9d98b1a1df9f99ee69b77a59e0aa820",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim/zipball/44d3c9c0bfcc47e52e42b097b6062689d21b904b",
|
||||
"reference": "44d3c9c0bfcc47e52e42b097b6062689d21b904b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"nikic/fast-route": "^1.3",
|
||||
"php": "^7.2 || ^8.0",
|
||||
"php": "^7.3 || ^8.0",
|
||||
"psr/container": "^1.0 || ^2.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"psr/http-server-handler": "^1.0",
|
||||
"psr/http-server-middleware": "^1.0",
|
||||
"psr/log": "^1.1"
|
||||
"psr/log": "^1.1 || ^2.0 || ^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"adriansuter/php-autoload-override": "^1.2",
|
||||
"ext-simplexml": "*",
|
||||
"guzzlehttp/psr7": "^1.8",
|
||||
"http-interop/http-factory-guzzle": "^1.0",
|
||||
"laminas/laminas-diactoros": "^2.4",
|
||||
"guzzlehttp/psr7": "^2.0",
|
||||
"laminas/laminas-diactoros": "^2.8",
|
||||
"nyholm/psr7": "^1.4",
|
||||
"nyholm/psr7-server": "^1.0.1",
|
||||
"phpspec/prophecy": "^1.13",
|
||||
"phpstan/phpstan": "^0.12.85",
|
||||
"phpunit/phpunit": "^8.5.13 || ^9.3.8",
|
||||
"nyholm/psr7-server": "^1.0",
|
||||
"phpspec/prophecy": "^1.14",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpstan/phpstan": "^0.12.99",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"slim/http": "^1.2",
|
||||
"slim/psr7": "^1.3",
|
||||
"squizlabs/php_codesniffer": "^3.6",
|
||||
"weirdan/prophecy-shim": "^1.0 || ^2.0.2"
|
||||
"slim/psr7": "^1.5",
|
||||
"squizlabs/php_codesniffer": "^3.6"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-simplexml": "Needed to support XML format in BodyParsingMiddleware",
|
||||
|
@ -1427,7 +1429,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-06-29T19:41:06+00:00"
|
||||
"time": "2021-10-05T03:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "slim/twig-view",
|
||||
|
@ -1969,16 +1971,16 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/property-access",
|
||||
"version": "v5.3.4",
|
||||
"version": "v5.3.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/property-access.git",
|
||||
"reference": "098681253076af7070df7d9debe5f75733eea189"
|
||||
"reference": "2fbab5f95ddb6b8e85f38a6a8a04a17c0acc4d66"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/property-access/zipball/098681253076af7070df7d9debe5f75733eea189",
|
||||
"reference": "098681253076af7070df7d9debe5f75733eea189",
|
||||
"url": "https://api.github.com/repos/symfony/property-access/zipball/2fbab5f95ddb6b8e85f38a6a8a04a17c0acc4d66",
|
||||
"reference": "2fbab5f95ddb6b8e85f38a6a8a04a17c0acc4d66",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -2030,7 +2032,7 @@
|
|||
"reflection"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/property-access/tree/v5.3.4"
|
||||
"source": "https://github.com/symfony/property-access/tree/v5.3.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -2046,20 +2048,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-07-21T12:40:44+00:00"
|
||||
"time": "2021-09-10T11:55:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/property-info",
|
||||
"version": "v5.3.4",
|
||||
"version": "v5.3.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/property-info.git",
|
||||
"reference": "0f42009150679a7a256eb6ee106401af5d974ed2"
|
||||
"reference": "39de5bed8c036f76ec0457ec52908e45d5497947"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/property-info/zipball/0f42009150679a7a256eb6ee106401af5d974ed2",
|
||||
"reference": "0f42009150679a7a256eb6ee106401af5d974ed2",
|
||||
"url": "https://api.github.com/repos/symfony/property-info/zipball/39de5bed8c036f76ec0457ec52908e45d5497947",
|
||||
"reference": "39de5bed8c036f76ec0457ec52908e45d5497947",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -2120,7 +2122,7 @@
|
|||
"validator"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/property-info/tree/v5.3.4"
|
||||
"source": "https://github.com/symfony/property-info/tree/v5.3.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -2136,20 +2138,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-07-21T12:40:44+00:00"
|
||||
"time": "2021-09-07T07:41:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v5.3.3",
|
||||
"version": "v5.3.10",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1"
|
||||
"reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1",
|
||||
"reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
|
||||
"reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -2203,7 +2205,7 @@
|
|||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v5.3.3"
|
||||
"source": "https://github.com/symfony/string/tree/v5.3.10"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -2219,7 +2221,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-06-27T11:44:38+00:00"
|
||||
"time": "2021-10-27T18:21:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
|
@ -2346,16 +2348,16 @@
|
|||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v3.3.2",
|
||||
"version": "v3.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "21578f00e83d4a82ecfa3d50752b609f13de6790"
|
||||
"reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/21578f00e83d4a82ecfa3d50752b609f13de6790",
|
||||
"reference": "21578f00e83d4a82ecfa3d50752b609f13de6790",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a27fa056df8a6384316288ca8b0fa3a35fdeb569",
|
||||
"reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -2365,7 +2367,7 @@
|
|||
},
|
||||
"require-dev": {
|
||||
"psr/container": "^1.0",
|
||||
"symfony/phpunit-bridge": "^4.4.9|^5.0.9"
|
||||
"symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
|
@ -2406,7 +2408,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/twigphp/Twig/issues",
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.3.2"
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.3.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -2418,7 +2420,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-05-16T12:14:13+00:00"
|
||||
"time": "2021-09-17T08:44:23+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
|
36
content/themes/fipamo-default/page-custom.twig
Normal file
36
content/themes/fipamo-default/page-custom.twig
Normal file
|
@ -0,0 +1,36 @@
|
|||
{% extends "fipamo-default/frame.twig" %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block mainContent %}
|
||||
<section>
|
||||
<div class="page-title">
|
||||
<span>{{title}}</span>
|
||||
</div>
|
||||
</section>
|
||||
<article>
|
||||
<div class="page">
|
||||
THIS IS A CUSTOM TEMPLATE <br />
|
||||
<p>{{content | raw}}</p>
|
||||
<div>
|
||||
|
||||
{{meta['who']}} dropped this {{ meta['when'] }}<br />
|
||||
<strong>tags: </strong>
|
||||
{% for tag in meta['tags'] %}
|
||||
{% if dynamicRender is defined %}
|
||||
{% if dynamicRender %}
|
||||
<a href="{{ "/tags/"~tag.slug }}">{{ tag.label }}</a>
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{{ "/tags/"~tag.slug~".html" }}">{{ tag.label }}</a>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
{% endblock %}
|
File diff suppressed because one or more lines are too long
8
public/assets/scripts/dash.min.js
vendored
8
public/assets/scripts/dash.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue