高级运用
帮助目录 | 安装指南 | 操作入门 | 操作详解 | 模板制作| 高级运用| 常见问题
修改整合
    修改导航菜单:
    后台可控制是否显示的默认菜单是配置文件配合js生成的,配置文件是 configs/mainmenu.php,修改它可以对菜单的显示内容和链接地址进行控制,js是sctipts/menu.js,它是控制菜单的显示效果的,一般不用修改。用户可以用自己的菜单代码,直接写到公用模板文件夹里的主模板文件theme.html里面,然后后台的系统定义里面选择不使用系统菜单,这样可以更节约资源。
    生成静态首页(商业版V1.30):
    程序默认首页是index.php,为动态的,要生成静态首页步骤如下
    1、确定您的网站根目录有写的权限,静态首页名称应该是index.html,您需要在你的web服务设置里面把默认的目录首页设置成index.html。
    2、访问“网站管理”进入后台“系统管理”菜单点击“生成静态首页”,或直接访问 indexs.php?refresh=1 ,程序会自动生成静态首页文件 index.html。
    3、以后访问首页时服务器就会直接读取静态文件index.html,这就是静态首页。静态首页需要人工或定时程序去生成,而动态首页index.php会自动更新。
    在后台“网站管理”增加功能链接:
    后台配置是模块化的,每个模块都有一个链接的配置文件,也就是说多个配置文件组合起来控制后台菜单的链接内容,这些配置文件包括:
       系统功能是configs/adminmenu.php,文章模块是configs/article/adminmenu.php,论坛是 configs/forum/adminmenu.php,如有其他模块则对应为configs/模块目录/adminmenu.php。
       打开这类文件,里面是一条条类似这种记录 $jieqiAdminmenu['system'][0] = array('layer' => '0', 'caption' => '系统定义', 'command'=>JIEQI_URL.'/admin/configs.php?mod=system&define=1', 'power' => JIEQI_GROUP_GUEST, 'target' => JIEQI_TARGET_SELF, 'publish' => '1'); 每一条代表一个后台链接,用户可以直接修改。
       如果要增加一条就是拷贝一行,然后把 'command'后面的地址改一下,后面的地址就是需要增加的链接地址,其中JIEQI_URL是指你自己的网站地址,由程序自动解析。'caption' 后面跟显示的菜单文字内容。需要注意的是 $jieqiAdminmenu['system'][0] ,这个[]里面的数字是需要依次增大的,不可以重复。不过有一种情况是允许的,可以把每一行都写成 $jieqiAdminmenu['system'][],就时[]之间为空,系统自动会认为是递增的。
    制作自定义页面
    这个自定义页面是指php页面,具有和其他页面统一的头部和底部。并且可以调用系统区块的。 这种页面的制作可以参考文件 custom.php的写法,它是制作首页的模拟文件。
    您需要以下几个步骤进行:
       1、准备一个html模板文件,代码不包含头部和底部的。例如:作好的模板文件文件名为index_1.html,把它放进系统根目录的templates文件夹里。
       2、仿照custom.php制作一个php文件,里面调用的模板文件改成你自己的html文件的地址。接第一步的例子:复制custom.php,把它改名为index_1.php,将文件中$jieqi_page_template=JIEQI_ROOT_PATH.后面的文件路径改成'\templates\index_1.html'。
       3、浏览器内访问index_1.php,即看到以index_1.html为模板显示的动态页面。
    最简单的自定义页面已经完成。 如果要在自定义页面里面调用系统的区块,需要如下步骤:
       1、准备一个区块配置文件,写法参看configs/blocks.php。
       2、在你的php页面(即本例中的index_1.php)包含这个配置。
       3、在你的模板文件(即本例中的\templates\index_1.html)里面加入调用区块的标记,写法参看\templates\custom.html。
    把分类阅读和发表文章时的系统默认文章分类,修改成别的分类,如:把“都市言情”改名为“情感故事”:
    找到配置文件 configs/article/sort.php,用记事本或别的文本编辑工具打开对其进行修改,文档中是一个php数组,在程序里面是依据此处数组的序号来判断文章类别,所以序号不要重复,也不要轻易修改。将文档中的“都市言情”改名为“情感故事”即可,分类简称“都市”也可作类似修改。如使用的是系统菜单,也要对其进行修改,下方有详细说明。 最后刷新区块(见刷新页面)可看到更改后的效果。
    个性化文章分类列表页面(参照)和文章排行榜列表页面(参照)左侧所显示的区块:
    修改文件configs/article/guideblocks.php内的数组。
    数组参数详解:$jieqiBlocks[4]中的数字为需显示区块的顺序号,不能重复,数字越小越优先显示;'blockname'=>后面跟区块的名称;'module'=>后面为区块所属的模块,为system、article、forum等;'filename'=>后面跟区块的处理程序名称,不含后缀;'classname'=>后面为区块类的名称,自定义区块填BlockSystemCustom; 'side'=> 区块显示的位置(0:左边,1:右边,2:中左,3:中又,4:中上,5:中中,6:中下,7:顶部,8:底部);'title'=>为页面显示的区块标题; 'contenttype'=> 区块类型; 'custom' =>是否自定义区块,自定义区块为1,否则为0; 'publish'=> 是否显示(0:不显示,1:登陆前显示,2:登陆后显示,3:都显示)。
    增加相应数组就表示在页面增加显示相应的区块,没有的参数请留空。
    例如:要在右侧增加显示区块“公告”,就在文件中,即<?php与?>之间加上一个数组:
    $jieqiBlocks[5]=array('bid'=>9, 'blockname'=>'公告', 'module'=>'system', 'filename'=>' ', 'classname'=>'BlockSystemCustom', 'side'=>1, 'title'=>'公告(测试)', 'contenttype'=>JIEQI_CONTENT_TXT, 'showtype'=>15, 'custom'=>1, 'publish'=>3);
    更快捷的方式是可以依次进入网站管理后台--系统管理--区块管理,把“配置文件写法”一栏的内容拷贝进“configs/article/guideblocks.php”就可以了。
    整合discuz论坛接口,实现JieQi CMS与外部论坛的会员数据共享:
    1、安装好discuz,并开通设置好其通行证功能。discuz通行证功能的详细说明请见discuz的帮助文档。
    2、然后用文本编辑器打开文件include/funuser_discuz.php,前面有两个参数分别是discuz通行证密码和通行证地址,根据实际情况设置。
    3、备份好原来的funuser.php(用户无Discuz接口情况),然后把上一步中的文件 funuser_discuz.php 改文件名为 funuser.php。
    4、如果include/funuser_discuz.php是二进制文件,打开是乱码,请下载附件funuser_discuz.zip(3K),解压后代替第二步中的funuser_discuz.php来使用。
    增加服务器,让JieQi书库程序支持多服务器运行(标准版以上):
       首先在另一个服务器(代号B)上上传一份完整的JieQi程序,它和之前的服务器(代号A)共用数据库(代号C),设置好B,要求能正常运行,并使B有自己的域名。假设B是放动态页的,域名是http://www.domain.com,A是放静态页和附件的域名是http://book.domain.com。
      然后依次进入两个程序后台:
    http://www.domain.com/admin/index.php
    http://book.domain.com/admin/index.php
    网站管理--模块管理---在线书库--参数设置
    都设置好两个值:“文章内静态链接根地址”http://book.domain.com
    “文章内动态链接根地址”http://www.domain.com
    这样即可使用和正常采集。
      为了照顾到以前的数据,在参数设置里还需按自身情况设置好各个类型文件的路径,并做好相应的数据转移工作。
    杰奇小说连载模块启用“伪静态”页面功能还需配置服务器和对后台进行设置(商业版V1.30):
       当伪静态无法使用时,可参考下述三项是否符合
    1、web服务设置.htm类型文件用php进行解析:在IIS下打开“网站”->“属性”->“主目录” ->“配置”->“应用程序扩展”->“添加”,可执行文件选择 C:\php\sapi\php4isapi.dll(依实际情况选择正确的路径,为PHP5时,则执行文件是php5isapi.dll)。扩展名填写“.htm”,动作限制为“HEAD,GET,POST”
    2、是否生成了伪静态页面,需用 /modules/article/admin/makefake.php 生成,具体做法:依次进入网站管理——模块管理——小说连载——伪静态页面生成 ,在伪静态页面生成提交框内填好文章序号并选择需生成页面类型,点击“开始生成”即可。建议多生成一些
    3、后台参数设置里面,是否启用了伪静态:依次进入网站管理——模块管理——小说连载——参数设置,在页面内找到“是否使用伪静态”(可用浏览器的查找功能,快捷键一般为 Ctrl + F),按需求启用好对应项即可。

