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;
}