利用MYSQL正则表达式-PHPCMS标题筛选文章

有时候在用phpcms调用数据的时候,我并不想通过建立栏目或者推荐位等那么多复杂方法来分组一类文章,这类文章并不多,却有共同的特点.例如我们需要归类的文章都有个共同标题部分(或是前缀或是后缀),本文将举个小例子,大家活学活用.

正在表达式这个在计算机语言有着极其重要的作用,那么这次还是用它.先看看下面这段代码:

<ul>
  {pc:get  sql="SELECT * FROM v9_news WHERE title regexp binary '^Whidy\\.' ORDER BY id DESC" num="3" return="data"}
  {loop $data $v}
  <li>
    <a href="{$v['url']}"><img src="{thumb($v[thumb],306,110)}" alt="{$v['title']}"  width="306" height="110" /></a>
    <h3><a href="{$v['url']}">{str_cut($v['title'],88)}</a></h3>
  </li>
  {/loop}
  {/pc}
</ul>

这里重点看的是第二行高亮部分中的title regexp binary ‘^Whidy\\.’,我解释一下获取该表中字段为title的数据,数据中需要严格(binary区分大小写)满足正则表达式(regexp)开头为Whidy后面字符无限制的文章.

那么举例可得到的结果可能是

  • Whidy的生活
  • Whidy’s love

而同样举例以下不可获取

  • whidy摄影集(大小写不符)
  • 爱Whidy,爱生活(非Whidy开头)

大概就是这样的.同样我找了官方的文档大家可参考学习一下:MySQL正则表达式

好了,恐怕这也是我最后一片关于PHPCMS的文章了,即将离职了,对于这块也不知道会不会更新了,不过希望以后还能写一些实用更深度的文章分享给大家.

关于PHPCMS V9显示评论数排行列表小研究

也不知道公司网站上的评论排行列表怎么写的,无奈不想做大的改动.先不谈调用数据,就说这个HTML和CSS还有调用数据的方式,,,不禁汗颜,有兴趣的可以研究下,先把这个原始的放出来大家看一下.

<ul class="hifi_List2">
  {php $i=0}
    {pc:comment action="bang" siteid="$siteid" num="1000"}
      {loop $data $b}
        {php $str=ltrim($b['commentid'],'content_'); $end=stripos($str,"-"); $cid=substr($str,0,$end);}
        {if $cid==$catid}
          {php $i++;}
          {if $i<=1}
            <li class="f">
              {php $str=rtrim($b['commentid'],'-1'); $start=stripos($str,"-")+1; $aid=substr($str,$start)}
              {php $db = pc_base::load_model('content_model'); $t = $db->get_one(array('id'=>$aid))}
              <div class="tit"><a href="{$b['url']}">{$b['title']}</a></div>
              <div class="fImg"><a href="{$b['url']}"><img src="{thumb($t['thumb'],80,55)}" alt="{$b['title']}" width="80" height="55" /></a></div>
              <div class="fCon">{str_cut($t['description'],112)}[<a href="{$b['url']}">查看全文</a>]<br/><span class="fr hits">{$b['total']}</span></div>
            </li>
          {else}
            <?php if($i>15)break;?>
            <li class="li"><a href="{$b['url']}">{str_cut($b['title'],56)}</a><span class="hits">{$b['total']}</span></li>
          {/if}
        {/if}
      {/loop}
    {/pc}
  <div class="bk"></div>
</ul>

继续阅读“关于PHPCMS V9显示评论数排行列表小研究”

wumii相关文章插件样式暴力修改

话说无觅的一个相关文章的插件好像的确能够带来很多流量,如此来说不愧是个好插件,但是,这个插件内置到了PHPCMS的show.html模板中后,那效果简直惨不忍睹,我经过大量研究测试修改,终于让这个插件展示效果变得美观,而这种通过js修改的方式是不是很友好的,先来看看效果图:

wumii插件修改效果预览
wumii插件修改效果预览

继续阅读“wumii相关文章插件样式暴力修改”

phpcms点击数作弊深度研究(下)

