TePass打赏功能的部分自定义调用方法

TePass是个不错的软件,至少通过打赏解决了我个人网站运行方面ECS的支出,最早使用的是「微信收款码」+「支付宝」,用户的打赏流程体验总归是不好的,后来就购买了TePass插件,总体来说还是很友好的。

今天主要针对TePass一些小众的个性化代码调整做了一个整理,也便于以后升级后自己使用,此代码是不对外的,为了根据需求调整代码,专门让公司成员写的。

文章内调用全站所有打赏最新的几个人

TePass的规则是,在哪篇文章内进行打赏操作,打赏按钮下面就显示该篇文章的最新记录。

但是对于我来说,网站体量并不大,打赏的记录并不会太多,分散到每篇文章的就几乎没有了。

需要实现的功能是,无论是那篇文章,均调用全站的打赏记录,显示前五名。

1、插件TePass目录找到Plugin.php

2、找到代码

//显示打赏记录
		$queryFees= $db->select()->from('table.tepass_fees')->join('table.users', 'table.users.uid = table.tepass_fees.fee_uid', Typecho_Db::LEFT_JOIN)->where('table.tepass_fees.fee_cid=?',$cid)->where('table.tepass_fees.fee_type = 3')->where('table.tepass_fees.fee_status = ?', 1)->order('table.tepass_fees.fee_id',Typecho_Db::SORT_DESC);

3、更改为

//显示打赏记录
		$queryFees= $db->select()->from('table.tepass_fees')->join('table.users', 'table.users.uid = table.tepass_fees.fee_uid', Typecho_Db::LEFT_JOIN)->where('table.tepass_fees.fee_type = 3')->where('table.tepass_fees.fee_status = ?', 1)->order('table.tepass_fees.fee_id',Typecho_Db::SORT_DESC)->limit(5);

4、到这里就完成了,每篇文章都会调用最新的5个打赏记录。

调用全站所有的打赏记录

TePass并没有单独提供一个全部的打赏记录,只是在后台提供了管理员查询。

我的需求是,建立一个「打赏榜」的栏目,该栏目会调用所有的打赏信息,包括名字、金额、时间等信息,但是一直未能调整出来,用的则是手动调整,手动更新有滞后性,一些打赏用户会认为没有打赏成功,所以就找技术部门成员进行了调整,最终完美解决。

1、模板文件目录找到functions.php文件

2、增加打赏调用代码

//打赏调用
function dashang($limit = 200){  


 $db = Typecho_Db::get();
    $query = $db->fetchAll($db->select('fee_title','fee_total_price','fee_intime')->from('table.tepass_fees')
    ->where('fee_status','1')// 只显示付款成功的记录
	->order('fee_id', Typecho_Db::SORT_DESC)
	->limit($limit)
	);

	foreach ($query as $val) {
			$fee_title = $val['fee_title'];
			$fee_total_price = $val['fee_total_price'];
			$fee_intime = $val['fee_intime'];
			echo '<tr><td>'.$fee_title.'</td><td>'.$fee_intime.'</td> <td>'.$fee_total_price.'元</td></tr>';
				
	}

}

3、单独在需要的位置加入<?php dashang('200');?>调用即可,我是又单独建立了模板页和独立页面。