帝国CMS不为人知的技巧 – 终极栏目自定义排序项

20 34°

一、概述

此文同属于《帝国CMS 会员信息加粗/加色/置顶》相关分享

如上图,默认的选择方式如绿色框圈出有5个选项,实际上是可以自定义新的排序方式,不限制在系统给定的5个,而是主表字段均可参与排序,例如:turetime(真实发布时间的UNIX时间戳),lastdotime(信息修改时间UNIX时间戳)所有主表字段包括自定义字段在内,同样可以多个排序参数一起用(truetime desc,lastdotime desc),实际情况我们我们先看代码;

二、探索

$query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."(".$whereclass.") and checked=1 order by ".ReturnSetTopSql('list').$addorder.$limit;

以下代码是e/class/functions.php中负责终极栏目查询的代码,有两个排序条件取得代码ReturnSetTopSql(‘list’)和$addorder;ReturnSetTopSql(‘list’)取得的是列表是否使用置顶排序,ReturnSetTopSql()定义在e/class/connect.php,相关设置在后台->系统设置->信息设置中;$addorder为以下代码判断获得的,大致意思是栏目设置中排序方式为空的话就默认用发布时间倒序排序,如果是不为空的话呢就使用栏目设置的排序;

//排序
if(empty($class_r[$classid][reorder]))
{
	$addorder="newstime desc";
}
else
{
	$addorder=$class_r[$classid][reorder];
}

三、总结

1.以会员信息置顶为例如果使用外置字段作为置顶字段,可以在栏目设置中添加排序选项,这样减少了修改系统文件
2.不同模型排序,复杂模型排序同样可以使用栏目设置的排序选项,方便;
3.不更改文件并且系统参数设置使用制定排序则置顶排序永远高于栏目设置的排序设置
4.必要的时候可以更改ReturnSetTopSql(‘list’)与$addorder前后顺序满足特殊排序需要(其他排序选项高于系统排序情况下)
5.最好的办法就是后台系统设置不设置置顶项参与排序,而在栏目设置中自己定义排序字段

四、相关文章推荐

帝国CMS模板不为人知的技巧2 – 对系统设置的重新赋值
帝国CMS模板不为人知的技巧 – 对语言包重新赋值应用

《帝国CMS 会员信息加粗/加色/置顶》 插件

20

一、帝国CMS 会员信息加粗/加色/置顶 展示

和以前做的有些不同,以前只做的是帝国CMS系统外置功能,就是不和系统的信息加色/加粗/置顶相关联的;以前《帝国CMS会员信息加色/置顶/加粗》地址:http://bbs.phome.net/showthread-13-115085-0.html;此版本客户要求按着系统内置的加粗/加色/置顶;于是出现新版本的截图如下:

二、帝国CMS 会员信息加粗/加色/置顶 相关分享

帝国CMS不为人知的技巧 – 自定义列表排序项

ReplaceListVars() 帝国CMS函数

24

函数:ReplaceListVars()
功能:替换列表模板/标签模板/搜索模板
位置:帝国CMS e/class/connect.php

例子一:最新信息图标

例子二:N分钟前信息 个性时间显示

博客ping好友设想 – 独立博客的P2P SNS

05 41°

引言:trylife自从7月31日看了卢松松的就这样从草根到知名的转变之后对“评论推广”这种方式产生了兴趣,大量在Google Reader订阅推荐博客,每天看完未为止,能做到经评的也就花时间认真评论了下例如:海天的“大家帮忙选个LOG”,出于能力/领域等多方面的问题没有那么多能写的出评论的,这样就随便评了下或者无耻的用了如下关键字 沙发 坐大腿  第一次来 …… 出于博客评论前辈们的习惯照顾在4天时间约140/2的评论数(因为将近每篇都回复所以处以2了)

为了更快速的得到订阅内容,trylife本地装了Liferea设置每10分钟跑一次,这样也大大提高了沙发和前排的可能性 – -!通过评论的邮件通知回采博主的评论;后来觉得有些吃力,为了能得到一个好的及时的互动我想了以下几个问题:

1.好友博客之间ping

前边写了一篇帝国CMS ping 插件 之后思考PING可不可为博友之间交互做点事情,让SNS的意义拓展到分布居住的独立博客之间,出于独立博客都有自己的空间/服务器,可以不设立中转服务器,实行P2P(点对点)的通知;大致功能设想如下:

1.1最新好友最新博文ping
博友发布博文我们可以不再订阅了,而是通过好友的PING更快知道好友更新了文章,我们可以最快速度阅读,和评论互动;

1.2回复评论ping
现在看评论回复都是跑到邮件里看回复提醒,没有邮件回复的就只能回访踩点了,另外已经看过文章了回访到文章内容也进行评论除了增加PV以外也没有特别打的意思,当然还有去看其他的评论内容可以去去内容页看,也可以订阅某文章所有评论,我想这个也可以ping过来;(这么一折腾貌似服务器压力大哦,先想实现再想压力和效率囧)

1.3其他
1.3.1.返回ping结果,不成功则进入失败ping列,闲暇重新进行ping或手动重新ping
1.3.2.其他功能ping

2.SNS的体现

