ro
252059df19
turned on the abiity to save settings to config file via the settings page the current member session needs to updated by the data coming in but that will be handled by a specific member service that hasn't been built yet, so just commenting it out for now also fixed a minor bug that was stopping the save on render toggle from working correctly, so now it's saving and updating the status properly now
181 lines
4.8 KiB
PHP
181 lines
4.8 KiB
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
class DocService
|
|
{
|
|
public function __construct()
|
|
{
|
|
}
|
|
|
|
public static function writePages($task, $path, $fileLocation, $fileContents)
|
|
{
|
|
try {
|
|
if ($task == 'create') {
|
|
if (!is_dir('../content/pages/' . $path)) {
|
|
//Directory does not exist, so lets create it.
|
|
mkdir('../content/pages/' . $path, 0755, true);
|
|
}
|
|
file_put_contents($fileLocation, $fileContents);
|
|
} else {
|
|
($new = fopen($fileLocation, 'w')) or die('Unable to open file!');
|
|
fwrite($new, $fileContents);
|
|
fclose($new);
|
|
}
|
|
return true;
|
|
} catch (Error $error) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static function updateMenu($body)
|
|
{
|
|
$settings = self::$settings;
|
|
//$menu = $settings["menu"];
|
|
$item = [
|
|
'title' => $body['title'],
|
|
'id' => $body['id'],
|
|
'uuid' => $body['uuid'],
|
|
'slug' => $body['slug'],
|
|
'path' => $body['path'],
|
|
];
|
|
if ($body['menu'] == 'true') {
|
|
if (!find($settings['menu'], ['uuid' => $item['uuid']])) {
|
|
array_push($settings['menu'], $item);
|
|
}
|
|
} else {
|
|
if (find($settings['menu'], ['uuid' => $item['uuid']])) {
|
|
pull($settings['menu'], $item);
|
|
}
|
|
}
|
|
DocTools::writeSettings('../config/settings.json', $settings);
|
|
}
|
|
|
|
public static function writeSettings($fileContents)
|
|
{
|
|
$fileLocation = env('SETTINGS_PATH');
|
|
$message = [];
|
|
try {
|
|
if (!is_file($fileLocation)) {
|
|
file_put_contents($fileLocation, json_encode($fileContents));
|
|
} else {
|
|
($new = fopen($fileLocation, 'w')) or die('Unable to open file!');
|
|
fwrite($new, json_encode($fileContents));
|
|
fclose($new);
|
|
}$message = [
|
|
'message' => "Settings Synced. You're doing great!",
|
|
'type' => 'settingsUpdated',
|
|
];
|
|
} catch (Error $error) {
|
|
$message = [
|
|
'message' => "Settings Not Synced. We'll figure it out",
|
|
'type' => 'settingsUpdated',
|
|
];
|
|
}
|
|
|
|
return $message;
|
|
}
|
|
|
|
public static function writeHTML($location, $html, $path = null)
|
|
{
|
|
if ($path != null) {
|
|
if (!is_dir($path)) {
|
|
//Directory does not exist, so lets create it.
|
|
mkdir($path, 0755, true);
|
|
}
|
|
}
|
|
if (!is_file($location)) {
|
|
file_put_contents($location, $html);
|
|
} else {
|
|
($new = fopen($location, 'w')) or die('Unable to open file!');
|
|
fwrite($new, $html);
|
|
fclose($new);
|
|
}
|
|
}
|
|
|
|
public static function deleteFolder($path)
|
|
{
|
|
if (!empty($path) && is_dir($path)) {
|
|
$dir = new \RecursiveDirectoryIterator(
|
|
$path,
|
|
\RecursiveDirectoryIterator::SKIP_DOTS
|
|
); //upper dirs are not included,otherwise DISASTER HAPPENS :)
|
|
$files = new \RecursiveIteratorIterator(
|
|
$dir,
|
|
\RecursiveIteratorIterator::CHILD_FIRST
|
|
);
|
|
foreach ($files as $f) {
|
|
if (is_file($f)) {
|
|
unlink($f);
|
|
} else {
|
|
$empty_dirs[] = $f;
|
|
}
|
|
}
|
|
if (!empty($empty_dirs)) {
|
|
foreach ($empty_dirs as $eachDir) {
|
|
rmdir($eachDir);
|
|
}
|
|
}
|
|
rmdir($path);
|
|
}
|
|
}
|
|
|
|
public static function objectToMD($object)
|
|
{
|
|
$markdown = "---\n" .
|
|
'id: ' .
|
|
$object->id .
|
|
"\n" .
|
|
'uuid: ' .
|
|
$object->uuid .
|
|
"\n" .
|
|
'title: ' .
|
|
"'" .
|
|
$object->title .
|
|
"'" .
|
|
"\n" .
|
|
'feature: ' .
|
|
$object->imageList .
|
|
"\n" .
|
|
'files: ' .
|
|
$object->fileList .
|
|
"\n" .
|
|
'path: ' .
|
|
$object->path .
|
|
"\n" .
|
|
'layout: ' .
|
|
$object->layout .
|
|
"\n" .
|
|
'tags: ' .
|
|
$object->tags .
|
|
"\n" .
|
|
'author: ' .
|
|
$object->author .
|
|
"\n" .
|
|
'created: ' .
|
|
$object->created .
|
|
"\n" .
|
|
'updated: ' .
|
|
$object->updated .
|
|
"\n" .
|
|
'deleted: ' .
|
|
$object->deleted .
|
|
"\n" .
|
|
'slug: ' .
|
|
$object->slug .
|
|
"\n" .
|
|
'menu: ' .
|
|
$object->menu .
|
|
"\n" .
|
|
'published: ' .
|
|
$object->published .
|
|
"\n" .
|
|
'featured: ' .
|
|
$object->featured .
|
|
"\n---\n" .
|
|
$object->content;
|
|
|
|
return $markdown;
|
|
}
|
|
}
|