2012
03
11
08:50

自定义信息排序字段,轻松搞定前台列表信息的排序

实现在文章前台排序,一直是我的个人愿望,其中一个原因是,我早期做的大都是教学网站,很多东西与课本同步,把一册的内容按课本顺序排列好,方便用户查看,还可以随时修改它们的顺序,这对网站的人性化很重要。可惜一直没有机会在帝国cms中作此尝试。下了点功夫还真搞定了,为了方便其他同仁偷懒,特备忘如下:

首先,在需要排序的信息模型中增加一个自定义字段用来排序,比如在新闻数据表增加一个newsnumber字段,字段名为newsnumber,字段类型选择INT(大型数值),输入表单显示元素使用单行文本框,其他的东西默认就好。然后修改系统模板,让这个字段可以录入、修改和增加,并能在列表模板和内容模板中使用。

接下来,用灵动标签通过sql查询的方式调用,代码样式如下:

[e:loop={‘select * from phome_ecms_news where classid=6 order by newsnumber asc limit 5′,5,24,0}]<LI><A title='<?=$bqr[title]?>’ href=”<?=$bqsr[titleurl]?>”><?=esub($bqr[title],32,’…’)?></A></LI>[/e:loop]

看看以上代码大家应该明白了,classid=你要调用的栏目id,by空格之后的newsnumber其实就是使用newsnumber这个我们在后台增加的排序字段来排序,这里的排序方式是asc 是英文单词ascend 的缩写,是升序的意思,这样可以升序方式排列数据,你也可以把它改为desc,desc是英文单词descend 的缩写,这样可以降序排列数据。很简单吧?

2012
03
11
08:46

前台用灵动标签调用友情链接的排序分享

网上用得比较多的是按照后台添加的先后顺序排序:

<!– 文字链接 –>

[e:loop={‘select * from [!db.pre!]enewslink where checked=1 and lpic=”” order by lid’,20,24,0}]

<li><a href=”<?=$bqr[lurl]?>”><?=$bqr[lname]?></a></li>

[/e:loop]

 

区别在于是按lid还是按myorder排序。

 

 

这是按照后台设置的大小顺序排序:

<!– 文字链接 –>

[e:loop={‘select * from [!db.pre!]enewslink where checked=1 and lpic=”” order by myorder’,20,24,0}]

<li><a href=”<?=$bqr[lurl]?>”><?=$bqr[lname]?></a></li>

[/e:loop]

 

这是友情连接的下拉形式:

<form id=”form1″ name=”form1″ method=”post” action=””>

<label for=”FRIEND LINK “>友情链接:</label>

<select name=”FRIEND LINK” size=”1″ id=”FRIEND LINK”>

[e:loop={‘select * from [!db.pre!]enewslink where checked=1 order by lid’,20,24,0}]

<option value=”<?=$bqr[lurl]?>”>

<?=$bqr[lname]?>

</option>

[/e:loop]

</select>

</form>

2012
03
11
08:40

帝国cms留言前台ip显示方法

首先打开e\data\template\gbooktemp.txt文件,

找到$query=”select lyid,name,email,`call`,lytime,ip,lytext,

这一行,加入ip,

然后在后台修改留言板模板,加入:<?=$r[ip]?>代码即可。

2012
03
11
08:36

灵动标签列表面调用当前父栏目下的所有子栏目

<?

$bclassid = $class_r[$GLOBALS[navclassid]][bclassid]; //获取当前父栏目ID

?>

[e:loop={“select classid,classname,classpath from [!db.pre!]enewsclass where bclassid = ‘$bclassid’ order by classid”,0,24,0}]<!-取得父栏目下的子栏目->

<li><a href=”<?=$public_r[newsurl].$bqr[classpath]?>/”><?=$bqr[classname]?></a></li>

[/e:loop]

2012
03
05
10:42

CentOS 5.5 文本模式安装

一、安装前提条件:

