public function update() { global $app; $post = $app->request()->post(); //pretty_print($post['tags']); $post['tags'] = array_map('strtolower', $post['tags']); MetaDataWriter::writeData($this->metaFile, $post['tags']); $app->flash('info', 'Saved Successfully'); $app->redirect($_SERVER['HTTP_REFERER']); }
public function remove() { global $app; $params = $app->router()->getCurrentRoute()->getParams(); $id = $params['param']; $data = MetaDataWriter::getFileData($this->customValuesFile); unset($data[$id]); MetaDataWriter::writeData($this->customValuesFile, $data); $app->flash('info', 'Deleted Successfully'); $app->redirect($_SERVER['HTTP_REFERER']); }
protected function getData() { $data['settings'] = MetaDataWriter::getFileData($this->settingsFile); if (empty($data['settings']['url'])) { exit('Please specify Blog URL in settings first !'); } $data['settings']['url'] = rtrim($data['settings']['url'], '/'); $data['customValues'] = MetaDataWriter::getFileData($this->customValuesFile); $data['pages'] = MetaDataWriter::getFileData($this->pagesFile); $data['follow'] = MetaDataWriter::getFileData($this->followFile); $posts = MetaDataWriter::getFileData($this->postsFile); // we want to create pages for only "published" status posts foreach ($posts as $post) { if ($post['status'] === 'draft' || $post['status'] === 'trashed') { continue; } $data['posts'][] = $post; } $dates = array(); $addedCategories = array(); $categories = array(); $tagsCloud = array(); foreach ($data['posts'] as $key => $post) { // convert posts markdown to html $data['posts'][$key]['body'] = $this->parser->text($post['body']); // see whether to show full posts body or just titles $data['posts'][$key]['showbody'] = '1'; $dates[] = strtotime($post['dated']); // categories if (false === in_array($post['category'], $addedCategories)) { $categories[] = array('category' => $post['category'], 'categoryslug' => $post['categoryslug']); $addedCategories[] = $post['category']; } // tags $tagsCloud[] = $post['tags']; } // sort posts by latest first array_multisort($dates, SORT_DESC, $data['posts']); // for latest posts - show 5 max $data['latestPosts'] = array_slice($data['posts'], 0, 5); // total posts to show on homepage //$countHomePosts = $data['settings']['number_posts'] ?: 10; $data['homePosts'] = array_slice($data['posts'], 0, 1); // sort categories sort($categories); $data['categories'] = $categories; // generate tags cloud $tagsCloud = arrayFlatten($tagsCloud); natcasesort($tagsCloud); $tagsCloud = implode(',', $tagsCloud); // Store frequency of words in an array $tagFreq = array(); // Get individual words and build a frequency table foreach (str_word_count($tagsCloud, 1) as $word) { // For each word found in the frequency table, increment its value by one array_key_exists($word, $tagFreq) ? $tagFreq[$word]++ : ($tagFreq[$word] = 0); } $data['tagsCloud'] = $this->generateTagCloud($tagFreq); // convert pages markdown to html foreach ($data['pages'] as $key => $page) { $data['pages'][$key]['body'] = $this->parser->text($page['body']); } // generate archives $data['archives'] = $this->generateArchives($data['posts']); // write whole blog data to file if (!file_exists($this->publicDir . 'data')) { mkdir($this->publicDir . 'data'); } MetaDataWriter::writeData($this->metaFile, $data); return $data; }
public function removeTrashed() { global $app; $params = $app->router()->getCurrentRoute()->getParams(); $id = $params['param']; $data = MetaDataWriter::getFileData($this->metaFile); // sort posts by latest first $dates = array(); foreach ($data as $key => $value) { $dates[] = strtotime($value['dated']); } array_multisort($dates, SORT_DESC, SORT_NUMERIC, $data); // remove post from disk $postPath = 'public/post/' . getSlugName($data[$id]['title']); @rrmdir($postPath); unset($data[$id]); MetaDataWriter::writeData($this->metaFile, $data); $app->flash('info', 'Restored Successfully'); $app->redirect($_SERVER['HTTP_REFERER']); }
public function remove() { global $app; $params = $app->router()->getCurrentRoute()->getParams(); $id = $params['param']; $data = MetaDataWriter::getFileData($this->metaFile); // remove page from disk $pagePath = 'public/page/' . getSlugName($data[$id]['title']); @rrmdir($pagePath); unset($data[$id]); MetaDataWriter::writeData($this->metaFile, $data); $app->flash('info', 'Deleted Successfully'); $app->redirect($_SERVER['HTTP_REFERER']); }