Exemple #1
0
 protected function initPosts()
 {
     $this->posts = $this->loader->getPosts();
     if (count($this->posts) === 0) {
         throw new SiteNotFoundException('Page not found.');
     }
 }
Exemple #2
0
    protected function initPosts($shortname, $page)
    {
        $class_name = SwatDBClassMap::get('BlorgTag');
        $tag = new $class_name();
        $tag->setDatabase($this->app->db);
        if (!$tag->loadByShortname($shortname, $this->app->getInstance())) {
            throw new SiteNotFoundException('Page not found.');
        }
        $this->tag = $tag;
        $memcache = isset($this->app->memcache) ? $this->app->memcache : null;
        $this->loader = new BlorgPostLoader($this->app->db, $this->app->getInstance(), $memcache);
        $this->loader->addSelectField('title');
        $this->loader->addSelectField('bodytext');
        $this->loader->addSelectField('shortname');
        $this->loader->addSelectField('publish_date');
        $this->loader->addSelectField('author');
        $this->loader->addSelectField('comment_status');
        $this->loader->addSelectField('visible_comment_count');
        $this->loader->setLoadFiles(true);
        $this->loader->setLoadTags(true);
        $this->loader->setWhereClause(sprintf('enabled = %s and
			id in (select post from BlorgPostTagBinding where tag = %s)', $this->app->db->quote(true, 'boolean'), $this->app->db->quote($tag->id, 'integer')));
        $this->loader->setOrderByClause('publish_date desc');
        $offset = ($page - 1) * self::MAX_POSTS;
        $this->loader->setRange(self::MAX_POSTS, $offset);
        $this->posts = $this->loader->getPosts();
        if (count($this->posts) == 0) {
            throw new SiteNotFoundException('Page not found.');
        }
    }
    protected function initPosts($year, $month_name)
    {
        if (!array_key_exists($month_name, BlorgPageFactory::$months_by_name)) {
            throw new SiteNotFoundException('Page not found.');
        }
        // Date parsed from URL is in locale time.
        $month = BlorgPageFactory::$months_by_name[$month_name];
        $date = new SwatDate();
        $date->setTZ($this->app->default_time_zone);
        $date->setDate($year, $month, 1);
        $date->setTime(0, 0, 0);
        $memcache = isset($this->app->memcache) ? $this->app->memcache : null;
        $loader = new BlorgPostLoader($this->app->db, $this->app->getInstance(), $memcache);
        $loader->addSelectField('title');
        $loader->addSelectField('bodytext');
        $loader->addSelectField('shortname');
        $loader->addSelectField('publish_date');
        $loader->addSelectField('author');
        $loader->addSelectField('comment_status');
        $loader->addSelectField('visible_comment_count');
        $loader->setLoadFiles(true);
        $loader->setLoadTags(true);
        $loader->setWhereClause(sprintf('enabled = %s and
			date_trunc(\'month\', convertTZ(publish_date, %s)) =
				date_trunc(\'month\', timestamp %s)', $this->app->db->quote(true, 'boolean'), $this->app->db->quote($this->app->default_time_zone->getName(), 'text'), $this->app->db->quote($date->getDate(), 'date')));
        $loader->setOrderByClause('publish_date desc');
        $this->posts = $loader->getPosts();
        if (count($this->posts) == 0) {
            throw new SiteNotFoundException('Page not found.');
        }
    }
Exemple #4
0
 protected function initPosts($page)
 {
     $memcache = isset($this->app->memcache) ? $this->app->memcache : null;
     $this->loader = new BlorgPostLoader($this->app->db, $this->app->getInstance(), $memcache);
     $this->loader->addSelectField('title');
     $this->loader->addSelectField('bodytext');
     $this->loader->addSelectField('extended_bodytext');
     $this->loader->addSelectField('shortname');
     $this->loader->addSelectField('publish_date');
     $this->loader->addSelectField('author');
     $this->loader->addSelectField('comment_status');
     $this->loader->addSelectField('visible_comment_count');
     $this->loader->setLoadFiles(true);
     $this->loader->setLoadTags(true);
     $this->loader->setWhereClause(sprintf('enabled = %s', $this->app->db->quote(true, 'boolean')));
     $this->loader->setOrderByClause('publish_date desc');
     $offset = ($page - 1) * self::MAX_POSTS;
     $this->loader->setRange(self::MAX_POSTS, $offset);
     $this->posts = $this->loader->getPosts();
     if (count($this->posts) == 0) {
         throw new SiteNotFoundException('Page not found.');
     }
 }
    protected function initMonths($year, $page)
    {
        // Date parsed from URL is in locale time.
        $date = new SwatDate();
        $date->setTZ($this->app->default_time_zone);
        $date->setDate($year, 1, 1);
        $date->setTime(0, 0, 0);
        $memcache = isset($this->app->memcache) ? $this->app->memcache : null;
        $this->loader = new BlorgPostLoader($this->app->db, $this->app->getInstance(), $memcache);
        $this->loader->addSelectField('title');
        $this->loader->addSelectField('bodytext');
        $this->loader->addSelectField('shortname');
        $this->loader->addSelectField('publish_date');
        $this->loader->addSelectField('author');
        $this->loader->addSelectField('comment_status');
        $this->loader->addSelectField('visible_comment_count');
        $this->loader->setWhereClause(sprintf('enabled = %s and
			date_trunc(\'year\', convertTZ(publish_date, %s)) =
				date_trunc(\'year\', timestamp %s)', $this->app->db->quote(true, 'boolean'), $this->app->db->quote($this->app->default_time_zone->getName(), 'text'), $this->app->db->quote($date->getDate(), 'date')));
        $this->loader->setOrderByClause('publish_date desc');
        $offset = ($page - 1) * self::MAX_POSTS;
        $this->loader->setRange(self::MAX_POSTS, $offset);
        $posts = $this->loader->getPosts();
        foreach ($posts as $post) {
            $publish_date = clone $post->publish_date;
            $publish_date->convertTZ($this->app->default_time_zone);
            $month = $publish_date->getMonth();
            if (!array_key_exists($month, $this->months)) {
                $this->months[$month] = array();
            }
            $this->months[$month][] = $post;
        }
        if (count($this->months) == 0) {
            throw new SiteNotFoundException('Page not found');
        }
    }
Exemple #6
0
 protected function getAuthorPosts()
 {
     $memcache = isset($this->app->memcache) ? $this->app->memcache : null;
     $this->loader = new BlorgPostLoader($this->app->db, $this->app->getInstance(), $memcache);
     $this->loader->addSelectField('title');
     $this->loader->addSelectField('bodytext');
     $this->loader->addSelectField('shortname');
     $this->loader->addSelectField('publish_date');
     $this->loader->addSelectField('author');
     $this->loader->addSelectField('comment_status');
     $this->loader->addSelectField('visible_comment_count');
     $this->loader->setLoadFiles(true);
     $this->loader->setLoadTags(true);
     $this->loader->setWhereClause(sprintf('enabled = %s and author = %s', $this->app->db->quote(true, 'boolean'), $this->app->db->quote($this->author->id, 'integer')));
     $this->loader->setOrderByClause('publish_date desc');
     $offset = ($this->getArgument('page') - 1) * self::MAX_POSTS;
     $this->loader->setRange(self::MAX_POSTS, $offset);
     return $this->loader->getPosts();
 }