typecho调用多张缩略图,非插件实现
2022-12-18
分类: typecho
简介:代码如下:
function showThumbnail($widget,$imgnum){ //获取两个参数,文章的ID和需要显示的图片数量 // 当文章无图片时的默认缩略图 $rand = rand(1,20); $random = $widget >widget('Widget_Options') >themeUrl . '/img/rand/' . $rand . '.jpg'; // 随机缩略图路径 $attach = $widget >attachments(1) >attachment; $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i'; $patternMD = '/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i'; $patternMDfoot = '/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i'; //如果文章内有插图,则调用插图 if (preg_match_all($pattern, $widget >content, $thumbUrl)) { echo $thumbUrl[1][$imgnum]; } //没有就调用第一个图片附件 else if ($attach && $attach >isImage) { echo $attach >url; } //如果是内联式markdown格式的图片 else if (preg_match_all($patternMD, $widget >content, $thumbUrl)) { echo $thumbUrl[1][$imgnum]; } //如果是脚注式markdown格式的图片 else if (preg_match_all($patternMDfoot, $widget >content, $thumbUrl)) { echo $thumbUrl[1][$imgnum]; } //如果真的没有图片,就调用一张随机图片 else{ echo $random; }
}调用的代码就是以下这样,从0开始算,数字0则调用第一张<?php showThumbnail($this,0); ?>
友情链接插件1.2.2帮助文档
2020-10-30
分类: typecho
简介: 功能描述本版本的友情链接可以支持以下的功能:1、方便地在侧边栏添加友情链接。 2、支持两种输出方式。一种为函数输出方式,主要用于侧边栏的友情链接,或者模板开发者设计的友情链接模板等。另一种方式为HTML标签式输出,主要方便用户建立自己的友情链接页面。 3、支持文字友链、图片友链、图文混合友链等。内设这三种默认的输出方式,支持自定议设定输出规则。 4、支持友链分类,方便管理。 5、支持友链启用禁用,方便管理。 6、支持友链拖拽排序,方便管理。 7、支持友链邮箱解析头像链接,方便用户添加无图片的友链。 8、支持增加自定义字段,方便用户做一些个性扩展。 使用帮助 插件的安装:解压至插件目录后,激活即可。如果已经安装旧版本的本插件,需要禁用后重新激活。友情链接插件主要有两种调用方式。第一种为函数调用法。函数的原型为:output($pattern=NULL, $links_num=0, $sort=NULL)其中,$pattern是输出规则。输出规则是Links插件的一种特殊语法。使用输出规则,可以定制出属于自己的友链输出方式。例如:<li><a href="{url}" title="{title}" target="_blank">{name}</a></li>这就是一个输出规则的例子。经过插件解析后,{url}将会被替换成友链地址,{title}将会被替换友链描述,{name}将会被替换成友链名称。Links插件目前支持的输出规则有:{lid}友链在数据表中存放的ID
{url}将会被替换成友链地址
{sort}友链的分类名称
{title}{description}将会被替换友链描述,两者效果一样
{name}将会被替换成友链名称
{image}将会被替换成友链图片
{user}自定义字段插件自带三种输出规则:显示文字、显示图片及图文混排。当$pattern值为NULL或SHOW_TEXT时,则规则为显示文字。<li><a href="{url}" title="{title}" target="_blank">{name}</a></li>当$pattern值为SHOW_IMG时,则规则为显示图片。<li><a href="{url}" title="{title}" target="_blank"><img src="{image}" alt="{name}" /></a></li>当$pattern值为SHOW_MIX时,则规则为显示图片和文字<li><a href="{url}" title="{title}" target="_blank"><img src="{image}" alt="{name}" /><span>{name}</span></a></li>$links_num是用于控制友链输出的条数的。当$links_num为缺省值0时,表示不进行限制,输出满足条件的所有友链。$sort用于指定输出的友链类别,以实现友链的分类输出。缺省值NULL表示输出所有类别的友链。第二种输出为HTML标签调用法。可以在文章或页面中加入HTML标签来实现友链的调用。其调用原型为:<links $links_num $sort>$pattern</links>$links_num $sort $pattern的功能及缺省值与第一种一样。不过,为了$links_num和$sort缺省值的识别,建议$sort采用的命名方式为:以字母开头,仅包括字母和数字。 使用向导:在侧边栏添加友情链接在0.8默认主题上,已经集成了本插件的调用接口。因此,不需要任何的修改即可直接使用。如果主题没有本插件接口,可按照以下方式进行调用。最简单的调用方式为:<?php Links_Plugin::output(); ?>此时,会列出所有的友链。如果想调用的为图片友链,则调用方式为:<?php Links_Plugin::output("SHOW_IMG"); ?>如果是图文的混合友链,则调用方式为:<?php Links_Plugin::output("SHOW_MIX"); ?>如果想限制侧边栏的友链数量,比如说为10个,则可调用:<?php Links_Plugin::output("SHOW_TEXT", 10); ?>图片友链依此类推。如果想列出某个类别的友链,则可调用:<?php Links_Plugin::output("SHOW_TEXT", 0, "testsort"); ?> 使用向导:建立独立的友情链接页面建立独立的友情页面,可以直接用类似建立侧边栏的方式,在模板设计阶段,就设计好友链模板。也可以在后台的页面创建进行友链引用。最简单的引用方式为:<links></links>如果想调用的为图片友链,则调用方式为:<links>SHOW_IMG</links>如果是图文的混合友链,则调用方式为:<links>SHOW_MIX</links>如果想限制侧边栏的友链数量,比如说为10个,则可调用:<links 10>SHOW_TEXT</links>图片友链依此类推。如果想列出某个类别的友链,则可调用:<links 0 testsort></links>也可以用<links testsort></links>不过,后者要求分类必须以字母开头。最后要注意的是: 分类名只能包含字母及数字!
Typecho调用单独页面评论代码
2020-10-06
分类: typecho
简介:<?php //start page comments $slug = "message"; //页面缩略名 $limit = 10; //调用数量 $length = 30; //截取长度 $ispage = true; //true 输出slug页面评论,false输出其它所有评论 $isGuestbook = $ispage ? " = " : " <> "; $db = $this >db;//Typecho_Db::get(); $options = $this >options;//Typecho_Widget::widget('Widget_Options'); $page = $db >fetchRow($db >select() >from('table.contents') >where('table.contents.status = ?', 'publish') >where('table.contents.created < ?', $options >gmtTime) >where('table.contents.slug = ?', $slug)); if( $page ){ $type = $page['type']; $routeExists = (NULL != Typecho_Router::get($type)); $page['pathinfo'] = $routeExists ? Typecho_Router::url($type, $page) : '#'; $page['permalink'] = Typecho_Common::url($page['pathinfo'], $options >index); $comments = $db >fetchAll($db >select() >from('table.comments') >where('table.comments.status = ?', 'approved') >where('table.comments.created < ?', $options >gmtTime) >where('table.comments.type = ?', 'comment') >where('table.comments.cid '.$isGuestbook.' ?', $page['cid']) >order('table.comments.created', Typecho_Db::SORT_DESC) >limit($limit) ); foreach($comments AS $comment) { echo '<li>'; echo '<a href="'. $page['permalink']."#comment ".$comment['coid'] .'" title="'.$comment['text'].'">'; echo Typecho_Common::subStr(strip_tags($comment['text']), 0, $length, '...').'</a>'; echo '</li>'; } }else{ echo "<li>No Comments</li>"; } //end page comments
?>可以将以上代码保存为 commlist.php 文件,放在 /usr/themes/ 目录下,在需要调用的主题模板中,输入以下代码<ul> <! ?php include_once "../commlist.php"; ? >
</ul>转载于:MR.ASONG