2022-02-02 21:09:24 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
|
2022-02-03 22:53:54 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取文章缩略图
|
|
|
|
|
|
* 获取顺序: 自定义字段(thumb)> 文章第一张图片 > 系统图库
|
|
|
|
|
|
* @param $obj
|
|
|
|
|
|
* @return 获取文章头图
|
|
|
|
|
|
*/
|
2022-02-05 16:58:32 +08:00
|
|
|
|
function get_postthumb($obj)
|
|
|
|
|
|
{
|
2022-02-03 22:53:54 +08:00
|
|
|
|
|
2022-02-05 16:58:32 +08:00
|
|
|
|
if (isset($obj->fields->thumb)) {
|
2022-02-03 22:53:54 +08:00
|
|
|
|
return $obj->fields->thumb;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-02-05 16:58:32 +08:00
|
|
|
|
preg_match("/<img[^>]+src\s*=\s*['\"]([^'\"]+)['\"][^>]*>/ ", $obj->content, $matches);
|
|
|
|
|
|
if (isset($matches[1])) {
|
2022-02-03 22:53:54 +08:00
|
|
|
|
return $matches[1];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-02-05 16:58:32 +08:00
|
|
|
|
preg_match("/!\[(.*?)\]\((.*?)\)/ ", $obj->content, $matches);
|
|
|
|
|
|
if (isset($matches[2])) {
|
|
|
|
|
|
return $matches[2];
|
2022-02-03 22:53:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2022-02-05 16:58:32 +08:00
|
|
|
|
$thumbPath = __DIR__ . '/static/medias/featureimages/';
|
2022-02-03 22:53:54 +08:00
|
|
|
|
$files = scandir($thumbPath);
|
|
|
|
|
|
$thumbs = [];
|
|
|
|
|
|
for ($i = 0; $i < count($files); $i++) {
|
2022-02-05 16:58:32 +08:00
|
|
|
|
if (is_file($thumbPath . $files[$i])) {
|
2022-02-03 22:53:54 +08:00
|
|
|
|
$thumbs[] = $files[$i];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-02-05 16:58:32 +08:00
|
|
|
|
return Helper::options()->themeUrl . '/static/medias/featureimages/' . $thumbs[rand(0, count($thumbs) - 1)];
|
2022-02-03 22:53:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @param $obj 对象
|
|
|
|
|
|
* @return string 上一页url
|
|
|
|
|
|
*/
|
2022-02-05 16:58:32 +08:00
|
|
|
|
function getPrevPageLink($obj)
|
|
|
|
|
|
{
|
2022-02-03 22:53:54 +08:00
|
|
|
|
ob_start();
|
|
|
|
|
|
$obj->pagelink("prev", "prev");
|
|
|
|
|
|
$pageLink = ob_get_contents();
|
|
|
|
|
|
ob_end_clean();
|
|
|
|
|
|
preg_match("/<a[^>]+href\s*=\s*['\"]([^'\"]+)['\"][^>]*>/", $pageLink, $matches);
|
2022-02-05 16:58:32 +08:00
|
|
|
|
if (isset($matches[1])) {
|
2022-02-03 22:53:54 +08:00
|
|
|
|
return $matches[1];
|
|
|
|
|
|
}
|
|
|
|
|
|
return "#";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @param $obj 对象
|
|
|
|
|
|
* @return string 下一页url
|
|
|
|
|
|
*/
|
2022-02-05 16:58:32 +08:00
|
|
|
|
function getNextPageLink($obj)
|
|
|
|
|
|
{
|
2022-02-03 22:53:54 +08:00
|
|
|
|
ob_start();
|
|
|
|
|
|
$obj->pageLink("next", "next");
|
|
|
|
|
|
$pageLink = ob_get_contents();
|
|
|
|
|
|
ob_end_clean();
|
|
|
|
|
|
preg_match("/<a[^>]+href\s*=\s*['\"]([^'\"]+)['\"][^>]*>/", $pageLink, $matches);
|
2022-02-05 16:58:32 +08:00
|
|
|
|
if (isset($matches[1])) {
|
2022-02-03 22:53:54 +08:00
|
|
|
|
return $matches[1];
|
|
|
|
|
|
}
|
|
|
|
|
|
return "#";
|
2022-02-05 16:58:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 统计文章字数
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param $cid
|
|
|
|
|
|
*/
|
|
|
|
|
|
function articleCount($cid)
|
|
|
|
|
|
{
|
|
|
|
|
|
$db = Typecho_Db::get();
|
|
|
|
|
|
$rs = $db->fetchRow($db->select('table.contents.text')->from('table.contents')->where('table.contents.cid=?', $cid)->order('table.contents.cid', Typecho_Db::SORT_ASC)->limit(1));
|
|
|
|
|
|
$text = preg_replace("/[^\x{4e00}-\x{9fa5}]/u", "", $rs['text']);
|
|
|
|
|
|
return mb_strlen($text, 'UTF-8');
|
2022-02-03 22:53:54 +08:00
|
|
|
|
}
|