放置广告
    JieQi CMS默认的广告主要有三类:
    1、全站通栏广告
    分底部通栏和顶部通栏,代码设置在后台的系统定义里面,这个内容可以显示在全站所有动态页面。
    2、首页广告
    首页除了统一的顶部和底部,中间都是由一个个区块构成。用户可以在后台的区块管理里面调整某个区块是否显示和显示位置。同样的,如 果要增加广告,或者公告之类区块,也是在区块管理里面增加一个自定义区块,自己填入代码,选择好位置保存即可。
    注意:每个区块都有一个序号,序号大小表示排列顺序,不同区块之间序号不要重复。
    3、阅读页面广告
    阅读页面因为是静态的html,所以广告都通过调用js实现的。默认的阅读页面模板如下:
    a、目录页面模板
    modules/article/templates/index.html 里面的顶部和底部各默认设置了两个广告js分别是 configs/article/indextop.js 和configs/article/indexbottom.js。
    b、章节阅读页面模板
    modules/article/templates/style.html 里面的顶部和底部各默认设置了两个广告js分别是 configs/article/pagetop.js 和configs/article/pagebottom.js。
    c、全文阅读模板
    modules/article/templates/fulltext.html 里面的顶部和底部各默认设置了两个广告js分别是 configs/article/fulltop.js 和configs/article/fullbottom.js
    注意:以上模板用户都可以修改,模板修改后对于以前已经生成的html,可以在后台里面使用文章重新生成功能。
    4、其他广告
    如果用户需要在一些特殊页面放置广告,则需要直接找到这个页面的模板,通过修改模板实现。

