You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
5.4 KiB
PHP
153 lines
5.4 KiB
PHP
<?php
|
|
|
|
namespace brain\api\v1;
|
|
|
|
use brain\data\Render;
|
|
use brain\data\Settings;
|
|
use brain\data\Session;
|
|
use brain\utility\Maintenance;
|
|
|
|
class SettingsAPI
|
|
{
|
|
public function __construct()
|
|
{
|
|
}
|
|
|
|
public static function handleSettingsTask($request, $args, $body = null)
|
|
{
|
|
$task = $args['fourth'];
|
|
switch ($task) {
|
|
case 'publish':
|
|
//check settings to see if site is a one pager
|
|
$config = new Settings();
|
|
$settings = $config->getSettings();
|
|
$theme = $settings['global']['theme'];
|
|
$themeConfig = json_decode(
|
|
file_get_contents('../content/themes/' . $theme . '/theme.json'),
|
|
true
|
|
);
|
|
//check to see if dynamic rendering is active
|
|
if (
|
|
isset($settings['global']['dynamicRender']) &&
|
|
$settings['global']['dynamicRender'] === 'true'
|
|
) {
|
|
$result = [
|
|
'message' => "Dynamic Render Active! You're good!",
|
|
'type' => 'RENDER_SUCCESS',
|
|
];
|
|
} else {
|
|
$render = new Render();
|
|
if (isset($themeConfig['render'])) {
|
|
if (!$themeConfig['render'] || $themeConfig['render'] === 'false') {
|
|
$render->renderIndex();
|
|
$result = [
|
|
'message' => 'Index Rendered. HAND CLAPS',
|
|
'type' => 'RENDER_SUCCESS',
|
|
];
|
|
} else {
|
|
$render->renderTags();
|
|
$render->renderArchive();
|
|
$render->renderPages();
|
|
$result = [
|
|
'message' => 'Site Rendered. GOOD EFFORT',
|
|
'type' => 'RENDER_SUCCESS',
|
|
];
|
|
}
|
|
} else {
|
|
// just incase the render flag is missing
|
|
$render->renderTags();
|
|
$render->renderArchive();
|
|
$render->renderPages();
|
|
$result = [
|
|
'message' => 'Site Rendered. GOOD EFFORT',
|
|
'type' => 'RENDER_SUCCESS',
|
|
];
|
|
}
|
|
}
|
|
|
|
//if render flag is set and false, just render index page for one page sites
|
|
//otherwise, render all pages according to theme template files
|
|
|
|
break;
|
|
case 'add-avatar':
|
|
$result = ImagesAPI::uploadImage($request, 'avatar');
|
|
break;
|
|
case 'add-feature-background':
|
|
$result = ImagesAPI::uploadImage($request, 'background');
|
|
break;
|
|
case 'sync':
|
|
Settings::sync($body);
|
|
$result = [
|
|
'message' => "Settings Synced. You're doing great!",
|
|
'type' => 'settingsUpdated',
|
|
];
|
|
break;
|
|
case 'nav-sync':
|
|
Settings::navSync($body);
|
|
$result = [
|
|
'message' => 'Navigation updated. Very slick!',
|
|
'type' => 'menuUpdated',
|
|
];
|
|
break;
|
|
default:
|
|
$result = [
|
|
'message' => "Hm, no task. That's unfortunate",
|
|
'type' => 'TASK_NONE',
|
|
];
|
|
break;
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
public static function getInfo($request, $args)
|
|
{
|
|
$task = $args['fourth'];
|
|
switch ($task) {
|
|
case 'site':
|
|
$config = new Settings();
|
|
$settings = $config->getSettings();
|
|
$data = [
|
|
'title' => $settings['global']['title'],
|
|
'base_url' => $settings['global']['base_url'],
|
|
'description' => $settings['global']['descriptions'],
|
|
];
|
|
$result = [
|
|
'message' => 'Settings Found',
|
|
'type' => 'GET_SETTINGS',
|
|
'data' => $data,
|
|
];
|
|
break;
|
|
case 'member':
|
|
if (Session::active()) {
|
|
$member = $member = Session::get('member');
|
|
$data = ['handle' => $member['handle'], 'email' => $member['email']];
|
|
$result = [
|
|
'message' => 'Member Info Found',
|
|
'type' => 'GET_MEMBER_INFO',
|
|
'data' => $data,
|
|
];
|
|
} else {
|
|
$result = [
|
|
'message' => "Not logged in. C'mon, bruh",
|
|
'type' => 'TASK_NONE',
|
|
];
|
|
}
|
|
break;
|
|
default:
|
|
$result = [
|
|
'message' => 'No Settings found. Frowny Face',
|
|
'type' => 'TASK_NONE',
|
|
];
|
|
break;
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
public static function createBackup()
|
|
{
|
|
$result = Maintenance::makeBackup();
|
|
return $result;
|
|
}
|
|
}
|