Archive for the 'CMS|CSS' Category


关于PHPCMS2008远程下载图片和自动获取缩略图的若干问题

本文中所描述的情况或提供的解决方案均是在PHPCMS2008 sp3版本上进行的.

首先,我得先讲一个问题,一个关于PHPCMS2008版本中一直存在的问题,这就是自动获取缩略图的功能.
使用PHPCMS的用户都知道,自动获取缩略时只有在内容发布时为远程图片时才会起作用,自己新发布一篇文章时,如果内容里的图片是站点本身已有的图片时就不能自动获取到图片.我记得有个别用户在官方论坛上反映过这个问题,不过官方并未解决好这个问题.

解决这个问题其实也只需要修改一个文件,即include/attachment.class.php
这个文件里其实也只需要修改几处就可以解决发布本地图片时不能自动获取缩略图的问题.

PHPCMS2008实现栏目按字母区分调用的简单方法

其实主要是查询栏目的目录名称,即:catdir这个字段,再利用substr函数来获取catdir这个字段值的首个字母,然后就可以根据获取到的首个字母来区分调用了.
应该说方法是很简单的.

不多说了,直接贴上winliuxq(liuxq.cn)提供的代码:
{get sql="select catid,catdir,catname,url from phpcms_category where ismenu=1 order by listorder desc"}
<?php
$fcatid=substr($r[catdir],0,1);
?>
{if $fcatid==a}<a href="{$r[url]}">{$r[catname]}</a> {/if}
{/get}

上述代码也比较好理解,其中$fcatid==a中的a就是你想要调用的首字母,这个a可以自己修改.

这个根据首字母来区分调用栏目的方法可以广泛应用在下载站,音乐站,动漫站和图片站等.

PHPCMS2008关键词分隔符空格改为逗号","的解决方案

由于用到UTF-8版本建立英文站点,在关键词分隔这一块,默认的用空格来区分关键词不太可控,而且导致了英文关键词词义的变化.所以想到修改这个关键词分隔符空格为",".

在PHPCMS论坛上先搜索了一番,发现也有几位会员提出过此问题,不过均未能圆满解决.所以自己打开程序文件看,呵呵,总算是成功解决了.准备年后发布解决方案.

解决PHPCMS2008内容页分页[page]的问题

这个问题我原来以为是没有的,但后来经过测试发现在PHPCMS2008各个版本中都存在,当然此问题仅当内容页URL为动态时才会发现,如果为静态生成的话则不会有此问题.
我先大体说一下这个[page]出问题的情景:

比如以下为两份内容的源代码
内容A:解决PHPCMS2008内容页分页[page]解决PHPCMS2008内容页分页[page]解决PHPCMS2008内容页分页
内容B:[page]解决PHPCMS2008内容页分页[page]解决PHPCMS2008内容页分页[page]解决PHPCMS2008内容页分页

大家认真看内容A和内容B,其实他们在URL动态打开时的分页总数是一样(分页数量没有错误),但是在内容分页第1页显示的内容就不一样了,内容A是可以正常显示第1页的;而内容B的第1页则显示为空白,到第2页才显示第1页的内容.这就是今天要解决的问题(注:经测试,此问题在静态生成时不存在).

现在我们仔细观察上面内容A和内容B的不同之处,发现内容B中[page]有3个,而且第1个是在具体内容的前面,问题就在这里.
按照官方程序的设计来说,正确的分页代码插入应该是:内容[page]内容[page]内容.所以大家要熟记这个分页插入规则,不要把[page]放到具体内容的前面.

那有没有办法,兼容这两种情况呢.当然可以.只要对show.php这个文件进行些许修改即可.以下winliuxq(liuxq.cn)就向大家提供兼容解决方案:
打开根目录的show.php
1.找到"$contents = array_filter(explode('[page]', $content));",在其下面添加两行:
$cont_p=str_cut($content,'7','');//提取内容代码中前7个字符
$cont_pn=substr_count($cont_p, "[page]");//判断前7个字符中是否存在[page]这串代码
2.将"$content = $contents[$page-1];"修改为以下代码:
if(!$cont_pn)
{
$content = $contents[$page-1];
}
else
{
$content = $contents[$page-0];
}

好了,问题得到解决了.有此烦恼的朋友现在就试试吧.

PHPCMS2008_SP3出来了,现在该不该升级呢?

PHPCMS2008的最新版本SP3于2009年12月30日发布了,官方的下载地址如下:
http://download.phpcms.cn/phpcms2008sp3/

大家点击上面的链接里可以看到这个SP3的版本最后修改日期为2010.1.1下午的5点左右.那么,我们现在到底该不该升级呢?

我给大家的建议是:
1.使用源官方程序并没有修改过源程序的可以升级;
2.自己有修改过源程序的建议过段时间再升级.

原因有三:
1.这次升级最主要是增加了一个视频模块,这个视频模块是可以与KU6互动的.不过就目前而言,这个视频模块对于个人站长而言似乎没有什么太大的作用,受有关政策限制,视频网站是需要"证件"的.所以升级不升级无太碍网站正常运作.
2.更新了若干程序文件,修改了之前版本程序中存在的些许小问题,比如说我很早期提到的增加数据源时用户名和密码长度问题.
说到这个真要汗一下开发组的办事效率了,这问题我记得在很早前就提出过了,本人向官方直接反映此问题估计有近一年时间了,现在终于肯解决了!
3.接上一点,由于新版本刚发布出来,往往存在这样那样的"小问题",且有鉴于PHPCMS官方早期发布新版本后通常都有经历一小时间的修整期,所以如果你自己有修改过源程序代码的话,且程序版本在2009.10.20的话,建议等过些时候SP3稳定下来后再考虑升级.