下面简单介绍一下JS文件的编辑方法:
JS文件用用windows系统自带的记事本或写字板即可打开和编辑。
    HTML内容

    如果广告内容为文字,图片或其他html代码,可套用以下格式
     
    document.write("<font color=\"red\">这是一条广告</font>");

    中间绿色部分即为HTML广告内容,可以用你自己的内容将其替换。
    需要注意的是,如果广告内容中有"符号,一律将其替换为\"

    JavaScript内容

    如果获得的广告内容为javascript代码,javascript代码看起来可能是这样
     
    <script language="javascript">
    .........
    </script>

    将类似上面的代码去掉红色部分后加入相应JS文件即可

点广告增加积分配置方法(需JieQi V1.30及以上版本)
    1.首先需要设置好相关参数,在后台系统管理里面的参数设置,设置好“每次点击广告积分”和“每天最多有效广告点击次数”,并保存。然后根据不同的广告设置不同的代码。
    2.系统统计广告点击积分的程序为根目录下的 /adclick.php, 程序需要获取两个用户配置的参数:
      第一个 id ,必须为数字,是广告序号,不同广告不要重复(同一个广告多次点击不会重复计分)
      第二个 url ,是广告点击后要跳转的网址(iframe调用模式下不用设置)
    3.本程序有两种调用方法,例子如下
      (1)、自己写代码的文字或者图片链接广告,例子如下

    <a href="http://www.domain.com/adclick.php?id=123&url=http://www.ad.com" target="_blank"> 点击显示广告</a>

    其中 http://www.domain.com 是本站域名, 123 是广告序号, http://www.ad.com 是跳转的广告网址。
      (2)、用iframe调用显示的广告,例子如下

    <iframe id="jieqiad_123" name="jieqiad_123" width="760" height="60" align="center" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" src="http://www.ad.com" onfocus="javascript:adimg=new Image(); adimg.src='http://www.domain.com/adclick.php?id=123';"></iframe>

    其中 onfocus 是触发点击统计的, http://www.domain.com 代指本站域名, 123 是广告序号。