上期讲解了我个人突然想到的两个方法,当然其实哪些方法并不完美.至于完美的方法,我后来也在网上找了一些,没有一个令人满意,而大多数作者仅仅是草草写了些方法,不做任何说明.我还是到处收集资料,对这个功能进行分析研究,也已互联网上的一些例子进行介绍分析,找出更好的方法.

其中有一个是来自新浪博客的一篇文章<<phpcms v9 新增文章时,随机增加点击数修改方法>>,当然这个是随机找的,其他的基本上是大同小异,原理就是在文章发布后就有个初始值,然后以后点击一次,点击量递增1.对于访问量较小的网站来说效果其实不好.

继续阅读“phpcms点击数作弊深度研究(下)”

phpcms点击数作弊深度研究(上)

因特殊需要,可能在某些网站上需要在点击量上做些手脚.那么怎么才能最好的实现效果.

起初根据我的个人经验,我得出两种方案:

  1. 通过批量修改数据库,达到暂时的假象,让网站的文章点击数暴增.
  2. 通过修改模板达到点击数增加的目的.

这两种方法各有各的好处,当然也有严重的弊端,我来一一解析.

继续阅读“phpcms点击数作弊深度研究(上)”

phpcms V9更新到最新后评论审核出错解决方法

开门见山,这前几天更新了PHPCMS V9的最新后台程序(PHPCMS程序版本:Phpcms V9.2.4 Release 20121109),却不料发现评论审核无法通过.具体报错情况如图:

phpcms升级,评论审核出问题
phpcms升级,评论审核出问题