1. VMware Workstation或者Oracle VM VirtualBox,没有的可以GOOGLE一下

2. CentOS-5.5-i386-bin-DVD.iso,很多大型LINUX相关网站都提供下载

3. 虚拟机软件的安装和虚拟机创建过程略。虚拟机分配512MB内存,虚拟磁盘大小为6GB。

 

二、CentOS系统的安装:

1. 开机光盘启动,进入如下启动画面,输入linux text后回车;

2. 选择Skip,跳过光盘介质的测试;

3. 点击OK继续;

4. 安装过程中的语言选择画面,这里我们选择English;

5. 键盘布局选择us,美式键盘;

6. 告警信息提示我们磁盘上之前的数据会被初始化而丢失,选择Yes继续;

7. 磁盘分区画面,这里我们选择“Create custom layout”自定义分区大小,选择OK继续;

8. 将光标移到“Free space”上,按键盘的F2键,新建分区;

9. 分区挂载点输入/boot,文件系统类型选择ext3,分区大小100MB固定大小,强制设置这个分区为主分区,之后选择OK;

10. 这时我们可以看到/boot挂载点已经建好了。将光标移到“Free space”上,按键盘F2键,创建新的分区;

11. 文件系统类型选择swap,固定大小256MB,强制设为主分区,之后选择OK。需要说明的是,swap交换分区的大小一般设置为物理内存的1.5至2倍;

12. 之后我们创建根分区,挂载点输入/,文件系统类型ext3,使用全部可用的磁盘空间,强制其为主分区,之后点击OK;

13. 分区明细如下图,之后按键盘的F12继续;

14. 由于设置的swap空间(258M)小于物理内存(512M),系统会提示我们有可能影响性能,选择Yes继续;

15. 引导程序选择界面,这里我们使用GRUB Boot Loader,选择OK继续;

16. 有时候我们需要调用特定的参数来启动系统,这时就需要在这个画面输入该参数。默认启动的话,直接选择OK继续;

17. 高安全级别的情况下,有时需要设置引导程序的密码,不过一般不需要设置,点击OK继续;

18. 多系统环境中,在这个画面可以选择默认启动的系统。这里我们只是单系统环境,选择OK继续;

19. 引导程序的安装位置,我们选择主引导扇区(MBR),选择OK;

20. 是否配置eth0网卡,选择OK;

21. 选择系统启动时激活,并启动IPv4支持;

22. 选择手动配置IP地址,根据实际环境输入IP地址和子网掩码;

23. 根据实际环境输入网关地址和DNS地址;

24. 手动输入主机名称,之后选择OK继续;

25. 时区选择画面,这里我们选择“Asia/Shanghai”;

26. 输入root账号的密码;

27. 要安装的软件程序包的选择画面,这里我们取消掉所有“*”的选项,之后选择“Customize software selection”来自定义安装;

28. 一般情况下,只需选择:base(基本环境)、development librarys(开发库)、development tools(开发工具)、editors(编辑器)、system tools(系统工具)、X software development(图形界面开发软件);

 

29. 提示我们安装过程的完整日志会保存在/root/install.log中,选择OK继续;

30. 安装进行中;

31. 安装完成,将安装光盘弹出,之后重启系统;

32. 第一次启动后会出现如下界面。如果30秒内没有操作则会自动跳过进入命令提示符。之后也可以使用setup命令调用这个界面;

33. 在命令提示符界面,我们输入root账号和密码进入系统。之后输入setup;

34. 选择“Firewall Configuration”回车;

35. 将防火墙状态设置为Disabled,SELinux设置为Disabled,选择OK;

36. 选择“System services”后回车;

37. 保留crond、network、sshd、syslog服务,其他一律禁用;

38. 系统安装完成。

2012
03
03
09:34

帝国CMS标题如何显示头条/置顶/推荐标识方法

帝国CMS,如果文章包含图片,或者文章是置顶的,需要我们以3天内的发布为条件输出带 new 图标的信息(首页模板上的灵动标签格式):

 

