header = array('ContentIndex_Plugin', 'header'); Typecho_Plugin::factory('Widget_Archive')->singleHandle = array('ContentIndex_Plugin', 'singleHandle'); } /** * 禁用插件方法,如果禁用失败,直接抛出异常 * * @static * @access public * @return void * @throws Typecho_Plugin_Exception */ public static function deactivate(){} /** * 获取插件配置面板 * * @access public * @param Typecho_Widget_Helper_Form $form 配置面板 * @return void */ public static function config(Typecho_Widget_Helper_Form $form){ } /** * 个人用户的配置面板 * * @access public * @param Typecho_Widget_Helper_Form $form * @return void */ public static function personalConfig(Typecho_Widget_Helper_Form $form){} /** * 插件实现方法 * * @access public * @return void */ public static function header($header,$that){ $siteUrl = Helper::options()->siteUrl; echo ""; } /** * 插件实现方法 * * @access public * @return void */ public static function singleHandle($that,$select) { if (preg_match_all("/(.*)<\/h\d>/isU",$that->content,$outarr)) { $index = array(); $index_out = ""; $minlevel = 6; for ($key=0; $keycontent; $tb = strpos($ta, $outarr[0][$key]); $that->content = substr($ta, 0, $tb)."".substr($ta, $tb); if ($outarr[1][$key]<$minlevel) $minlevel = $outarr[1][$key]; array_push($index, array( "level"=>$outarr[1][$key], "link"=>"{$outarr[2][$key]}" ) ); } $curlevel = 0; foreach ($index as $i) { if ($i["level"]>$curlevel) $index_out.="\n", $curlevel-$i["level"]); $curlevel = $i["level"]; $index_out .= "
  • {$i['link']}
  • \n"; } $index_out.=str_repeat("\n", $curlevel - $minlevel + 1); $that->content = "
    {$index_out}
    ". $that->content; } } }