首先,免费扩展基本上做不到。貌似可以通过安装“免费问答组件”+“会员积分组件”+“付费会员权限控制组件” 来实现(之所以把“问答”功能和“积分”功能分别安装,是因为免费的问答组件都不带积分功能),但是很明显这种方案至少涉及3个第三方扩展,来自3个不同的开发团队,他们之间没有义务互相兼容,万一哪天3个扩展无法互相整合,整个问答系统就崩溃了。
因此,我们只能从收费扩展里面来寻找解决方案。
Joomla 的“问答” 扩展并不多,其中功能最强大的非
Community Answers
莫属。
Community Answers 组件自带积分功能 (这里有误解,帖子后面更新解释),并且有“积分换答案(悬赏)”功能。接下来要解决的就是“积分与支付直接的兑换关系”。
由于我并没有实际使用过 Community Answers,所以不清楚它是否自带支付系统。不过,我们知道
Emerald 是专门 “管理会员(付费)权限” 的
。因此,我认为可以让这两个扩展互相配合。
上述二者配合实际上主要解决两个问题:
1、支付的人民币兑换成网站积分(充值):这个很容易实现。因为 Emerald 支持“付款后执行指定的 SQL 命令”,这样就可以执行通过特定的 SQL 指令,将支付的钱数(例如100元)转换成 Community Answers 数据表中“积分”字段的数值。
2、会员积分转换成人民币(提现):这个稍微复杂一点。首先要收集到每个会员的支付宝(或银行账户)账号,然后,当积分值达到指定额度,就自动转换成人民币,并且以网站的管理账号作为付款方,向会员的支付宝账号转账 。这个过程可能没有现成的选项,需要一点二次开发。
尽管存在上述困难,但我认为这已经是能实现“付费问答”的最好方案了。
假设你的积分不需要提现,仅在网站内部消化,例如可以用积分换取别人答案,或者换取等级提升,那么会简单得多。
---- 更新 ----
之前对 Community Answers 的积分功能理解有误,刚才到官方网站认真学习之后,发现
Community Answers 并不是“自带积分管理系统”,而是可以与其它积分管理扩展整合。目前 Community Answers 支持的积分管理扩展包括:
这样看来,仍然会涉及到3个扩展:问答系统 + 积分系统 + 支付系统
即使如此,我仍然看好收费软件之间的配合,因为收费意味着承担责任,客户提出的改进建议他们还是比较重视的,这意味着你有什么新功能,可以提出让他们增加。免费软件说倒就倒了,你连催促作者继续的权利都没有。