出于1中的功能,好友数据 好友最新博文 评论数据 评论回复数据 等可以具有SNS的交互内容基础了,那么在博客中下面的内容就可以出现了:
2.1我的好友:当然有有好友分组,好友备注,点击链接添加好友,隐藏好友分组等等
2.2我的足迹:访问足迹,评论足迹 当然也有隐私可以设置
2.3转播/分享/ETC:这些也就不说了大家都了解

3.B/S客户端

3.0.B/S加速了交互(不用打开浏览器拉)
3.1.始终还是需要一个客户端的,用于接收WEB所有接收的数据到桌面,方便及时通知和浏览;
3.2.订阅期传送门出发都没有告诉你我是从www.trylife.cn来的,B/S客户端哪怕是伪造也好,也要来一个这个;
3.2.POST回复数据到服务器
3.3.当然也有可能有其他拓展 eg:分享音乐 分享状态(我勒个去,令一个蚂蚁QQ出现了,你菜不死我因为被需要)

4.其他

4.-1:肯定早有人想到的,为啥人家没做?
4.0.其实已经有相关的SNS微博做了这类事情只不过是通过RSS的订阅更新,eg:嘀咕
4.1.除了P2P ping 好友同样可以ping主服务器进行更广泛的交流,服务会把在官方网站的评论ping回给你
4.2.我为什么不住在SNS网站上,而选择这样的sns ping呢,我想独立博客的你一定知道的 ^ ^
4.3.特殊独立的人员聚集总是有特别的效果
4.4.商业价值吗?你想他会是什么呢?
4.5.非独立博客的用户被排挤?设想官方也会给他们一个帐号呢~
4.6.这么多聊天工具很繁杂呢?相信当麻花藤挂了之后,扣扣也可以有API插件聚合出,你可以有更多联想
4.7.又是一个浮躁的应用?微博盛行,大家已经意识到自己在微博上要么是看炮弹要么是吃快餐,生活还是空洞的;我们更有营养,我更新博客了,我不是天天在这刷屏,我更新出来的都是非化学的营养精华~

#End.Exp:欢迎大家持各种关键观点进行评论

转载署名出处原文地址:http://www.trylife.cn/blog-friend-ping/

帝国CMS ping 插件 [未完]

31 61°

一 什么是PING服务

过程上简单的讲就是没发布一个新文章,都会通知搜索引擎(google baidu等等),搜索引擎会很快派来蜘蛛抓取你的新文章,这样会提高收录的速度(特殊网站除外);都是针对博客的,不知道收录方面对其他CMS有什么效果;

以上是trylife个人的解释,下面是COPY百度的:ping是基于XML_RPC标准协议的更新通告服务,是用于blog在内容更新时通知百度blogsearch及时进行抓取、更新的方式。百度 blogsearch在成功接受到ping以后,会立刻进行抓取并更新。使用ping服务,可以让百度blogsearch在第一时间抓取到您博客上的新 内容。

下面是COPY google的:通过 Google“博客搜索”Ping API, 用户可以程序化的方式将博客内容的更新通知给 Google“博客搜索”引擎。这对于经常更新博客内容的用户尤其有用。博客服务提供商的管理人员也可以利用此API将其平台上的博客内容变化向 Google 通告,以便 Google“博客搜索”及时抓取来自这一服务提供商的最新内容。为设置对 Google“博客搜索”的自动 Ping 机制,请按照如下所述设置XML-RPC客户端或REST客户端以发送请求。您可以任选一种方法进行通知;两者都将按照相同的方式进行处理。

二 帝国CMS PING插件功能需求

1.是否开启
2.PING服务地址列表
3.功能支持栏目
4.动作选项:后台录入 前台投稿 采集更新 采集器更新
5.针对采集器的设置(针对其他操作增加PING功能)

三 帝国CMS PING插件实现思路

功能的实现思路很简单,通过在(后台添加信息/会员投稿/采集入库)函数体内信息录入成功 和 返回代码前加入PING功能函数;注意:采集入库是循环录入只有所有需要入库内容循环完才有返回成功代码,所以帝国自带的采集入库是在循环录入代码中加入PING函数的;另外采集器是通过前台/后台重复投稿脚本来实现的,我们要在采集器的脚本中加入我们的PING函数;我们按着其他情况来对待。

数据库:
数据库这里我们设置两个字段id,item每行记录一个功能的设置;主要针对增加PING功能的可拓展性选择这样的记录方式;固定操作动作可以使用行记录比如帝国CMS的phome_enewspublic(系统设置记录表)

新建[文件/函数/目录]:
1.根据PING功能写函数 (PING函数 缓存更新函数 插件设置函数)
2.函数定义在一个新文件里这样对于插件作者备份查看函数方便 比如:e/trylife/ping/function.php
3.将2中的文件require到e/userfun.php (建议大家都这样做)
4.其他文件 插件设置文件e/trylife/ping/index.php

更改[函数]:
主要更改 后台/前台/采集 增加信息函数 在函数成功printerror()前加入我们的PING函数就可以;

缓存文件:
1.设置缓存
2.PING地址缓存

四 帝国CMS PING插件 制作

待续 [最近忙,先写文章放到这,后面有时间去挖掘实现,再看看自己过段时间的想法是不是一样]

五 帝国CMS PING插件 测试

针对SEO和不同站点收录速度的测试不好做,测试主要针对一个已经被收站,PING后蜘蛛来的速度来评估;主要记录文章发布时间和蜘蛛来的时间;

六 帝国CMS PING插件 讨论&总结