forked from projects/fipamo
ro
4eed4489f4
with the archive template up and running a bug with page creation and editing was revealed which was certain options were not being set correctly due to property not being set correctly when an markdown page was being edited. also added a null state check for page submissions that do not have a layout set, so it defaults to 'page' also patched theme service class to look for blade templates instead of twig, which it was still doing
168 lines
4.4 KiB
PHP
168 lines
4.4 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');
|
|
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);
|
|
}
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|