帝国CMS标题显示头条/置顶/推荐标识代码如下:

 

[e:loop={栏目ID,显示条数,操作类型,只显示有标题图片}]

<?

$newimg=””;

if(time()-$bqr[truetime]<=3*24*3600)

{

$newimg=”<img src=’New图片地址’>”;

}

?>

<li>

<a href=”<?=$bqsr[titleurl]?>” title=”<?=$bqr[title]?>” target=”_blank”><?=esub($bqr[title],36)?></a><?=$newimg?>

</li>

[/e:loop]

 

注:字段值数组变量为$bqr,对应的字段变量为$bqr[字段名],如:标题字段变量就是$bqr[title]。

首先在列表模板上勾选”使用程序代码”,我们以推荐为条件输出带 new 图标的信息(列表页模板 【列表内容模板(list.var) 】上的格式):

 

复制代码代码如下:

 

$newimg=”;

if($r[isgood]==1)

{

$newimg='<img src=’New图片地址’>’;

}

$listtemp='<li><a href=”http://www.alonely.com.cn/Ecms/20120217/4510.html” title=”[!–oldtitle–]”>[!–title–]</a>’.$newimg.'</li>’;

 

注:字段值数组变量为$r,对应的字段变量为$r[字段名],如:标题字段变量就是$r[title]。另外定义的变量为’.$newimg.’ 。将最终模板内容赋给$listtemp变量。

更多首页模板上的条件收集:

 

复制代码代码如下:

 

if($bqr[isgood]==1) //推荐

if($r[firsttitle]==1) //头条

if($r[istop]==1) //置顶

if($bqr[isgood]==1&&$bqr[firsttitle]==1&&$bqr[istop]==1) //置顶-头条-推荐 (组合使用)

 

最后给出实际使用中的代码:

 

复制代码代码如下:

 

[e:loop={‘selfinfo’,20,0,0}]

<?

$newimg=””;

$good=””;

if(!empty($bqr[titlepic]))

{

$newimg=”<img src=’static/image/filetype/image_s.gif’ />”;

}

if($bqr[istop]==1)

{

$good = “<img src=’image/common/pin_1.gif’ />”;

}

?>

<tr class=”even”>

<td class=”title”>

<h1><a href=”<?=$bqsr[titleurl]?>” target=”_blank”><?=sub($bqr[title],0,30,false)?></a> &nbsp;<?=$newimg?> &nbsp;<?=$good?></h1>

<p class=”intro”>

<?=sub($bqr[smalltext],0,80,false)?>[<a title=”阅读全文” href=”<?=$bqsr[titleurl]?>” target=”_blank”>详细内容</a>]

</p>

</td>

<td><?=$bqr[myarea]?></td>

<td><?=date(‘Y-m-d H:i:s’, $bqr[newstime])?></td>

</tr>

[/e:loop] 在列表的题头显示相应的标识,后来用灵动标签实现了,这里记录一些,估计会有不少人会用到

2012
03
03
09:32

帝国CMS灵动标签e:loop的怎么用

帝国 灵动标签 (e:loop) 是一种非常方便的高级使用方法,很多人都不会使用,今天我们就来细说下这个非常好的功能,有了它能很灵活的调用你想要的各种数据。

复制代码代码如下:

[e:loop={栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序}]

模板代码内容

[/e:loop]

例子:

复制代码代码如下:

<table width=”100%” border=”0″ cellspacing=”1″ cellpadding=”3″>

[e:loop={栏目ID/专题ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序}]

<tr><td>

<a href=”<?=$bqsr[titleurl]?>” target=”_blank”><?=$bqr[title]?></a>

(<?=date(‘Y-m-d’,$bqr[newstime])?>)

</td></tr>

[/e:loop]

</table>

 

