Exemple #1
0
 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;
 }
Exemple #4
0
 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']);
 }
Exemple #5
0
 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']);
 }