Files
2020-06-10 06:19:03 +09:00

246 lines
8.3 KiB
PHP
Executable File

<?php defined('BASEPATH') or exit('No direct script access allowed');
class Post
{
private $db;
private $CI;
public function __construct()
{
$this->CI = &get_instance();
$this->CI->load->library('session');
$this->db = &$this->CI->db;
}
public function getPost($postId)
{
$query = $this->db->query("SELECT
`p`.`idx` `editorId`,
`p`.`partner_img` `editorImg`,
`p`.`main_img` `editorMainImg`,
`p`.`partner_name` `editorName`,
`p`.`partner_intro` `editorIntro`,
`l`.`title`,
`l`.`head_title`,
`l`.`sub_title`,
`l`.`content`,
`l`.`category_idx` `categoryId`,
`l`.`idx`,
`l`.`main_img` `mainImg`,
`l`.`hit_count` `views`,
`l`.`like_count` `likes`,
`l`.`comment_count` `comments`,
`l`.*
FROM
`life` `l`
LEFT JOIN
`partner` `p` ON `l`.`partner_idx` = `p`.`idx`
WHERE
`l`.`idx` IN ($postId)
AND `l`.`is_display` = 'Y'
AND `l`.`is_del` = 'N'");
return $this->urify($query->result())[0];
}
public function getPostJoin1($postId)
{
$query = $this->db->query("SELECT
`p`.`idx` `editorId`,
`p`.`partner_img` `editorImg`,
`p`.`main_img` `editorMainImg`,
`p`.`partner_name` `editorName`,
`p`.`partner_intro` `editorIntro`,
`l`.`title`,
`l`.`head_title`,
`l`.`sub_title`,
`l`.`content`,
`l`.`category_idx` `categoryId`,
`l`.`idx`,
`l`.`main_img` `mainImg`,
`l`.`hit_count` `views`,
`l`.`like_count` `likes`,
`l`.`comment_count` `comments`,
`l`.*
FROM
`life` `l`
LEFT JOIN
`partner` `p` ON `l`.`partner_idx` = `p`.`idx`
left JOIN
cm_config cf on l.idx=cf.PostId
WHERE
`l`.`idx` IN ($postId)
AND `l`.`is_display` = 'Y'
AND `l`.`is_del` = 'N' order by cf.OrderNum ");
return $this->urify($query->result());
}
public function getEditorPosts($editorId, $limit = 16, $orderBy = 'update_date', $sort = 'desc', $ignores = array())
{
if (is_array($editorId)) {
$editorId = implode(",", $editorId);
}
$ignoreId = '';
if (is_array($ignores) && count($ignores)) {
$ignoreId = " and l.idx not in (" . implode(",", $ignores) . ")";
}
$query = $this->db->query("SELECT
`p`.`idx` `editorId`,
`p`.`partner_img` `editorImg`,
`p`.`main_img` `editorMainImg`,
`p`.`partner_name` `editorName`,
`p`.`partner_intro` `editorIntro`,
`l`.`title`,
`l`.`head_title`,
`l`.`sub_title`,
`l`.`content`,
`l`.`category_idx` `categoryId`,
`l`.`idx`,
`l`.`main_img` `mainImg`,
`l`.`hit_count` `views`,
`l`.`like_count` `likes`,
`l`.`comment_count` `comments`,
`l`.*
FROM
`life` `l`
LEFT JOIN
`partner` `p` ON `l`.`partner_idx` = `p`.`idx`
WHERE
`l`.`partner_idx` IN ($editorId)
AND `l`.`is_display` = 'Y'
AND `l`.`is_del` = 'N'
$ignoreId
ORDER BY `l`.`$orderBy` $sort
LIMIT $limit");
$posts = $query->result();
return $this->urify($posts);
}
public function getPostsByCategoryId($categoryId, $limit = 16, $orderBy = 'reg_date', $sort = 'desc', $ignores = array())
{
if (is_array($categoryId)) {
$categoryId = implode(",", $categoryId);
}
$ignoreId = '';
if (is_array($ignores) && count($ignores)) {
$ignoreId = " and l.idx not in (" . implode(",", $ignores) . ")";
}
$query = $this->db->query("SELECT
`p`.`idx` `editorId`,
`p`.`partner_img` `editorImg`,
`p`.`main_img` `editorMainImg`,
`p`.`partner_name` `editorName`,
`p`.`partner_intro` `editorIntro`,
`l`.`title`,
`l`.`head_title`,
`l`.`sub_title`,
`l`.`content`,
`l`.`category_idx` `categoryId`,
`l`.`idx`,
`l`.`main_img` `mainImg`,
`l`.`hit_count` `views`,
`l`.`like_count` `likes`,
`l`.`comment_count` `comments`,
`l`.`update_date`,
`l`.`reg_date`
FROM
`life` `l`
LEFT JOIN
`partner` `p` ON `l`.`partner_idx` = `p`.`idx`
WHERE
`l`.`category_idx` IN ($categoryId)
AND `l`.`is_display` = 'Y'
AND `l`.`is_del` = 'N' $ignoreId
ORDER BY `l`.`$orderBy` DESC
LIMIT $limit");
$posts = $query->result();
return $this->urify($posts);
}
public function getPostsEditorRecent($categoryId, $limit = 16, $orderBy = 'reg_date', $sort = 'desc', $ignores = array())
{
if (is_array($categoryId)) {
$categoryId = implode(",", $categoryId);
}
$ignoreId = '';
if (is_array($ignores) && count($ignores)) {
$ignoreId = " and l.idx not in (" . implode(",", $ignores) . ")";
}
$query = $this->db->query("SELECT
`p`.`idx` `editorId`,
`p`.`partner_img` `editorImg`,
`p`.`main_img` `editorMainImg`,
`p`.`partner_name` `editorName`,
`p`.`partner_intro` `editorIntro`,
`l`.`title`,
`l`.`head_title`,
`l`.`sub_title`,
`l`.`content`,
`l`.`category_idx` `categoryId`,
`l`.`idx`,
`l`.`main_img` `mainImg`,
`l`.`hit_count` `views`,
`l`.`like_count` `likes`,
`l`.`comment_count` `comments`,
`l`.`update_date`,
`l`.`reg_date`
FROM
`life` `l`
LEFT JOIN
`partner` `p` ON `l`.`partner_idx` = `p`.`idx`
WHERE
`l`.`category_idx` IN ($categoryId)
AND `l`.`is_display` = 'Y'
AND `l`.`is_del` = 'N'
$ignoreId group by `l`.`partner_idx`
ORDER BY `l`.`$orderBy` DESC
LIMIT $limit");
$posts = $query->result();
return $this->urify($posts);
}
public function urify($posts)
{
foreach ($posts as $k => $p) {
$posts[$k]->title = convertEmoji($posts[$k]->title, 'DECODE');
$posts[$k]->titleUrl = cleanUrl($p->title);
$posts[$k]->titleUrl = $posts[$k]->titleUrl ? $posts[$k]->titleUrl : cleanUrl($p->editorName);
$posts[$k]->editorNameUrl = cleanUrl($p->editorName);
}
return $posts;
}
public function getTop10($categoryId)
{
$filePrefix = 'cmtv_top10_';
$filename = $filePrefix . date('dH-', time() - 3600) . (is_array($categoryId) ? 'all' : $categoryId) . '.json';
$cacheFilePath = $this->CI->config->item('log_path') . $filename;
if (file_exists($cacheFilePath)) {
return json_decode(file_get_contents($cacheFilePath));
} else {
$mask = $this->CI->config->item('log_path') . $filePrefix . '*' . (is_array($categoryId) ? 'all' : $categoryId) . '.json';
array_map('unlink', glob($mask));
$cmtvTop10 = $this->getPostsByCategoryId($categoryId, 10, 'hit_count', 'desc');
file_put_contents($cacheFilePath, json_encode($cmtvTop10));
return $cmtvTop10;
}
}
public function upload($f)
{
$config['upload_path'] = FCPATH. 'uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$this->CI->load->library('upload', $config);
if (!$this->CI->upload->do_upload($f)) {
return false;
} else {
return $this->CI->upload->data();
}
}
}