标签说明:灵动标签是无需做标签模板,且模板内容为PHP代码,因而更灵活,可以使用php所有处理函数。使用本标签,需开启模板支持程序代码(参数设置)。

参数:

栏目ID/专题ID:查看栏目ID点这里,查看专题ID点这里,当前ID=’selfinfo’,多个栏目ID与专题ID可用,号格开,如’1,2’。

显示条数:显示前几条记录。

操作类型:具体看操作类型说明。

只显示有标题图片:0为不限制,1为只显示有标题图片的信息。

附加SQL条件:附加调用条件,如:”title=’帝国'”。

显示排序:可指定按相应的字段排序,如:”id desc”。

变量说明:

$bqr:$bqr[字段名]:显示字段的内容

$bqsr:$bqsr[titleurl]:标题链接,$bqsr[classname]:栏目名称,$bqsr[classurl]:栏目链接

$bqno:$bqno:为调用序号

$public_r:$public_r[newsurl]:网站地址

常用函数介绍:

文字截取:esub(字符串,截取长度),例子:esub($bqr[title],30)截取标题前30个字符。

时间格式:date(‘格式字串’,时间字段),例子:date(‘Y-m-d’,$bqr[newstime])时间显示格式为”2008-10-01″。

实例1:如果信息为当天就加New标志

本功能实现调用信息时候如果是当天发布的最新信息显示New标志图片。

 

复制代码代码如下:

 

<ul>

[e:loop={栏目ID,显示条数,操作类型,只显示有标题图片}]

<?

$newimg=””;

if(date(“m-d”,$bqr[truetime]) == date(“m-d”))

{

$newimg = “<img src=’New图片地址’>”;

}

?>

<li>

<a href=”<?=$bqsr[titleurl]?>” target=”_blank”><?=sub($bqr[title],0,10,false)?></a><?=$newimg?>

</li>

[/e:loop]

</ul>

 

说明:首先定义newimg为空如果日期=当天则显示New图片,用<?=$newimg?>在您想要的适当位置调用。

实例2:在灵动标签内使用SQL

[e:loop={‘select * from phome_ecms_news where classid=72 order by id DESC limit 6’,6,24,0}],注意倒数第二个参数为24,才可以使用SQL。

 

复制代码代码如下:

 

[e:loop={‘select * from [!db.pre!]ecms_news where classid=72 and type=’开发商’ order by id DESC limit 6′,6,24,0}]

<li class=”class1″> <a href=’http://www.hkqipilang.acafa.com/’ target=_blank title='<?=$bqr[title]?>’><?=$bqr[title]?></a>

<div class=”top_div_myAcafa_u”><?=$bqr[address]?>

业务范围: <?=$bqr[smalltext]?></div>

</li>

[/e:loop]&nbsp;&nbsp;

 

实例3:如果信息带有图片信息,则标题上带有图片标志

 

复制代码代码如下:

 

[e:loop={‘selfinfo’,20,0,0}]

<?

$newimg=””;

if(!empty($bqr[titlepic]))

{

$newimg=”<img src=’http://bbs.zhnews.net/bbs/static/image/filetype/image_s.gif’ />”;

}

?>

<tr class=”even”>

<td class=”title”>

<h1><a href=”<?=$bqsr[titleurl]?>” target=”_blank”><?=sub($bqr[title],0,24,false)?></a> <?=$newimg?></h1>

<p class=”intro”>

<?=$bqr[smalltext]?>[<a title=”阅读全文” href=”<?=$bqsr[titleurl]?>” target=”_blank”>详细内容</a>]

</p>

</td>

<td><?=$bqr[myarea]?></td>

<td><?=date(‘Y-m-d H:i:s’, $bqr[newstime])?></td>

</tr>

[/e:loop]

 

显示字段用<?=$bqr[字段]?>,$bqsr就几个变量:

$bqsr[titleurl]:标题链接

$bqsr[classname]:栏目名称

$bqsr[classurl]:栏目链接

