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('%s', $newsrc, $newsItem['title'], 'loading="lazy" class="lozad"') : sprintf('%s', $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();