另外,笔者的改良版本目前不考虑升级,我不建议客户们不要自行升级以免造成不必要的麻烦,待SP3稳定后,我会与官方同步最新程序文件!

关于PHPCMS2008_winliuxq(liuxq.cn)改良版程序的使用说明

PHPCMS2008_winliuxq(liuxq.cn)改良版是PHPCMS爱好者(PHPCMS版主)winliuxq自行在原程序基础上改进和完善的版本程序,对外是不会发布的,仅供winliuxq个人及本人客户使用.因此,程序是不外传的.
另:请我的客户恪守承诺,保管好我传给你们的程序,遇官方更新时可以联系我索取新的改良版本!

PHPCMS2008内容页面加载最新评论留言(JS调用)

应本周一客户作品的要求开发的.其实说不上开发吧,只能说是一种比较好的思路,以JS调用比较简洁吧!

这是一个很精明的方法呢(有点自夸了),在勿需修改任何一个程序文件就可以完成的简单方法.
今天先上传一个图片供大家鉴赏.注意:这里是在内容页面用JS调用当前最新评论,且调用数量可控.

图片有进行了缩小,大家将就看吧.

PHPCMS2008内容页面JS加载评论

PHPCMS2008内容页分页显示全部的解决办法

问题表现描述以及解决后的显示图示见以下链接:
http://www.liuxq.cn/2009/12/478/

下面直接提供liuxq[www.liuxq.cn]的解决办法,很简单,只要修改一下/include/url.class.php这个文件即可.

打开这个文件,找到并将" function show_pages($page, $pagenumber, $pageurls) "这一行到" function update($contentid,$url) "之间的代码全部替换成以下代码:

{
  $pages = '';
  $multipage .= '<span>共'.$pagenumber.'页</span>';
  $n = 9;//每页显示的页码数
  $i = 0;
  if ($pagenumber <= $n)
   {
            $start_page = 1;
            $end_page = $pagenumber;
            }
   else
   {
    $i = floor($page/$n);
                if($page >= 5)
    {
     if($page+2 >= $pagenumber)
     {
     $start_page = $page - 6;
     }
     else{
     $start_page = $page - 4;
     }
    $end_page = ($page + 4) >= $pagenumber ? $pagenumber : $page + 4;
    }
    else
    {
    $start_page = 1;
    $end_page = 8 >= $pagenumber ? $pagenumber : 8;
    }
             }
            for($i=$start_page; $i<=$end_page; $i++)
  {
   $pages .= $page == $i ? '<span>'.$i.'</span>' : '<a href="'.$pageurls[$i][1].'" target="_self">'.$i.'</a>';       
  }
  $firstpage =min($page, 1);
  $lastpage =max($page,$pagenumber);
  $prepage = max($page-1, 1);
  $nextpage = min($page+1, $pagenumber);
  if($page>1 && $page < $pagenumber)
  {
   $pagelist=$multipage.'<a href="'.$pageurls[$firstpage][1].'" target="_self">首页</a>'.'<a href="'.$pageurls[$prepage][1].'" target="_self">上一页</a>'.$pages.'<a href="'.$pageurls[$nextpage][1].'" target="_self">下一页</a><a href="'.$pageurls[$lastpage][1].'" target="_self">尾页</a>';
  }
  elseif($page+1 > $pagenumber)
  {
   $pagelist=$multipage.'<a href="'.$pageurls[$firstpage][1].'" target="_self">首页</a>'.'<a href="'.$pageurls[$prepage][1].'" target="_self">上一页</a>'.$pages;
  }
  else
  {
   $pagelist=$multipage.$pages.'<a href="'.$pageurls[$nextpage][1].'" target="_self">下一页</a><a href="'.$pageurls[$lastpage][1].'" target="_self">尾页</a>';
  }
  return $pagelist;
 }
//重新改造结束  www.liuxq.cn

改造完成,如果是动态URL的话,前台刷新一下页面就能重新看到新的分页样式了,当然,分页的CSS样式需要自己写下了.

PHPCMS2008点击内容中的图片自动跳转到下一页 最终代码放送

效果描述:
只对有分页的内容执行操作,即点击内容中的,图片进入下一页,并且点击内容最后一页时会跳转到当前所属的栏目首页.
话不多说,直接入主题.贴winliuxq[www.liuxq.cn]的改造代码:

{if $pagenumber > 1}
<?php
$nextpage = $page+1;
if(!$pageurls[$nextpage][1])
{
$nurl='/'.$C[url];
}
else
{
$nurl='/'.$pageurls[$nextpage][1];
}
$content1 = str_replace("<img","<img alt='$title($page)' onclick=window.open('$nurl','_self')",$content);
?>
{$content1}
{else}
{$content}
{/if}

给每个文章的浏览次数都加上100,适用于PHPCMS2008

建站后,刚刚发布的文章由于浏览的人还比较少,导致了其浏览次数不高,这样,其他用户刚进来看到后也不会太认真去看,因为用户可能会想,这样一个没有"人气"的文章对于他来说也未必有浏览价值!那么,如何给每个文章的浏览资料在原有基础上都加上100呢.下面就说下方法:

打开根目录里的cont.php,将倒数第三行的<?=$hits?>改为<?=$hits+100?>就可以了,是不是特别简单呢!

有些用户在想着在模板里的<span id="hits">0</span>前面加个100,这样导致的问题就是真实浏览资料前加了一个"100",显然这种做法会有弊端,而且扫尾影响到后期的工作!

下一页 »