0) ? $_GET['p'] : 1;
$itemPerPage = 14;
$itemStart = ($page - 1) * $itemPerPage;
# 讀入單文頁新聞內容
$newsItem = LoadRequireFile($NEWS_DATA_DIR . $cat_ename . '/' . $media_ename . '/' . $dt . '/' . $nid . '.inc');
if (empty($newsItem)) {
require_once $WEB_DIR . 'smartweb/sw_oops.php';
exit;
}
$newsItem['nid'] = $nid;
# Default Item 資料
$defaultItem = array(
'content' => (!empty($newsItem['content'])) ? $newsItem['content'] : '',
'pubDate' => (!empty($newsItem['pubDate'])) ? date('Y-m-d H:i:s', strtotime($newsItem['pubDate'])) : date('Y-m-d H:i:s'),
'cat_cname' => $cat_cname,
'cat_ename' => $cat_ename,
'media_cname' => $media_cname,
'media_ename' => $media_ename,
'media_link' => $mediaAry[$media_ename][5], #連結以global_var 為主
'news_link' => '/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/index-' . $nid . '.html',
'photo_link' => '/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/index-' . $nid . '.html',
'reply_link' => '/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/index-' . $nid . '.html',
'fastreply_link' => '/reply/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/' . $nid,
'fastvote_link' => '/vote/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/' . $nid,
'mail_link' => '/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/mail-' . $nid . '.html',
'fastmail_link' => '/mail/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/' . $nid,
'print_link' => '/' . $cat_ename . '/' . $media_ename . '/' . $dt . '/print-' . $nid . '.html',
'cat_link' => '/cat/' . $cat_ename,
'media_plink' => 'media/' . $media_ename, #新聞媒體頁網址
);
$newsItem = array_merge($newsItem, $defaultItem);
# 如果內文沒有圖片,但有列表圖片時,內文右上角顯示列表圖片
$bindContentPic = function ($url) use ($newsItem) {
return (!empty($newsItem['src'][$url[1]])) ? '
' : '';
};
$content = $newsItem['content'];
if (preg_match('//i', $newsItem['content'])) {
$newsItem['content'] = preg_replace_callback('//', $bindContentPic, $newsItem['content']);
} elseif (preg_match('//i', $newsItem['content'])) {
$newsItem['content'] = '
' . $newsItem['content'];
$newsItem['content'] = preg_replace_callback('//', $bindContentPic, $newsItem['content']);
}
$regexp = '/src=[\'"]([^\'"]*)[\'"]/i';
$matchResult = preg_match_all($regexp, $newsItem['content'], $matches);
if ($matchResult) {
$picNum = count($matches[1]);
# 先執行將圖片做置換的動作
for ($idx = 0; $idx < $picNum; $idx++) {
$removePicImg = preg_quote($matches[1][$idx], '/');
$newsrc = base_url() . $matches[1][$idx];
// list(,,,$imgAttr) =getimagesize($newsrc);
$newImgTag = ($idx > 0)
? sprintf('
', $newsrc, $newsItem['title'], 'loading="lazy" class="lozad"')
: sprintf('
', $newsrc, $newsItem['title']);
$newsItem['content'] = preg_replace('/\
]+' . $removePicImg . '[^\>]+\>/smi', $newImgTag, $newsItem['content']);
}
}
# 利用YT影片的網址 取得YT影片的封面圖
if (!empty($newsItem['video'][0])) {
$youtube_id = youtubeurl($newsItem['video'][0]);
$newsItem['video']['img'] = "https://img.youtube.com/vi/" . $youtube_id . "/sddefault.jpg";
$final_video = video_schema($newsItem);
}
# 處理新聞內容
$newsItem['content'] = preg_replace_callback('//', 'changeVideo', $newsItem['content']);
$newsItem['content'] = filter3upBR($newsItem['content']);
# 將外網連結做rel="nofollow"的設定
$newsItem['content'] = link_add_settings($newsItem['content']);
# 媒體書店 內文 調整
if ($mid == "292") {
//內文加工
$newsItem['content'] = preg_replace("/
]+)\">
insert_news($cid, $mid, $nid);
# 頁面資訊
$html_title = $newsItem['title'] . ' - ' . $newsItem['cat_cname'] . '新聞 - PChome Online 新聞';
$html_description = $newsItem['summary'];
#頁面關鍵字(META)
#如果customize_keyword 有值 以 customize_keyword 為主
#關鍵字只取6個
$keyword_arr = (!empty($newsItem['customize_keyword'])) ? $newsItem['customize_keyword'] : $newsItem['keyword'] ;
$html_keywords = (!empty($keyword_arr) && is_array($keyword_arr)) ? implode(',', array_slice($keyword_arr, 0, 6)) : '';
# PV 記錄
pv('SZ', $cid, $mid, $nid);
$pv_js_code = pv_js_code('SZ', $cid, $mid, $nid);
// #會員資料
// $MemberUserInfo = getMemberUserInfo();
# 讀入版型
$htmlMeta = [
'title' => (!empty($html_title)) ? htmlspecialchars($html_title) : '',
'description' => (!empty($html_description)) ? htmlspecialchars($html_description) : '',
'keywords' => (!empty($html_keywords)) ? htmlspecialchars($html_keywords) : ''
];
$tpl = new template('swNews');
$tpl->frame = $TEMPLATES . "smartphone/html5.php";
$tpl->setHtmlMeta($htmlMeta);
$tpl->setNewsItem($newsItem);
$tpl->setCatInfo($catInfo);
$tpl->render();