起了个乖,最早还不晓得什么回事.后来到处找也没找到原因,无奈上了官方论坛,找到了解决方案.具体修改方法如下:

  1. 找到后台系统phpcms\modules\comment\templates\comment_check.tpl.php文件
  2. 找到第33行
    	$.get('?m=comment&c=check&a=ajax_checks&id='+id+'&type='+type+'&commentid='+commentid+'&'+Math.random(), function(data){if(data!=1){if(data==0){alert('<?php echo L('illegal_parameters')?>')}else{alert(data)}}else{$('#tbody_'+id).remove();
    
    	$.getJSON('?m=comment&c=check&a=public_get_one&'+Math.random(), function(data){
    

    修改成

    	$.get('?m=comment&c=check&a=ajax_checks&id='+id+'&type='+type+'&commentid='+commentid+'&pc_hash='+pc_hash+'&'+Math.random(), function(data){if(data!=1){if(data==0){alert('<?php echo L('illegal_parameters')?>')}else{alert(data)}}else{$('#tbody_'+id).remove();
    
    	$.getJSON('?m=comment&c=check&a=public_get_one&'+'&pc_hash='+pc_hash+Math.random(), function(data){
    

    保存,然后进入后台进行测试,评论审核问题基本完美解决!(其实还有个BUG,就是除了管理员账户,其他权限账户还是报错- -…好吧那么就只有等待官方解决了.)

参考资料: 打了9.2.4补丁后,评论审核出错

phpcms单页面模板获取栏目数据翻页无效解决办法

不得不说有时候为了做一些很奇特的页面,或者说为了解决一些很蛋疼的功能,我们不得不做一些不正常的工作…比如,我把PHPCMS的单页面模板做成了一个读取某个限定条件类的文章列表.限定条件的字段已经添加到数据库内.编辑器中只要选中它属于哪一类即可,这里不多说.

发表相关思路之前先给大家看看效果,觉得还不错的,那么你可以继续看看 :lol:

PHPCMS单页面模板列表作弊
PHPCMS单页面模板列表作弊

那么既然是单页面模板,它就有个问题,这个问题就是,单页面模板内是不能使用翻页的功能的.起初我是不知道的,找了一些资料也没解决.那么我就只有想别的办法了.经过一番思索,我认为,可以仿照腾讯微博看到页面底部,自动无限刷新.那么代码的思路就是:

打开该页面获取指定数目的数据(比如20条) > 跟踪坐标当用户拖到页面底部触发事件(js) > 自动生成一段新的异步获取数据下一批数据的代码并更新当前坐标重新计算 > 循环.

继续阅读“phpcms单页面模板获取栏目数据翻页无效解决办法”

phpcms内容图片链接地址研究

说起研究这个东西,缘由是公司网站的服务器挂了,硬盘废了,花钱都修不了,至于原因是什么我也不知道.

那么,损失当然也是比较大的,除了我本地时不时有备份相关数据库,模板和其他资料,我本地当然不会备份图片,我没有相关权限.那么网站的图片就没了呗.好在网络部编辑都是将图片上传至另一个服务器上面,当然地址也是另一个服务器上的.

那么现在假设,我们的PHPCMS系统与服务器A上,图片实际上传地址为服务器B.

当前情况是,网站上面的所有文章图片全部都是先上传至服务器B,发布文章内容调用的是服务器B的绝对地址.然而发布文章之后PHPCMS系统竟然将图片全部转换了一遍.并存在了phpcms程序根目录的uploadfile目录内.文件名也全部重新生成了一份.正是因为如此,导致服务器挂了,图片也找不到了.因为从未备份过这个uploadfile目录,为了避免以后这种情况再次发生,于是我希望他不自动转换.

对于自动转换图片地址并存储在后台本地,对此我进行了多种猜测:

继续阅读“phpcms内容图片链接地址研究”

PHPCMS V9修改分页函数在当前页面翻页

大家在做网站的时候经常会用到<base target=”_blank” />这个代码,放在<head></head>内,这样默认情况下整个页面的所有超链接都会点击后自动开启新的标签或窗口来打开网址.的确方便了不少,然而,有些情况下比较特殊,我们不需要它开启新的窗口,要不然在早期电脑比较卡的时候,用户保留了窗口或标签不多开习惯,总要手动关闭很多窗口或标签,从用户体验上来说是及其不合理的.一般来说解决办法也很简单,只要给那个特殊的a标签加个target=”_self”就可以了.当然,今天我们要讨论的问题远没有这么简单,事实上当你研究后,觉得其实也是很简单的事情.
继续阅读“PHPCMS V9修改分页函数在当前页面翻页”

PHPCMS数据源功能使用注意事项

上次很抱歉的,上次写了一篇关于PHPCMS V9通过数据源生成代码调用至DISCUZ论坛上的方法<<PHPCMS利用数据源对网站数据调用至其他网站方法>>,但是后来发现有个问题,就是论坛上出现了一个链接地址的问题,经过大量搜索,无果,决定自己想办法解决.

首先说一下问题状况吧.

列表中的地址并非直接引用的外链数据源地址,而是

http://b.net/"http://h.net/6-8540-1.html/"

这又不像其他网站外链提示是否安全再进行正常访问,而这个地址是完全无法用的.我最早考虑的解决方案是因为论坛域名固定,那么长度固定,所以截取前面http://b.net/”这段,但是貌似后面有个双引号也是无法正常访问的.

这样我想到另一个方法,自动找到h.net,并且通过正则表达式判断html为结束段,PHP string方法很强大,都是可以用的,但是觉得这个方法太笨重了.写起来不容易.最终决定在网上找到好的办法,搜索了discuz外链不正确,discuz外链地址等关键字无果.唯一找到一个沾边的内容,说是修改include/discuzcode.func.php文件内function parseurl($url, $text)这个函数

但是,我试过了,完全是两码事,于是放弃了,我尝试发帖的时候外链试试,发现会自动添加[url][/url],是这在模版上加了个,但是HTML和BBS语言在不同的位置上也是不能用的,思考了很久,最后决定试试修改数据源的代码,很巧的事情发生了,我将数据源内的代码改成了

<h3>行业最新产品</h3>
{loop $data $k $v}
    <li>· <a href={$v[url]}>{$v[title]}</a></li>
{/loop}

注意,跟之前的不同,a标签内的双引号我去掉了,就成功了,论坛首页刷新一看,完全正常.至此这个问题就解决了.

PS:我也试过在数据源的这段代码内添加[url]当然这个是完全不成立的还是那句话,HTML是HTML,BBS CODES是BBS CODES…