2012年10月

调用友情链接:

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

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

[/e:loop]

---------------------------------------------------------------------------------------------------------

调用所有一级栏目:

[e:loop={'select classid,classname,classpath,wburl from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]

<li><a href="<?php

if(empty($bqr[wburl]))

{

echo $public_r[newsurl].$bqr[classpath];

} else {

echo $bqr[wburl];

}

?>" title="<?=$bqr[classname]?>" target="_self"><?=$bqr[classname]?></a></li>[/e:loop]

---------------------------------------------------------------------------------------------------------

 

一级二级栏目循环:

<dl>

[e:loop={"select classid,classname,islast from {$dbtbpre}enewsclass where bclassid='0' order by myorder,classid ASC limit 11",0,24,0}]

<?php

$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址

$tbname=$class_r[$bqr[classid]][tbname]; //取得表名

?>

<dt><a href="<?=$classurl?>" target="_blank"><b><?=$bqr[classname]?></b></a></dt>

<dd>

<?php if(!$bqr[islast]){ ?>

<?php

//取得栏目下的子栏目

$newsclass=$empire->query("select classid,classname from ".$dbtbpre."enewsclass where bclassid=".$bqr[classid]." order by myorder,classid desc limit 10");

while($classr=$empire->fetch($newsclass)) {

$classrurl=sys_ReturnBqClassname($classr,9); //取得子栏目地址

?>

<a href="<?=$classrurl?>"><?=$classr[classname]?></a>

<?php

}

?>

 

<?php

}else{

?>

 

<?php

//取得栏目下的信息

$newsinfo=$empire->query("select * from ".$dbtbpre."ecms_".$tbname." where classid=".$bqr[classid]." order by newstime desc limit 10");

while($infor=$empire->fetch($newsinfo)) {

$titleurl=sys_ReturnBqTitleLink($infor);

?>

<a href="<?=$$titleurl?>"><?=$newsinfo[title]?></a>

<?php

}

?>

 

<?

}

?>

</li>

[/e:loop]

</dd>

</dl>

---------------------------------------------------------------------------------------------------------

调用指定父栏目下的子栏目

[e:loop={"select classid,classname from {$dbtbpre}enewsclass where bclassid=IDorder by myorder,classid desc",0,24,0}]

<?php

$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址

?>

<a href="<?=$classurl?>"><?=$bqr[classname]?></a>

[/e:loop]

 

---------------------------------------------------------------------------------------------------------

帝国CMS顶级栏目调用所有顶级栏目的方法

[e:loop={"select * from phome_enewsclass where bclassid in (0) order by classid asc",0,24,0}] <li><a href="/<?=$bqr[classpath]?>"><?=$bqr[classname]?></a></li> [/e:loop]

---------------------------------------------------------------------------------------------------------

列表页面调用 栏目名称+标题 [栏目] 标题

[<a href="<?=$class_r[$bqr[classurl]]?> " target="_blank"><?=$class_r[$bqr[classid]][classname]?></a>] <a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a>

 

列表页面调用 栏目名称+标题 [栏目] 标题 时间

[<a href="<?=$class_r[$bqr[classurl]]?> " target="_blank"><?=$class_r[$bqr[classid]][classname]?></a>] <a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a><span><?=date('Y-m-d',$bqr[newstime])?></span>

--------------------------------------------------------------------------------------------------------

调用当前栏目父级栏目下的所以子栏目排除当下栏目

<?php $tl_thisclassid=$GLOBALS[navclassid];

$tl_bclassid=$class_r[$tl_thisclassid][bclassid];

$tl_class_sql=$empire->query("select classid,classname from {$dbtbpre}enewsclass where bclassid='".$tl_bclassid."' and showclass=0 order by myorder,classid desc");while($tl_class_r=$empire->fetch($tl_class_sql)){ if($tl_class_r[classid]==$tl_thisclassid){continue;}?>

<li><a href="<?=sys_ReturnBqClassname($tl_class_r,9)?>"><?=$tl_class_r[classname]?></a></li><?}?>

----------------------------------------------------------------

调用父级栏目下子栏目

<?

$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}]<!-取得父栏目下的子栏目->

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

[/e:loop]

-----------------------------------------------------------------------------------------------

调用当前栏目下的子栏目

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

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

[/e:loop]

++设定网卡

1)简单点的用sysinstall–>Configure–>networking–>Interfaces

2)或直接手工配置

vi /etc/rc.conf #添加如下内容

ifconfig_lnc0=”inet 192.168.25.37? netmask 255.255.255.0″ #具体网卡名称和IP地址自已调

defaultrouter=”192.168.25.12″??? #网关

hostname=”freebsdsrv.zhangjianfeng.com”? #主机名称

++多线程下载ports里的包

cd /usr/ports/ftp/axel

make

make install

make clean

编辑make.conf文件

ee /etc/make.conf

增加以下内容

FETCH_CMD=axel

DISABLE_SIZE=yes

修改配置文件

ee /usr/local/etc/axelrc

设置并发线程为10

num_connections = 10

默认的设置是4

++加速pkg_add 速度

