Typecho常用代码之:收藏的若干functions源码

2014年02月10日 / 技术相关 / 标签:typecho,代码

Typecho常用代码之:收藏的若干functions源码:

<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
function themeConfig($form) {
 
$siteMail = new Typecho_Widget_Helper_Form_Element_Text('siteMail', null, 'sisome@qq.com', _t('站点邮箱'), _t('站点邮箱,显示Gravatar头像'));
$form->addInput($siteMail);
 
$icpNum = new Typecho_Widget_Helper_Form_Element_Text('icpNum', NULL, NULL, _t('网站备案号'), _t('在这里填入网站备案号'));
$form->addInput($icpNum);
 
$siteStat = new Typecho_Widget_Helper_Form_Element_Textarea('siteStat', NULL, NULL, _t('统计代码'), _t('在这里填入网站统计代码'));
$form->addInput($siteStat);
 
//附件源地址
$src_address = new Typecho_Widget_Helper_Form_Element_Text('src_add', NULL, NULL, _t('替换前地址'), _t('即你的附件存放地址,如http://www.yourblog.com/usr/uploads/'));
$form->addInput($src_address);
//替换后地址
$cdn_address = new Typecho_Widget_Helper_Form_Element_Text('cdn_add', NULL, NULL, _t('替换后'), _t('即你的七牛云存储域名,如http://yourblog.qiniudn.com/'));
$form->addInput($cdn_address);
 
//默认缩略图
$default = new Typecho_Widget_Helper_Form_Element_Text('default_thumb', NULL, '', _t('默认缩略图'),_t('文章没有图片时显示的默认缩略图,为空时表示不显示'));
$form->addInput($default);
//默认宽度
$width = new Typecho_Widget_Helper_Form_Element_Text('thumb_width', NULL, '540', _t('缩略图默认宽度'));
$form->addInput($width);
//默认高度
$height = new Typecho_Widget_Helper_Form_Element_Text('thumb_height', NULL, '324', _t('缩略图默认高度'));
$form->addInput($height);
}
function showThumb($obj,$size=null,$link=false,$pattern='<div class="post-thumb"><a class="thumb" href="{permalink}" title="{title}" style="background-image:url({thumb})"></a></div>'){
preg_match_all( "/<[img|IMG].*?src=[\'|\"](.*?)[\'|\"].*?[\/]?>/", $obj->content, $matches );
$thumb = '';
$options = Typecho_Widget::widget('Widget_Options');
if(isset($matches[1][0])){
$thumb = $matches[1][0];;
if(!empty($options->src_add) && !empty($options->cdn_add)){
$thumb = str_ireplace($options->src_add,$options->cdn_add,$thumb);
}
if($size!='full'){
$thumb_width = $options->thumb_width;
$thumb_height = $options->thumb_height;
 
if($size!=null){
$size = explode('x', $size);
if(!empty($size[0]) && !empty($size[1])){
list($thumb_width,$thumb_height) = $size;
}
}
$thumb .= '?imageView2/4/w/'.$thumb_width.'/h/'.$thumb_height;
}
}
if(empty($thumb) && empty($options->default_thumb)){
return '';
}else{
$thumb = empty($thumb) ? $options->default_thumb : $thumb;
}
if($link){
return $thumb;
}
echo str_replace(
array('{title}','{thumb}','{permalink}'),
array($obj->title,$thumb,$obj->permalink),
$pattern);
}
/**
* 解析内容以实现附件加速
* @access public
* @param string $content 文章正文
* @param Widget_Abstract_Contents $obj
*/
function parseContent($obj){
$options = Typecho_Widget::widget('Widget_Options');
if(!empty($options->src_add) && !empty($options->cdn_add)){
$obj->content = str_ireplace($options->src_add,$options->cdn_add,$obj->content);
}
echo trim($obj->content);
}
/**
* 生成随机颜色值
* @return string
*/
function randColor(){
return rand(120,200).','.rand(120,200).','.rand(120,200);
}
/**
* 显示标签
* @param string $parse 解析模版
* @param number $limit 显示条数 为0时表示显示全部
* @param string $sort 排序字段
* @param number $desc 默认为0,表示倒序
* @return void
*/
function showTagCloud($parse=null,$limit=30,$sort='mid',$desc=0){
$parse = is_null($parse) ? '<li><a href="{permalink}" title="{count}个话题" style="{background}">{name}({count})</a></li>': $parse;
Typecho_Widget::widget('Widget_Metas_Tag_Cloud', 'sort='.$sort.'&ignoreZeroCount=1&desc='.$desc.'&limit='.$limit)->to($tags);
$output = '';
if($tags->have()){
while ($tags->next()){
$color = 'color: rgb('.randColor().');';
$background = 'background-'.$color;
$output .= str_replace(
array('{permalink}','{count}','{name}','{background}','{color}'),
array($tags->permalink,$tags->count,$tags->name,$background,$color),
$parse);
}
}
echo $output;
}
/**
* 重写评论显示函数
*/
function threadedComments($comments, $singleCommentOptions){
$commentClass = '';
if ($comments->authorId) {
if ($comments->authorId == $comments->ownerId) {
$commentClass .= ' comment-by-author';
} else {
$commentClass .= ' comment-by-user';
}
}
$commentLevelClass = $comments->levels > 0 ? ' comment-child' : ' comment-parent';
?>
<li itemscope itemtype="http://schema.org/UserComments" id="<?php $comments->theId(); ?>" class="comment-body<?php
if ($comments->levels > 0) {
echo ' comment-child';
$comments->levelsAlt(' comment-level-odd', ' comment-level-even');
} else {
echo ' comment-parent';
}
$comments->alt(' comment-odd', ' comment-even');
echo $commentClass;
?>">
<div class="comment-author" itemprop="creator" itemscope itemtype="http://schema.org/Person">
<span itemprop="image"><?php $comments->gravatar($singleCommentOptions->avatarSize, $singleCommentOptions->defaultAvatar); ?></span>
<cite class="fn" itemprop="name" title="<?php $singleCommentOptions->beforeDate();
$comments->date($singleCommentOptions->dateFormat);
$singleCommentOptions->afterDate(); ?>"><?php $singleCommentOptions->beforeAuthor();
$comments->author();
$singleCommentOptions->afterAuthor(); _e(':');?></cite>
</div>
<div class="comment-meta">
<?php if ('waiting' == $comments->status) { ?>
<em class="comment-awaiting-moderation"><?php $singleCommentOptions->commentStatus(); ?></em>
<?php } ?>
</div>
<div class="comment-content" itemprop="commentText">
<?php $comments->content(); ?>
</div>
<div class="comment-reply">
<?php $comments->reply($singleCommentOptions->replyWord); ?>
</div>
<?php if ($comments->children) { ?>
<div class="comment-children" itemprop="discusses">
<?php $comments->threadedComments(); ?>
</div>
<?php } ?>
</li>
<?php
}

添加新评论

分类列表

随机文章

最新文章

最近回复

  • 厉害了!: 厉害了!!!真的可以安装运行了。
  • 赵赵: 还是不行 求大佬指导
  • 受害人: 感谢 十分感谢
  • 过路人: 这个方法很管用,直接安装多次都是失败 按照楼主的法子一次就搞定。谢谢!
  • yjl: 很久没更新了?
  • 阿策阳光: 博主威武,完美的解决了问题。
  • servers: 基本上很少用电信联通的了,太贵
  • 凯哥自媒体: 分享的不错,谢谢

归档