158 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						||
 | 
						||
/* 继承方法函数 */
 | 
						||
require_once('widget.php');
 | 
						||
 | 
						||
/* 公用函数 */
 | 
						||
require_once('function.php');
 | 
						||
 | 
						||
/* 过滤内容函数 */
 | 
						||
require_once('parse.php');
 | 
						||
 | 
						||
/* 主题内置开放API */
 | 
						||
require_once('route.php');
 | 
						||
 | 
						||
/* 插件方法 */
 | 
						||
require_once('factory.php');
 | 
						||
 | 
						||
/* 页面加载计时 */
 | 
						||
_startCountTime();
 | 
						||
 | 
						||
/* 主题初始化 */
 | 
						||
function themeInit($self)
 | 
						||
{
 | 
						||
    /* 强制用户关闭反垃圾保护 */
 | 
						||
    Helper::options()->commentsAntiSpam = false;
 | 
						||
    /* 强制用户要求填写邮箱 */
 | 
						||
    Helper::options()->commentsRequireMail = true;
 | 
						||
    /* 强制用户要求无需填写url */
 | 
						||
    Helper::options()->commentsRequireURL = false;
 | 
						||
    /* 强制用户开启评论回复 */
 | 
						||
    Helper::options()->commentsThreaded = true;
 | 
						||
    /* 主题开放API 路由规则 */
 | 
						||
    $path_info = $self->request->getPathinfo();
 | 
						||
 | 
						||
    if ($path_info == "/joe/api") {
 | 
						||
        switch ($self->request->routeType) {
 | 
						||
            case 'aside_ranking':
 | 
						||
                _getRanking($self);
 | 
						||
                break;
 | 
						||
            case 'publish_list':
 | 
						||
                _getPost($self);
 | 
						||
                break;
 | 
						||
            case 'baidu_record':
 | 
						||
                _getRecord($self);
 | 
						||
                break;
 | 
						||
            case 'baidu_push':
 | 
						||
                _pushRecord($self);
 | 
						||
                break;
 | 
						||
            case 'handle_views':
 | 
						||
                _handleViews($self);
 | 
						||
                break;
 | 
						||
            case 'handle_agree':
 | 
						||
                _handleAgree($self);
 | 
						||
                break;
 | 
						||
            case 'wallpaper_type':
 | 
						||
                _getWallpaperType($self);
 | 
						||
                break;
 | 
						||
            case 'wallpaper_list':
 | 
						||
                _getWallpaperList($self);
 | 
						||
                break;
 | 
						||
            case 'maccms_list':
 | 
						||
                _getMaccmsList($self);
 | 
						||
                break;
 | 
						||
            case 'huya_list':
 | 
						||
                _getHuyaList($self);
 | 
						||
                break;
 | 
						||
        };
 | 
						||
    }
 | 
						||
 | 
						||
    /* 增加自定义SiteMap功能 */
 | 
						||
    if (Helper::options()->JSiteMap && Helper::options()->JSiteMap !== 'off') {
 | 
						||
        if ($self->request->getRequestUri() == "/sitemap.xml" || $self->request->getRequestUri() == "/index.php/sitemap.xml") {
 | 
						||
            $self->setThemeFile("library/sitemap.php");
 | 
						||
            $self->response->setStatus(200);
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
/* 增加自定义字段 */
 | 
						||
function themeFields($layout)
 | 
						||
{
 | 
						||
    $mode = new Typecho_Widget_Helper_Form_Element_Select(
 | 
						||
        'mode',
 | 
						||
        array(
 | 
						||
            'default' => '默认模式',
 | 
						||
            'single' => '大图模式',
 | 
						||
            'multiple' => '三图模式',
 | 
						||
            'none' => '无图模式'
 | 
						||
        ),
 | 
						||
        'default',
 | 
						||
        '文章显示方式',
 | 
						||
        '介绍:用于设置当前文章在首页和搜索页的显示方式 <br /> 
 | 
						||
         注意:独立页面该功能不会生效'
 | 
						||
    );
 | 
						||
    $layout->addItem($mode);
 | 
						||
 | 
						||
    $keywords = new Typecho_Widget_Helper_Form_Element_Text(
 | 
						||
        'keywords',
 | 
						||
        NULL,
 | 
						||
        NULL,
 | 
						||
        'SEO关键词(非常重要!)',
 | 
						||
        '介绍:用于设置当前页SEO关键词 <br />
 | 
						||
         注意:多个关键词使用英文逗号进行隔开 <br />
 | 
						||
         例如:Typecho,Typecho主题,Typecho模板 <br />
 | 
						||
         其他:如果不填写此项,则默认取文章标签'
 | 
						||
    );
 | 
						||
    $layout->addItem($keywords);
 | 
						||
 | 
						||
    $description = new Typecho_Widget_Helper_Form_Element_Textarea(
 | 
						||
        'description',
 | 
						||
        NULL,
 | 
						||
        NULL,
 | 
						||
        'SEO描述语(非常重要!)',
 | 
						||
        '介绍:用于设置当前页SEO描述语 <br />
 | 
						||
         注意:SEO描述语不应当过长也不应当过少 <br />
 | 
						||
         其他:如果不填写此项,则默认截取文章片段'
 | 
						||
    );
 | 
						||
    $layout->addItem($description);
 | 
						||
 | 
						||
    $abstract = new Typecho_Widget_Helper_Form_Element_Textarea(
 | 
						||
        'abstract',
 | 
						||
        NULL,
 | 
						||
        NULL,
 | 
						||
        '自定义摘要(非必填)',
 | 
						||
        '填写时:将会显示填写的摘要 <br>
 | 
						||
         不填写时:默认取文章里的内容'
 | 
						||
    );
 | 
						||
    $layout->addItem($abstract);
 | 
						||
 | 
						||
    $thumb = new Typecho_Widget_Helper_Form_Element_Textarea(
 | 
						||
        'thumb',
 | 
						||
        NULL,
 | 
						||
        NULL,
 | 
						||
        '自定义缩略图(非必填)',
 | 
						||
        '填写时:将会显示填写的文章缩略图 <br>
 | 
						||
         不填写时:<br>
 | 
						||
            1、若文章有图片则取文章内图片 <br>
 | 
						||
            2、若文章无图片,并且外观设置里未填写·自定义缩略图·选项,则取模板自带图片 <br>
 | 
						||
            3、若文章无图片,并且外观设置里填写了·自定义缩略图·选项,则取自定义缩略图图片 <br>
 | 
						||
         注意:多个缩略图时换行填写,一行一个(仅在三图模式下生效)'
 | 
						||
    );
 | 
						||
    $layout->addItem($thumb);
 | 
						||
 | 
						||
    $video = new Typecho_Widget_Helper_Form_Element_Textarea(
 | 
						||
        'video',
 | 
						||
        NULL,
 | 
						||
        NULL,
 | 
						||
        'M3U8或MP4地址(非必填)',
 | 
						||
        '填写后,文章会插入一个视频模板 <br>
 | 
						||
         格式:视频名称&视频地址。如果有多个,换行写即可 <br>
 | 
						||
         例如:<br>
 | 
						||
            第01集$https://iqiyi.cdn9-okzy.com/20201104/17638_8f3022ce/index.m3u8 <br>
 | 
						||
            第02集$https://iqiyi.cdn9-okzy.com/20201104/17639_5dcb8a3b/index.m3u8 
 | 
						||
        '
 | 
						||
    );
 | 
						||
    $layout->addItem($video);
 | 
						||
}
 |