forked from projects/fipamo
added Sorting class to handle organizing tags and archives organizing for page rendering. added empty Render class for rendering
This commit is contained in:
parent
39809a60ec
commit
c78772e2c0
8 changed files with 203 additions and 79 deletions
|
@ -15,25 +15,32 @@ class SettingsAPI
|
||||||
case "publish":
|
case "publish":
|
||||||
$view = Twig::fromRequest($request);
|
$view = Twig::fromRequest($request);
|
||||||
|
|
||||||
$template = "dash/start.twig";
|
//$sortTags = Sorting::tags();
|
||||||
$pageOptions = [
|
//var_dump($sortTags);
|
||||||
"title" => "Welcome to Fucking Fipamo",
|
$sortArchive = Sorting::archive();
|
||||||
"status" => false,
|
var_dump($sortArchive);
|
||||||
];
|
|
||||||
|
|
||||||
$html = $view->fetch($template, $pageOptions);
|
/*
|
||||||
|
$template = "dash/start.twig";
|
||||||
|
$pageOptions = [
|
||||||
|
"title" => "Welcome to Fucking Fipamo",
|
||||||
|
"status" => false,
|
||||||
|
];
|
||||||
|
|
||||||
$location = "../content/test.html";
|
$html = $view->fetch($template, $pageOptions);
|
||||||
if (!is_file($location)) {
|
|
||||||
file_put_contents($location, $html);
|
$location = "../content/test.html";
|
||||||
} else {
|
if (!is_file($location)) {
|
||||||
($new = fopen($location, "w")) or die("Unable to open file!");
|
file_put_contents($location, $html);
|
||||||
fwrite($new, $html);
|
} else {
|
||||||
fclose($new);
|
($new = fopen($location, "w")) or die("Unable to open file!");
|
||||||
}
|
fwrite($new, $html);
|
||||||
|
fclose($new);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
$result = [
|
$result = [
|
||||||
"message" => "Site published. GOOD EFFORT",
|
"message" => "Items sorted. GOOD EFFORT",
|
||||||
"type" => "TASK_NONE",
|
"type" => "TASK_NONE",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,74 +1,74 @@
|
||||||
<?php
|
<?php
|
||||||
include "../brain/data/Settings.inc.php";
|
|
||||||
use function _\find;
|
use function _\find;
|
||||||
use ReallySimpleJWT\Token;
|
use ReallySimpleJWT\Token;
|
||||||
|
|
||||||
class Auth
|
class Auth
|
||||||
{
|
{
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
}
|
|
||||||
|
|
||||||
public static function sessionStatus()
|
|
||||||
{
|
|
||||||
if (isset($_SESSION["member"])) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
//return $this->secret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function status()
|
public static function sessionStatus()
|
||||||
{
|
{
|
||||||
$result = "";
|
if (isset($_SESSION["member"])) {
|
||||||
if (Session::active()) {
|
return true;
|
||||||
$result = true;
|
} else {
|
||||||
} else {
|
return false;
|
||||||
$result = false;
|
}
|
||||||
|
//return $this->secret;
|
||||||
}
|
}
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function login($who)
|
public static function status()
|
||||||
{
|
{
|
||||||
//grab member list
|
$result = "";
|
||||||
$folks = (new Settings())->getFolks();
|
if (Session::active()) {
|
||||||
$found = find($folks, ["handle" => $who["handle"]]);
|
$result = true;
|
||||||
|
} else {
|
||||||
if ($found) {
|
$result = false;
|
||||||
//name is found, verify password
|
}
|
||||||
if (password_verify($who["password"], $found["password"])) {
|
return $result;
|
||||||
$member = [
|
|
||||||
"handle" => $found["handle"],
|
|
||||||
"email" => $found["email"],
|
|
||||||
"role" => $found["role"],
|
|
||||||
"avatar" => $found["avi"],
|
|
||||||
];
|
|
||||||
|
|
||||||
$token = Token::create(
|
|
||||||
$found["id"],
|
|
||||||
$found["secret"],
|
|
||||||
time() + 3600,
|
|
||||||
"localhost"
|
|
||||||
); //expires in an hour
|
|
||||||
Session::start();
|
|
||||||
Session::set("member", $member);
|
|
||||||
Session::set("token", $token);
|
|
||||||
|
|
||||||
$result = "good_login";
|
|
||||||
} else {
|
|
||||||
$result = "bad_pass";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//if name is not found
|
|
||||||
$result = "no_name";
|
|
||||||
}
|
}
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function logout()
|
public static function login($who)
|
||||||
{
|
{
|
||||||
Session::kill();
|
//grab member list
|
||||||
}
|
$folks = (new Settings())->getFolks();
|
||||||
|
$found = find($folks, ["handle" => $who["handle"]]);
|
||||||
|
|
||||||
|
if ($found) {
|
||||||
|
//name is found, verify password
|
||||||
|
if (password_verify($who["password"], $found["password"])) {
|
||||||
|
$member = [
|
||||||
|
"handle" => $found["handle"],
|
||||||
|
"email" => $found["email"],
|
||||||
|
"role" => $found["role"],
|
||||||
|
"avatar" => $found["avi"],
|
||||||
|
];
|
||||||
|
|
||||||
|
$token = Token::create(
|
||||||
|
$found["id"],
|
||||||
|
$found["secret"],
|
||||||
|
time() + 3600,
|
||||||
|
"localhost"
|
||||||
|
); //expires in an hour
|
||||||
|
Session::start();
|
||||||
|
Session::set("member", $member);
|
||||||
|
Session::set("token", $token);
|
||||||
|
|
||||||
|
$result = "good_login";
|
||||||
|
} else {
|
||||||
|
$result = "bad_pass";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//if name is not found
|
||||||
|
$result = "no_name";
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function logout()
|
||||||
|
{
|
||||||
|
Session::kill();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,6 +253,8 @@ class Book
|
||||||
"updated" => date("Y M D d", $meta["updated"]),
|
"updated" => date("Y M D d", $meta["updated"]),
|
||||||
"rawCreated" => $meta["created"],
|
"rawCreated" => $meta["created"],
|
||||||
"rawUpdated" => $meta["updated"],
|
"rawUpdated" => $meta["updated"],
|
||||||
|
"createdYear" => date("Y", $meta["created"]),
|
||||||
|
"createdMonth" => date("m", $meta["created"]),
|
||||||
"deleted" => $meta["deleted"],
|
"deleted" => $meta["deleted"],
|
||||||
"menu" => $meta["menu"],
|
"menu" => $meta["menu"],
|
||||||
"featured" => $meta["featured"],
|
"featured" => $meta["featured"],
|
||||||
|
|
8
brain/data/Render.inc.php
Normal file
8
brain/data/Render.inc.php
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Render
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
83
brain/utility/Sorting.inc.php
Normal file
83
brain/utility/Sorting.inc.php
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
<?php
|
||||||
|
use function _\find;
|
||||||
|
use function _\filter;
|
||||||
|
|
||||||
|
class Sorting
|
||||||
|
{
|
||||||
|
private static $_tags = [];
|
||||||
|
private static $_archive = [];
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function tags()
|
||||||
|
{
|
||||||
|
$pages = (new Book("../content/pages"))->getContents();
|
||||||
|
|
||||||
|
foreach ($pages as $page) {
|
||||||
|
$temp = [];
|
||||||
|
$temp = explode(",", $page["tags"]);
|
||||||
|
foreach ($temp as $tag) {
|
||||||
|
$label = trim($tag);
|
||||||
|
if (!find(self::$_tags, ["tag_name" => $label])) {
|
||||||
|
array_push(self::$_tags, [
|
||||||
|
"tag_name" => $label,
|
||||||
|
"slug" => StringTools::safeString($label),
|
||||||
|
"count" => 1,
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$item = find(self::$_tags, ["tag_name" => $label]);
|
||||||
|
//echo "TAG: " . $item["tag_name"] . "\n";
|
||||||
|
$count = $item["count"];
|
||||||
|
self::$_tags[$label]["count"] = $count + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$_tags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function archive()
|
||||||
|
{
|
||||||
|
$pages = (new Book("../content/pages"))->getContents();
|
||||||
|
$years = [];
|
||||||
|
$archive = [];
|
||||||
|
foreach ($pages as $page) {
|
||||||
|
$year = date("Y", date($page["rawCreated"]));
|
||||||
|
//echo $page["title"] . " : " . $year . "\n";
|
||||||
|
if (!find($years, ["year" => $year])) {
|
||||||
|
$findPages = filter($pages, ["createdYear" => $year]);
|
||||||
|
//var_dump($findPages);
|
||||||
|
array_push($years, ["year" => $year, "count" => count($findPages)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($years as $year) {
|
||||||
|
$sorted = [];
|
||||||
|
$filtered = filter($pages, ["createdYear" => $year["year"]]);
|
||||||
|
|
||||||
|
foreach ($filtered as $obj) {
|
||||||
|
$month = date("m", date($obj["rawCreated"]));
|
||||||
|
if (!find($sorted, ["month" => $month])) {
|
||||||
|
$perMonth = filter($pages, [
|
||||||
|
"createdYear" => $year["year"],
|
||||||
|
"createdMonth" => $month,
|
||||||
|
"deleted" => false,
|
||||||
|
"published" => true,
|
||||||
|
"layout" => "page",
|
||||||
|
]);
|
||||||
|
array_push($sorted, [
|
||||||
|
"month" => $month,
|
||||||
|
"full_month" => date("F", date($obj["rawCreated"])),
|
||||||
|
"count" => count($perMonth),
|
||||||
|
"pages" => $perMonth,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
array_push(self::$_archive, [
|
||||||
|
"year" => $year["year"],
|
||||||
|
"year_data" => $sorted,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return self::$_archive;
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,6 +23,28 @@ class StringTools
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function safeString($string)
|
||||||
|
{
|
||||||
|
return strtolower(
|
||||||
|
trim(
|
||||||
|
preg_replace(
|
||||||
|
"~[^0-9a-z]+~i",
|
||||||
|
"_",
|
||||||
|
html_entity_decode(
|
||||||
|
preg_replace(
|
||||||
|
"~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i",
|
||||||
|
'$1',
|
||||||
|
htmlentities($string, ENT_QUOTES, "UTF-8")
|
||||||
|
),
|
||||||
|
ENT_QUOTES,
|
||||||
|
"UTF-8"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"-"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static function randomString(int $length)
|
public static function randomString(int $length)
|
||||||
{
|
{
|
||||||
$alphanum =
|
$alphanum =
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
{% set id = '' %}
|
{% set id = '' %}
|
||||||
{% set uuid = '' %}
|
{% set uuid = '' %}
|
||||||
{% set slug = '' %}
|
{% set slug = '' %}
|
||||||
{% set layout = 'pages' %}
|
{% set layout = 'page' %}
|
||||||
{% set feature = '' %}
|
{% set feature = '' %}
|
||||||
{% set title = '' %}
|
{% set title = '' %}
|
||||||
{% set tags = '' %}
|
{% set tags = '' %}
|
||||||
|
|
|
@ -8,12 +8,14 @@ use Slim\Views\Twig;
|
||||||
use Slim\Views\TwigMiddleware;
|
use Slim\Views\TwigMiddleware;
|
||||||
|
|
||||||
include "../brain/controller/RouteControl.inc.php";
|
include "../brain/controller/RouteControl.inc.php";
|
||||||
include "../brain/data/Auth.inc.php";
|
include "../brain/data/Settings.inc.php";
|
||||||
include "../brain/utility/StringTools.inc.php";
|
|
||||||
include "../brain/data/Session.inc.php";
|
include "../brain/data/Session.inc.php";
|
||||||
include "../brain/data/Member.inc.php";
|
include "../brain/data/Member.inc.php";
|
||||||
|
include "../brain/data/Auth.inc.php";
|
||||||
|
include "../brain/utility/StringTools.inc.php";
|
||||||
include "../brain/utility/FileUploader.inc.php";
|
include "../brain/utility/FileUploader.inc.php";
|
||||||
include "../brain/utility/DocTools.inc.php";
|
include "../brain/utility/DocTools.inc.php";
|
||||||
|
include "../brain/utility/Sorting.inc.php";
|
||||||
|
|
||||||
$app = AppFactory::create();
|
$app = AppFactory::create();
|
||||||
$twig = Twig::create("../brain/views/");
|
$twig = Twig::create("../brain/views/");
|
||||||
|
|
Loading…
Reference in a new issue