[php]代码库
书籍列表
·增加作品名几个字的分类。
·列表可逐级过滤(如先大类后小类再拼音等)。
·二级分类系统。自由度极高的设置各种作品的分类。
作家信息页&作品管理
·显示作家信息,如某某作家是驻站作家,某某作家是签约作家等。
·作家中心(会客室)。
·作家访谈。
·作家管理作品时插入章节只能插入某某章之后,改成插入某某章节之前。
·小说简介等细节的修改界面完善。
·人性化处理。添加章节时可选择下一步操作,返回列表还是继续添加。
后台功能增强
·改進用户管理(可通过搜索用户来修改其它内容)。
·后台权限细化,可以对很多细微操作進行权限控制。
·后台的动态菜单。
·后台当前已登录用户的显示。
·人性化处理。添加操作时可选择下一步操作,返回列表还是继续添加。
·友情链接的LOGO图片下载到用户站,提高网站整体访问速度。
·挪动部分按钮和操作链接,改進后台操作人性化。
·修改创建的目录和文件权限功能。可脱离FTP自由修改文件夹权限,避免因为文件夹权限未设置导致文件不能正常生成的尴尬和疏忽。
·作家和录入员管理功能。可以随时删除已通过申请的作家和录入员。
·增强日志系统。在后台可以非常详细的对书网所有操作和日常日志進行分类查看。
·增强缓存管理。细化缓存管理系统,可以只清理部分缓存。
·增强数据库管理。
采集
·采集续采功能修正章节错乱情况。
·進度显示优化,采集界面更加人性化,静态滚动显示采集章节。
·简化采集设置,采集时可以对已有书籍進行多项操作。
·采集规则设置简化,提高入门速度。同时正式版提供至少10个采集规则供学习。
·采集时如果图片不入库也可增加图片前缀路径。
·采集部分手动校正的续采不覆盖功能。
·增加书籍黑名单,对于黑名单中的书籍不采集。
·采集时候对标记全本结束的不更新。
·采集对本地化的入库图片進行水印覆盖。ok
<?php
/**
*
* Copyright: (c) 2004 - 2008 [AOKOSOFT] Read8
* Web Site: http://www.aokosoft.com http://www.read8.net
* Powered by: [AOKOSOFT] Read8 Group
* Support: http://bbs.read8.net
* License: http://www.read8.net/license
*
*/
//验证码程序/打包下载程序
$obnocallback=1;
$type = '';
define('IN_Read8', true);
require_once str_replace(array('\\', '/'.basename(__FILE__)), array('/', ''), __FILE__).'/include/init.php';
require_once ROOT.'include/image.func.php';
//@set_time_limit(0);
if($action=='gethashimg') {//生成验证码
ob_end_clean();
_secode_generate();
exit;
}elseif(!empty($bid)) {//打包下载
include _config('read');
if($type == 'zip') {
if(!$_SYSTEM['READ']['download_package'])
back('打包下载功能尚未开启,请联系管理员');
if(!$Global['F_uid'] && !$_SYSTEM['READ']['download_package_guest'])
back('请先登录');
}else {
if(!$_SYSTEM['READ']['download_text'])
back('TXT 下载功能尚未开启,请联系管理员');
if(!$Global['F_uid'] && !$_SYSTEM['READ']['download_text_guest'])
back('请先登录');
}
if(!$bid || !ris_int($bid) || !($bookinfo = novel_exists($bid)))
back('未找到该书信息');
$booktitle = $bookinfo['title'];
$bookauthor = $bookinfo['author'];
$bookpinyin = $bookinfo['pinyin'];
$sitename = $_SYSTEM['SYSTEM']['SITE_NAME'];
$siteurl = $_SYSTEM['SYSTEM']['SITE_ADDR'];
$Lang = GetLang(1);
$filecomm = convert("名称: $booktitle\n\n作者: $bookauthor\n\n发表时间: ".rdate(TIMESTAMP, 'Y-m-d H:i')."\n\n制作时间: $sitename\n\n网址: $siteurl\n\n 欢迎访问本站", SYSCHARSET, 'gbk');
if($type == 'zip') {
require_once ROOT.'include/zip.cls.php';
$zipname = ROOT."data/zip/$bid.zip";
$bookpath = ROOT.novel_url($bookinfo, 0);
if(!is_file($zipname) || TIMESTAMP - filemtime($zipname) > 86400) {
$zip = new zip($zipname);
$zipfilearr = rlistfile($bookpath);
$gbktitle = convert($booktitle, SYSCHARSET, 'gbk');
foreach($zipfilearr as $val) {
$val = convert($val, SYSCHARSET, 'gbk');
$zip->addFile("$bookpath/$val", "$gbktitle/$val");
}
$zip->save($filecomm);
unset($zip);
}
ob_end_clean();
header('Content-Encoding: none');
header('Content-Type: application/zip');
header('Content-Length: '.filesize(ROOT.'data/zip/'.$bid.'.zip'));
header('Content-Disposition: attachment; filename='.$bookpinyin.'.zip');
readfile(ROOT.'data/zip/'.$bid.'.zip');
exit;
}elseif($type == 'txt') {
require_once ROOT.'include/booked.func.php';
$txt = ROOT."data/txt/$bid.txt";
if(!is_file($txt) || TIMESTAMP-filemtime($txt)>86400) {
$filecomm = str_replace("\n", "\r\n", $filecomm);
rfoa($txt, $filecomm);
$rows = $db->select(array(
'field' => 'title, priority',
'from' => __TAB_NOVEL_CHAPTER__,
'where' => array('book_id' => $bid),
'order' => 'priority ASC',
));
foreach($rows as $row) {
rfoa($txt, str_replace(array(' ', '<br />', "\n", '????'), array(' ', "\n", "\r\n", ' '), convert("\n\n\n".$row['title']."\n".strip_tags(novel_content(novel_url($bookinfo, $row['priority'])), '<img><br>'), SYSCHARSET, 'gbk')));
}
}
ob_end_clean();
header('Content-Encoding: none');
header('Content-Type: text/plain');
header('Content-Length: '.filesize(ROOT.'data/txt/'.$bid.'.txt'));
header('Content-Disposition: attachment; filename='.$bookpinyin.'.txt');
readfile(ROOT.'data/txt/'.$bid.'.txt');
exit;
}
}
[源代码打包下载]