export? PACKAGEROOT=ftp://ftp.tw.freebsd.org? #bash

++设置ports的下载路径

# added by use.perl 2006-12-21 20:58:26

PERL_VER=5.8.8

PERL_VERSION=5.8.8

MASTER_SITE_OVERRIDE= \

ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp10.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp13.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp.jaist.ac.jp/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}

++配置X11

Xorg -configure #会在/root/下生成xorg.conf.new

Xorg -config xorg.conf.new #如果看到黑灰的格子和一个 X 形的指针,那就说明配置成功.退出测试可以按下 Ctrl+Alt+Backspace

cp /root/xorg.conf.new /etc/X11/xorg.conf #如果测试没问题就把文件放到这里,可以通过startx启动

++ 中文gnome环境

修改/etc/profile文件,在其中添加:LANG=zh_CN.eucCN

LC_ALL=zh_CN.eucCN

export LANG LC_ALL? #也可以在启动gnome之前手工运行

++安装prozilla

cd /usr/ports/ftp/prozilla;make;make install

++关于 在FreeBSD 下PPPoE拨号上网的方法 以下是一个ppp.conf的例子:

default:

set log Phase tun command # you can add more detailed logging if you wish

set ifaddr 10.0.0.1/0 10.0.0.2/0

name_of_service_provider:

set device PPPoE:xl1 # replace xl1 with your Ethernet device

set authname 你的帐户名

set authkey 帐户密码

set dial

set login

add default HISADDR

确认你的 adsl: 后面的代码前面都有缩进,格式必须入上,没有缩进就不可以!

# ppp -ddial name_of_service_provider

++关于 挂载非UFS分区 方法

1.mount FAT/FAT32分区:(C盘为例)

mount -t msdos /dev/ad0s5 /mnt

2.mount NTFS分区:(C盘为例)

mount_ntfs /dev/ad0s1 /mnt

mount_msdosfs -L zh_CN.GB18030 /dev/ad0sX /mnt #可以支持FAT32分区上的中文文件名,当然,locale用18030/zh_CN.eucCN/ zh_CN.GBK都可以

3.mount Linux Ext2fs/Ext3fs:

在内核里面加入options EXT2FS,编译内核。

mount 的时候用mount_ext2fs 命令即可,ext3fs的mount也用mount_ext2fs

4.mount 普通数据光盘:

mount_cd9660 /dev/acd0 /cdrom? #如果fstab已定义,则 mount /cdrom

5.mount ISO 文件

mdconfig -a -t vnode -f abc.iso -u 1

mount_cd9660 /dev/md1 /cdrom

umount /mnt

vnconfig -u /dev/vn0

6.mount CD、VCD、DVD

播放CD、VCD、DVD不用先mount上。

如果你一定要mount上,可以这样:#mount _cd9660 -s 0 /dev/acd0 /cdrom

7.mount usb

确保内核中有如下项

device scbus

device da

device cd

在GENERIC中默认都有,如果没有,请编译内核。

大多数U盘用的是FAT 文件系统,所以用

mount -t msdos /dev/da0 /mnt

++Packages简单系统

pkg_add -r lsof

pkg_delete lsof-version #删除软件包

pkg_info #显示所有安装的软件包

pkg_info -L lsof-version| less #查lsof都安装到哪儿了

pkg_info | grep -i foopackage? #查系统安装了指定包没?

#找XX软件

#a)如果你知道软件的准确的名字,比如说wget,则 whereis wget

#b)如果你不知道准确的名字,那就search一下吧 cd /usr/ports;make search key=???

++ADSL拨号

vim /etc/ppp/ppp.conf

default:

set log Phase tun

enable dns

adsl:

set device PPPoE:rl0 #rl0对应网卡名称

set mru 1492

set dial

set login

set authname 用户名

set authkey? 密码

add default HISADDR

vim /etc/resolv.conf

nameserver 202.106.196.115

nameserver 202.106.0.20

ppp #运行ppp命令

ppp ON LOCALHOST>dial adsl

ppp ON LOCALHOST> #注释:假如没设置set mru 1492,系统会有提示的。

Ppp ON LOCALHOST> #注释:第一个P变大写后又变回小写的话,很可能是你自己的ADSL密码和用户名输入错误

PPP ON LOCALHOST> #注释:三个p都是大写P后,证明就通了

++中文本地化设置

(1)在/etc/login.conf中加入以下部分

#Chinese Users Accounts.

chinese|Chinese Users Accounts:\

:charset=eucCN:\

:lang=zh_CN.eucCN:\

:tc=default:

(2)执行以下命令

#cap_mkdb /etc/login.conf

(3)用vipw修改登入类型,针对相应用用户进行修改,修改格式参照如下内容:

root1$lOOD78Dm$oSG5u21RGrXoC.TTJ3nCs.:0:0:chinese:0:0:Charlie &:/root:/bin/csh

关键是在相应位置加入”chinese”,”chinese”是和第1步的设置对应的。

(4)重新登入后执行startx,进入的Gnome便是全中文的了。

其实还是英文状态更舒服一些,但习惯了,反正得整出中文桌面来,即使不用,^_^

