|
@@ -605,6 +605,60 @@ class Board extends Model
|
|
|
];
|
|
];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 전체 게시판 최근 미디어(썸네일 보유) 게시글 조회
|
|
|
|
|
+ */
|
|
|
|
|
+ public function getLatestMedia(int $page, int $perPage): object
|
|
|
|
|
+ {
|
|
|
|
|
+ $sql = "
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ COUNT(*) AS total
|
|
|
|
|
+ FROM
|
|
|
|
|
+ tb_post PST
|
|
|
|
|
+ JOIN tb_board BRD ON BRD.id = PST.board_id
|
|
|
|
|
+ WHERE
|
|
|
|
|
+ PST.thumbnail IS NOT NULL AND PST.thumbnail != ''
|
|
|
|
|
+ AND PST.is_notice = 0 AND PST.is_speaker = 0
|
|
|
|
|
+ AND PST.is_secret = 0 AND PST.is_personal = 0
|
|
|
|
|
+ AND BRD.is_display = 1 AND PST.is_delete = 0;
|
|
|
|
|
+ ";
|
|
|
|
|
+
|
|
|
|
|
+ $total = DB::selectOne($sql)->total;
|
|
|
|
|
+
|
|
|
|
|
+ $sql = "
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ BRD.code, BRD.name AS boardName,
|
|
|
|
|
+ BCA.name AS categoryName,
|
|
|
|
|
+ PST.id, PST.board_id, PST.board_category_id, PST.user_id, PST.thumbnail, PST.subject, PST.content,
|
|
|
|
|
+ PST.sid, PST.username, PST.email, PST.comment_rows, PST.is_reply, PST.is_personal, PST.is_secret,
|
|
|
|
|
+ PST.is_notice, PST.is_speaker, PST.is_html, PST.use_comment, PST.receive_email, PST.hit, PST.like, PST.dislike,
|
|
|
|
|
+ PST.blame, PST.ip_address, PST.user_agent, PST.device_type, PST.file_rows, PST.image_rows,
|
|
|
|
|
+ PST.link_rows, PST.tag_rows, PST.is_delete, PST.created_at
|
|
|
|
|
+ FROM
|
|
|
|
|
+ tb_post PST
|
|
|
|
|
+ INNER JOIN tb_board BRD ON BRD.id = PST.board_id
|
|
|
|
|
+ LEFT JOIN tb_board_category BCA ON BCA.id = PST.board_category_id
|
|
|
|
|
+ LEFT JOIN users USR ON USR.id = PST.user_id
|
|
|
|
|
+ WHERE
|
|
|
|
|
+ PST.thumbnail IS NOT NULL AND PST.thumbnail != ''
|
|
|
|
|
+ AND PST.is_notice = 0 AND PST.is_speaker = 0
|
|
|
|
|
+ AND PST.is_secret = 0 AND PST.is_personal = 0
|
|
|
|
|
+ AND BRD.is_display = 1 AND PST.is_delete = 0
|
|
|
|
|
+ ORDER BY
|
|
|
|
|
+ PST.created_at DESC, PST.id DESC
|
|
|
|
|
+ LIMIT ?, ?;
|
|
|
|
|
+ ";
|
|
|
|
|
+
|
|
|
|
|
+ $list = $this->getPaginator(
|
|
|
|
|
+ DB::select($sql, [$this->getPageOffset($page), $perPage]), $total, $perPage, $page, null
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ return (object)[
|
|
|
|
|
+ 'total' => $total,
|
|
|
|
|
+ 'list' => $list
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 게시판 최근 게시글 조회
|
|
* 게시판 최근 게시글 조회
|
|
|
*/
|
|
*/
|