Пример #1
0
 function _controllerHandler($pageName)
 {
     // getting post data and validating
     $pageData = $this->model->pageData_name($pageName);
     if (!$pageData || $pageData->status !== 'published') {
         Watermelon::displayNoPageFoundError();
         return;
     }
     // displaying
     $id = $pageData->id;
     $pageData->content = Textile::textile($pageData->content);
     $this->pageTitle = $pageData->title;
     $this->noHeader = true;
     $view = View('page');
     $view->page = $pageData;
     $view->commentsView = Comments::commentsView($pageData->id, 'page', '#/' . $pageName, (bool) $pageData->allowComments);
     $view->editHref = '%/pages/edit/' . $id . '?backTo=site';
     $view->deleteHref = '%/pages/trash/' . $id;
     $view->display();
 }
Пример #2
0
 public function updateFeed()
 {
     $wmelon = Watermelon::$config;
     // composing <feed>
     $feed = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"/>');
     $feed->id = $wmelon->atomID;
     $feed->updated = date(DATE_ATOM);
     $feed->title = strip_tags($wmelon->siteName);
     $feed->author->name = Users::userData()->nick;
     $feed->author->uri = SiteURL;
     $feed->link['rel'] = 'self';
     $feed->link['href'] = SiteURL . 'feed.atom';
     // $feed->rights
     $feed->generator = 'Watermelon';
     // adding blog posts
     $posts = Query::select('blogposts')->where('status', 'published')->order('id DESC')->limit(20)->act();
     foreach ($posts as $post) {
         $postElement = $feed->addChild('entry');
         $postElement->title = $post->title;
         $postElement->id = $post->atomID;
         $postElement->published = date(DATE_ATOM, $post->published);
         $postElement->updated = date(DATE_ATOM, $post->updated);
         $postElement->link['rel'] = 'alternate';
         $postElement->link['href'] = SiteURL . date('Y/m', $post->published) . '/' . $post->name;
         $postElement->content['type'] = 'html';
         $postElement->content = Textile::textile($post->content);
         if (!empty($post->summary)) {
             $postElement->summary['type'] = 'html';
             $postElement->summary = Textile::textile($post->summary);
         }
     }
     // save to file
     file_put_contents(CachePath . 'feed.atom', $feed->asXML());
 }
Пример #3
0
 public function _post_action($name)
 {
     // getting post data
     $post = $this->model->postData_name($name);
     if (!$post) {
         Watermelon::displayNoPageFoundError();
         return;
     }
     // checking if published
     if ($post->status !== 'published') {
         // displaying notice for admin, or 'not found'
         if (Users::isLogged()) {
             $this->displayNotice('Ten wpis nie jest opublikowany. Tylko Ty go możesz zobaczyć.');
         } else {
             Watermelon::displayNoPageFoundError();
             return;
         }
     }
     // post
     $post->content = Textile::textile($post->content);
     $post->url = '#/' . date('Y/m', $post->published) . '/' . $post->name;
     // displaying (if exists)
     $id = $post->id;
     $this->pageTitle = $post->title;
     $this->noHeader = true;
     $view = View('post');
     $view->post = $post;
     $view->commentsView = Comments::commentsView($id, 'blogpost', $post->url, (bool) $post->allowComments);
     $view->editHref = '%/blog/edit/' . $id . '?backTo=post';
     $view->deleteHref = '%/blog/trash/' . $id . '/' . base64_encode('#/');
     $view->published_human = HumanDate($post->published, true, true);
     $view->display();
 }