++使用Windows下的Simsun字体进行中文字体美化

在 /usr/X11R6/lib/X11/fonts/下建立一个”TrueType”目录,将Windows下的simsun.ttc改名为 simsun.ttf后拷贝到 /usr/X11R6/lib/X11/fonts/TrueType下, 然后建立字体缓存 fc-cache -fv

然后在GNOME中设置字体,在字体细节中调整:“平滑”选无,“微调”选轻微,“次象素顺序”选RGB。

++加载声卡

在文件 /boot/loader.conf 里加入一行,内容如下

snd_xxx_load=”YES”

#如果不知道应该使用哪个驱动, 您可以尝试加载 snd_driver module, cat /dev/sndstat

++同步时间

/usr/sbin/ntpdate 210.72.145.44

++比较快的cvs服务器

cvsup5.cn.FreeBSD.org? 50ms以下

cvsup.tw.FreeBSD.org?? 300ms左右

http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/cvsup.html

++修改passwd

vipw? #root

++编译内核可以用make kernel KERNEL=configfile来编译,比先build后install而言只要一个命令。

++编译内核失败后用老内核启动的命令是在启动内核前的等待时俺一下空格键,然后输入boot /boot/old/kernel

###################################基本设置#######################################

setenv PACKAGEROOT “ftp://ftp.tw.freebsd.org” (在FreeBSD默认的c shell 使用此种方法)

#设置环境变量使pkg_add –r 源代码安装方式选择较快的服务器下载二进制软件安装

pkg_add -r cvsup-without-gui

#下载并安装二进制代码程序cvsup-without-gui(cvsup-without-gui无图形支持在文本方式下工作的软件,用来同步代码及ports用。)

++FAQ

+++默认只有wheel组的成员才可以su

+++如何是启动使Booting [kernet] in 9 seconds …变成0秒解决办法:

# vim /boot/defaults/loader.conf

autoboot_delay=”3″

++VI中汉字显示成\xc8\xf0字样

解决办法:用vim即可正常显示中文

++ls无颜色

解决办法: ls -G #可以做个alias

 

 

尽快消化

php配置文件php.ini中默认设置允许上传的最大文件数据为2M,因此通过phpmyadmin Web界面管理mysql数据库时,能够导入mysql数据库的最大sql文件或gzip文件大小也是2M (2048K)。如果要导入大于2M的sql数据库文件,有以下几种解决方法。

 

最直接的解决办法当然就是修改php.ini配置文件的设置,即修改默认的 upload_max_filesize = 2M, memory_limit = 128M; post_max_size = 8M 。 比如我想上传一个27M的sql数据库文件,则可以修改为 upload_max_filesize = 32M, post_max_size = 32M,post_max_size 和 memory_limit 的值至少要大于等于upload_max_filesize的设置值。增加了php.ini中的最大上传设置数据之后,重启Apache数据库,再打开phpmyadmin 就可以上传大的sql数据库文件等等。

 

另外一种方法适用于没有权限修改网站服务器php.ini文件设置的用户,可以使用phpmyadmin提供的$cfg['UploadDir']方法,$cfg['UploadDir']方法允许我们通过scp、ftp等文件传输方式上传数据库文件到网站服务器,然后phpmyadmin从服务器的临时目录中导入数据库文件。该上传的文件名后缀必须为.sql或者.sql.bz2 或.sql.gz 。具体步骤如下:

 

在phpMyAdmin的根目录下找到config.inc.php文件(config.sample.inc.php),打开找到$cfg['UploadDir'] 和$cfg['SaveDir'],注释为“Directories for saving/loading files from server ”,即通过$cfg['UploadDir'] 和$cfg['SaveDir']可以导入服务器上的SQL文件到数据库,以及将从数据库导出的SQL文件保存到服务器上的目录中。

 

修改这个参数为$cfg['UploadDir'] = ‘ImportSQLFile’; 和 $cfg['SaveDir'] = ‘ExportSQLFile’;

 

再在phpMyAdmin中建立两个文件夹,ImportSQLFile和ExportSQLFile。也就是将需要导入的sql文件复制到ImportSQLFile文件夹中,上传到服务器上。选择需要导入的数据库名,选择导入(Import),就会发现在文件导入(File to import)的地方多出来一个导入服务器上的SQL文件(web server upload directory)。通过这种方法可以突破php.ini的上传文件限制。导出/备份mysql数据的时候也可以直接保存在服务器上,保存到$cfg['SaveDir'] = ‘ExportSQLFile’; 中指定的文件夹中。

 

另外,如果网站服务器和国外美国主机dreamhost一样支持Shell方式(SSH,SFTP,命令行)传输文件,那么通过shell方式导入Mysql数据库很大的sql文件都不成问题,直接在Mysql中使用命令:source filename.sql。

 

如果还是不能上传大于2M的数据库数据文件,可以检查一下你的phpmyadmin 版本是不是最新的,据说phpmyadmin低于 2.7.0版本会出现类似memory内存、http错误和timeout超时等各种问题,因此最好安装phpmyadmin升级到最新版本。