folks = json_decode(file_get_contents('../config/folks.json'), true); self::$tags = json_decode(file_get_contents('../config/tags.json'), true); self::$settings = json_decode( file_get_contents('../config/settings.json'), true ); } public static function sync($data) { $settings = self::$settings; $settings['global']['base_url'] = $data['global']['base_url']; $settings['global']['title'] = $data['global']['title']; $settings['global']['descriptions'] = $data['global']['descriptions']; $settings['global']['base_url'] = $data['global']['base_url']; $settings['global']['private'] = $data['global']['private']; $settings['global']['renderOnSave'] = $data['global']['renderOnSave']; $settings['global']['theme'] = $data['global']['theme']; $settings['global']['externalAPI'] = $data['global']['externalAPI']; $settings['global']['dynamicRender'] = $data['global']['dynamicRender']; Member::updateData('handle', $data['member']['handle']); Member::updateData('email', $data['member']['email']); $settings['email']['active'] = $data['email']['active']; $settings['email']['smtp'] = $data['email']['smtp']; $settings['email']['mailgun'] = $data['email']['mailgun']; DocTools::writeSettings('../config/settings.json', $settings); } public static function navSync($data) { $settings = self::$settings; $remove = $data['remove']; //if remove contains id, find nav item page and set menu to false if ($remove != null || $remove != '') { $page = (new Book('../content/pages'))->findPageById($remove); $page['menu'] = 'false'; $page['published'] ? ($page['published'] = 'true') : ($page['published'] = 'false'); $page['featured'] ? ($page['featured'] = 'true') : ($page['featured'] = 'false'); $page['deleted'] ? ($page['deleted'] = 'true') : ($page['deleted'] = 'false'); $updated = Carbon::now(); $created = new Carbon($page['rawCreated']); $page['created'] = $created->format("Y-m-d\TH:i:sP"); $page['updated'] = $updated->format("Y-m-d\TH:i:sP"); $md = DocTools::objectToMD($page); if ($page['layout'] == 'index') { $writePath = '../content/pages/start/index.md'; } else { $writePath = '../content/pages/' . $page['path'] . '/' . $page['slug'] . '.md'; } DocTools::writePages('write', $page['path'], $writePath, $md); } $settings['menu'] = []; $items = $data['menu']; foreach ($items as $item) { array_push($settings['menu'], [ 'title' => $item['title'], 'id' => $item['id'], 'uuid' => $item['uuid'], 'slug' => $item['slug'], 'path' => $item['path'], ]); } DocTools::writeSettings('../config/settings.json', $settings); } public function getFolks($key = null) { if (isset($key)) { $member = Session::get('member'); $found = find($this->folks, ['handle' => $member['handle']]); if ($found) { return $found[$key]; } } else { return $this->folks; } } public function getSettings($key = null) { return self::$settings; } public static function getTags() { return self::$tags; } public static function updateGlobalData($key, $data) { $settings = self::$settings; $settings['global'][$key] = $data; DocTools::writeSettings('../config/settings.json', $settings); } public static function getCurrentIndex() { $settings = self::$settings; return $settings['library_stats']['current_index']; } public static function updateIndex() { $settings = self::$settings; $settings['library_stats']['current_index'] = $settings['library_stats']['current_index'] + 1; DocTools::writeSettings('../config/settings.json', $settings); } 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 updateTags() { $tags = Sorting::tags(); DocTools::writeSettings('../config/tags.json', $tags); } }