$bqsr[titleurl]:标题链接

$bqsr[classname]:栏目名称

$bqsr[classurl]:栏目链接

除了这几个其他的都用$bqr。

2012
02
10
15:06

PSFTP的简单使用说明

PSFTP是Putty的一部分,可以单独使用,但推荐你去http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html下载完整的Putty安装包。安装好之后,你就有了一套几乎完整的远程访问解决方案。

打开PSFTP,如果要访问Unix体验中心的Fedora服务器,输入命令open fedora.unix-center.net,一会儿会提示你输入用户名和密码,如果正确,那么你就成功地连接到远程主机上了。

pwd命令显示你在远程主机上的当前目录;

ls或dir命令则列出远程主机上当前目录下的文件;

cd则会转到远程主机上的相应目录中;

类似的,lpwd显示你在本地机器上的当前目录,lcd则会改变本地机器上的当前目录。PSFTP没有提供列出本地机器上当前目录中的文件的命令。要那样做,可以用“!dir”来完成。”!“表示执行本地机器上的命令。

get/put用于下载/上传文件,mget/mput用于批量下载/上传文件。del或rm用于删除远程主机上的文件。操作完成后,使用close来关 闭连接,或者是用quitbyeexit来关闭连接并且退出PSFTP。还要些其他的命令(很少),如果改变权限的chmod,移动文件的mv等等, 可以查看附带的帮助文档。

2012
01
29
16:56

Kloxo初次使用的基本设置及中文包安装方法

介绍了Kloxo的安装方法,这次介绍下第一次使用Kloxo的基本设置及汉化方法。

操作过程难免参杂了我个人的习惯,供同学们参考,欢迎交流。

 

一:重设密码

当你第一次登录Kloxo时,系统会自动跳转到密码修改页面并要求你立即修改你的初始密码,不要犹豫,赶紧改吧。如果你觉得自己的密码太弱,那么可以点击“Generate Password”让系统帮你随机生成一组密码。假如你这么做了,请妥善保管自己的密码,忘记密码对于刚刚使用Kloxo的人来说比较麻烦。

 

建议设置完密码后,在“Administration”模块中的“Information”菜单里设置下你常用的邮箱。如果你忘记Kloxo的密码,通过“找回密码”,系统会随机生成新密码发送到你的邮箱。个人觉得这步设置即重要又方便。如果没有设置邮箱可以通过下面的命令行更改密码(不包含大括号):

 

# sh /script/resetpassword master {newpassword}

 

二:Kloxo中文语言包的安装

如果你的英文不好,可以为Kloxo安装中文语言包,方法如下:

第一步:使用SSH客户端登录你的服务器并进入Kloxo的语言包目录

# cd /usr/local/lxlabs/kloxo/httpdocs/lang

第二步:下载Kloxo中文语言包

# wget http://jouleken.com/files/kloxo-chinese-language-package.zip

第三步:解压缩Kloxo中文语言包

# unzip kloxo-chinese-language-package.zip

第四步:变更Kloxo中文语言包目录及所有文件的所有者/组

# chown -R lxlabs:lxlabs cn

第五步:登录Kloxo控制面板,在“Advanced”模块中点击进入“General Settings”界面,然后选择“Appearance”标签,最后在“Language”下拉框中选择“Chinese”并点击“Update”提交。

到此,Kloxo控制面板就变成中文界面了。

三、升级Kloxo

在“Administration(管理)”模块中的“Update Home(更新主页)”菜单里升级Kloxo。如果你使用的VPS已经将Kloxo集成到CentOS 5 (32 bit)了,那么请升级,因为老版本可能有bug存在,不过升级后也有可能出现新的bug。如果你是自己手动安装的Kloxo,应该已经是最新版了。关于版本好坏的问题,看个人喜好,我喜欢把什么都升级到最新,如果你觉得旧版本好用,可以选择使用旧版本。

四、设置Lxguard

