当前位置:文档之家› 织梦CMS二次开发程序实例

织梦CMS二次开发程序实例

织梦CMS二次开发程序实例
织梦CMS二次开发程序实例

Dede二次开发程序详解(来自网上,摘录而成)

调用说明:推荐会员(带用户头像)

[quote]

{dede:sql sql="SELECT mid,mtype,userid,uname,matt,face

FROM dede_member

where matt = 1 and mtype='个人'

LIMIT 0 , 10"}

头像:

用户名:[field:uname/]

{/dede:sql}

[field:face runphp='yes']

if(!@me)@me = 'https://www.doczj.com/doc/9f3484808.html,/image/post/smile/default/14.gif'; [/field:face]

为用户头像图片

[img]https://www.doczj.com/doc/9f3484808.html,/attachment/upload/87/11787.gif[/img]

是如果用户头像为空的话要显示的图像这个大家自己改吧

[/quote]

调用说明:会员积分排行

[quote]

{dede:sql sql="Select mid,userid,uname,scores From dede_member order by scores desc limit 0,10"}

[field:uname/]

积分[field:scores/]

{/dede:sql}

全部测试通过

[/quote]

这时需要通过dedecms后台中的ucenter模块进行Ucenter配置。

然后,在浏览器地址栏输入http://localhost/dede/login.php,打开后台

管理登录界面,输入密码后进入dedecms后台管理。

dedecms后台管理界面的左侧导航栏,点击“模块”标签,注意下面的“UCenter模块”。

点击“UCenter配置”,进入以下页面。

“服务端地址“填:http://localhost/ucenter(本地机),创始人密码

即是你在安装UCenter时设定的创始人密码;服务端IP地址填你的Ucenter安

装的空间IP(本地机填127.0.0.1),输入后点“确认安装”。出现安装成功提示。

退出dedecms管理后台,再次进入UCenter用户管理中心,这时我们会发现在“应用管理”中多了一项“我的网站”,并且显示的是“通信成功”了。

我们再通过浏览器访问http://localhost/uchome/index.php,用管理员的账号进入Uchome首页,点击“设置”进入另外一页,再点击右上角的“高级管理”,输入密码后点击“进入平台”进入高级管理平台。

在左侧导航栏的“高级设置”中找到一项“UCenter应用”点击进入。

在这里我们可以看到我们加入的三个应用,分别点击三个应用下面的“提交更新“。退出管理界面,现在我们再回过头去测试一下看就可以同步了。七、经验总结及疑问

如果没有做到Dedecms、UChome、Discuz!中同时登录及退出的问题其关键就是在uchome中的“ucenter应用”中没有“提交更新”。

有时候安装dedecms、uchome或ucenter出现问题安装不了或出错等等,有的很多就是环境没有搭载好,所以我建议就安装dedecms提供的DedeAMPZForServer套件,至少在服务器的搭载上我们不需要花费太多的精力。

另外注意的是UCenter的配置。比如“通信密钥”是否一致。这个一般是导致 UCenter 与Dedecms、UChome、Discuz!等通信失败的主要原因之一。这个密钥是可以自己随便写的,但要保证 UCenter 与 DIscuz 的密钥一致。又比如“ID”。查看 UCenter 后台的应用 ID 是否与Dedecms、UChome、Discuz!等后台的 ID 一致,如不一致,请修改各个应用后台的"UCenter 应用 ID"。这个也是导致 UCenter 与 DIscuz 通信失败的主要原因之一。关于UCenter的配置等这一点可以参考UCenter官方提供的说明手册。

功能:图书封面图片调用,含标题

代码:

{dede:sql sql="Select id,bookname,author,pubdate,body,litpic From dede_story_books order by id desc limit 0,10"}

{/dede:sql}

src="[field:litpic/]" border="0" width="75" height="100" />
[field:bookname

function="cn_substr(@me,12)"/]

功能:最新连载内容调用,含栏目名称、书名、章节名、发布时间。

代码:

{dede:bookcontentlist row=10 booktype=0 orderby=lastpost author= keyword=}

{/dede:bookcontentlist}

[field:cataloglink/]

[field:booklink/]

[field:contentlink/][field:lastpost

function="GetDateMk(@me)"/]

功能:热门图书调用

代码:

{dede:booklist row=5 booktype=0 titlelen=10 imgwidth=80 imgheight=100 orderby=weekcc}[field:imglink /]{/dede:booklist}

功能:推荐图书调用

代码:

{dede:booklist row=5 booktype=0 titlelen=10 imgwidth=80 imgheight=100 orderby=commend}[field:imglink /]{/dede:booklist}

分类信息

功能:调用地区与类型

代码:

{dede:infolink}

地区:[field:nativeplace /]

类型:[field:infotype /]

{/dede:infolink}

功能:调用最新信息

代码:{dede:arclistsg row=10 titlelen=32 orderby=pubdate channelid=-8 idlist=}

[[field:typelink/]] [field:textlink/][field:pubdate

function="MyDate(m-d,@me)"/]

{/dede:arclistsg}

功能:分类信息图片调用

代码:

{dede:arclistsg row=1 titlelen=30 flag=c,a infolen=80 orderby=pubdate channelid=-8 typeid=6 imgwidth=105 imgheight=137}

[field:image/]

href="[field:arcurl/]" >[field:title /]{/dede:arclistsg}

会员模块

功能:分列显示,按积分排行,带头像。正确链接到会员个人空间。

代码:

{dede:sql sql="Select mid,userid,uname,face,scores From dede_member order by scores desc limit 0,2"}

{/dede:sql}

target="_blank">[field:spacename/]</p

width="52" height="52" / border="0">
[field:uname/]
积分:[field:scores/]< /a>

圈子模块

功能:调用圈子标题,分10行显示

代码:

{dede:sql sql=" SELECT groupimg,groupid,groupname FROM dede_groups WHERE ishidden=0 ORDER BY threads DESC LIMIT 0,10"}

  • title="[field:groupname/]" target="_blank">

    [field:groupname/]

  • {/dede:sql}

    功能:热门圈子,调用图片及标题,分10列显示

    代码:

    {dede:sql sql=" SELECT groupimg,groupid,groupname FROM dede_groups WHERE ishidden=0 ORDER BY threads DESC LIMIT 0,10"}

    {/dede:sql}

    _fcksavedurl=""group/group.php?id=[field:groupid/]""

    title="[field:groupname/]" target="_blank">

    src="[field:groupimg/]" border="0" width="75" height="100" />
    [field:groupname function="cn_substr(@me,12)"/]

    功能:圈子话题调用。

    代码:{dede:sql sql=" SELECT subject,digest,replies,gid,tid FROM

    dede_group_threads WHERE closed=0 ORDER BY dateline DESC LIMIT 0,10"}

  • [field:subject/]
  • {/dede:sql}

    功能:最新圈子,调用图片及标题,分10列显示

    代码:

    {dede:sql sql=" SELECT groupimg,groupid,groupname FROM dede_groups WHERE ishidden=0 ORDER BY groupid DESC LIMIT 0,3"}

    {/dede:sql}

    _fcksavedurl=""group/group.php?id=[field:groupid/]""

    title="[field:groupname/]" target="_blank">

    src="[field:groupimg/]" border="0" width="75" height="100" />
    [field:groupname function="cn_substr(@me,12)"/]

    下载模块

    功能:显示符号、标题及发布日期

    代码:

    {dede:arclist row=10 titlelen=36 typeid="120" orderby=pubdate}

    {/dede:arclist}

    href="[field:arcurl /]">[field:title /]

    [field:pubdate function="MyDate(m-d,@me)"/]

    问答模块

    功能:包含问答分类及问答标题。

    代码:

    {dede:ask row=10 qtype=}

    [

    href=[field:typeurl/]>[field:tidname/]]

    href="[field:url/]">[field:title/]

    {/dede:ask}

    适用于V5.5版本,其他版本未测试。

    先来看一段代码:

    {dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON

    A.id = D.id order by downloads DESC limit 0,10; '}

  • [field:title/]下载次数[field:downloads/]
  • {/dede:sql}

    这个就是SQL调用下载排行的,已经实现了静态地址调用。limit 0,10; 的意思是调用10调,想调用多少条只要修改“10”为你想要的数字,如过你想实现调用特定版块的下载排行,只需要在limit 0,10; 的后面加上"where typeid = xx " XX就是栏目ID。比如我想调用栏目10的下载排行,代码就是这样:{dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON

    A.id = D.id WHERE typeid = 10 order by downloads DESC limit 0,10;'}

  • [field:title/]下载次数[field:downloads/]
  • {/dede:sql}

    这里有个小技巧:typeid =后面的值可以用当前栏目ID的标签,这样可以在每个栏目列表页实现当前栏目的下载排行调用,具体的望读者自己探究。当然也可以用typeid >或者<来限定栏目范围。

    特定栏目调用已经解决,那么就剩下分时段调用了,可分为日,周,月,年,甚至自定义天数或者小时,代码如下:

    {dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON

    A.id = D.id WHERE typeid = 10 and pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7 day) order by downloads DESC limit 0,10;'}

  • [field:title/]下载次数[field:downloads/]
  • {/dede:sql}

    注意,我这是在上一个特定栏目的前提下再加一个时间条件语句,所以,我用了and ,后面蓝色字体部分为所需要的内容,如果不想特定栏目,就把有色字体部分代码和紧跟着的“AND”去掉就行。pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7 day) 的意思是取7天内的数据,我们只需要修改数字"7"就可以实现我们的目标,比如10天就是pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 10 day) ,如果想调用一个月的数据,那就是pubdate >

    UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 1 month) 一年的话只要把"day"改成"year"即可。

    标签到这里基本上已经完美了。希望大家自己多多实验,多探究,多查相关资料。如果有不懂请留言。

    附送另外一个小小的标签,关于调用今日更新情况的调用:

    小小说阅读

    align=right>【{dede:sql sql="SELECT count( ID ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) and typeid = 特定栏目ID"}今

    这个HACK是在现有的两个版本上修改而成的,没有进行完全测试,如有问题请告知。

    将以下内容存为CREDIT_DEL.PHP文件

    if(!defined("CREDIT_DEL")) {

    die("Access Denied");

    }

    ############ 以下是安装方法############

    /*

    1.将本文件放到index.php所在目录下

    2. 购买人数hack

    请用数据库管理工具phpmyadmin 在

    TABLE : cdb_threads 的最尾

    ----新增----

    栏位 : buy

    型态 : INT

    长度 : 3

    预设值 : 0

    3. 将本文件放到index.php所在目录下

    在viewthread.php 中的32行左右

    在下面代码

    if(!$forum[getattachperm] && !$allowgetattach) {

    showmessage("对不起,您的级别〔{$grouptitle}〕无法下载附件。");

    } elseif($forum[getattachperm] && !strstr($forum[getattachperm], "\t$groupid\t")) { showmessage("对不起,只有特定用户可以下载本论坛的附件,请返回。");

    }

    的下面加上以下代码

    #### 付款下载限制的帖加/减积分的HACK开始####

    if($attach[creditsrequire] && $attach[creditsrequire] <= $credit && !$ismoderator) { if(!$credit_del_yes)

    showmessage("此文件需要支付$attach[creditsrequire]{$creditunit}{$credittitle} 才能下载

    算你狠, 我买!

    太奸诈了,我不干!");

    define("CREDIT_DEL", TRUE);

    $credit_del = 'down';

    include'credit_del.php';

    }

    $ck_credit_del = $tid.'_credit_del';

    if($credit < "$thread[creditsrequire]") {

    if($HTTP_COOKIE_V ARS[$ck_credit_del] =="" and $status!="游客"){

    showmessage("你没有钱买呀,请努力灌水赚钱吧^^。");

    }elseif($HTTP_COOKIE_V ARS[$ck_credit_del] =="" and $status=="游客"){

    showmessage("游客不能购买的。");

    }elseif($HTTP_COOKIE_V ARS[$ck_credit_del] !="" and $status=="游客"){

    showmessage("游客不能购买的。");

    }

    }

    #### 付款下载限制的帖加/减积分的HACK结束####

    在viewthread.php 中的138行左右

    修改以下代码

    if(!$forum[viewperm] && !$allowview) {

    showmessage("对不起,您的等级〔{$grouptitle}〕无法浏览文章。");

    } elseif($forum[viewperm] && !strstr($forum[viewperm], "\t$groupid\t")) {

    showmessage("对不起,本论坛只有特定会员可以浏览,请返回。");

    } elseif($thread[creditsrequire] && $thread[creditsrequire] > $credit && !$ismoderator) { showmessage("对不起,本贴要求{$credittitle}高于$thread[creditsrequire] {$creditunit}才可浏览,请返回。");

    }

    将以上代码改成以下代码

    #### 付款浏览限制的帖加/减积分的HACK开始####

    if(!$forum[viewperm] && !$allowview) {

    showmessage("对不起,您的等级〔{$grouptitle}〕无法浏览文章。");

    } elseif($forum[viewperm] && !strstr($forum[viewperm], "\t$groupid\t")) {

    showmessage("对不起,本论坛只有特定会员可以浏览,请返回。");

    } elseif($thread[creditsrequire] && $thread[creditsrequire] > $credit && !$ismoderator) { showmessage("对不起,本贴要求{$credittitle}高于$thread[creditsrequire] {$creditunit}才可浏览,请返回。");

    }

    if($thread[creditsrequire] && $thread[creditsrequire] <= $credit && !$ismoderator) { $ck_credit_del = $tid.'_credit_del';

    if(!$credit_del_yes && !$HTTP_COOKIE_V ARS[$ck_credit_del])

    showmessage("此主题需要支付$thread[creditsrequire]$creditunit{$credittitle} 才能观看内容,
    已有$thread[buy]人购买了,

    算你狠, 我买!

    太奸诈了,我不干!我返回。");

    define("CREDIT_DEL", TRUE);

    $credit_del = 'view';

    include'credit_del.php';

    }

    $ck_credit_del = $tid.'_credit_del';

    if($credit < "$thread[creditsrequire]") {

    if($HTTP_COOKIE_V ARS[$ck_credit_del] =="" and $status!="游客"){

    showmessage("你没有钱买呀,请努力灌水赚钱吧^^。");

    }elseif($HTTP_COOKIE_V ARS[$ck_credit_del] =="" and $status=="游客"){

    showmessage("游客不能购买的。");

    }elseif($HTTP_COOKIE_V ARS[$ck_credit_del] !="" and $status=="游客"){

    showmessage("游客不能购买的。");

    }

    }

    #### 付款浏览限制的帖加/减积分的HACK结束####

    ------------------------viewthread.php 条改完成------------------------

    */

    ############ 以上是安装方法############

    ############ (请不要更改以下设定) 以下是具体设置都给出了默认值以供参考#################################################

    $credit_del_view = 0; //针对所有有积分限制的帖子进入时所扣除的分数; 如果不想扣除指定分数而是扣除发帖者所给的限制分请设为0

    $credit_del_down = 0; //针对所有有积分限制的下载下载时所扣除的分数; 如果不想扣除指定分数而是扣除发帖者所给的限制分请设为0

    $credit_add_down_y = 1; //选择是否给提供附件者加分1为是 0为否

    $credit_add_down1 = 0; //针对所有有积分限制的下载下载时给提供者的分数; 如果不想增加指定分数而是增加发帖者所给的限制分请设为0

    $credit_add_down_lim = 10; //当$credit_add_down1=0时这是限定分即限制他人下载附件时给作者增加的分数(有可能作者设定的限制分很高)

    ############ 具体设置到此为止#######################################################################

    ############ 以下是浏览扣分和加分的部份############

    if($cdbuser and $credit_del == 'view') {

    $ck_credit_del = $tid.'_credit_del';

    if(!$HTTP_COOKIE_V ARS[$ck_credit_del]) {

    if($credit_del_view>$credit) $credit_del_view = $credit;

    $credit_del_view = $credit_del_view?$credit_del_view:$thread[creditsrequire];

    $db->query("UPDATE $table_members SET credit=credit-'$credit_del_view' WHERE username='$cdbuser'");

    $CDB_SESSION_V ARS[credit] = $credit-$credit_del_view;

    //以下是付款给发表主题者(金钱是由发表主题者所设)

    $query_xgzone = $db->query("SELECT tid,author FROM cdb_threads WHERE tid='$tid'");

    $post = $db->fetch_array($query_xgzone);

    $db->query("UPDATE $table_members SET credit=credit+'$credit_del_view' WHERE username='$post[author]'");

    //以上是付款给发表主题者(金钱是由发表主题者所设)

    //以下是该主题购买人数

    $db->query("UPDATE cdb_threads SET buy=buy+'1' WHERE tid='$tid'");

    //以上是该主题购买人数

    setcookie($ck_credit_del, $tid, 9999999999, $cookiepath, $cookiedomain);

    }else setcookie($ck_credit_del, $tid, 9999999999, $cookiepath, $cookiedomain);

    }

    ############ 以上是浏览扣分和加分的部份############

    ############ 以下是下载扣分和加分的部份############

    elseif ($credit_del == 'down') {

    if($credit_del_down>$credit) $credit_del_down = $credit;

    $credit_del_down = $credit_del_down?$credit_del_down:$attach[creditsrequire];

    $db->query("UPDA TE $table_members SET credit=credit-'$credit_del_down' WHERE username='$cdbuser'");

    $CDB_SESSION_V ARS[credit] = $credit-$credit_del_down;

    if($credit_add_down_y) {

    if(!$credit_add_down1) {

    if($attach[creditsrequire]>$credit_add_down_lim)

    $credit_add_down = $credit_add_down_lim;

    else $credit_add_down = $attach[creditsrequire];

    }

    else

    $credit_add_down = $credit_add_down1;

    $query_ck = $db->query("SELECT a.aid, t.author FROM $table_attachments a LEFT JOIN $table_threads t ON a.tid=t.tid WHERE aid='$aid'");

    $attach_ck = $db->fetch_array($query_ck);

    $db->query("UPDATE $table_members SET credit=credit+'$credit_add_down' WHERE username='$attach_ck[author]'");

    }

    }

    ############ 以上是下载扣分和加分的部份############

    ?>

    1.修改列表页码序列HTML组合串:/include/arc.listview.class.php

    动态分页方法:function GetPageListDM($list_len,$listitem="index,end,pre,next,pageno")

    静态分页方法:function GetPageListST($list_len,$listitem="index,end,pre,next,pageno")

    2. 一、二级导航嵌套输出:在

    {dede:channelartlist type='top' row='8'}

    {/dede:channelartlist}

    3.如上在list_article模板哪怕指定是type='top' ,仍然会以传为参数为基准。(不知道是不是dede 的一个BUG)

    4.{dede:arclist}{/dede:arclist} 此标签有一个不太爽的地方就是输出行之间会自动的加入一个硬回车\r\n 由其是我们在进行js变量组合的时候会比较的不爽,或者会出错,解决方法如下:

    修改include/taglib /arclist.lib.php 找到return $artlist 改为return str_replace("\r\n","",$artlist);

    5. table :dede_arcatt 文档属性添加相关的属性之后需要在table:dede_archives.flag 枚举属性中相应的加入

    6.DEDECMS根据副栏目进行文章调用

    DEDECMS中一个文章可以同时属于两个栏目,即一个主栏目一个副栏目,{dede:arclist} 属性中可以通过typeid进行主栏目有效性筛选,但是有时我们却想根据副栏目进行筛选,查了dedecms的在线用户手册发现没有此功能,airzen 就动手改了标签对应的源文件dedecmsROOT/include/taglib/arclist.lib.php,其中我们更改方法

    function lib_arclist(&$ctag,&$refObj){

    ...

    return lib_arclistDone(...,$ctag->GetAtt('noflag') , $ctag->GetAtt('typeid2') );

    }

    然后更改方法:

    function lib_arclistDone(..., $noflag='',$typeid2=0){

    .....

    $typeid2= AttDef($typeid2,0);

    ....

    if($typeid2 !=0)

    {

    $orwheres[] = " arc.typeid2 = $typeid2 ";

    }

    if(!empty($typeid))

    {

    .....

    }

    }

    其中上面加粗下划线的部分为airzen修改的地方可以完美的与{dede:arclist typeid2='n'}{/dede:arclist}进行数据调用了。

    7.DEDECMS 列表页调用主副栏目有一个位栏目ID的文章列表

    {dede:list} 对应的是/include/arc.listview.class.php 要同时获得副栏目的文章修改此文件查找$cfg_need_typeid2

    会找到

    function CountRecord()

    {

    global $cfg_list_son,$cfg_need_typeid2;

    if(empty($cfg_need_typeid2)) $cfg_need_typeid2 = 'N';//增加下面一行

    $cfg_need_typeid2 = 'Y';

    ....

    }

    好了,在副栏目列表中就会出现主栏目和副栏目ID都为栏目ID的文章,崩溃吧。

    8.伪静态分页BUG解决

    打开文件:/include/arc.listview.class.php 找到下面这个方法

    //获取动态的分页列表

    function GetPageListDM($list_len,$listitem="index,end,pre,next,pageno"){

    ....

    if($cfg_rewrite == 'Y')

    {

    $plist = str_replace('.php?tid=', '-', $plist);

    $plist = str_replace('&TotalResult=', '-', $plist);

    $plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);

    return str_replace("/plus/","/",$plist); //加上这句

    }

    return $plist;

    }

    9. 在添加文档的时候同时添加至文档关键字

    一般我们希望为某个文章定为某个关键词,在其它文章中出现该关键词的时候,就显示内链至该文档,我们需要两步,一。添加文档,二。在文档关键字维护中添加关键字和链接。

    下面我们通过修改文档模型,只需要直接添加关键字,就一步完成关键字和本文链接的添加,下面介绍一下操作步骤:

    step1,修改文档模型,添加一个text的字段叫做guanjianzi,此值会自动修改表dede_addonarticle

    step2.在后台目录/article_add.php 的else if($dopost=='save') 处理完成,提示信息之前加入以下代码

    //by airzen 20090729 关键字自动添加至关键字表.start

    $guanjianzi = trim($guanjianzi);

    $rank = 30;

    if($guanjianzi!='')

    {

    $rpurl ="http://域名/view-{$arcID}-1.html";//链接这里需要手动修改,这里是伪静态链接$row = $dsql->GetOne("Select * From `#@__keywords` where keyword like '$guanjianzi'");

    if(!is_array($row))

    {

    $inquery = "Insert INTO `#@__keywords`(keyword,rank,sta,rpurl) V ALUES ('$guanjianzi','$rank','1','$rpurl');";

    $dsql->ExecuteNoneQuery($inquery);

    }

    }

    dede主要目录结构及数据表结构

    二次开发 2010-01-10 16:11:48 阅读26 评论0 字号:大中小

    说说经验,dedecms的代码注释还是比较清楚的,相对比较容易看懂,有php基础的可以看看,没有的。部分功能扩展,程序的核心在include目录下,该目录的说明如下:

    1、程序核心程序目录及简介

    /include目录程序核心目录

    config_base.php 环境定义文件。用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函数等,建议不要修改。

    config_hand.php 系统配置文件。定义系统常用的配置信息定义,可从后台管理直接生成该文件。

    config_passport.php 通行证文件

    config_rglobals.php 检测系统外部变量

    config_rglobals_magic.php 同上

    inc_archives_view.php 用于浏览文档或对文档生成HTML

    inc_arclist_view.php 用于浏览频道列表或对内容列表生成HTML

    inc_arcmember_view.php 用于浏览会员发布的文档

    inc_arcpart_view.php 用于解析和创建全局性质的模板,如频道封面,主页,单个页面等

    inc_arcsearch_view.php 用于文档搜索

    inc_arcspec_view.php 用于浏览所有专题列表或对专题列表生成HTML

    inc_channel_unit.php 用户解析特定频道的附加数据结构信息

    inc_channel_unit_functions.php 系统共用函数集合

    inc_downclass.php 防采集随机字符串函数

    inc_freelist_view.php 用于对特定内容列表生成HTML

    inc_functions.php 可供用户使用的函数集合

    inc_imgbt.php GetTypeidSelMember

    inc_memberlogin.php 用于用户登录及获得会员状态

    inc_photograph.php 用于处理系统中的图片,例如水印,缩略图等

    inc_photowatermark_config.php 图片处理参数定义

    inc_rss_view.php 用于浏览频道RSS或对RSS生成静态文件

    inc_separate_functions.php SpGetArcList函数,用于获得文档列表

    inc_sitemap.php 用于生成网站地图

    inc_type_tree.php 用于选择栏目的目录树

    inc_type_tree_member.php 同上,会员使用

    inc_typelink.php 用于显示文章的位置和栏目位置等

    inc_typeunit_admin.php 用于频道管理时的一些复杂操作,主要用于后台

    inc_typeunit_menu.php 同上

    inc_userlogin.php 用于管理员登录

    inc_vote.php 用于管理投票

    jump.php 用于超链接跳转

    pub_charset.php 共用字符处理函数,GB/UTF-8/Unicode/BIG5等互换

    pub_collection.php 用于采集

    pub_collection_functions.php 采集用函数

    pub_datalist.php 后台管理用数据列表

    pub_datalist_dm.php 同上,不使用模板

    pub_db_mysql.php 用于操作数据库

    pub_dedehtml2.php 用于采集中的HTML解析

    pub_dedehtml.php HTML解析器

    pub_dedetag.php 用于dede模板标签解析

    pub_httpdown.php 用于下载http中的资源

    pub_oxwindow.php 后台程序扩展

    pub_splitword_www.php 织梦分词算法

    validateimg.php 验证码

    vdimgck.php 验证码

    /inc 共用函数目录

    inc_fun_funAdmin.php 获取拼音码等函数

    inc_fun_funString.php html代码处理等函数

    inc_fun_SpGetArcList.php 获取文档列表SpGetArcList

    对于菜鸟来说,对于菜鸟来说,config_base.php,这个文件,当你的程序出现问题,需要覆盖,当你的程序出现问题,需要覆盖。不要覆盖

    config_base.php和config_hand.php文件,里面都是dede一些核心配置文件,对于高手来说,也许修改几个php页面已经达不到目的了,就需要了解dede

    的数据库结构,下面是部分关键数据表的结构和说明,不完全,还没有整理完全,过几天发布完整版本。

    2、主要数据结构表

    已经可以指导开发了

    dede_addonarticle 附加文章表

    aid int(11) 文章编号

    typeid int(11) 分类栏目编号

    body mediumtext 文章内容

    dede_addonflash 附加Flash表

    aid int(11) FLASH编号

    typeid int(11) 分类栏目编号

    filesize varchar(10) 文件大小

    playtime varchar(10) 播放时长

    flashtype varchar(10) 作品类型

    flashrank smallint(6) 作品等级

    width smallint(6) 影片宽度

    height smallint(6) 影片高度

    flashurl varchar(80) FLASH地址

    dede_addonimages 附加图集表

    aid int(11) 图集编号

    typeid int(11) 分类栏目编号

    pagestyle smallint(6) 表现方式(1单页显示 2分多页显示 3多行多列展示)maxwidth smallint(6) 大图限制宽度

    imgurls text 图片集内容(标签存放)

    row smallint(6) 多列式参数(行)

    col smallint(6) 多列式参数(列)

    isrm smallint(6) 是否下载远程图片

    ddmaxwidth smallint(6) 小图片宽度限制

    dede_addonsoft 附加软件表

    aid int(11) 软件编号

    typeid int(11) 分类栏目编号

    filetype varchar(10) 文件类型

    language varchar(10) 界面语言

    softtype varchar(10) 软件类型

    accredit varchar(10) 授权方式

    os varchar(30) 运行环境

    softrank int(11) 软件等级

    officialUrl varchar(30) 官方网址officialDemo varchar(50) 程序演示地址softsize varchar(10) 软件大小softlinks text 软件下载链接列表introduce text 软件介绍

    dede_addonspec 附加专题表

    aid int(11) 专题编号

    typeid int(11) 分类栏目编号

    note text 专题内容(仅存放标签代码)dede_admin 管理员信息表

    ID int(10) 自动编号

    usertype int(10) 用户类型

    userid varchar(30) 用户登录ID

    pwd varchar(50) 用户密码

    uname varchar(20) 用户笔名

    tname varchar(30) 真实姓名

    email varchar(30) 电子邮箱

    typeid int(11) 负责频道(0表示全部)logintime datetime 登录时间

    loginip varchar(20) 登录IP

    dede_admintype 系统用户组管理表

    rank smallint(6) 组级别编号

    typename varchar(30) 组名称

    system smallint(6) 是否为系统默认组purviews text 权限列表

    dede_arcatt 文档自定义属性表

    att smallint(6) 编号

    attname varchar(30) 属性名称

    dede_archives 文章表

    ID int(11) 自动编号

    typeid int(11) 所属主栏目编号

    typeid2 int(11) 所属副栏目编号sortrank int(11) 文章排序(置顶方法)iscommend smallint(6) 是否推荐ismake smallint(6) 是否生成静态channel int(11) 文章所属模型

    arcrank smallint(6) 阅读权限

    click int(11) 点击次数

    money smallint(6) 消费点数

    title varchar(80) 标题

    shorttitle varchar(36) 简略标题

    color varchar(10) 标题颜色

    writer varchar(30) 作者

    source varchar(50) 来源

    litpic varchar(100) 缩略图

    pubdate int(11) 录入时间

    senddate int(11) 发布时间

    arcatt smallint(6) 自定属性(att)

    adminID int(11) 发布管理员ID

    memberID int(11) 发布会员ID

    description varchar(250) 摘要

    keywords varchar(60) 关键词

    templet varchar(60) 文档模板

    lastpost int(11) 最近评论时间

    postnum int(11) 评论数目

    redirecturl varchar(150) 跳转网址

    mtype int(11) 用户自定义分类

    userip varchar(20) 用户IP

    locklikeid smallint(6) 是否锁定相关文章

    likeid varchar(240) 相关文章ID

    dede_arcrank 阅读权限表

    ID int(10) 自动编号

    rank smallint(10) 权限等级

    membername varchar(20) 等级名称

    adminrank smallint(10) 管理等级

    money int(11) 消费点数

    dede_arctype 栏目管理表

    ID int(10) 栏目编号(自动编号)

    reID int(10) 父栏目编号

    topID int(10)

    sortrank smallint(6) 排序编号

    typename varchar(30) 栏目名称

    typedir varchar(100) 栏目目录

    isdefault smallint(6) 栏目列表选项(1链接到默认页 0链接到列表第一页 -1使用动态页)

    defaultname varchar(20) 默认页的名称

    issend smallint(6) 是否支持投稿

    channeltype smallint(6) 频道类型

    maxpage int(11) 保留

    ispart smallint(6) 栏目属性

    corank smallint(6) 浏览权限

    tempindex varchar(60) 封面模板

    templist varchar(60) 列表模板

    temparticle varchar(60) 文章模板

    tempone varchar(60) 单独页面模板

    namerule varchar(50) 文章命名规则

    namerule2 varchar(50) 列表命名规则

    modname varchar(30) 模板名称

    description varchar(200) 栏目介绍

    keywords varchar(100) 关键词

    moresite smallint(6) 多站点支持

    siterefer smallint(6) 多站点站点根目录属性

    sitepath varchar(60) 多站点站点根目录

    siteurl varchar(60) 多站点绑定域名

    ishidden smallint(6) 是否隐藏栏目

    dede_area 地区表

    eid int(11) 地区编号

    name varchar(20) 地区名称

    rid int(11) 编号属性

    1.请对POSIX风格和兼容Perl风格两种正则表达式的主要函数进行类比说明ereg preg_match

    ereg_replace preg_replace

    2.请说明在php.ini中safe_mode开启之后对于PHP系统函数的影响

    3.PHP5中魔术方法函数有哪几个,请举例说明各自的用法

    __sleep

    __wakeup

    __toString

    __set_state

    __construct,

    __destruct

    __call,

    __get,

    __set,

    __isset,

    __unset

    __sleep,

    __wakeup,

    __toString,

    __set_state,

    __clone

    __autoload

    4.请写出让,并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP 脚本传递参数?

    相关主题
    文本预览