12/22/05

让Randomquote里更多出现新条目

cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。

本站页面右上角是个RandomQuote,是NucleusCMS的一个插件,它维护一个表,里面就是引用的这些语句,输出时就是select * from quote order by rand() limit 1 ,还是比较简单的。但我有点想让它优先显示新近加入的条目,老的东西少出来,原来想先找出最新的n条,再Random输出。但突然想到在ORDER BY上想办法也许更容易。RAND()输出是一个[0,1]的浮点数,如果要体现条目先后,再乘个item_ID就差不多了,这个ID是按先后递增的,改造为ORDER BY RAND()*id DESC,似乎就有点效果了。

算法肯定是不精确的,要增强rand()或id的权重,也许可以再用点平方或开方之类的函数。

12/22/05 00:01:00,由 cathayan发表。 本文链接
  

12/14/05

暂关Captcha,及Nucleuscms开发中调用Blog对象的方法

cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。

服务商升级PHP,新编的带着libgd,却没有装上Freetype支持,要用它写字的Captcha就不能用了,先关掉,估计机器人Spam也早忘了这里吧:mrgreen: 其实我觉得认字这一招也不一定很好嘛,也许可以在上面贴个头像,判断一下男女,机器识别也有点难度吧?

正好看了一下Log,里面一堆PHP Fatal error: Call to a member function on a non-object in...,检查一下,原来是几个插件没有跟上新形势,调用blog对象方法有误。经理解这一页的精神,感觉全局变量$blog应该是包含多个Blog信息的一个变量(Nucleus支持多Blog),在它这里直接调用针对某个Blog的方法是不行的,可以从$blog这里取得真正的单个Blog的ID,用ID来取得它的blog对象:

global $manager;
$blog =& $manager->getBlog($blogid);

站务记于此。

【更新】又加上了Captcha,Spam还是挺厉害的。另据观察Error log,现在网上一堆爬虫,目标全是upload.asp/upfile.asp,诸如此类,看上去某些asp的系统一直就被人盯着 :mrgreen:

12/14/05 14:17:52,由 cathayan发表。 本文链接
  

12/01/05

让NucleusCMS的RSS Feed带上图片

cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。

NucleusCMS有非常完备而优雅的模板/皮肤支持,今天看Blog,就看到这个链接,只须在RSS Feed的模板中加上对图片链接的处理,就可以把图片插入到RSS中,最终出来是img标签,而不是模板中用的自定义的image标签,这样一般的RSS浏览工具就可以把图片显示出来了。

到管理区--模板--feed/rss20--编辑,找到图片那三行,弹出图片和在线图片中都填入:

<img src="<%link%>" alt="<%text%>"/>

第3行媒体对象中填入:

<%media%>

12/01/05 13:54:40,由 cathayan发表。 本文链接