Post::getArchive PHP Method

getArchive() public method

public getArchive ( null $blogId = null, integer $cache = 3600 ) : mixed
$blogId null
$cache integer
return mixed
    public function getArchive($blogId = null, $cache = 3600)
    {
        $data = Yii::app()->getCache()->get("Blog::Post::archive::{$blogId}");
        if (false === $data) {
            $criteria = new CDbCriteria();
            if ($blogId) {
                $criteria->condition = 'blog_id = :blog_id';
                $criteria->params = [':blog_id' => (int) $blogId];
            }
            $models = $this->public()->published()->recent()->findAll($criteria);
            if (!empty($models)) {
                foreach ($models as $model) {
                    list($day, $month, $year) = explode('-', date('d-m-Y', strtotime($model->publish_time)));
                    $data[$year][$month][] = ['title' => $model->title, 'slug' => $model->slug, 'publish_time' => $model->publish_time, 'quote' => $model->getQuote()];
                }
            } else {
                $data = [];
            }
            Yii::app()->getCache()->set("Blog::Post::archive::{$blogId}", $data, (int) $cache);
        }
        return $data;
    }