采集规则配置


    免费版V1.11采集规则配置说明
    采集规则配置分为两步
  • 一、文件configs/article/sourcesite.php是用来配置允许采集哪几个网站,可以用文本编辑器打开。
    其中针对一个网站的写法如下(以起点为例):
    $jieqiSourcesite[1]=array('name'=>'起点', 'config'=>'cmfu_com', 'url'=>'http://www.cmfu.com', 'enable'=>'1', 'subarticleid'=>'(($articleid - 1) % 4 == 0) ? 2 : ($articleid - 1) % 4 + 5');
    1、$jieqiSourcesite[1],这里面的 1 是一个网站序号,必须为数字,不同的网站序号不能重复。
    2、'name'=>'起点',对网站名字的配置
    3、'config'=>'cmfu_com',对网站采集规则文件的设置,比如就代表起点的采集规则文件是 cmfu_com.php
    4、'url'=>'http://www.cmfu.com',对方网址
    5、'enable'=>'1',是否允许采集,1是允许,0不允许
    6、'subarticleid'=>'(($articleid - 1) % 4 == 0) ? 2 : ($articleid - 1) % 4 + 5',这里是对文章子序号的配置。不少网站在生成阅读页面时候会根据文章序号生成一个子序号作为目录,这个就是从文章序号获得子序号的换算方式。不序号子序号的就写成 'subarticleid'=>''
  • 二、根据sourcesite.php里面的 'config' 配置,对应相应的采集规则文件,如上例中的cmfu_com.php,同样可以用文本编辑器打开,写法如下。
    1、 这两个是变量的左右括号,请不要改变
    $jieqiCollect['lsplit']='<{'; //左括号
    $jieqiCollect['rsplit']='}>'; //右括号
    2、以下几个是对采集页面地址的配置,里面可以用这么几个变量,<{articleid}> 表示文章序号,<{subarticleid}>是文章子序号,<{chapterid}>为章节序号。
    $jieqiCollect['urlsite']='http://www.cmfu.com'; //网站网址
    $jieqiCollect['urlarticle']='http://www.cmfu.com/showbook.asp?bl_id=<{articleid}>'; //文章信息页面
    $jieqiCollect['urlindex']='http://www.cmfu.com/readbook.asp?bl_id=<{articleid}>'; //文章目录页面
    $jieqiCollect['urlchapter']='http://newauthor<{subarticleid}>.cmfu.com/books/<{articleid}>/<{chapterid}>.txt'; //章节内容页面
    4、下面是对具体项目的解析规则配置,其中 'left' 指页面html代码里面你要采集内容左边的固定内容,'right' 是右边的内容。'html'值是0表示要采集到的内容不能有html标记,1则表示允许有html标记。其中在'left'和'right'设置中可以用 * 代替一些可变的内容。解析规则的基本原理是根据左右两边的内容来确定要回去的中间部分内容,所以要求左右两边内容标记在这个页面是唯一的。
    //文章标题
    $jieqiCollect['articletitle']=array('left'=>'<td colspan=2 class=zt valign=top align=center width=100% ><h1 style="FONT-SIZE: 18.5pt;color:#FF6666;font-family:隶书">', 'right'=>'</h1></td>', 'html'=>'0');
    //省略其他项目的配置,写法如上
    5、以下是设置采集章节无法对应是是否自动清空重新采集,0表示不清空,1表示清空
    $jieqiCollect['autoclear']=0;
    6、这里是采集到的文章类别名字和自己类别序号的对应关系设置。
    $jieqiCollect['sortid']=array('玄幻'=>1, '魔法'=>1, '武侠'=>2, '仙侠'=>2, '历史'=>4, '军事'=>4, '都市'=>3, '言情'=>3, '推理'=>5, '灵异'=>8, '游戏'=>6, '竞技'=>6, '科幻'=>7, '同人'=>6, '美文'=>9, 'default'=>10);
    采集规则里“'科幻'=>7”的“7”,和自己站类别配置文件configs/article/sort.php里$jieqiSort['article'][7]的“7”对应的。
    V1.30版采集规则配置说明
    一、基本说明
    先登陆后台,依次点选上方菜单“模块管理”--“小说连载”然后点左边菜单“采集配置”链接,即显示当前所有采集规则,每行代表一个网站。单篇采集规则是指采集一篇文章所需要的规则配置,主要内容包括文章名称、作者等基本信息以及本文章的章节结构和章节内容。批量采集是在单篇采集基础上进行的,比如采集一个文章列表页面中的所有文章,这个列表可以是最近更新、排行榜或者某个类别的文章。批量采集的规则主要是获取列表页面的文章名称和文章序号,然后调用单篇采集进行采集,如果您需要获取列表里面第二页、第三页之类的内容,还需要设置一个翻页的参数解析规则。
    注:所有采集规则都有生成对应的配置文件,允许采集哪几个网站的配置在:configs/article/collectsite.php,某个网站的采集规则配置文件为:configs/article/site_网站英文标识.php,因此网站英文标识不允许重复。
    二、 采集原则
    采集的基本原理是根据指定的地址用程序获取对方网页原始内容(即html代码),然后解析里面的内容,根据您要获取内容左右两边的代码确定提取内容。如:html代码是<div id="abc">内容</div>,那么您要获取中间部分内容则通过<div id="abc">和</div>来限定。
    采集的第一步是拥有一个有效的地址,而不同文章或不同章节的地址是不一样的,我们一般用文章序号和章节序号来确定具体地址。在设置地址时候,可以用以下几个变量:<{articleid}> - 文章序号,<{chapterid}> - 章节序号, <{subarticleid}> - 文章子序号, <{subchapterid}> - 章节子序号。其中文章子序号和章节子序号并不是必需的,如果有的话是从文章序号和章节序号中获得。
    如网址 http://www.domain.com/12/12345.htm,其中12345表示文章序号,而12这是子序号,运算方式是floor(<{articleid}> / 1000)。子序号可以有以下几种运算方式:
    1、“+-*/%”分别表示加减乘除和取余数。
    2、floor()函数表示取小数的最小值,ceil函数表示取小数的最大值,象上面的例子<{articleid}> / 1000获得值是12.345,如果用floor函数获得12,而用ceil函数获得13。
    3、另外还有一种判断选择语法,判断符号可以是">"大于,"<"小于,"=="等于。如 <{articleid}> % 2 == 0 ? 1:2 ,?前面表示条件,后面部分 : 前面表示符合条件的值,后面是不符合条件值。上面表达式的含义就是如果文章序号除以2获得的余数是0,返回1,否则返回2。
    采集规则的写法中,可以用以下标签来替换内容:
    1、系统标签 * 可以替代任意字符串。
    2、系统标签 ! 可以替代除了<和>以外的任意字符串。
    3、系统标签 ~ 可以替代除了<>'"以外的任意字符串。
    4、系统标签 ^ 可以替代除了数字和<>之外字符串。
    5、系统标签 $ 可以替代数字字符串。
    6、采集规则中,需要获取的内容部分用四个以上系统标签代替,如 !!!!
    三、采集规则选项说明
    单篇采集规则选项:
    1、现有章节无法对应时候是否全部清空重新采集:如果选择是,当本站同一本书现有的章节名称或者排列和对方对应不上时候自动清空所有章节,按对方结构重新采集。这样的优点是可以和对方完全保持一致,缺点是如果自己手工更新过的内容也会被清空,频繁删除章节不利于搜索引擎收录。
    2、是否默认把采集到的文章设置为全本:是指采集回来的文章是否默认是已经写完的。
    3、是否采集图片内容到本地:如果采集到本地,会自动获取图片在本地作为附件生成。不采集到本地则远程调用对方地址。
    4、文章类型对应关系:我们在采集中解析出来的文章类别一般是文字类型的,比如“玄幻”“武侠”,而要设置对应的本站类别需要是数字类型的。本站的类别配置文件在configs/article/sort.php,前面的数字序号就是类别的序号。多个类别对应写法如下例子:“玄幻=>1||武侠=>2||言情=>3||default=>4”,其中default对应的是默认的类别,就是无法直接对应上的。
    5、代理服务器地址:在需要通过代理服务器的时候需要设置下。
    6、突破防采集设置:对方开启防采集功能时需改设置为“是”。
    7、一本小说阅读目录页面的地址有两种采集方式:1、通过设置“目录页面链接采集规则 ”在文章信息页面直接获取地址;2、通过文章序号以及文章子序号在“文章目录页面地址”里配置。二者只需设一,优先使用前者。
    8、章节内容过滤规则:可过滤掉章节里不需要的部分。
    批量采集规则选项:
    1、采集规则名称:这里可以使用中文的,比如最近更新,总排行榜等。
    2、采集页面地址:可以使用系统变量<{pageid}>来表示不同的页码。
    3、下一页的页码采集规则:获取下一页的参数有两种方法,一是根据采集规则从本页获取下一页的页码,二是页码是数字并且逐个增加的,这里设置成“++”即可。
    四、 采集规则设置实例和技巧
    当您需要获取的内容在一个页面中是唯一时,请保证内容左右标记也是唯一的。如源码是“<b>其他</b><span id="abc"><b>内容</b></span>”,如果您的采集规则错误的写为 “<b>!!!!</b>” ,解析出来的可能是“其他”,而采集规则写成 “ <span id="abc"><b>!!!!</b></span>”,获得的才是想要的“内容”。
    大部分需要的内容是没有html代码的,即不包含 “<”“>”,请用 ! 标记,数字用 $ 标记,引号里面内容用 ~ 标记,也就是说尽量用范围小的标志。如源码是“<a href="http://www.domain.com/index.php?id=111">标题</a>”,其中111这个数字是根据不同的页面变化的,那么要解析标题写法是“<a href="http://www.domain.com/index.php?id=$">!!!!</a>”,解析网址的写法是“<a href="~~~~">!</a>”,解析网址中数字的写法是“<a href="http://www.domain.com/index.php?id=$$$$">!</a>”
    在采集有html标记内容时候,比如采集文章简介和章节内容,里面有换行之类的代码,那么要确定标记的左边内容和右边内容都是本页面唯一的。由于采集后自动会过滤html代码,所以我们在设置左右内容标记时候并不一定是直接靠近内容代码。如源码是“<div id="content><hr>这里是<br>内容<hr></div><div id="ad">广告</div>"”,你可以把采集规则写成“<div id="content>****<div id="ad">”,这里只要保证“<div id="content>”和:“<div id="ad">”是页面里面唯一,至于中间的“<hr>”“</div>”都会被过滤,而换行标记“<br>”仍旧会作为换行处理。
    有些章节内容并不在html里面,而是调用js的,可以用两种采集方法:比较好做法是直接获取js地址采集并解析,第二中方法是在确认js里面写法是document.write('内容');的情况下,也可以仍旧采集html,解析规则里面只要把js地址取出就行,程序会取获得js内容。
    其他问题:
  • 像有些书站的作者有两种写法:
    作&nbsp;&nbsp;&nbsp; 者:<a href="http://www2.domain.com/userinfo.php?id=51795" target="_blank">冷月</a></td>
    作&nbsp;&nbsp;&nbsp; 者:冷月</td>
    这样如何采集呀?
    [答]把包含链接的整合采集下来,程序会过滤掉链接代码的。

数据备份与恢复


  • 数据库备份:
    1.关闭系统
    2.用PHPMYADMIN备份出数据
    3.将服务器上的文件下载到本地
  • 还原:
    1.将本地数据上传到服务器,保持结构象以前一样
    2.用PHPMYADMIN将数据导入
  • 备份工具还有:
    1.phpwind和discuz后台自带的
    2.ebak
    3.faisunsql34
更多关于 JieQi CMS 的问题敬请关注杰奇网络支持论坛


公司介绍 | 联系方式 | 客户案例 | 帮助中心 | 服务条款 | 付款方式
Copyright © 2006-2007 jieqi.com, All Rights Reserved.
浙ICP备05000663号