Archive for the 'php' Category


参加了PHPCMS2008的模板大赛

作品在这里:
http://www.phpcms.cn/mbds/show.php?id=32
大家有空不妨关注一下大赛进展!如果感觉作品还行,敬请支持一下!

顺便给PHPCMS提了几个建议,我在发送模板压缩文件时也说明了以下问题:

************************
源程序文件修改及有关说明

ask/load.php
删除了以下代码:
style="height:300px;width:120px;" //固定了select标签的高度和宽度,这让模板显得很不灵活
<span style='position:relative;visibility: visible;bottom: 150px;'>→</span> //感觉这个箭头没什么用
注明:删除后改为在CSS中对select标签进行控制

digg/digg.php
删除了以下代码:
<link href=\"".$PHPCMS['siteurl'].SKIN_PATH."{$mod}.css\" rel=\"stylesheet\" type=\"text/css\" /> //在这儿加载真是不合时宜
注明:CSS样式直接写入content.css,减少客户端对服务器的文件请求

images/nophoto.gif
注明:替换了这个文件,让用户的默认头像显得更美观些

images/js/css.js
注释了以下代码:
//  $("input[type='file']").blur(function () { this.className='input_blur'; } );
//  $("input[type='file']").focus(function () { this.className='input_focus'; } );
//  $("input[type='password']").blur(function () { this.className='input_blur'; } );
//  $("input[type='password']").focus(function () { this.className='input_focus'; } );
//  $("input[type='text']").blur(function () { this.className='input_blur'; } );
//  $("input[type='text']").focus(function () { this.className='input_focus'; } );
//    $("textarea").blur(function () { this.className='textarea_style'; } );
//  $("textarea").focus(function () { this.className='textarea_focus'; } )
说明:这些触发动作虽然会改变用户点击input时的样式,但实际上很不适合整站的样式调整,因为不是每一个input和textarea样式都是一样高度的

include/global.func.php
把原来的722行修改为:
$pos .= ' > <a href="'.$url.'">'.$CATEGORY[$catid]['catname'].'</a>';
注明:只是在*$pos .= '*(*号中间)后面添加了一个* > *(*号中间),小改一下,让当前位置更清晰更易调用,省去给a标签写background样式这一麻烦

解决PHPCMS2008 SP4版本中心情排行指数不显示的问题

正在准备模板大赛的作品,修改这个模块的代码时,发现其指数不能正常显示,自己顺手就改一下,可能不"官方",但是能用.下面直接贴代码,有需要的就拿吧.

{loop $infos $r}
<?php
$i="n".$r[id];
$k=$r[id];
?>
<div>
<h3><img src="{$r[img]}" width="21" height="21" /> {$r[title]}</h3>
<ul>
{get sql="select c.url,c.title,c.style,m.n$r[id] from phpcms_content c,phpcms_mood_data m where c.contentid=m.contentid and m.moodid='$moodid' and m.n$r[id]>0 order by m.n$r[id] desc" rows="6"}
<li>{if $r[$i]}<span>({$r[$i]})</span>{/if}<a href="{$r[url]}" target="_blank"><font>{$r[title]}</font></a></li>
{/get}
</ul>
</div>
{if $k%2==0}
<div></div>
{/if}
{/loop}

模板位于:mood/rank.html

PHPCMS小细节改进之添加关联链接

在使用PHPCMS程序过程中,当一个网站建立到位以后,包括基础数据都准备好了,那么大多数的站长都会根据自己网站的关键词在后台添加关联链接,这是增加站内链接有效办法.
在添加过程中,我们注意到,当添加完一次关联链接后,程序就会自动跳到关联链接管理页面,这时候,我们不得不再点击一下"添加关联链接"才能继续添加.这让我感觉有些麻烦,至少我是这样认为的.
那么今天就来解决这个问题,很简单:
1.打开admin/keylink.inc.php
在第8行下面增加一句:
$forward1 = '?mod='.$mod.'&file='.$file.'&action=add';
2.将原来第19行的代码改为:
showmessage('操作成功!', $forward1);

OK,这样就解决了,现在当我们再次添加关联链接后,页面仍然会继续返回到这个添加的页面,是不是会感觉方便点呢!

再谈PHPCMS中$CATEGORY的作用

$CATEGORY这个定义参数的变量很有意思,在制作模板的时候可以给我们提供很多方便.
例1,在内容页中调用同级栏目,可以用它轻易获得上级频道的ID.
$cid=$CATEGORY[$C[catid]][parentid];
?>
{get sql=* parentid='$cid' *}
例2,在栏目页面中调用当调用上级频道的内容.
$aid=$CATEGORY[$C[catid]][arrchildid];
?>
{get sql=* catid in($aid) *}
例3,在任何模板上,轻松获取一个栏目的URL,名称,文章数量(指子栏目)等.
{$CATEGORY[1][url]}
{$CATEGORY[2][catname]}
{$CATEGORY[3][items]}
...
还有其他一些参数值,大家可以查阅数据字典.具体的使用方法,大家可以灵活多样,不要被模板教程局限了自己的思维.
其实做一个模板真的不难!

关于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内容页面加载最新评论留言(JS调用)

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

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

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

PHPCMS2008内容页面JS加载评论

PHPCMS2008的评论列表中轻松加入用户的头像

有两个办法,一是使用GET标签获取,不过代码写下来会繁锁(如果用户上传了头像的话,还要判断附件那个表).二是直接使用PHP定义$avatar参数.下面winliuxq(liuxq.cn)就说下第二种方法,比较简单!

在评论列表模板中的{$comment['content']}上面加入以下代码:
<?php
$memberinfo['avatar'] = avatar($comment['userid']);
@extract(new_htmlspecialchars($memberinfo));
?>
<a href="{SITE_URL}space/?userid={$comment[userid]}" target="_blank"><img src="{$avatar}" width="60" border="0" alt="{$comment[username]}头像" /></a>

添加好后保存,刷新评论列表的前台,OK啦!是不是特别简单呢!至于栏目问题,就得靠你自己去调整啦!

除此之外,你还可以在这里使用thumb参数给头像进行切割处理,如:{thumb($avatar,60,60)}

下面再来张效果图:
QQ截图未命名.jpg

PHP 正则表达式匹配和获取网站信息(标题,关键词,简介)

<?php
$file=file("http://www.liuxq.cn");
$count=count($file);
for($i=0;$i<$count;$i++){
if(eregi("<title>(.*)</title>",$file[$i],$out)){
$title=$out[0];
}
}
$title=substr($title,7,-8);
echo $title;
?>

preg_match("/<meta[^>]*?name=[\'\"]?description[\'\"]?[^>]*?>/is",$file[$i],$description);
//$description[0] 就是描述

preg_match("/<meta[^>]*?name=[\'\"]?keywords[\'\"]?[^>]*?>/is",$file[$i],$keywords);
//$keywords[0] 就是关键字