在“Security(安全)”模块中的“Lxguard(Lx卫士)”菜单里设置Lxguard。Lxguard的作用是防止SSH和FTP被暴力破解,当某IP尝试登录SSH或FTP不成功的次数累积到一定数量时会被Lxguard列入黑名单。Lxguard也可能导致FTP出现连接超时等不稳定现象,解决方法:1.调整允许失败登录的次数;2.设置白名单,如果你是ADSL拨号上网IP经常变的,建议你关闭Lxguard;3.只好禁用Lxguard。

五、设置服务器的邮局

在“Web&Mail&DB(网页&邮件&数据库)”模块中的“Server Mail Settings(服务器的邮局设置)”菜单里设置服务器的邮局。我只填写了“My Name(我的名称)”一栏,其他保持默认。对于邮局的设置我了解到不多,这里简单的设置只是为了取消每次登录Kloxo出现的“邮局名称未设置”的提醒。邮件服务我都是通过强大的Google Apps来实现。

六、设置DNS模板

在“Resources(资源)”模块中的“DNS Templates(DNS模板)”菜单里设置DNS模板。以Google Public DNS为例,“DNS Template Name(DNS模板名)”随意填写,比如“Google DNS”,主次DNS分别填入:8.8.8.8 和 8.8.4.4即可。

七、SSH配置

在“Security(安全)”模块中的“SSH Config(SSH配置)”菜单里配置SSH。SSH默认端口号是22,我将其改成自己好记且较大的一个数字,其他几项根据自己的需求来吧。记住,改了默认端口号后,使用SSH客户端或SFTP时就需要填写新的端口号了,否则会无法登录。

八、添加一个顶级Ftp用户

在“Domain(域名)”模块中的“Ftp Users(Ftp用户)”菜单里设置Ftp用户。Kloxo默认是单个域名开设单个Ftp用户的,不能跨域管理。如果你的站点比较多,建议你在Ftp用户里添加一个顶级Ftp用户,最大的优点就是可以不用来回切换Ftp账户,便可以管理虚拟目录/home/admin/中所有站点的目录。为了方便记忆,你可以将其设置为和Kloxo的帐号一致,比如admin。

九、清理日志

Kloxo会生成各种日志,时间久了就会大量占用硬盘空间,通常会造成MySQL无法启动等问题。通过下面的命令行可以设置服务器每天自动清理Kloxo的日志:

 

# cat > /etc/cron.daily/clean_kloxo_logs.sh << EOF
#!/bin/bash
rm -rf /home/admin/__processed_stats/*
rm -rf /home/kloxo/httpd/lighttpd/*
rm -rf /var/log/kloxo/*
rm -f /home/httpd/*/stats/*
EOF
# chmod 755 /etc/cron.daily/clean_kloxo_logs.sh

 

如果你比较熟悉上面的命令行,你也可以手动删除Kloxo日志。除了Kloxo的日志外,你可以在/var/log目录下找到Linux系统的其他日志。如果你不清楚上述命令行该如何执行,请看我的示例截图。

 

十、最后

安装完kloxo大家内存占用可能很大,我的512就占用了370左右。优化的具体方法如下:

登录SSH,首先进入/etc 目录,编辑my.cnf命令:先cd /etc再输入 vi my.cnf在[mysqld]下面加入以下三行:skip-lockingskip-bdbskip-innodb然后按Esc ,再按shift+:键,然后键入wq 回车就保存退出了保存之后在重启MYSQL命令: /sbin/service mysqld restart然后再看看内存,很有效果吧。只有一百多了,呵呵……

经过初步的基本设置和汉化后,你就可以开始使用Kloxo管理你的服务器和站点了。添加域名、建立数据库等操作都比较简单,网上教程也很多,剩下的靠自己探索啦,有疑问就请教Google大神。操作有风险,折腾需谨慎,请注意数据的备份与安全。建议刚刚入门的同学可以购买一些价廉的VPS作练手用。