Titleshow

typecho加密文章显示标题的插件

功能
1,让加密文章的标题正常显示

2,让加密文章的标签正常显示

3,让加密文章的评论数正常显示

4,自定义所有加密文章的提示文字

5,意外的解决了加密文章无法评论的问题

6,意外的解决了加密文章返回403问题

安装方法
下载解压,将文件夹重命名为Titleshow,传入程序插件目录,启用,设置即可

拓展判断
使用插件后判断文章是否加密用$this->hidden会失效,所以插件新增个参数来用来进行判断,如下判断文章是否加密

<?php if($this->hidden||$this->titleshow): ?>
该文章已加密
<?php else: ?>
文章未加密
<?php endif;?>
function createCatalog($obj) {    //为文章标题添加锚点
global $catalog;
global $catalog_count;
$catalog = array();
$catalog_count = 0;
$obj = preg_replace_callback('/<h([1-6])(.*?)>(.*?)<\/h\1>/i', function($obj) {
    global $catalog;
    global $catalog_count;
    $catalog_count ++;
    $catalog[] = array('text' => trim(strip_tags($obj[3])), 'depth' => $obj[1], 'count' => $catalog_count);
    return '<h'.$obj[1].$obj[2].'><a name="cl-'.$catalog_count.'"></a>'.$obj[3].'</h'.$obj[1].'>';
}, $obj);
return $obj;

}

function getCatalog() { //输出文章目录容器

global $catalog;
$index = '';
if ($catalog) {
    $index = '<ul>'."\n";
    $prev_depth = '';
    $to_depth = 0;
    foreach($catalog as $catalog_item) {
        $catalog_depth = $catalog_item['depth'];
        if ($prev_depth) {
            if ($catalog_depth == $prev_depth) {
                $index .= '</li>'."\n";
            } elseif ($catalog_depth > $prev_depth) {
                $to_depth++;
                $index .= '<ul>'."\n";
            } else {
                $to_depth2 = ($to_depth > ($prev_depth - $catalog_depth)) ? ($prev_depth - $catalog_depth) : $to_depth;
                if ($to_depth2) {
                    for ($i=0; $i<$to_depth2; $i++) {
                        $index .= '</li>'."\n".'</ul>'."\n";
                        $to_depth--;
                    }
                }
                $index .= '</li>';
            }
        }
        $index .= '<li><a href="#cl-'.$catalog_item['count'].'">'.$catalog_item['text'].'</a>';
        $prev_depth = $catalog_item['depth'];
    }
    for ($i=0; $i<=$to_depth; $i++) {
        $index .= '</li>'."\n".'</ul>'."\n";
    }
$index = '<div id="toc-container">'."\n".'<div id="toc">'."\n".'<strong>文章目录</strong>'."\n".$index.'</div>'."\n".'</div>'."\n";
}
echo $index;

}
使用方法