| @@ 166-197 (lines=32) @@ | ||
| 163 | ->fetchValue($query, $bindings); |
|
| 164 | } |
|
| 165 | ||
| 166 | public function getActivePostsByRelatedTags($post, $limit = 4) |
|
| 167 | { |
|
| 168 | $query = " |
|
| 169 | SELECT `id`, `title`, `path`, `date`, `body`, `category`, COUNT(1) AS `count` |
|
| 170 | FROM `jpemeric_blog`.`post` |
|
| 171 | INNER JOIN `jpemeric_blog`.`ptlink` ON `ptlink`.`post_id` = `post`.`id` AND |
|
| 172 | `ptlink`.`tag_id` IN ( |
|
| 173 | SELECT `id` |
|
| 174 | FROM `jpemeric_blog`.`tag` |
|
| 175 | INNER JOIN `jpemeric_blog`.`ptlink` ON `ptlink`.`tag_id` = `tag`.`id` AND |
|
| 176 | `ptlink`.`post_id` = :post) |
|
| 177 | WHERE `id` <> :post AND `id` NOT IN ( |
|
| 178 | SELECT `post` |
|
| 179 | FROM `jpemeric_blog`.`series_post` |
|
| 180 | WHERE `id` = ( |
|
| 181 | SELECT `series` |
|
| 182 | FROM `jpemeric_blog`.`series_post` |
|
| 183 | WHERE `post` = :post |
|
| 184 | )) AND `display` = :is_active |
|
| 185 | GROUP BY `id` |
|
| 186 | ORDER BY `count` DESC |
|
| 187 | LIMIT {$limit}"; |
|
| 188 | $bindings = [ |
|
| 189 | 'post' => $post, |
|
| 190 | 'is_active' => 1, |
|
| 191 | ]; |
|
| 192 | ||
| 193 | return $this |
|
| 194 | ->connections |
|
| 195 | ->getRead() |
|
| 196 | ->fetchAll($query, $bindings); |
|
| 197 | } |
|
| 198 | } |
|
| 199 | ||
| @@ 56-73 (lines=18) @@ | ||
| 53 | ->fetchAll($query); |
|
| 54 | } |
|
| 55 | ||
| 56 | public function getTagCloud() |
|
| 57 | { |
|
| 58 | $query = " |
|
| 59 | SELECT COUNT(1) AS `count`, `tag` |
|
| 60 | FROM `jpemeric_blog`.`tag` |
|
| 61 | INNER JOIN `jpemeric_blog`.`ptlink` ON `ptlink`.`tag_id` = `tag`.`id` |
|
| 62 | INNER JOIN `jpemeric_blog`.`post` ON `post`.`id` = `ptlink`.`post_id` AND |
|
| 63 | `post`.`display` = :is_active |
|
| 64 | GROUP BY `tag`"; |
|
| 65 | $bindings = [ |
|
| 66 | 'is_active' => 1, |
|
| 67 | ]; |
|
| 68 | ||
| 69 | return $this |
|
| 70 | ->connections |
|
| 71 | ->getRead() |
|
| 72 | ->fetchAll($query, $bindings); |
|
| 73 | } |
|
| 74 | ||
| 75 | public function getTagsForPost($post) |
|
| 76 | { |
|
| @@ 75-90 (lines=16) @@ | ||
| 72 | ->fetchAll($query, $bindings); |
|
| 73 | } |
|
| 74 | ||
| 75 | public function getTagsForPost($post) |
|
| 76 | { |
|
| 77 | $query = " |
|
| 78 | SELECT `tag`.* |
|
| 79 | FROM `jpemeric_blog`.`tag` |
|
| 80 | INNER JOIN `jpemeric_blog`.`ptlink` ON `ptlink`.`tag_id` AND `post_id` = :post |
|
| 81 | ORDER BY `tag`"; |
|
| 82 | $bindings = [ |
|
| 83 | 'post' => $post, |
|
| 84 | ]; |
|
| 85 | ||
| 86 | return $this |
|
| 87 | ->connections |
|
| 88 | ->getRead() |
|
| 89 | ->fetchAll($query, $bindings); |
|
| 90 | } |
|
| 91 | } |
|
| 92 | ||
| @@ 68-84 (lines=17) @@ | ||
| 65 | * |
|
| 66 | * @return array|false |
|
| 67 | */ |
|
| 68 | public function getTwitterByFields(DateTime $date, $text) |
|
| 69 | { |
|
| 70 | $query = " |
|
| 71 | SELECT * |
|
| 72 | FROM `jpemeric_stream`.`twitter` |
|
| 73 | WHERE `date` = :date AND `text` = :text |
|
| 74 | LIMIT 1"; |
|
| 75 | $bindings = [ |
|
| 76 | 'date' => $date->format('Y-m-d H:i:s'), |
|
| 77 | 'text' => $text, |
|
| 78 | ]; |
|
| 79 | ||
| 80 | return $this |
|
| 81 | ->connections |
|
| 82 | ->getRead() |
|
| 83 | ->fetchOne($query, $bindings); |
|
| 84 | } |
|
| 85 | ||
| 86 | /** |
|
| 87 | * @return array|false |
|
| @@ 44-59 (lines=16) @@ | ||
| 41 | ->fetchOne($query, $bindings); |
|
| 42 | } |
|
| 43 | ||
| 44 | public function getBlogByPermalink($permalink) |
|
| 45 | { |
|
| 46 | $query = " |
|
| 47 | SELECT * |
|
| 48 | FROM `jpemeric_stream`.`blog2` |
|
| 49 | WHERE `permalink` = :permalink |
|
| 50 | LIMIT 1"; |
|
| 51 | $bindings = [ |
|
| 52 | 'permalink' => $permalink, |
|
| 53 | ]; |
|
| 54 | ||
| 55 | return $this |
|
| 56 | ->connections |
|
| 57 | ->getRead() |
|
| 58 | ->fetchOne($query, $bindings); |
|
| 59 | } |
|
| 60 | ||
| 61 | /** |
|
| 62 | * @param string $title |
|
| @@ 50-66 (lines=17) @@ | ||
| 47 | * |
|
| 48 | * @return array|false |
|
| 49 | */ |
|
| 50 | public function getBlogCommentByPermalink($permalink) |
|
| 51 | { |
|
| 52 | $query = " |
|
| 53 | SELECT * |
|
| 54 | FROM `jpemeric_stream`.`blog_comment` |
|
| 55 | WHERE `permalink` = :permalink |
|
| 56 | LIMIT 1"; |
|
| 57 | ||
| 58 | $bindings = [ |
|
| 59 | 'permalink' => $permalink, |
|
| 60 | ]; |
|
| 61 | ||
| 62 | return $this |
|
| 63 | ->connections |
|
| 64 | ->getRead() |
|
| 65 | ->fetchOne($query, $bindings); |
|
| 66 | } |
|
| 67 | ||
| 68 | public function insertBlogComment($permalink, DateTime $datetime, array $metadata) |
|
| 69 | { |
|
| @@ 62-79 (lines=18) @@ | ||
| 59 | ->fetchOne($query, $bindings); |
|
| 60 | } |
|
| 61 | ||
| 62 | public function getActivityLastUpdateByType($type) |
|
| 63 | { |
|
| 64 | $query = " |
|
| 65 | SELECT * |
|
| 66 | FROM `jpemeric_stream`.`activity` |
|
| 67 | WHERE `type` = :type |
|
| 68 | ORDER BY `updated_at` DESC |
|
| 69 | LIMIT 1"; |
|
| 70 | ||
| 71 | $bindings = [ |
|
| 72 | 'type' => $type, |
|
| 73 | ]; |
|
| 74 | ||
| 75 | return $this |
|
| 76 | ->connections |
|
| 77 | ->getRead() |
|
| 78 | ->fetchOne($query, $bindings); |
|
| 79 | } |
|
| 80 | ||
| 81 | /** |
|
| 82 | * @param integer $limit |
|