├── action ├── Action.class.php ├── AuthorAction.class.php ├── BbsAction.class.php ├── BookAction.class.php ├── CatalogAction.class.php ├── CommentAction.class.php ├── DetailsAction.class.php ├── IndexAction.class.php ├── KindAction.class.php ├── LibraryAction.class.php ├── LoginAction.class.php ├── ManageAction.class.php ├── MauthorAction.class.php ├── MbbsAction.class.php ├── MreaderAction.class.php ├── RankAction.class.php ├── ReaderAction.class.php ├── RecommendAction.class.php ├── RegisterAction.class.php ├── SearchAction.class.php ├── SectionAction.class.php ├── ShowBookAction.class.php └── ShowSectionAction.class.php ├── admin ├── admin.php ├── admin_author.php ├── admin_login.php ├── admin_reader.php ├── bbs.php ├── book.php ├── comment.php ├── delfile.php ├── kind.php ├── manage.php ├── notice.php ├── recommend.php ├── section.php └── top.php ├── ajax ├── admin.php ├── bbs.php ├── bookrack.php ├── comment.php └── publish.php ├── author.php ├── authorr.php ├── bbs.php ├── book.php ├── catalog.php ├── ckeditor ├── adapters │ └── jquery.js ├── build-config.js ├── ckeditor.js ├── config.js ├── contents.css ├── lang │ ├── af.js │ ├── ar.js │ ├── bg.js │ ├── bn.js │ ├── bs.js │ ├── ca.js │ ├── cs.js │ ├── cy.js │ ├── da.js │ ├── de.js │ ├── el.js │ ├── en-au.js │ ├── en-ca.js │ ├── en-gb.js │ ├── en.js │ ├── eo.js │ ├── es.js │ ├── et.js │ ├── eu.js │ ├── fa.js │ ├── fi.js │ ├── fo.js │ ├── fr-ca.js │ ├── fr.js │ ├── gl.js │ ├── gu.js │ ├── he.js │ ├── hi.js │ ├── hr.js │ ├── hu.js │ ├── id.js │ ├── is.js │ ├── it.js │ ├── ja.js │ ├── ka.js │ ├── km.js │ ├── ko.js │ ├── ku.js │ ├── lt.js │ ├── lv.js │ ├── mk.js │ ├── mn.js │ ├── ms.js │ ├── nb.js │ ├── nl.js │ ├── no.js │ ├── pl.js │ ├── pt-br.js │ ├── pt.js │ ├── ro.js │ ├── ru.js │ ├── si.js │ ├── sk.js │ ├── sl.js │ ├── sq.js │ ├── sr-latn.js │ ├── sr.js │ ├── sv.js │ ├── th.js │ ├── tr.js │ ├── tt.js │ ├── ug.js │ ├── uk.js │ ├── vi.js │ ├── zh-cn.js │ └── zh.js ├── plugins │ ├── about │ │ └── dialogs │ │ │ ├── about.js │ │ │ ├── hidpi │ │ │ └── logo_ckeditor.png │ │ │ └── logo_ckeditor.png │ ├── clipboard │ │ └── dialogs │ │ │ └── paste.js │ ├── dialog │ │ └── dialogDefinition.js │ ├── icons.png │ ├── icons_hidpi.png │ └── link │ │ ├── dialogs │ │ ├── anchor.js │ │ └── link.js │ │ └── images │ │ ├── anchor.png │ │ └── hidpi │ │ └── anchor.png ├── skins │ └── moono │ │ ├── dialog.css │ │ ├── dialog_ie.css │ │ ├── dialog_ie7.css │ │ ├── dialog_ie8.css │ │ ├── dialog_iequirks.css │ │ ├── editor.css │ │ ├── editor_gecko.css │ │ ├── editor_ie.css │ │ ├── editor_ie7.css │ │ ├── editor_ie8.css │ │ ├── editor_iequirks.css │ │ ├── icons.png │ │ ├── icons_hidpi.png │ │ ├── images │ │ ├── arrow.png │ │ ├── close.png │ │ ├── hidpi │ │ │ ├── close.png │ │ │ ├── lock-open.png │ │ │ ├── lock.png │ │ │ └── refresh.png │ │ ├── lock-open.png │ │ ├── lock.png │ │ ├── refresh.png │ │ └── spinner.gif │ │ └── readme.md └── styles.js ├── common.inc.php ├── config ├── code.php └── profile.php ├── css ├── admin.css ├── author.css ├── basic.css ├── bbs.css ├── book.css ├── bootstrap-theme.css ├── bootstrap-theme.css.map ├── bootstrap-theme.min.css ├── bootstrap.css ├── bootstrap.css.map ├── bootstrap.min.css ├── catalog.css ├── details.css ├── index.css ├── library.css ├── notice.css ├── rank.css ├── reader.css ├── register.css ├── search.css └── section.css ├── details.php ├── fonts ├── elephant.ttf ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── images ├── aut.png ├── authorlogo.png ├── big1.jpg ├── bookshop.png ├── brand.jpg ├── choosepic.png ├── home.png ├── indexh2.png ├── nav.png ├── nonebook.jpg ├── noneuser.jpg ├── select.png ├── sidebar_right.png └── system.jpg ├── includes ├── Cookie.class.php ├── DB.class.php ├── DeleteFile.class.php ├── Image.class.php ├── Page.class.php ├── Parser.class.php ├── Templates.class.php ├── Tool.class ├── Tool.class.php ├── Validate.class.php └── ValidateCode.class.php ├── index.php ├── init.inc.php ├── jcrop ├── css │ ├── Jcrop.gif │ ├── jquery.Jcrop.css │ └── jquery.Jcrop.min.css └── js │ ├── jquery.Jcrop.js │ └── jquery.Jcrop.min.js ├── js ├── author.js ├── authorr.js ├── basic.js ├── bbs.js ├── book.js ├── bootstrap.js ├── bootstrap.min.js ├── index.js ├── jquery.js ├── jquery.min.js ├── library.js ├── main.js ├── manage.js ├── notice.js ├── npm.js ├── rank.js ├── reader.js ├── register.js ├── search.js ├── section.js └── side.js ├── library.php ├── model ├── AuthorModel.class.php ├── BbsModel.class.php ├── BookModel.class.php ├── BookrackModel.class.php ├── CommentModel.class.php ├── KindModel.class.php ├── ManageModel.class.php ├── Model.class.php ├── ReaderModel.class.php ├── RecommendModel.class.php ├── SectionModel.class.php └── VolumeModel.class.php ├── rank.php ├── reader.php ├── register.php ├── search.php ├── section.php ├── templates ├── admin.tpl ├── admin_author.tpl ├── admin_bbs.tpl ├── admin_book.tpl ├── admin_comment.tpl ├── admin_kind.tpl ├── admin_login.tpl ├── admin_notice.tpl ├── admin_reader.tpl ├── admin_recommend.tpl ├── admin_section.tpl ├── author.tpl ├── authorr.tpl ├── bbs.tpl ├── book.tpl ├── catalog.tpl ├── details.tpl ├── footer.tpl ├── header.tpl ├── headers.tpl ├── index.tpl ├── library.tpl ├── manage.tpl ├── rank.tpl ├── reader.tpl ├── register.tpl ├── search.tpl ├── section.tpl ├── side.html └── top.tpl ├── uploadify ├── jquery.uploadify.js ├── jquery.uploadify.min.js ├── uploadify-cancel.png ├── uploadify.css ├── uploadify.php └── uploadify.swf └── uploads ├── 20150902 ├── 20150902193140940.jpg └── 20150902193244783.jpg ├── 20150905 ├── 20150905003029142.jpg ├── 20150905103740534.jpg └── 20150905104756328.jpg ├── 20150906 └── 20150906110519590.jpg ├── 20150907 ├── 20150907091742429.jpg ├── 20150907094211452.jpg ├── 20150907120801669.jpg ├── 20150907121819891.jpg └── 20150907123426197.jpg ├── 20150911 ├── 20150911095812468.jpg ├── 20150911101528725.jpg ├── 20150911103007566.jpg ├── 20150911210106795.jpg ├── 20150911212532463.jpg ├── 20150911213222812.jpg ├── 20150911214540559.jpg ├── 20150911215113825.jpg ├── 20150911220018923.jpg └── 20150911224712494.jpg ├── 20150913 ├── 20150913101929901.jpg ├── 20150913105706399.jpg ├── 20150913111254481.jpg └── 20150913113055472.jpg ├── 20150918 ├── 20150918092511505.jpg ├── 20150918094245581.jpg ├── 20150918095218234.jpg ├── 20150918101016408.jpg ├── 20150918101809518.jpg ├── 20150918102646824.jpg ├── 20150918103642733.jpg ├── 20150918104736584.jpg ├── 20150918163727157.jpg ├── 20150918164613900.jpg ├── 20150918165819914.jpg ├── 20150918174204294.jpg ├── 20150918175157996.jpg ├── 20150918180537861.jpg ├── 20150918181641290.jpg ├── 20150918183030951.jpg ├── 20150918184227487.jpg ├── 20150918191702383.jpg ├── 20150918192559729.jpg ├── 20150918202329771.jpg ├── 20150918205533989.jpg ├── 20150918211508236.jpg ├── 20150918215734372.jpg └── 20150918223042165.jpg ├── 20150919 ├── 20150919092845576.jpg ├── 20150919093928383.jpg ├── 20150919095509147.jpg ├── 20150919100348594.jpg ├── 20150919103546422.jpg ├── 20150919110535650.jpg ├── 20150919121727584.jpg ├── 20150919151705901.jpg ├── 20150919154236474.jpg ├── 20150919160400866.jpg ├── 20150919164115786.jpg ├── 20150919165531190.jpg ├── 20150919170602895.jpg ├── 20150919193603906.jpg ├── 20150919194609322.jpg ├── 20150919195556414.jpg ├── 20150919201907619.jpg ├── 20150919202951604.jpg ├── 20150919204522127.jpg └── 20150919214727726.jpg ├── 20150920 ├── 20150920094322612.jpg ├── 20150920100857496.jpg ├── 20150920105604412.jpg ├── 20150920115637152.jpg ├── 20150920143915667.jpg ├── 20150920151428292.jpg ├── 20150920155037869.jpg └── 20150920180307282.jpg ├── 20150928 └── 20150928212524436.jpg ├── 20151005 └── 20151005174253500.jpg ├── 20151007 └── 20151007232833442.jpg ├── 20151008 └── 20151008225532511.jpg └── 20151114 └── 20151114103704522.jpg /action/Action.class.php: -------------------------------------------------------------------------------- 1 | tpl = $tpl; 10 | $this->model = $model; 11 | } 12 | 13 | //分页 14 | protected function page($total,$pagesize=PAGE_SIZE) 15 | { 16 | $page = new Page($total,$pagesize); 17 | $this->model->limit = $page->limit; 18 | $this->tpl->assign("page",$page->showpage()); 19 | $this->tpl->assign("num",($page->page-1)*$pagesize); 20 | } 21 | } 22 | 23 | ?> -------------------------------------------------------------------------------- /action/BbsAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 12 | elseif($_GET["action"] == "publish") 13 | $this->publish(); 14 | else 15 | Tool::alertBack("非法操作!!"); 16 | } 17 | } 18 | 19 | //显示 20 | private function show(){ 21 | //分页 22 | parent::page($this->model->getAllTotal()); 23 | 24 | $object = $this->model->getAllbbs(); 25 | $comment = new CommentModel(); 26 | if(!empty($object)) 27 | foreach($object as $value){ 28 | $value->times = date("Y-m-d", $value->time); 29 | if($value->state == 1){ 30 | $value->class = "notice"; 31 | $value->top = "置顶"; 32 | } 33 | else{ 34 | $value->class = "normal"; 35 | $value->top = ""; 36 | } 37 | 38 | $value->count = $comment->getNumberByOid($value->id, "bbs"); 39 | if($value->count == 0){ 40 | $value->lastreader = $value->reader; 41 | $value->lasttime = date("Y-m-d H:i:s", $value->time); 42 | } 43 | else{ 44 | $object1 = $comment->getLastByOid($value->id, "bbs"); 45 | $value->lastreader = $object1->reader; 46 | $value->lasttime = date("Y-m-d H:i:s", $object1->time); 47 | } 48 | } 49 | 50 | $this->tpl->assign("AllBBs", $object); 51 | } 52 | 53 | 54 | //发表 55 | public function publish(){ 56 | if(isset($_COOKIE["id"])){ 57 | if(isset($_POST["send"])){ 58 | if(Validate::checkLength($_POST["title"], 80, "max")) 59 | Tool::alertBack("警告:标题不能多于80个字!!"); 60 | if(Validate::checkLength($_POST["title"], 1, "min")) 61 | Tool::alertBack("警告:标题不能为空!!"); 62 | if(Validate::checkLength($_POST["content"], 1, "min")) 63 | Tool::alertBack("警告:内容不能为空!!"); 64 | 65 | $rid = $_COOKIE["id"]; 66 | $title = $_POST["title"]; 67 | $content = $_POST["content"]; 68 | $time = time(); 69 | 70 | if($this->model->add($rid, $title, $content, $time)) 71 | Tool::alertLocation("发表成功!", "bbs.php?action=show"); 72 | else 73 | Tool::alertBack("发表失败!"); 74 | } 75 | } 76 | else 77 | Tool::alertBack("登录之后才能发表!"); 78 | 79 | } 80 | 81 | 82 | 83 | 84 | 85 | } 86 | 87 | ?> -------------------------------------------------------------------------------- /action/CatalogAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 10 | } 11 | 12 | 13 | //显示 14 | private function show(){ 15 | if(isset($_GET["id"])){ 16 | $id = $_GET["id"]; 17 | 18 | //书籍 19 | $book = new BookModel(); 20 | $object1 = $book->getBook($id); 21 | $this->tpl->assign("bname", $object1->name); 22 | $this->tpl->assign("pseudonym", $object1->pseudonym); 23 | $this->tpl->assign("cname", $object1->kname); 24 | $this->tpl->assign("id", $id); 25 | 26 | //类型 27 | $kind = new KindModel(); 28 | $object3 = $kind->getOneKind($object1->kid); 29 | $this->tpl->assign("kname", $object3->nname); 30 | $this->tpl->assign("kid", $object3->iid); 31 | 32 | 33 | //分卷 34 | $volume = new VolumeModel(); 35 | $section = new SectionModel(); 36 | $object2 = $this->model->getVolumeOfBook($id); 37 | foreach($object2 as $value){ 38 | $value->section = $section->getSectionOfVolume($value->id); 39 | } 40 | $this->tpl->assign("volume", $object2); 41 | 42 | } 43 | } 44 | 45 | 46 | 47 | } 48 | 49 | ?> -------------------------------------------------------------------------------- /action/CommentAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 17 | break; 18 | 19 | case "delete": 20 | $this->delete(); 21 | break; 22 | 23 | default: 24 | Tool::alertBack("非法操作!"); 25 | } 26 | } 27 | 28 | 29 | //显示 30 | private function show(){ 31 | $this->tpl->assign("show", true); 32 | $this->tpl->assign("titl", "列表"); 33 | 34 | //模糊搜索 35 | if(isset($_GET['search'])){ 36 | parent::page($this->model->getNumberBy($_GET['key'])); 37 | $object = $this->model->getAllComment($_GET['key']); 38 | } 39 | else{ 40 | parent::page($this->model->getAllTotal()); 41 | $object = $this->model->getAllComment(); 42 | } 43 | 44 | if(is_array($object)) 45 | foreach($object as $value){ 46 | $value->time = date("Y-m-d H:i:s", $value->time); 47 | } 48 | 49 | $this->tpl->assign('AllComment', $object); 50 | } 51 | 52 | 53 | 54 | //删除 55 | private function delete(){ 56 | if(isset($_GET["id"])){ 57 | if($this->model->delete($_GET["id"])) 58 | Tool::alertBack("删除成功!"); 59 | else 60 | Tool::alertBack("删除失败!!"); 61 | } 62 | else 63 | Tool::alertBack("没有此评论!!"); 64 | } 65 | } 66 | 67 | ?> -------------------------------------------------------------------------------- /action/DetailsAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 12 | elseif($_GET["action"] == "publish") 13 | $this->publish(); 14 | else 15 | Tool::alertBack("非法操作!!"); 16 | } 17 | 18 | } 19 | 20 | //显示 21 | private function show(){ 22 | $this->tpl->assign("oid", $_GET["oid"]); 23 | 24 | //分页 25 | parent::page($this->model->getNumberByOid($_GET["oid"], "bbs") + 1); 26 | 27 | $object = $this->model->getAllByOid($_GET["oid"], "bbs"); 28 | $bbs = new BbsModel(); 29 | foreach($object as $value){ 30 | $value->content = html_entity_decode($value->content); 31 | $value->time = date("Y-m-d H:i:s", $value->time); 32 | $value->bcount = $bbs->getNumberByRid($value->rid); 33 | $value->ccount = $this->model->getNumberByRid($value->rid, "bbs"); 34 | $value->number = $this->model->getNumberByOid($_GET["oid"], "bbs"); 35 | } 36 | $this->tpl->assign("AllComment", $object); 37 | 38 | } 39 | 40 | 41 | //发表 42 | public function publish(){ 43 | if(isset($_COOKIE["id"])){ 44 | if(isset($_POST["send"])){ 45 | if(Validate::checkLength($_POST["content"], 1, "min")) 46 | Tool::alertBack("警告:内容不能为空!!"); 47 | if(Validate::checkLength($_POST["content"], 200, "max")) 48 | Tool::alertBack("警告:内容不能超过200个字!!"); 49 | 50 | $rid = $_COOKIE["id"]; 51 | $content = $_POST["content"]; 52 | $time = time(); 53 | $attr = "bbs"; 54 | $oid = $_GET["oid"]; 55 | 56 | if($this->model->add($content, $rid, $time, $attr, $oid)) 57 | Tool::alertLocation("发表成功!", "details.php?action=show&oid=".$oid."&page=".(ceil(($this->model->getNumberByOid($oid, "bbs") + 1) / 10))); 58 | else 59 | Tool::alertBack("发表失败!"); 60 | } 61 | } 62 | else 63 | Tool::alertBack("登录之后才能发表评论!"); 64 | 65 | } 66 | 67 | 68 | 69 | 70 | 71 | } 72 | 73 | ?> -------------------------------------------------------------------------------- /action/LibraryAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 11 | } 12 | 13 | 14 | //显示 15 | private function show(){ 16 | //类型 17 | $kind = new KindModel(); 18 | $object1 = $kind->getFronKind(); 19 | $this->tpl->assign("AllKind", $object1); 20 | 21 | if(isset($_GET["kid"])) 22 | { 23 | //获取分类 24 | $object = $_GET["kid"] ? $kind->getFronKChild($_GET["kid"]):$kind->getChild(); 25 | $arr = array(); 26 | for($i=0;$iid; 28 | } 29 | $kid = implode(',', $arr); 30 | 31 | 32 | //分页 33 | parent::page($this->model->getNumberOfKind($kid), 20); 34 | 35 | 36 | //根据分类来显示 37 | $object2 = $this->model->getBooks($kid); 38 | $section = new SectionModel(); 39 | if(!empty($object2)) 40 | foreach($object2 as $value){ 41 | $object3 = $section->getLatest($value->id); 42 | $value->vname = $object3->name; 43 | $value->titlel = $object3->title; 44 | $value->sid = $object3->id; 45 | if(Validate::checkLength($object3->name.$object3->title, 25, "max")) 46 | $value->title = mb_substr($object3->title, 0, 10, "utf8")."..."; 47 | else 48 | $value->title = $object3->title; 49 | 50 | 51 | $value->times = date("m-d H:i", $value->time); 52 | $value->timel = date("Y-m-d H:i:s", $value->time); 53 | 54 | if(Validate::checkLength($value->pseudonym, 4, "max")) 55 | $value->pseudonyms = mb_substr($value->pseudonym, 0, 4, "utf8")."..."; 56 | else 57 | $value->pseudonyms = $value->pseudonym; 58 | 59 | } 60 | $this->tpl->assign("AllBook", $object2); 61 | 62 | //点击榜 63 | $this->rank(); 64 | 65 | } 66 | 67 | } 68 | 69 | 70 | //排行榜 71 | private function rank(){ 72 | $this->model->limit = "LIMIT 0,10"; 73 | //点击榜 74 | $object1 = $this->model->getRankOfClick(); 75 | $this->tpl->assign("click", $object1); 76 | } 77 | } 78 | 79 | ?> -------------------------------------------------------------------------------- /action/LoginAction.class.php: -------------------------------------------------------------------------------- 1 | login(); 17 | break; 18 | 19 | case 'logout': 20 | $this->logout(); 21 | break; 22 | } 23 | } 24 | 25 | //登出 26 | private function logout() 27 | { 28 | Tool::unSession(); 29 | Tool::alertLocation(null,"admin_login.php"); 30 | } 31 | 32 | 33 | //验证登陆 34 | private function login() 35 | { 36 | if (isset($_POST['send'])) 37 | { 38 | //判断输入的数据是否合法 39 | if (Validate::checkNull($_POST['admin_user'])) 40 | Tool::alertBack("警告:账号不能为空!!"); 41 | 42 | if (Validate::checkLength($_POST['admin_user'],2,"min")) 43 | Tool::alertBack("警告:账号不能少于两位!!"); 44 | 45 | if (Validate::checkLength($_POST['admin_user'],20,"max")) 46 | Tool::alertBack("警告:账号不能多于20位!!"); 47 | 48 | if (Validate::checkNull($_POST['admin_pass'])) 49 | Tool::alertBack("警告:密码不能为空!!"); 50 | 51 | if (Validate::checkLength($_POST['admin_pass'],6,"min")) 52 | Tool::alertBack("警告:密码不能少于6位!!"); 53 | 54 | if (Validate::checkLength($_POST['code'],4,'equal')) 55 | Tool::alertBack("验证码必须是四位!!"); 56 | 57 | if (Validate::checkEquals(strtolower($_POST['code']),$_SESSION['code'])) 58 | Tool::alertBack("验证码输入不正确!!"); 59 | 60 | $user = $_POST['admin_user']; 61 | $pass = sha1($_POST['admin_pass']); 62 | 63 | $login = $this->model->getLoginManage($user, $pass); 64 | 65 | if($login) 66 | { 67 | $_SESSION['admin']['admin_user'] = $login->user; 68 | $_SESSION['admin']['admin_lname'] = $login->name; 69 | Tool::alertLocation(null,'admin.php'); 70 | } 71 | else 72 | Tool::alertBack("警告:账号或密码输入错误!!"); 73 | 74 | } 75 | } 76 | 77 | 78 | } 79 | 80 | ?> -------------------------------------------------------------------------------- /action/ManageAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 14 | 15 | 16 | if(isset($_GET["action"])) 17 | switch($_GET["action"]) 18 | { 19 | case "update": 20 | $this->update(); 21 | break; 22 | 23 | case "add": 24 | $this->add(); 25 | break; 26 | 27 | case "delete": 28 | $this->delete(); 29 | break; 30 | } 31 | } 32 | 33 | 34 | //显示 35 | private function show(){ 36 | //模糊搜索 37 | if(isset($_GET['search'])){ 38 | parent::page($this->model->getNumberBy($_GET['key'])); 39 | $object = $this->model->getAllManage($_GET['key']); 40 | } 41 | else{ 42 | parent::page($this->model->getManageTotal()); 43 | $object = $this->model->getAllManage(); 44 | } 45 | 46 | $this->tpl->assign("AllManage", $object); 47 | $this->tpl->assign("AllLevel", $this->model->getAllLevel()); 48 | } 49 | 50 | 51 | //新增 52 | private function add(){ 53 | $this->show(); 54 | 55 | if(isset($_POST["send"])){ 56 | //验证 57 | if(Validate::checkNull($_POST["user"])) 58 | Tool::alertBack("警告:用户名不能为空!"); 59 | if(Validate::checkLength($_POST["user"], 2, "min")) 60 | Tool::alertBack("警告:用户名不能少于两位!"); 61 | if(Validate::checkLength($_POST["user"], 11, "max")) 62 | Tool::alertBack("警告:用户名不能多于11位!"); 63 | if(Validate::checkLength($_POST["pass"], 6, "min")) 64 | Tool::alertBack("警告:密码不能少于6位!"); 65 | if(Validate::checkEquals($_POST["pass"], $_POST["notpass"])) 66 | Tool::alertBack("两次输入的密码不一致!"); 67 | 68 | $user = $_POST["user"]; 69 | $pass = sha1($_POST["pass"]); 70 | $level = $_POST["level"]; 71 | 72 | if($this->model->add($user, $pass, $level)) 73 | Tool::alertLocation("提交成功!", "manage.php?action=show"); 74 | else 75 | Tool::alertBack("提交失败!"); 76 | } 77 | } 78 | 79 | 80 | //修改 81 | public function update(){ 82 | 83 | //修改数据 84 | if(isset($_POST["send"])){ 85 | //验证 86 | if(Validate::checkNull($_POST["user"])) 87 | Tool::alertBack("警告:用户名不能为空!"); 88 | if(Validate::checkLength($_POST["user"], 2, "min")) 89 | Tool::alertBack("警告:用户名不能少于两位!"); 90 | if(Validate::checkLength($_POST["user"], 11, "max")) 91 | Tool::alertBack("警告:用户名不能多于11位!"); 92 | 93 | if(Validate::checkNull($_POST["pass"])) 94 | $pass = $_POST["npass"]; 95 | elseif(Validate::checkLength($_POST["pass"], 6, "min")) 96 | Tool::alertBack("警告:密码不能少于6位!"); 97 | else 98 | $pass = sha1($_POST["pass"]); 99 | 100 | $id = $_POST["id"]; 101 | $user = $_POST["user"]; 102 | $level = $_POST["level"]; 103 | if($this->model->update($id, $user, $pass, $level)) 104 | Tool::alertBack("修改成功!"); 105 | else 106 | Tool::alertBack("修改失败!"); 107 | 108 | } 109 | 110 | } 111 | 112 | 113 | //删除 114 | private function delete(){ 115 | if(isset($_GET["id"])) 116 | { 117 | $id = $_GET["id"]; 118 | 119 | if($this->model->delete($id)) 120 | Tool::alertLocation("删除成功!", PREV_URL); 121 | else 122 | Tool::alertBack("删除失败!"); 123 | } 124 | } 125 | } 126 | 127 | ?> -------------------------------------------------------------------------------- /action/MauthorAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 12 | if(isset($_GET['action'])) 13 | switch($_GET["action"]) 14 | { 15 | case "add": 16 | $this->add(); 17 | break; 18 | 19 | case "update": 20 | $this->update(); 21 | break; 22 | 23 | case "delete": 24 | $this->delete(); 25 | break; 26 | } 27 | } 28 | 29 | 30 | //显示 31 | public function show(){ 32 | //模糊搜索 33 | if(isset($_GET['search'])){ 34 | parent::page($this->model->getAuthorTotal($_GET['key'])); 35 | $object = $this->model->getAllAuthor($_GET['key']); 36 | } 37 | else{ 38 | parent::page($this->model->getAuthorTotal()); 39 | $object = $this->model->getAllAuthor(); 40 | } 41 | 42 | $this->tpl->assign("AllAuthor", $object); 43 | } 44 | 45 | //新郑 46 | public function add(){ 47 | 48 | if(isset($_POST["send"])){ 49 | //验证 50 | if(Validate::checkEmail($_POST["email"])) 51 | Tool::alertBack("警告:邮箱输入不合法!"); 52 | if(Validate::checkLength($_POST["aname"], 2, "min")) 53 | Tool::alertBack("警告:请输入正确的姓名!"); 54 | if(Validate::checkNull($_POST["pseudonym"])) 55 | Tool::alertBack("警告:笔名不能为空!"); 56 | if(Validate::checkLength($_POST["pseudonym"], 2, "min")) 57 | Tool::alertBack("警告:笔名不能少于两位!"); 58 | if(Validate::checkLength($_POST["pseudonym"], 11, "max")) 59 | Tool::alertBack("警告:笔名不能多于11位!"); 60 | if(Validate::checkLength($_POST["pass"], 6, "min")) 61 | Tool::alertBack("警告:密码不能少于6位!"); 62 | if(Validate::checkEquals($_POST["pass"], $_POST["notpass"])) 63 | Tool::alertBack("两次输入的密码不一致!"); 64 | 65 | $email = $_POST["email"]; 66 | $name = $_POST["aname"]; 67 | $pseudonym = $_POST["pseudonym"]; 68 | $pass = sha1($_POST["pass"]); 69 | 70 | if($this->model->add($email, $name, $pass, $pseudonym)) 71 | Tool::alertLocation("提交成功!", "admin_author.php?action=show"); 72 | else 73 | Tool::alertBack("提交失败!"); 74 | } 75 | } 76 | 77 | 78 | //修改 79 | private function update(){ 80 | 81 | if(isset($_POST["send"])){ 82 | //验证 83 | if(Validate::checkLength($_POST["aname"], 2, "min")) 84 | Tool::alertBack("警告:请输入正确的姓名!"); 85 | if(Validate::checkNull($_POST["pseudonym"])) 86 | Tool::alertBack("警告:笔名不能为空!"); 87 | if(Validate::checkLength($_POST["pseudonym"], 2, "min")) 88 | Tool::alertBack("警告:笔名不能少于两位!"); 89 | if(Validate::checkLength($_POST["pseudonym"], 11, "max")) 90 | Tool::alertBack("警告:笔名不能多于11位!"); 91 | 92 | if(Validate::checkNull($_POST["pass"])) 93 | $pass = $_POST["npass"]; 94 | elseif(Validate::checkLength($_POST["pass"], 6, "min")) 95 | Tool::alertBack("警告:密码不能少于6位!"); 96 | else 97 | $pass = sha1($_POST["pass"]); 98 | 99 | $id = $_POST['id']; 100 | $name = $_POST["aname"]; 101 | $pseudonym = $_POST["pseudonym"]; 102 | 103 | if($this->model->update($id, $name, $pseudonym, $pass)){ 104 | Tool::alertBack("修改成功!"); 105 | } 106 | else 107 | Tool::alertBack("修改失败!"); 108 | 109 | } 110 | 111 | } 112 | 113 | //删除 114 | private function delete(){ 115 | if(isset($_GET["id"])) 116 | { 117 | if($this->model->delete($_GET["id"])) 118 | Tool::alertBack("删除成功!"); 119 | else 120 | Tool::alertBack("删除失败!"); 121 | } 122 | else 123 | Tool::alertBack("此读者不存在!!"); 124 | } 125 | } 126 | 127 | ?> -------------------------------------------------------------------------------- /action/MreaderAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 12 | if(isset($_GET['action'])) 13 | switch($_GET["action"]) 14 | { 15 | case "add": 16 | $this->add(); 17 | break; 18 | 19 | case "update": 20 | $this->update(); 21 | break; 22 | 23 | case "delete": 24 | $this->delete(); 25 | break; 26 | 27 | case "state": 28 | $this->state(); 29 | break; 30 | } 31 | } 32 | 33 | 34 | //显示 35 | public function show(){ 36 | //模糊搜索 37 | if(isset($_GET['search'])){ 38 | parent::page($this->model->getReaderToatal($_GET['key'])); 39 | $object = $this->model->getAllReader($_GET['key']); 40 | } 41 | else{ 42 | parent::page($this->model->getReaderToatal()); 43 | $object = $this->model->getAllReader(); 44 | } 45 | 46 | if(is_array($object)) 47 | foreach($object as $value) 48 | { 49 | if($value->state == 0) 50 | $value->states = "禁止评论"; 51 | else 52 | $value->states = "允许评论"; 53 | } 54 | $this->tpl->assign("AllReader", $object); 55 | 56 | } 57 | 58 | //新郑 59 | public function add(){ 60 | if(isset($_POST["send"])){ 61 | //验证 62 | if(Validate::checkEmail($_POST["email"])) 63 | Tool::alertBack("警告:邮箱输入不合法!"); 64 | if(Validate::checkNull($_POST["reader"])) 65 | Tool::alertBack("警告:昵称不能为空!"); 66 | if(Validate::checkLength($_POST["reader"], 2, "min")) 67 | Tool::alertBack("警告:昵称不能少于两位!"); 68 | if(Validate::checkLength($_POST["reader"], 11, "max")) 69 | Tool::alertBack("警告:昵称不能多于11位!"); 70 | if(Validate::checkLength($_POST["pass"], 6, "min")) 71 | Tool::alertBack("警告:密码不能少于6位!"); 72 | if(Validate::checkEquals($_POST["pass"], $_POST["notpass"])) 73 | Tool::alertBack("两次输入的密码不一致!"); 74 | 75 | $email = $_POST["email"]; 76 | $reader = $_POST["reader"]; 77 | $pass = sha1($_POST["pass"]); 78 | $time = time(); 79 | 80 | if($this->model->add($email, $reader, $pass, $time)) 81 | Tool::alertLocation("提交成功!", "admin_reader.php"); 82 | else 83 | Tool::alertBack("提交失败!"); 84 | } 85 | } 86 | 87 | 88 | //修改 89 | private function update(){ 90 | 91 | if(isset($_POST["send"])){ 92 | if(Validate::checkNull($_POST["pass"])) 93 | $pass = $_POST["npass"]; 94 | elseif(Validate::checkLength($_POST["pass"], 6, "min")) 95 | Tool::alertBack("警告:密码不能少于6位!"); 96 | else 97 | $pass = sha1($_POST["pass"]); 98 | 99 | $id = $_POST["id"]; 100 | $reader = $_POST["reader"]; 101 | $state = $_POST["state"]; 102 | 103 | if($this->model->update($id, $reader, $pass, $state)){ 104 | Tool::alertBack("修改成功!"); 105 | } 106 | else 107 | Tool::alertBack("修改失败!"); 108 | } 109 | 110 | } 111 | 112 | //删除 113 | private function delete(){ 114 | if(isset($_GET["id"])) 115 | { 116 | if($this->model->delete($_GET["id"])) 117 | Tool::alertBack("删除成功!"); 118 | else 119 | Tool::alertBack("删除失败!"); 120 | } 121 | else 122 | Tool::alertBack("此读者不存咋!!"); 123 | } 124 | 125 | 126 | //修改状态 127 | private function state(){ 128 | if(isset($_GET["id"])){ 129 | $id = $_GET["id"]; 130 | $state = $_GET["state"]; 131 | $state = abs($state - 1); 132 | 133 | $this->model->changeState($id, $state) ? Tool::alertLocation(null, PREV_URL):Tool::alertBack("取消失败!"); 134 | } 135 | } 136 | } 137 | 138 | ?> -------------------------------------------------------------------------------- /action/RankAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 11 | } 12 | 13 | 14 | //获取数据 15 | private function getObject($object){ 16 | $section = new SectionModel(); 17 | foreach($object as $value){ 18 | $value->times = date("m-d H:i", $value->time); 19 | $value->time = date("Y-m-d H:i:s"); 20 | $value->number = $value->click; 21 | 22 | $object3 = $section->getLatest($value->id); 23 | $value->titlel = $object3->name.":".$object3->title; 24 | $value->sid = $object3->id; 25 | if(Validate::checkLength($object3->name.$object3->title, 25, "max")) 26 | $value->title = mb_substr($object3->name.":".$object3->title, 0, 24, "utf8")."..."; 27 | else 28 | $value->title = $object3->name.":".$object3->title; 29 | 30 | if(Validate::checkLength($value->pseudonym, 5, "max")) 31 | $value->pseudonyms = mb_substr($value->pseudonym, 0, 4, "utf8")."..."; 32 | else 33 | $value->pseudonyms = $value->pseudonym; 34 | } 35 | 36 | return $object; 37 | } 38 | 39 | 40 | //显示 41 | private function show(){ 42 | //类型 43 | $kind = new KindModel(); 44 | $object1 = $kind->getSevenKind(); 45 | $this->tpl->assign("SevenKind", $object1); 46 | 47 | //排行 48 | if(isset($_GET["action"])) 49 | if($_GET["action"] == "click"){ 50 | parent::page($this->model->getBookTotal()); 51 | $object2 = $this->model->getRankOfClick(); 52 | $object2 = $this->getObject($object2); 53 | 54 | 55 | $this->tpl->assign("head", "点击量"); 56 | $this->tpl->assign("h3", "点击排行榜"); 57 | } 58 | elseif($_GET["action"] == "rack"){ 59 | parent::page($this->model->getBookTotal()); 60 | $object2 = $this->model->getRankOfRack(); 61 | $object2 = $this->getObject($object2); 62 | 63 | $bookrack = new BookrackModel(); 64 | foreach($object2 as $value){ 65 | $value->number = $bookrack->getRacks($value->id); 66 | } 67 | 68 | $this->tpl->assign("head", "订阅量"); 69 | $this->tpl->assign("h3", "订阅排行榜"); 70 | } 71 | elseif($_GET["action"] == "new"){ 72 | parent::page(40); 73 | $object2 = $this->model->getRankOfNew(); 74 | $object2 = $this->getObject($object2); 75 | 76 | $this->tpl->assign("head", "点击量"); 77 | $this->tpl->assign("h3", "新书推送榜"); 78 | } 79 | elseif($_GET["action"] == "kind"){ 80 | $kid = $_GET["kid"]; 81 | 82 | //获取分类 83 | $object = $kind->getFronKChild($kid); 84 | $object3 = $kind->getOneKind($kid); 85 | $arr = array(); 86 | for($i=0;$iid; 88 | } 89 | $kids = implode(',', $arr); 90 | parent::page($this->model->getNumberOfKind($kids)); 91 | 92 | $object2 = $this->model->getRankOfKind($kids); 93 | $object2 = $this->getObject($object2); 94 | 95 | $this->tpl->assign("head", "点击量"); 96 | $this->tpl->assign("h3", $object3->name."榜"); 97 | } 98 | $this->tpl->assign("RankOfClick", $object2); 99 | } 100 | } 101 | 102 | ?> -------------------------------------------------------------------------------- /action/RecommendAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 11 | 12 | if(isset($_GET["action"])) 13 | switch($_GET["action"]){ 14 | case "update": 15 | $this->update(); 16 | break; 17 | 18 | case "delete": 19 | $this->delete(); 20 | break; 21 | 22 | case "add": 23 | $this->add(); 24 | break; 25 | 26 | default: 27 | Tool::alertBack("非法操作!"); 28 | } 29 | } 30 | 31 | 32 | //显示 33 | private function show(){ 34 | //模糊搜索 35 | if(isset($_GET['search'])){ 36 | parent::page($this->model->getTotalOfAll($_GET['key'])); 37 | $object = $this->model->getAllRecommend($_GET['key']); 38 | } 39 | else{ 40 | parent::page($this->model->getTotalOfAll()); 41 | $object = $this->model->getAllRecommend(); 42 | } 43 | 44 | $this->tpl->assign('AllRecommend', $object); 45 | } 46 | 47 | 48 | //添加 49 | private function add(){ 50 | if(isset($_POST['send'])){ 51 | //检验 52 | if(Validate::checkLength($_POST["rtitle"], 12, "max")) 53 | Tool::alertBack("警告:标题不能多于12个字!!"); 54 | if(Validate::checkLength($_POST["rtitle"], 1, "min")) 55 | Tool::alertBack("警告:标题不能为空!!"); 56 | if(Validate::checkLength($_POST["hrf"], 1, "min")) 57 | Tool::alertBack("警告:链接不能为空!!"); 58 | if(Validate::checkLength($_POST["attr"], 1, "min")) 59 | Tool::alertBack("警告:链接不能为空!!"); 60 | if(Validate::checkLength($_POST["attr"], 2, "equal")) 61 | Tool::alertBack("警告:属性只能2个字!!"); 62 | 63 | $title = $_POST['rtitle']; 64 | $attr = $_POST['attr']; 65 | $href = $_POST['hrf']; 66 | 67 | if($this->model->add($title, $attr, $href)) 68 | Tool::alertLocation("添加成功!", "recommend.php?"); 69 | else 70 | Tool::alertBack("添加失败!"); 71 | } 72 | } 73 | 74 | 75 | //更新 76 | private function update(){ 77 | if(isset($_POST['send'])){ 78 | //检验 79 | if(Validate::checkLength($_POST["rtitle"], 12, "max")) 80 | Tool::alertBack("警告:标题不能多于12个字!!"); 81 | if(Validate::checkLength($_POST["rtitle"], 1, "min")) 82 | Tool::alertBack("警告:标题不能为空!!"); 83 | if(Validate::checkLength($_POST["hrf"], 1, "min")) 84 | Tool::alertBack("警告:链接不能为空!!"); 85 | if(Validate::checkLength($_POST["attr"], 1, "min")) 86 | Tool::alertBack("警告:链接不能为空!!"); 87 | if(Validate::checkLength($_POST["attr"], 2, "equal")) 88 | Tool::alertBack("警告:属性只能2个字!!"); 89 | 90 | $id = $_POST['id']; 91 | $title = $_POST['rtitle']; 92 | $attr = $_POST['attr']; 93 | $href = $_POST['hrf']; 94 | 95 | if($this->model->update($id, $title, $attr, $href)) 96 | Tool::alertBack("修改成功!"); 97 | else 98 | Tool::alertBack("修改失败!"); 99 | } 100 | } 101 | 102 | 103 | //删除作品 104 | private function delete(){ 105 | if(isset($_GET["id"])){ 106 | $id = $_GET["id"]; 107 | if($this->model->delete($id)) 108 | Tool::alertBack("删除成功!"); 109 | else 110 | Tool::alertBack("删除失败!"); 111 | } 112 | } 113 | } 114 | 115 | ?> -------------------------------------------------------------------------------- /action/SectionAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 13 | break; 14 | 15 | case "detail": 16 | $this->detail(); 17 | break; 18 | 19 | case "delete": 20 | $this->delete(); 21 | break; 22 | 23 | default: 24 | Tool::alertBack("非法操作!"); 25 | } 26 | } 27 | 28 | 29 | //显示 30 | private function show(){ 31 | $this->tpl->assign("show", true); 32 | $this->tpl->assign("titl", "列表"); 33 | if(isset($_GET['bid'])){ 34 | parent::page($this->model->getAllSectionTotal($_GET['bid'])); 35 | $object = $this->model->getAllSection($_GET['bid']); 36 | } 37 | else{ 38 | //模糊搜索 39 | if(isset($_GET['search'])){ 40 | parent::page($this->model->getNumberBy($_GET['key'])); 41 | $object = $this->model->getSection($_GET['key']); 42 | } 43 | else{ 44 | parent::page($this->model->getAllTotal()); 45 | $object = $this->model->getSection(); 46 | } 47 | } 48 | 49 | if(is_array($object)) 50 | foreach($object as $value){ 51 | if($value->state == 0) 52 | $value->state = '未审核'; 53 | elseif($value->state == 1) 54 | $value->state ='已审核'; 55 | $value->time = date("Y-m-d H:i:s", $value->time); 56 | } 57 | 58 | $this->tpl->assign("AllSection", $object); 59 | } 60 | 61 | 62 | //小说详情 63 | private function detail(){ 64 | $this->tpl->assign("titl", "详情"); 65 | $this->tpl->assign("detail", true); 66 | if(isset($_GET["id"])){ 67 | $id = $_GET["id"]; 68 | $this->tpl->assign("id", $id); 69 | $section = $this->model->getDetails($id); 70 | 71 | $this->tpl->assign("title", $section->title); 72 | $this->tpl->assign("name", $section->name); 73 | $this->tpl->assign("pseudonym", $section->pseudonym); 74 | $this->tpl->assign("vname", $section->vname); 75 | $this->tpl->assign("count", $section->count); 76 | $this->tpl->assign("bid", $section->bid); 77 | $this->tpl->assign("time", date("Y-m-d H:i:s", $section->time)); 78 | $this->tpl->assign("content", html_entity_decode($section->content)); 79 | $this->tpl->assign("prev", PREV_URL); 80 | 81 | //按钮的value 82 | if($section->state == 0) 83 | $send = "通过审核"; 84 | elseif($section->state == 1) 85 | $send = "取消审核"; 86 | $this->tpl->assign("send", $send); 87 | 88 | 89 | //审核 90 | if(isset($_POST["send"])){ 91 | if($section->state == 0){ 92 | if($this->model->updateState($id, 1)) 93 | Tool::alertLocation("审核成功!", $_POST["prev"]); 94 | else 95 | Tool::alertBack("审核失败!!"); 96 | } 97 | elseif($section->state == 1){ 98 | if($this->model->updateState($id, 0)) 99 | Tool::alertLocation("取消审核成功!", $_POST["prev"]); 100 | else 101 | Tool::alertBack("取消审核失败!!"); 102 | } 103 | } 104 | 105 | } 106 | else 107 | Tool::alertBack("没有此章节"); 108 | } 109 | 110 | 111 | 112 | //删除作品 113 | private function delete(){ 114 | if(isset($_GET['id'])){ 115 | if($this->model->delete($_GET["id"])) 116 | Tool::alertBack("删除成功!!"); 117 | else 118 | Tool::alertBack("删除失败!"); 119 | } 120 | 121 | } 122 | } 123 | 124 | ?> -------------------------------------------------------------------------------- /action/ShowBookAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 10 | } 11 | 12 | 13 | //显示 14 | private function show(){ 15 | if(isset($_COOKIE["id"])){ 16 | $rid = $_COOKIE["id"]; 17 | $this->tpl->assign("aid", $rid); 18 | } 19 | else 20 | $this->tpl->assign("aid", null); 21 | 22 | if(isset($_GET["id"])){ 23 | $id = $_GET["id"]; 24 | $object = $this->model->getBook($id); 25 | $this->tpl->assign("bname", $object->name); 26 | $this->tpl->assign("pseudonym", $object->pseudonym); 27 | $this->tpl->assign("kname", $object->kname); 28 | $this->tpl->assign("count", $object->count); 29 | $this->tpl->assign("click", $object->click); 30 | $this->tpl->assign("surface", $object->surface); 31 | $this->tpl->assign("info", html_entity_decode($object->info)); 32 | $this->tpl->assign("id", $id); 33 | 34 | //关键字 35 | $keyword = array(); 36 | $keyword = explode(",", $object->keyword); 37 | $str = ""; 38 | for($i=0;$i'.$keyword[$i].''; 40 | } 41 | $this->tpl->assign("keyword", $str); 42 | 43 | //最新章节 44 | $section = new SectionModel(); 45 | $object1 = $section->getLatest($id); 46 | $this->tpl->assign("vname", $object1->name); 47 | $this->tpl->assign("title", $object1->title); 48 | $this->tpl->assign("sid", $object1->id); 49 | $content = Tool::trimspecial($object1->content); 50 | $content = mb_substr($content, 0, 44,"utf8")."..."; 51 | $this->tpl->assign("content", $content); 52 | 53 | //获取第一章 54 | $object2 = $section->getFirst($id); 55 | $this->tpl->assign("fid", $object2->id); 56 | 57 | //增加点击量 58 | $this->model->addClick($id); 59 | 60 | //书评 61 | $comment = new CommentModel(); 62 | parent::page($comment->getNumberByOid($id, 'b')); //分页 63 | $object3 = $comment->getComments($id, 'b'); 64 | if(!empty($object3)) 65 | foreach($object3 as $value){ 66 | $value->time = date('Y-m-d H:i:s', $value->time); 67 | } 68 | $this->tpl->assign('AllComment', $object3); 69 | } 70 | } 71 | 72 | } 73 | 74 | ?> -------------------------------------------------------------------------------- /action/ShowSectionAction.class.php: -------------------------------------------------------------------------------- 1 | show(); 10 | } 11 | 12 | 13 | //显示 14 | private function show(){ 15 | if(isset($_COOKIE["id"])){ 16 | $this->tpl->assign("aid", $_COOKIE["id"]); 17 | $this->tpl->assign("allsection", true); 18 | } 19 | else{ 20 | $this->tpl->assign("aid", null); 21 | } 22 | 23 | if(isset($_GET["id"])){ 24 | $id = $_GET["id"]; 25 | $object1 = $this->model->getDetails($id); 26 | $this->tpl->assign("id", $id); 27 | $this->tpl->assign("title", $object1->title); 28 | $this->tpl->assign("bname", $object1->name); 29 | $this->tpl->assign("pseudonym", $object1->pseudonym); 30 | $this->tpl->assign("time", date("Y-m-d H:i:s", $object1->time)); 31 | $this->tpl->assign("count", $object1->count); 32 | $this->tpl->assign("vname", $object1->vname); 33 | $this->tpl->assign("bid", $object1->bid); 34 | $this->tpl->assign("content", html_entity_decode($object1->content)); 35 | 36 | //上一章、下一章 37 | $object3 = $this->model->getBefore($id, $object1->bid); 38 | if(!empty($object3)){ 39 | $this->tpl->assign("before", "section.php?id=".$object3->id); 40 | $this->tpl->assign("bclick", ""); 41 | } 42 | else{ 43 | $this->tpl->assign("before", "javascript:;"); 44 | $this->tpl->assign("bclick", "aclick()"); 45 | $this->tpl->assign("tip", "已经是第一章啦!!"); 46 | } 47 | $object4 = $this->model->getNext($id, $object1->bid); 48 | if(!empty($object4)){ 49 | $this->tpl->assign("next", "section.php?id=".$object4->id); 50 | $this->tpl->assign("nclick", ""); 51 | } 52 | else{ 53 | $this->tpl->assign("next", "javascript:;"); 54 | $this->tpl->assign("nclick", "aclick()"); 55 | $this->tpl->assign("tip", "已经是最后一章啦!!"); 56 | } 57 | 58 | //分类 59 | $kind = new KindModel(); 60 | $book = new BookModel(); 61 | $object = $book->getBook($object1->bid); 62 | $this->tpl->assign("cname", $object->kname); 63 | $object2 = $kind->getOneKind($object->kid); 64 | $this->tpl->assign("kname", $object2->nname); 65 | $this->tpl->assign("kid", $object2->iid); 66 | 67 | //订阅 68 | if(isset($_COOKIE["id"])){ 69 | $bookrack = new BookrackModel(); 70 | $object5 = $bookrack->checkId($object1->bid, $_COOKIE["id"]); 71 | if(empty($object5)) 72 | $this->tpl->assign("allsection", false); 73 | else{ 74 | $bookrack->updateSid($id, $object1->bid, $_COOKIE["id"]); 75 | } 76 | } 77 | 78 | //书评 79 | $comment = new CommentModel(); 80 | parent::page($comment->getNumberByOid($id, 's')); //分页 81 | $object3 = $comment->getComments($id, 's'); 82 | if(!empty($object3)) 83 | foreach($object3 as $value){ 84 | $value->time = date('Y-m-d H:i:s', $value->time); 85 | } 86 | $this->tpl->assign('AllComment', $object3); 87 | 88 | } 89 | } 90 | 91 | } 92 | 93 | ?> -------------------------------------------------------------------------------- /admin/admin.php: -------------------------------------------------------------------------------- 1 | display("admin.tpl"); 12 | 13 | 14 | ?> -------------------------------------------------------------------------------- /admin/admin_author.php: -------------------------------------------------------------------------------- 1 | action(); 10 | 11 | //执行diaplay,生成编译文件,并且引入 12 | $tpl->display("admin_author.tpl"); 13 | 14 | ?> -------------------------------------------------------------------------------- /admin/admin_login.php: -------------------------------------------------------------------------------- 1 | _action(); 10 | 11 | if(isset($_SESSION['admin'])) 12 | Tool::alertLocation(null,'admin.php'); 13 | 14 | //执行diaplay,生成编译文件,并且引入 15 | $tpl->display("admin_login.tpl"); 16 | 17 | ?> -------------------------------------------------------------------------------- /admin/admin_reader.php: -------------------------------------------------------------------------------- 1 | action(); 10 | 11 | 12 | //执行diaplay,生成编译文件,并且引入 13 | $tpl->display("admin_reader.tpl"); 14 | 15 | ?> -------------------------------------------------------------------------------- /admin/bbs.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("admin_bbs.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /admin/book.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("admin_book.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /admin/comment.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("admin_comment.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /admin/delfile.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/kind.php: -------------------------------------------------------------------------------- 1 | action(); 10 | 11 | //执行diaplay,生成编译文件,并且引入 12 | $tpl->display("admin_kind.tpl"); 13 | 14 | ?> -------------------------------------------------------------------------------- /admin/manage.php: -------------------------------------------------------------------------------- 1 | action(); 10 | 11 | //执行diaplay,生成编译文件,并且引入 12 | $tpl->display("manage.tpl"); 13 | 14 | ?> -------------------------------------------------------------------------------- /admin/notice.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("admin_notice.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /admin/recommend.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("admin_recommend.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /admin/section.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("admin_section.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /admin/top.php: -------------------------------------------------------------------------------- 1 | assign("admin_user", $_SESSION['admin']['admin_user']); 8 | $tpl->assign("admin_lname", $_SESSION['admin']['admin_lname']); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("top.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /ajax/admin.php: -------------------------------------------------------------------------------- 1 | getOneManage($id); 38 | $arr['name'] = $object->user; 39 | $arr['pass'] = $object->pass; 40 | $arr['state'] = $object->level; 41 | return $arr; 42 | } 43 | 44 | 45 | function author($id){ 46 | $author = new AuthorModel(); 47 | $arr = array(); 48 | $object = $author->getOneAuthor($id); 49 | $arr['name'] = $object->name; 50 | $arr['pass'] = $object->pass; 51 | $arr['email'] = $object->email; 52 | $arr['pseudonym'] = $object->pseudonym; 53 | return $arr; 54 | } 55 | 56 | function reader($id){ 57 | $reader = new ReaderModel(); 58 | $arr = array(); 59 | $object = $reader->getOneReader($id); 60 | $arr['name'] = $object->reader; 61 | $arr['pass'] = $object->pass; 62 | $arr['email'] = $object->email; 63 | $arr['state'] = $object->state; 64 | return $arr; 65 | } 66 | 67 | function kind($id){ 68 | $kind = new KindModel(); 69 | $arr = array(); 70 | $object = $kind->getOneKind($id); 71 | $arr['name'] = $object->name; 72 | $arr['info'] = $object->info; 73 | return $arr; 74 | } 75 | 76 | function notice($id){ 77 | $notice = new BbsModel(); 78 | $arr = array(); 79 | $object = $notice->getBBs($id); 80 | $arr['name'] = $object->title; 81 | $arr['info'] = html_entity_decode($object->content); 82 | return $arr; 83 | } 84 | 85 | function recommend($id){ 86 | $recommend = new RecommendModel(); 87 | $arr = array(); 88 | $object = $recommend->getOneRecommend($id); 89 | $arr['name'] = $object->title; 90 | $arr['attr'] = $object->attr; 91 | $arr['href'] = $object->href; 92 | return $arr; 93 | } 94 | 95 | ?> -------------------------------------------------------------------------------- /ajax/bbs.php: -------------------------------------------------------------------------------- 1 | delete($id))) 10 | echo "删除成功!"; 11 | else 12 | echo "删除失败!!"; 13 | } 14 | else 15 | echo "接受数据失败!!"; 16 | } 17 | 18 | ?> -------------------------------------------------------------------------------- /ajax/bookrack.php: -------------------------------------------------------------------------------- 1 | delete($_GET["bid"], $_GET["rid"]))) 10 | echo "移出成功!"; 11 | else 12 | echo "移出失败!"; 13 | } 14 | } 15 | else{ 16 | if($_GET["aid"] == null) 17 | echo "登录才能执行此操作!"; 18 | else{ 19 | $sid = $_GET["sid"]; 20 | $bid = $_GET["bid"]; 21 | $aid = $_GET["aid"]; 22 | $bookrack = new BookrackModel(); 23 | if(!empty($bookrack->checkId($bid, $aid))) 24 | echo "此书已添加!"; 25 | else{ 26 | if($bookrack->add($sid, $bid, $aid)) 27 | echo "添加成功!"; 28 | else 29 | echo "添加失败!"; 30 | } 31 | 32 | } 33 | } 34 | 35 | 36 | } 37 | 38 | 39 | ?> -------------------------------------------------------------------------------- /ajax/comment.php: -------------------------------------------------------------------------------- 1 | delete($id))) 10 | echo '删除成功!'; 11 | else 12 | echo '删除失败!'; 13 | } 14 | else 15 | echo '获取数据失败!'; 16 | } 17 | 18 | ?> -------------------------------------------------------------------------------- /ajax/publish.php: -------------------------------------------------------------------------------- 1 | add($content, $rid, $time, $attr, $oid)){ 18 | echo '发表成功!'; 19 | } 20 | else{ 21 | echo '发表失败!'; 22 | } 23 | } 24 | } 25 | 26 | ?> -------------------------------------------------------------------------------- /author.php: -------------------------------------------------------------------------------- 1 | action(); 13 | 14 | //执行diaplay,生成编译文件,并且引入 15 | $tpl->display("author.tpl"); 16 | 17 | 18 | ?> -------------------------------------------------------------------------------- /authorr.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("authorr.tpl"); 12 | 13 | 14 | ?> -------------------------------------------------------------------------------- /bbs.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("bbs.tpl"); 12 | 13 | 14 | ?> -------------------------------------------------------------------------------- /book.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("book.tpl"); 12 | 13 | ?> -------------------------------------------------------------------------------- /catalog.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | 11 | //执行diaplay,生成编译文件,并且引入 12 | $tpl->display("catalog.tpl"); 13 | 14 | ?> -------------------------------------------------------------------------------- /ckeditor/adapters/jquery.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | (function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a}, 6 | ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g))var k=d,d=g,g=k;var i=[],d=d||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,j=new a.Deferred;i.push(j.promise());if(c&&!f)g&&g.apply(c,[this]),j.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),j.resolve()):setTimeout(arguments.callee,100)},0)},null, 7 | null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor", 8 | [e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize", 9 | c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);j.resolve()}else setTimeout(arguments.callee,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,i).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var k= 10 | this,i=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});i.push(f.promise());return!0}return g.call(b,d)});if(i.length){var b=new a.Deferred;a.when.apply(this,i).done(function(){b.resolveWith(k)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery); -------------------------------------------------------------------------------- /ckeditor/build-config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /** 7 | * This file was added automatically by CKEditor builder. 8 | * You may re-use it at any time to build CKEditor again. 9 | * 10 | * If you would like to build CKEditor online again 11 | * (for example to upgrade), visit one the following links: 12 | * 13 | * (1) http://ckeditor.com/builder 14 | * Visit online builder to build CKEditor from scratch. 15 | * 16 | * (2) http://ckeditor.com/builder/3fbd7430c5ae23bca5707ed2ab706bdf 17 | * Visit online builder to build CKEditor, starting with the same setup as before. 18 | * 19 | * (3) http://ckeditor.com/builder/download/3fbd7430c5ae23bca5707ed2ab706bdf 20 | * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before. 21 | * 22 | * NOTE: 23 | * This file is not used by CKEditor, you may remove it. 24 | * Changing this file will not change your CKEditor configuration. 25 | */ 26 | 27 | var CKBUILDER_CONFIG = { 28 | skin: 'moono', 29 | preset: 'basic', 30 | ignore: [ 31 | '.bender', 32 | 'bender.js', 33 | 'bender-err.log', 34 | 'bender-out.log', 35 | 'dev', 36 | '.DS_Store', 37 | '.editorconfig', 38 | '.gitattributes', 39 | '.gitignore', 40 | 'gruntfile.js', 41 | '.idea', 42 | '.jscsrc', 43 | '.jshintignore', 44 | '.jshintrc', 45 | 'less', 46 | '.mailmap', 47 | 'node_modules', 48 | 'package.json', 49 | 'README.md', 50 | 'tests' 51 | ], 52 | plugins : { 53 | 'about' : 1, 54 | 'basicstyles' : 1, 55 | 'clipboard' : 1, 56 | 'enterkey' : 1, 57 | 'entities' : 1, 58 | 'floatingspace' : 1, 59 | 'indentlist' : 1, 60 | 'link' : 1, 61 | 'list' : 1, 62 | 'toolbar' : 1, 63 | 'undo' : 1, 64 | 'wysiwygarea' : 1 65 | }, 66 | languages : { 67 | 'af' : 1, 68 | 'ar' : 1, 69 | 'bg' : 1, 70 | 'bn' : 1, 71 | 'bs' : 1, 72 | 'ca' : 1, 73 | 'cs' : 1, 74 | 'cy' : 1, 75 | 'da' : 1, 76 | 'de' : 1, 77 | 'el' : 1, 78 | 'en' : 1, 79 | 'en-au' : 1, 80 | 'en-ca' : 1, 81 | 'en-gb' : 1, 82 | 'eo' : 1, 83 | 'es' : 1, 84 | 'et' : 1, 85 | 'eu' : 1, 86 | 'fa' : 1, 87 | 'fi' : 1, 88 | 'fo' : 1, 89 | 'fr' : 1, 90 | 'fr-ca' : 1, 91 | 'gl' : 1, 92 | 'gu' : 1, 93 | 'he' : 1, 94 | 'hi' : 1, 95 | 'hr' : 1, 96 | 'hu' : 1, 97 | 'id' : 1, 98 | 'is' : 1, 99 | 'it' : 1, 100 | 'ja' : 1, 101 | 'ka' : 1, 102 | 'km' : 1, 103 | 'ko' : 1, 104 | 'ku' : 1, 105 | 'lt' : 1, 106 | 'lv' : 1, 107 | 'mk' : 1, 108 | 'mn' : 1, 109 | 'ms' : 1, 110 | 'nb' : 1, 111 | 'nl' : 1, 112 | 'no' : 1, 113 | 'pl' : 1, 114 | 'pt' : 1, 115 | 'pt-br' : 1, 116 | 'ro' : 1, 117 | 'ru' : 1, 118 | 'si' : 1, 119 | 'sk' : 1, 120 | 'sl' : 1, 121 | 'sq' : 1, 122 | 'sr' : 1, 123 | 'sr-latn' : 1, 124 | 'sv' : 1, 125 | 'th' : 1, 126 | 'tr' : 1, 127 | 'tt' : 1, 128 | 'ug' : 1, 129 | 'uk' : 1, 130 | 'vi' : 1, 131 | 'zh' : 1, 132 | 'zh-cn' : 1 133 | } 134 | }; -------------------------------------------------------------------------------- /ckeditor/config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | CKEDITOR.editorConfig = function( config ) { 7 | // Define changes to default configuration here. 8 | // For complete reference see: 9 | // http://docs.ckeditor.com/#!/api/CKEDITOR.config 10 | 11 | // The toolbar groups arrangement, optimized for a single toolbar row. 12 | config.toolbarGroups = [ 13 | { name: 'document', groups: [ 'mode', 'document', 'doctools' ] }, 14 | { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, 15 | { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] }, 16 | { name: 'forms' }, 17 | { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] }, 18 | { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] }, 19 | { name: 'links' }, 20 | { name: 'insert' }, 21 | { name: 'styles' }, 22 | { name: 'colors' }, 23 | { name: 'tools' }, 24 | { name: 'others' }, 25 | { name: 'about' } 26 | ]; 27 | 28 | // The default plugins included in the basic setup define some buttons that 29 | // are not needed in a basic editor. They are removed here. 30 | config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript'; 31 | 32 | // Dialog windows are also simplified. 33 | config.removeDialogTabs = 'link:advanced'; 34 | 35 | config.uiColor = 'FFFFFF'; 36 | config.language = 'zh-cn'; 37 | config.height = 300; 38 | }; 39 | 40 | 41 | -------------------------------------------------------------------------------- /ckeditor/contents.css: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | body 7 | { 8 | /* Font */ 9 | font-family: sans-serif, Arial, Verdana, "Trebuchet MS"; 10 | font-size: 12px; 11 | 12 | /* Text color */ 13 | color: #333; 14 | 15 | /* Remove the background color to make it transparent */ 16 | background-color: #fff; 17 | 18 | margin: 20px; 19 | } 20 | 21 | .cke_editable 22 | { 23 | font-size: 13px; 24 | line-height: 1.6; 25 | } 26 | 27 | blockquote 28 | { 29 | font-style: italic; 30 | font-family: Georgia, Times, "Times New Roman", serif; 31 | padding: 2px 0; 32 | border-style: solid; 33 | border-color: #ccc; 34 | border-width: 0; 35 | } 36 | 37 | .cke_contents_ltr blockquote 38 | { 39 | padding-left: 20px; 40 | padding-right: 8px; 41 | border-left-width: 5px; 42 | } 43 | 44 | .cke_contents_rtl blockquote 45 | { 46 | padding-left: 8px; 47 | padding-right: 20px; 48 | border-right-width: 5px; 49 | } 50 | 51 | a 52 | { 53 | color: #0782C1; 54 | } 55 | 56 | ol,ul,dl 57 | { 58 | /* IE7: reset rtl list margin. (#7334) */ 59 | *margin-right: 0px; 60 | /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/ 61 | padding: 0 40px; 62 | } 63 | 64 | h1,h2,h3,h4,h5,h6 65 | { 66 | font-weight: normal; 67 | line-height: 1.2; 68 | } 69 | 70 | hr 71 | { 72 | border: 0px; 73 | border-top: 1px solid #ccc; 74 | } 75 | 76 | img.right 77 | { 78 | border: 1px solid #ccc; 79 | float: right; 80 | margin-left: 15px; 81 | padding: 5px; 82 | } 83 | 84 | img.left 85 | { 86 | border: 1px solid #ccc; 87 | float: left; 88 | margin-right: 15px; 89 | padding: 5px; 90 | } 91 | 92 | pre 93 | { 94 | white-space: pre-wrap; /* CSS 2.1 */ 95 | word-wrap: break-word; /* IE7 */ 96 | -moz-tab-size: 4; 97 | tab-size: 4; 98 | } 99 | 100 | .marker 101 | { 102 | background-color: Yellow; 103 | } 104 | 105 | span[lang] 106 | { 107 | font-style: italic; 108 | } 109 | 110 | figure 111 | { 112 | text-align: center; 113 | border: solid 1px #ccc; 114 | border-radius: 2px; 115 | background: rgba(0,0,0,0.05); 116 | padding: 10px; 117 | margin: 10px 20px; 118 | display: inline-block; 119 | } 120 | 121 | figure > figcaption 122 | { 123 | text-align: center; 124 | display: block; /* For IE8 */ 125 | } 126 | 127 | a > img { 128 | padding: 1px; 129 | margin: 1px; 130 | border: none; 131 | outline: 1px solid #0782C1; 132 | } 133 | -------------------------------------------------------------------------------- /ckeditor/plugins/about/dialogs/about.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("about",function(a){var a=a.lang.about,b=CKEDITOR.getUrl(CKEDITOR.plugins.get("about").path+"dialogs/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"logo_ckeditor.png");return{title:CKEDITOR.env.ie?a.dlgTitle:a.title,minWidth:390,minHeight:230,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{type:"html",html:'

CKEditor '+CKEDITOR.version+" (revision "+CKEDITOR.revision+')
http://ckeditor.com

'+a.help.replace("$1",''+ 7 | a.userGuide+"")+"

"+a.moreInfo+'
http://ckeditor.com/about/license

'+a.copy.replace("$1",'CKSource - Frederico Knabben')+"

"}]}],buttons:[CKEDITOR.dialog.cancelButton]}}); -------------------------------------------------------------------------------- /ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png -------------------------------------------------------------------------------- /ckeditor/plugins/about/dialogs/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/ckeditor/plugins/about/dialogs/logo_ckeditor.png -------------------------------------------------------------------------------- /ckeditor/plugins/clipboard/dialogs/paste.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("paste",function(c){function h(a){var b=new CKEDITOR.dom.document(a.document),f=b.getBody(),d=b.getById("cke_actscrpt");d&&d.remove();f.setAttribute("contenteditable",!0);if(CKEDITOR.env.ie&&8>CKEDITOR.env.version)b.getWindow().on("blur",function(){b.$.selection.empty()});b.on("keydown",function(a){var a=a.data,b;switch(a.getKeystroke()){case 27:this.hide();b=1;break;case 9:case CKEDITOR.SHIFT+9:this.changeFocus(1),b=1}b&&a.preventDefault()},this);c.fire("ariaWidget",new CKEDITOR.dom.element(a.frameElement)); 6 | b.getWindow().getFrame().removeCustomData("pendingFocus")&&f.focus()}var e=c.lang.clipboard;c.on("pasteDialogCommit",function(a){a.data&&c.fire("paste",{type:"auto",dataValue:a.data,method:"paste",dataTransfer:CKEDITOR.plugins.clipboard.initPasteDataTransfer()})},null,null,1E3);return{title:e.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight;this.setupContent();this.parts.title.setHtml(this.customTitle|| 7 | e.title);this.customTitle=null},onLoad:function(){(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&"rtl"==c.lang.dir&&this.parts.contents.setStyle("overflow","hidden")},onOk:function(){this.commitContent()},contents:[{id:"general",label:c.lang.common.generalTab,elements:[{type:"html",id:"securityMsg",html:'
'+e.securityMsg+"
"},{type:"html",id:"pasteMsg",html:'
'+e.pasteMsg+"
"},{type:"html",id:"editing_area", 8 | style:"width:100%;height:100%",html:"",focus:function(){var a=this.getInputElement(),b=a.getFrameDocument().getBody();!b||b.isReadOnly()?a.setCustomData("pendingFocus",1):b.focus()},setup:function(){var a=this.getDialog(),b='"; 9 | exit(); 10 | } 11 | 12 | //去掉特殊字符 13 | static public function trimspecial($data){ 14 | $data = html_entity_decode($data); 15 | $data = strip_tags($data); 16 | $data = preg_replace("/“/", "“", $data); 17 | $data = preg_replace("/”/", "”", $data); 18 | $data = preg_replace("/…/", "...", $data); 19 | $data = preg_replace("/‘/", "‘", $data); 20 | $data = preg_replace("/’/", "’", $data); 21 | $data = preg_replace("/  /", "", $data); 22 | $data = preg_replace("/ /", "", $data); 23 | $data = preg_replace("/ /", "", $data); 24 | $data = preg_replace("/—/", "—", $data); 25 | 26 | return $data; 27 | } 28 | 29 | 30 | //弹窗跳转 31 | static public function alertLocation($_info, $_url) { 32 | if (!empty($_info)) { 33 | echo ""; 34 | exit(); 35 | } else { 36 | header('Location:'.$_url); 37 | exit(); 38 | } 39 | } 40 | 41 | 42 | //关闭页面 43 | static public function closing($info){ 44 | echo ""; 45 | } 46 | 47 | 48 | //数据库输入过滤 49 | static public function mysqlString($_date) { 50 | $mysqli = DB::getDB(); 51 | return !GPC ? mysqli_real_escape_string($mysqli,$_date) : $_date; 52 | } 53 | 54 | 55 | //显示html过滤 56 | static public function htmlString($date) 57 | { 58 | if(is_array($date)) 59 | foreach ($date as $key => $value) 60 | { 61 | $string[$key] = TooL::htmlString($value); 62 | } 63 | 64 | elseif (is_object($date)) 65 | foreach ($date as $key => $value) 66 | { 67 | @$string->$key = TooL::htmlString($value); 68 | } 69 | else 70 | $string = htmlspecialchars($date); 71 | 72 | return $string; 73 | } 74 | 75 | 76 | //清理session 77 | static public function unSession() 78 | { 79 | if(session_start()) 80 | session_destroy(); 81 | } 82 | } 83 | 84 | ?> -------------------------------------------------------------------------------- /includes/Validate.class.php: -------------------------------------------------------------------------------- 1 | $length) 26 | return TRUE; 27 | return FALSE; 28 | } 29 | elseif ($flag == "equal") 30 | { 31 | if (mb_strlen(trim($date),"utf-8") != $length) 32 | return TRUE; 33 | return FALSE; 34 | } 35 | else 36 | { 37 | Tool::alertBack("参数传递有误,必须是min或者max!!"); 38 | } 39 | 40 | } 41 | 42 | //数据是否为数字 43 | static public function checkNum($date) 44 | { 45 | if(!is_numeric($date)) 46 | return true; 47 | return false; 48 | } 49 | 50 | 51 | //数据是否一致的方法 52 | static public function checkEquals($date ,$other) 53 | { 54 | if (trim($date != $other)) 55 | return TRUE; 56 | return false; 57 | } 58 | 59 | //验证session 60 | static public function checkSession() 61 | { 62 | if(!isset($_SESSION['admin'])) 63 | Tool::alertLocation('非法登录!', 'admin_login.php'); 64 | } 65 | 66 | 67 | //验证电子邮箱 68 | static public function checkEmail($data) 69 | { 70 | $str = '/^[\w\-\.]+@[\w\-\.]+[\.\w+]+$/'; 71 | if(!preg_match($str, $data)) 72 | return true; 73 | return false; 74 | } 75 | } 76 | 77 | ?> -------------------------------------------------------------------------------- /includes/ValidateCode.class.php: -------------------------------------------------------------------------------- 1 | font = ROOT_PATH."/fonts/elephant.ttf"; 20 | } 21 | 22 | //生成随机码 23 | private function createCode() 24 | { 25 | $this->code = ""; 26 | $len = strlen($this->charset) - 1; 27 | for($i=0;$i<$this->codelen;$i++) 28 | { 29 | $this->code .= $this->charset[mt_rand(0,$len)]; 30 | } 31 | 32 | return $this->code; 33 | } 34 | 35 | 36 | //生成背景 37 | private function createBg() 38 | { 39 | $this->img = imagecreatetruecolor($this->width, $this->height); 40 | $color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255)); 41 | imagefilledrectangle($this->img, 0, $this->height, $this->width, 0, $color); 42 | } 43 | 44 | //输出背景 45 | private function outPut() 46 | { 47 | // ob_clean(); 48 | header('Content-type:image/png'); 49 | imagepng($this->img); 50 | imagedestroy($this->img); 51 | 52 | } 53 | 54 | //生成字体 55 | private function createFont() 56 | { 57 | 58 | $x = $this->width / 4; 59 | for($i=0;$i<$this->codelen;$i++) 60 | { 61 | $this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156)); 62 | imagettftext($this->img, $this->fontsize, mt_rand(-30,30), $x*$i+mt_rand(1,5), $this->height/1.4, $this->fontcolor, $this->font, $this->code[$i]); 63 | } 64 | } 65 | 66 | 67 | //生成线条和雪花 68 | private function createLine() 69 | { 70 | for($i=0;$i<6;$i++) 71 | { 72 | $color = imagecolorallocate($this->img, mt_rand(0,156),mt_rand(0,156),mt_rand(0,156)); 73 | imageline($this->img, mt_rand(0,$this->width), mt_rand(0,$this->height), mt_rand(0,$this->width), mt_rand(0,$this->height), $color); 74 | } 75 | 76 | // for($i=0;$i<100;$i++) 77 | // { 78 | // $color = imagecolorallocate($this->img, mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); 79 | // imagestring($this->img, mt_rand(1,5), mt_rand(0,$this->width), mt_rand(0,$this->height), '*', $color); 80 | // } 81 | 82 | 83 | } 84 | 85 | //对外生成 86 | public function doimg() 87 | { 88 | $this->createBg(); 89 | $this->createCode(); 90 | $this->createLine(); 91 | $this->createFont(); 92 | $this->outPut(); 93 | } 94 | 95 | //获取验证码 96 | public function getCode() 97 | { 98 | return strtolower($this->code); 99 | } 100 | 101 | } 102 | 103 | ?> -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | action(); 10 | 11 | //执行diaplay,生成编译文件,并且引入 12 | $tpl->display("index.tpl"); 13 | 14 | 15 | ?> -------------------------------------------------------------------------------- /init.inc.php: -------------------------------------------------------------------------------- 1 | assign("login", true); 49 | $reader = new ReaderModel(); 50 | $obj = $reader->getOneReader($rid); 51 | $tpl->assign("reader", $obj->reader); 52 | $tpl->assign("face", $obj->face); 53 | } 54 | 55 | 56 | ?> -------------------------------------------------------------------------------- /jcrop/css/Jcrop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/jcrop/css/Jcrop.gif -------------------------------------------------------------------------------- /jcrop/css/jquery.Jcrop.min.css: -------------------------------------------------------------------------------- 1 | /* jquery.Jcrop.min.css v0.9.12 (build:20130126) */ 2 | .jcrop-holder{direction:ltr;text-align:left;} 3 | .jcrop-vline,.jcrop-hline{background:#FFF url(Jcrop.gif);font-size:0;position:absolute;} 4 | .jcrop-vline{height:100%;width:1px!important;} 5 | .jcrop-vline.right{right:0;} 6 | .jcrop-hline{height:1px!important;width:100%;} 7 | .jcrop-hline.bottom{bottom:0;} 8 | .jcrop-tracker{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;height:100%;width:100%;} 9 | .jcrop-handle{background-color:#333;border:1px #EEE solid;font-size:1px;height:7px;width:7px;} 10 | .jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0;} 11 | .jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px;} 12 | .jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%;} 13 | .jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%;} 14 | .jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0;} 15 | .jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0;} 16 | .jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0;} 17 | .jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px;} 18 | .jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%;} 19 | .jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px;} 20 | .jcrop-dragbar.ord-n{margin-top:-4px;} 21 | .jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px;} 22 | .jcrop-dragbar.ord-e{margin-right:-4px;right:0;} 23 | .jcrop-dragbar.ord-w{margin-left:-4px;} 24 | .jcrop-light .jcrop-vline,.jcrop-light .jcrop-hline{background:#FFF;filter:alpha(opacity=70)!important;opacity:.70!important;} 25 | .jcrop-light .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#000;border-color:#FFF;border-radius:3px;} 26 | .jcrop-dark .jcrop-vline,.jcrop-dark .jcrop-hline{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important;} 27 | .jcrop-dark .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#FFF;border-color:#000;border-radius:3px;} 28 | .solid-line .jcrop-vline,.solid-line .jcrop-hline{background:#FFF;} 29 | .jcrop-holder img,img.jcrop-preview{max-width:none;} 30 | -------------------------------------------------------------------------------- /js/author.js: -------------------------------------------------------------------------------- 1 | window.onload=function(){ 2 | $(".left").css("height",document.documentElement.clientHeight); 3 | $(".top").css("width",document.documentElement.clientWidth-150); 4 | $(".navs").css("width",document.documentElement.clientWidth-150); 5 | window.onresize=function(){ 6 | $(".left").css("height",document.documentElement.clientHeight); 7 | $(".top").css("width",document.documentElement.clientWidth-150); 8 | $(".navs").css("width",document.documentElement.clientWidth-150); 9 | }; 10 | 11 | var li1 = $("#ul1 li"); 12 | var a1 = li1.children("a"); 13 | for(i=0;i/gm, '\n'); 43 | $("#area").html(str); 44 | }; 45 | 46 | 47 | 48 | 49 | //上传插件 50 | $(function(){ 51 | $("#uploads").uploadify({ 52 | 'auto' : true, 53 | 'multi' : false, 54 | 'uploadLimit' : 10, 55 | 'buttonText' : '请选择图片', 56 | 'height' : 30, 57 | 'width' : 100, 58 | 'removeCompleted' : false, 59 | 'fileObjName' : "Filedata", 60 | 'method' : 'post', 61 | 'swf' : 'uploadify/uploadify.swf', 62 | 'uploader' : 'uploadify/uploadify.php', 63 | 'fileTypeExts' : '*.gif; *.jpg; *.jpeg; *.png;', 64 | 'fileSizeLimit' : '1024KB', 65 | 'onUploadSuccess' : function(file, data, response) { 66 | var msg = $.parseJSON(data); 67 | if( msg.result_code == 1 ){ 68 | $("#surface").attr("value",msg.result_des); 69 | $("#pic").attr("src", msg.result_des); 70 | } 71 | else if(msg.result_code == 101) 72 | {$("#text").val(msg.result_des);} 73 | else 74 | { 75 | alert("上传失败!"); 76 | } 77 | } 78 | 79 | }) 80 | }); 81 | 82 | 83 | 84 | 85 | //章节字数统计 86 | $("#charcount").css("color", "red"); 87 | 88 | if($("#charcount").text() == "") 89 | $("#charcount").html("0"); 90 | 91 | if($("#text1").length > 0){ 92 | CKEDITOR.replace("text1"); 93 | var editor = CKEDITOR.instances.text1;//获取编辑器对象,editor1 为 textarea 的ID 94 | editor.on("change", function(){ 95 | var content = editor.getData(); 96 | content = content.replace(/<[^>]+>/g,""); 97 | content = content.replace(/ /g,""); 98 | content = content.replace(/ /g,""); 99 | content = content.replace(/ /g,""); 100 | $("#charcount").html(content.length); 101 | $("#count").attr("value", content.length); 102 | }); 103 | } 104 | 105 | 106 | 107 | 108 | //textarea置换换行符 109 | function subclick(){ 110 | var str = $("#area").val(); 111 | $("#area").val(str.replace(/\n/gm, '
')); 112 | } 113 | 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /js/authorr.js: -------------------------------------------------------------------------------- 1 | function checkForm(){ 2 | var fm = document.register; 3 | 4 | if(!/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/.test(fm.email.value)) 5 | { 6 | alert("邮箱输入不合法!"); 7 | fm.email.value = ""; 8 | fm.email.focus(); 9 | return false; 10 | } 11 | 12 | if(fm.name.value.length < 2) 13 | { 14 | alert("警告:请输入正确的名字!!"); 15 | fm.name.focus(); 16 | return false; 17 | } 18 | 19 | if(fm.pass.value.length < 6) 20 | { 21 | alert("警告:密码不能少于6位!!"); 22 | fm.pass.focus(); 23 | return false; 24 | } 25 | 26 | if(fm.pass.value != fm.notpass.value) 27 | { 28 | alert("警告:两次输入的密码不一致!"); 29 | fm.notpass.focus(); 30 | return false; 31 | } 32 | 33 | if(fm.pseudonym.value.length < 2 || fm.pseudonym.value.length > 11) 34 | { 35 | alert("警告:笔名不能少于两位,多于11位!!"); 36 | fm.pseudonym.focus(); 37 | return false; 38 | } 39 | 40 | return true; 41 | } -------------------------------------------------------------------------------- /js/basic.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | //用户模块 3 | if(typeof $("#userf").offset() != 'undefined'){ 4 | var x = $("#userf").offset().top + 49; 5 | var y = $("#userf").offset().left - 1; 6 | $("#userinfo").css("top", x + 'px').css("left", y + "px"); 7 | } 8 | $('#userf').mouseover(function(){ 9 | $('#userf').css('background','#fff'); 10 | $('#userinfo').css('display','block'); 11 | }); 12 | $('#userf').mouseout(function(){ 13 | $('#userf').css('background','#2a2a2a'); 14 | $('#userinfo').css('display','none'); 15 | }); 16 | 17 | $('#userinfo').mouseover(function(){ 18 | $('#userf').css('background','#fff'); 19 | $('#userinfo').css('display','block'); 20 | }); 21 | 22 | $('#userinfo').mouseout(function(){ 23 | $('#userf').css('background','#2a2a2a'); 24 | $('#userinfo').css('display','none'); 25 | }); 26 | })(); 27 | 28 | //弹出登录窗口 29 | $(".denglu").click(function(){ 30 | $("#screen").css("display","block"); 31 | $("#login").fadeIn(200); //淡入元素 32 | }); 33 | 34 | //关闭弹窗 35 | $(".closes").click(function(){ 36 | $("#login").fadeOut(100); //淡出元素 37 | $("#screen").css("display","none"); 38 | }); 39 | 40 | (function(){ 41 | var top = (document.documentElement.clientHeight - 350) / 2; 42 | var left = (document.documentElement.clientWidth - 470) / 2; 43 | 44 | $("#screen").width(document.documentElement.clientWidth); 45 | $("#screen").height(document.documentElement.clientHeight); 46 | 47 | 48 | $("#login").css("top",top+'px').css("left",left+'px'); 49 | 50 | window.onresize = function(){ 51 | var top = (document.documentElement.clientHeight - 350) / 2; 52 | var left = (document.documentElement.clientWidth - 470) / 2; 53 | 54 | $("#screen").width(document.documentElement.clientWidth); 55 | $("#screen").height(document.documentElement.clientHeight); 56 | 57 | 58 | $("#login").css("top",top+'px').css("left",left+'px'); 59 | 60 | var top1 = (document.documentElement.clientHeight - 200)/2; 61 | var left1 = (document.documentElement.clientWidth - 200)/2; 62 | $("#tip").css("top",top1+'px').css("left",left1+'px'); 63 | 64 | if(typeof $("#userf").offset() != 'undefined'){ 65 | var x = $("#userf").offset().top + 49; 66 | var y = $("#userf").offset().left - 1; 67 | $("#userinfo").css("top", x + 'px').css("left", y + "px"); 68 | } 69 | 70 | }; 71 | })(); -------------------------------------------------------------------------------- /js/bbs.js: -------------------------------------------------------------------------------- 1 | window.onload=function(){ 2 | //用户信息展示 3 | (function(){ 4 | if($(".user").length !== 0){ 5 | var x = $(".user").offset().top + 50; 6 | var y = $(".user").offset().left - 1; 7 | $(".userinfo").css("top", x + 'px').css("left", y + "px"); 8 | $('.user').mouseover(function(){ 9 | $('.user').css('background','#fff'); 10 | $('.userinfo').css('display','block'); 11 | }); 12 | 13 | $('.user').mouseout(function(){ 14 | $('.user').css('background','#019c73'); 15 | $('.userinfo').css('display','none'); 16 | }); 17 | 18 | $('.userinfo').mouseover(function(){ 19 | $('.user').css('background','#fff'); 20 | $('.userinfo').css('display','block'); 21 | }); 22 | 23 | $('.userinfo').mouseout(function(){ 24 | $('.user').css('background','#019c73'); 25 | $('.userinfo').css('display','none'); 26 | }); 27 | } 28 | })(); 29 | 30 | 31 | //用户登录 32 | (function(){ 33 | var top = (document.documentElement.clientHeight - 350) / 2; 34 | var left = (document.documentElement.clientWidth - 470) / 2; 35 | $("#screen").width(document.documentElement.clientWidth); 36 | $("#screen").height(document.documentElement.clientHeight); 37 | $("#login").css("top",top+'px').css("left",left+'px'); 38 | window.onresize = function(){ 39 | var top = (document.documentElement.clientHeight - 350) / 2; 40 | var left = (document.documentElement.clientWidth - 470) / 2; 41 | $("#screen").width(document.documentElement.clientWidth); 42 | $("#screen").height(document.documentElement.clientHeight); 43 | $("#login").css("top",top+'px').css("left",left+'px'); 44 | 45 | var x = $(".user").offset().top + 50; 46 | var y = $(".user").offset().left - 1; 47 | $(".userinfo").css("top", x + 'px').css("left", y + "px"); 48 | } 49 | })(); 50 | 51 | }; 52 | 53 | //关闭弹窗 54 | $(".closes").click(function(){ 55 | $("#login").fadeOut(100); //淡出元素 56 | $("#screen").css("display","none"); 57 | }); 58 | 59 | 60 | //弹出登录窗口 61 | $(".denglu").click(function(){ 62 | $("#screen").css("display","block"); 63 | $("#login").fadeIn(200); //淡入元素 64 | }); 65 | 66 | 67 | //检验表单 68 | function checkForm(){ 69 | var title = $("#title").val(); 70 | var editor = CKEDITOR.instances.text1; 71 | var content = editor.getData(); 72 | if(title.length > 80){ 73 | alert("标题不能超过80个字!!"); 74 | $("#title").focus(); 75 | return false; 76 | } 77 | if(title == ""){ 78 | alert("标题不能为空!!"); 79 | $("#title").focus(); 80 | return false; 81 | } 82 | if(content.length == 0){ 83 | alert("内容不能为空!!"); 84 | editor.focus(); 85 | return false; 86 | } 87 | 88 | return true; 89 | } 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /js/book.js: -------------------------------------------------------------------------------- 1 | //加入书架 2 | $("#addbook").click(function(){ 3 | var xhr = new XMLHttpRequest(); 4 | xhr.onreadystatechange = function(){ 5 | if(xhr.readyState == 4){ 6 | if(xhr.status == 200){ 7 | $("#screen").css("display", "block"); 8 | $("#tip").css("display", "block"); 9 | $("#p").text(xhr.responseText); 10 | } 11 | else{ 12 | $("#screen").css("display", "block"); 13 | $("#tip").css("display", "block"); 14 | $("#p").text("添加失败!"); 15 | } 16 | } 17 | }; 18 | var url = './ajax/bookrack.php?rand='+Math.random()+'&sid='+$("#sid").val()+'&bid='+$("#bid").val()+'&aid='+$("#aid").val(); 19 | xhr.open('get', url, true); 20 | xhr.send(null); 21 | 22 | t = countTime(); 23 | }); 24 | 25 | //发表书评 26 | $("#publish").click(function(){ 27 | if($('#content').val() == ''){ 28 | $("#screen").css("display", "block"); 29 | $("#tip").css("display", "block"); 30 | $("#p").text("内容不能为空!"); 31 | } 32 | else{ 33 | var xhr = new XMLHttpRequest(); 34 | xhr.onreadystatechange = function(){ 35 | if(xhr.readyState = 4){ 36 | if(xhr.status = 200){ 37 | $("#screen").css("display", "block"); 38 | $("#tip").css("display", "block"); 39 | $("#p").text(xhr.responseText); 40 | } 41 | else{ 42 | $("#screen").css("display", "block"); 43 | $("#tip").css("display", "block"); 44 | $("#p").text("发表失败!"); 45 | } 46 | } 47 | }; 48 | var url = './ajax/publish.php?rand='+Math.random()+'&content='+$('#content').val()+'&rid='+$('#aid').val()+'&attr=b'+'&oid='+$("#bid").val(); 49 | xhr.open('get', url, true); 50 | xhr.send(null); 51 | } 52 | 53 | //计时器 54 | t = countTime(); 55 | }); 56 | 57 | //关闭弹窗 58 | $("#sure").click(function(){ 59 | $("#screen").css("display", "none"); 60 | $("#tip").css("display", "none"); 61 | if($("#aid").val() != ""){ 62 | window.location.reload(); 63 | } 64 | 65 | clearTimeout(t); 66 | }); 67 | 68 | //获取位置 69 | (function(){ 70 | $("#tip").css("top", (document.documentElement.clientHeight-100)/2 + 'px'); 71 | $("#tip").css("left", (document.documentElement.clientWidth-100)/2 + 'px'); 72 | })(); 73 | 74 | //计时器 75 | function countTime(){ 76 | return setTimeout(function(){ 77 | $("#screen").css("display", "none"); 78 | $("#tip").css("display", "none"); 79 | window.location.reload(); 80 | }, 4000); 81 | }; 82 | -------------------------------------------------------------------------------- /js/index.js: -------------------------------------------------------------------------------- 1 | //排行榜模块 2 | (function(){ 3 | var ul = $(".rank").children("ul"); 4 | for(var i=0;i= max.length) 61 | index = 0; 62 | change(index); 63 | index++; 64 | } 65 | 66 | //求索引 67 | function getIndex(obj){ 68 | var a = obj.parentNode.children; 69 | for(var i=0;i -1){ 7 | $("#a").children("a").attr("class", ""); 8 | a[i].className = "active"; 9 | } 10 | } 11 | })(); 12 | 13 | //排行榜模块的功能 14 | (function(){ 15 | var ul = $(".rank").children("ul"); 16 | for(var i=0;i 11) 29 | { 30 | alert("警告:用户名不能少于两位或者多于11位!"); 31 | add.user.focus(); 32 | return false; 33 | } 34 | 35 | if(add.pass.value == "" || add.pass.length < 6) 36 | { 37 | alert("警告:密码不能少于6位!"); 38 | add.pass.focus(); 39 | return false; 40 | } 41 | 42 | if(add.pass.value != add.notpass.value) 43 | { 44 | alert("警告:两次输入的密码不一致!"); 45 | add.notpass.focus(); 46 | return false; 47 | } 48 | 49 | return true; 50 | } 51 | 52 | 53 | function checkUpdateForm(){ 54 | var update = document.update; 55 | 56 | if(update.pass.value != ""){ 57 | if(update.pass.value.length < 6) 58 | { 59 | alert("警告:密码不能少于6位!"); 60 | update.pass.focus(); 61 | return false; 62 | } 63 | } 64 | 65 | return true; 66 | } -------------------------------------------------------------------------------- /js/notice.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/js/notice.js -------------------------------------------------------------------------------- /js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /js/rank.js: -------------------------------------------------------------------------------- 1 | window.onload=function(){ 2 | //导航加深颜色 3 | (function(){ 4 | var a = $(".a").children("li").children("a"); 5 | for(var i=0;i -1){ 7 | $("#a").children("a").attr("class", ""); 8 | a[i].className = "active"; 9 | } 10 | } 11 | })(); 12 | 13 | } -------------------------------------------------------------------------------- /js/register.js: -------------------------------------------------------------------------------- 1 | function checkForm(){ 2 | var fm = document.register; 3 | 4 | if(!/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/.test(fm.email.value)) 5 | { 6 | alert("邮箱输入不合法!"); 7 | fm.email.value = ""; 8 | fm.email.focus(); 9 | return false; 10 | } 11 | 12 | if(fm.reader.value.length < 2) 13 | { 14 | alert("警告:昵称不能少于两位!"); 15 | fm.reader.focus(); 16 | return false; 17 | } 18 | 19 | if(fm.reader.value.length > 11) 20 | { 21 | alert("警告:昵称不能对于11位!"); 22 | fm.reader.focus(); 23 | return false; 24 | } 25 | 26 | if(fm.pass.value.length < 6) 27 | { 28 | alert("警告:昵称不能对于11位!"); 29 | fm.pass.focus(); 30 | return false; 31 | } 32 | 33 | if(fm.pass.value != fm.notpass.value) 34 | { 35 | alert("警告:两次输入的密码不一致!"); 36 | fm.notpass.focus(); 37 | return false; 38 | } 39 | 40 | return true; 41 | } -------------------------------------------------------------------------------- /js/search.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var option = $('#select').children('option'); 3 | for(var i=0;iaction(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("library.tpl"); 12 | 13 | 14 | ?> -------------------------------------------------------------------------------- /model/AuthorModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 11 | } 12 | 13 | //拦截器(__get) 14 | public function __get($_key) { 15 | return $this->$_key; 16 | } 17 | 18 | 19 | //获取记录数量 20 | public function getAuthorTotal($key=""){ 21 | $sql = "SELECT COUNT(*) FROM author WHERE name LIKE '%$key%' OR pseudonym LIKE '%$key%' OR email LIKE '%$key%'"; 22 | 23 | return parent::total($sql); 24 | } 25 | 26 | 27 | //获取全部数据 28 | public function getAllAuthor($key=""){ 29 | $sql = "SELECT * FROM author WHERE name LIKE '%$key%' OR pseudonym LIKE '%$key%' OR email LIKE '%$key%' ORDER BY id DESC $this->limit"; 30 | 31 | return parent::all($sql); 32 | } 33 | 34 | 35 | //获取特定一条数据 36 | public function getOneAuthor($id){ 37 | $sql = "SELECT * FROM author WHERE id='$id'"; 38 | 39 | return parent::one($sql); 40 | } 41 | 42 | 43 | //检验登录 44 | public function login($email, $pass){ 45 | $sql = "SELECT id,pseudonym FROM author WHERE email='$email' AND pass='$pass'"; 46 | 47 | return parent::one($sql); 48 | } 49 | 50 | 51 | //检验邮箱是否已存在 52 | public function checkEmail($email){ 53 | $sql = "SELECT id FROM author WHERE email='$email'"; 54 | 55 | return parent::one($sql); 56 | } 57 | 58 | 59 | //检验笔名是否已存在 60 | public function checkPseudonym($pseudonym){ 61 | $sql = "SELECT id FROM author WHERE pseudonym='$pseudonym'"; 62 | 63 | return parent::one($sql); 64 | } 65 | 66 | 67 | //增加数据 68 | public function add($email, $name, $pass, $pseudonym){ 69 | $sql = "INSERT INTO author(email,name,pass,pseudonym) VALUES('$email','$name','$pass','$pseudonym')"; 70 | 71 | return parent::aud($sql); 72 | } 73 | 74 | 75 | //修改数据 76 | public function update($id, $name, $pseudonym, $pass){ 77 | $sql = "UPDATE author SET name='$name',pseudonym='$pseudonym',pass='$pass' WHERE id='$id'"; 78 | 79 | return parent::aud($sql); 80 | } 81 | 82 | 83 | //删除数据 84 | public function delete($id){ 85 | $sql = "DELETE FROM author WHERE id='$id'"; 86 | 87 | return parent::aud($sql); 88 | } 89 | } 90 | 91 | ?> -------------------------------------------------------------------------------- /model/BbsModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 12 | } 13 | 14 | //拦截器(__get) 15 | public function __get($_key) { 16 | return $this->$_key; 17 | } 18 | 19 | //获取总数量 20 | public function getAllTotal(){ 21 | $sql = "SELECT COUNT(*) FROM bbs"; 22 | 23 | return parent::total($sql); 24 | } 25 | 26 | 27 | //获取除了公告之外的帖子总量 28 | public function getTotalExceptNotice(){ 29 | $sql = "SELECT COUNT(*) FROM bbs WHERE rid<>6"; 30 | 31 | return parent::total($sql); 32 | } 33 | 34 | 35 | //获取通过审核总数量 36 | public function getNumberOfState(){ 37 | $sql = "SELECT COUNT(*) FROM bbs WHERE state!=0"; 38 | 39 | return parent::total($sql); 40 | } 41 | 42 | 43 | //获取用户的帖子数量 44 | public function getNumberByRid($rid, $key=""){ 45 | $sql = "SELECT COUNT(*) FROM bbs WHERE rid='$rid' AND title LIKE '%$key%'"; 46 | 47 | return parent::total($sql); 48 | } 49 | 50 | 51 | //获取用户的所有帖子 52 | public function getAllByRid($rid, $key=""){ 53 | $sql = "SELECT id,time,title FROM bbs WHERE rid='$rid' AND title LIKE '%$key%' ORDER BY time DESC"; 54 | 55 | return parent::all($sql); 56 | } 57 | 58 | 59 | //获取某帖子 60 | public function getBBs($id){ 61 | $sql = "SELECT b.title,b.content,r.reader,b.time,b.state FROM bbs b,reader r WHERE b.id='$id' AND b.rid=r.id"; 62 | 63 | return parent::one($sql); 64 | } 65 | 66 | 67 | //获取所有帖子 68 | public function getAllbbs(){ 69 | $sql = "SELECT b.id,b.title,r.reader,b.state,b.time,r.face 70 | FROM bbs b,reader r 71 | WHERE b.rid=r.id 72 | ORDER BY b.state DESC,b.time DESC 73 | $this->limit"; 74 | 75 | return parent::all($sql); 76 | } 77 | 78 | 79 | //获取初公告之外的所有帖子 80 | public function getAllEceptNotice($key=""){ 81 | $sql = "SELECT * FROM 82 | (SELECT b.id,b.title,r.reader,b.state,b.time,r.face 83 | FROM bbs b,reader r 84 | WHERE b.rid=r.id AND b.rid<>6 85 | ORDER BY b.state DESC,b.time DESC) a 86 | WHERE a.title LIKE '%$key%' OR a.reader LIKE '%$key%' 87 | $this->limit"; 88 | 89 | return parent::all($sql); 90 | } 91 | 92 | 93 | //后台模糊查找时的数量 94 | public function getNumberBy($key=""){ 95 | $sql = "SELECT COUNT(*) FROM 96 | (SELECT b.id,b.title,r.reader,b.state,b.time,r.face 97 | FROM bbs b,reader r 98 | WHERE b.rid=r.id AND b.rid<>6 99 | ORDER BY b.state DESC,b.time DESC) a 100 | WHERE a.title LIKE '%$key%' OR a.reader LIKE '%$key%'"; 101 | 102 | return parent::total($sql); 103 | } 104 | 105 | 106 | //添加 107 | public function add($rid, $title, $content, $time){ 108 | $sql = "INSERT INTO bbs(rid,title,content,time) VALUES('$rid','$title','$content','$time')"; 109 | 110 | return parent::aud($sql); 111 | } 112 | 113 | 114 | //发表公告 115 | public function notice($rid, $title, $content, $time, $state){ 116 | $sql = "INSERT INTO bbs(rid,title,content,time,state) VALUES('$rid','$title','$content','$time','$state')"; 117 | 118 | return parent::aud($sql); 119 | } 120 | 121 | 122 | //修改公告 123 | public function updateNotice($id, $title, $content){ 124 | $sql = "UPDATE bbs SET title='$title',content='$content' WHERE id='$id'"; 125 | 126 | return parent::aud($sql); 127 | } 128 | 129 | 130 | //更改状态 131 | public function updateState($id, $state){ 132 | $sql = "UPDATE bbs SET state='$state' WHERE id='$id'"; 133 | 134 | return parent::aud($sql); 135 | } 136 | 137 | 138 | //删除 139 | public function delete($id){ 140 | $sql = "DELETE FROM bbs WHERE id='$id'"; 141 | 142 | return parent::aud($sql); 143 | } 144 | 145 | 146 | } 147 | 148 | ?> -------------------------------------------------------------------------------- /model/BookrackModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 12 | } 13 | 14 | //拦截器(__get) 15 | public function __get($_key) { 16 | return $this->$_key; 17 | } 18 | 19 | 20 | //获取用户书架的书籍数量 21 | public function getNumber($rid){ 22 | $sql = "SELECT COUNT(*) FROM bookrack WHERE rid='$rid'"; 23 | 24 | return parent::total($sql); 25 | } 26 | 27 | 28 | //获取某本书的订阅数量 29 | public function getRacks($bid){ 30 | $sql = "SELECT COUNT(*) count FROM bookrack WHERE bid='$bid'"; 31 | 32 | return parent::total($sql); 33 | } 34 | 35 | 36 | //获取书架中所有的书籍 37 | public function getBookrack($rid){ 38 | $sql = "SELECT b.kid,b.name,b.aid aid,br.bid,b.time,br.sid 39 | FROM bookrack br,book b 40 | WHERE br.rid='$rid' AND br.bid=b.id 41 | ORDER BY b.time DESC 42 | $this->limit"; 43 | 44 | return parent::all($sql); 45 | } 46 | 47 | 48 | //检验是否有记录 49 | public function checkId($bid, $rid){ 50 | $sql = "SELECT bid FROM bookrack WHERE bid='$bid' AND rid='$rid' LIMIT 0,1"; 51 | 52 | return parent::one($sql); 53 | } 54 | 55 | 56 | //添加 57 | public function add($sid, $bid, $rid){ 58 | $sql = "INSERT INTO bookrack(sid,bid,rid) VALUES('$sid','$bid','$rid')"; 59 | 60 | return parent::aud($sql); 61 | } 62 | 63 | 64 | //更新章节记录 65 | public function updateSid($sid, $bid, $rid){ 66 | $sql = "UPDATE bookrack SET sid='$sid' WHERE bid='$bid' AND rid='$rid'"; 67 | 68 | return parent::aud($sql); 69 | } 70 | 71 | //删除 72 | public function delete($bid, $rid){ 73 | $sql = "DELETE FROM bookrack WHERE bid='$bid' AND rid='$rid'"; 74 | 75 | return parent::aud($sql); 76 | } 77 | 78 | 79 | 80 | } 81 | 82 | ?> -------------------------------------------------------------------------------- /model/KindModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 12 | } 13 | 14 | //拦截器(__get) 15 | public function __get($_key) { 16 | return $this->$_key; 17 | } 18 | 19 | 20 | //获取非主类别 21 | public function getChild(){ 22 | $sql = "SELECT id,name FROM kind WHERE pid<>0"; 23 | 24 | return parent::all($sql); 25 | } 26 | 27 | 28 | //前台获取主类别 29 | public function getFronKind(){ 30 | $sql = "SELECT id,name FROM kind WHERE pid=0"; 31 | 32 | return parent::all($sql); 33 | } 34 | 35 | 36 | //主页获取6个主类别 37 | public function getSixKind(){ 38 | $sql = "SELECT id,name FROM kind WHERE pid=0 LIMIT 0,6"; 39 | 40 | return parent::all($sql); 41 | } 42 | 43 | //排行榜获取7个主类别 44 | public function getSevenKind(){ 45 | $sql = "SELECT id,name FROM kind WHERE pid=0 LIMIT 0,7"; 46 | 47 | return parent::all($sql); 48 | } 49 | 50 | //前台获取子类别 51 | public function getFronKChild($pid){ 52 | $sql = "SELECT id,name FROM kind WHERE pid='$pid'"; 53 | 54 | return parent::all($sql); 55 | } 56 | 57 | //获取主类别数量 58 | public function getKindToatal($key=""){ 59 | $sql = "SELECT COUNT(*) FROM kind WHERE pid=0 AND name LIKE '%$key%'"; 60 | 61 | return parent::total($sql); 62 | } 63 | 64 | 65 | //检查类别名称是否重复 66 | public function checkName($name){ 67 | $sql = "SELECT id FROM kind WHERE name='$name'"; 68 | 69 | return parent::one($sql); 70 | } 71 | 72 | 73 | //获取所有主类别 74 | public function getAllKind($key=''){ 75 | $sql = "SELECT id,name,info FROM kind WHERE pid=0 AND name LIKE '%$key%' $this->limit"; 76 | 77 | return parent::all($sql); 78 | } 79 | 80 | 81 | //获取主类别下子类别的数量 82 | public function getChildTotal($pid, $key=''){ 83 | $sql = "SELECT COUNT(*) FROM kind WHERE pid='$pid' AND name LIKE '%$key%'"; 84 | 85 | return parent::total($sql); 86 | } 87 | 88 | 89 | //获取主类别下的子类别 90 | public function getAllChild($pid, $key=''){ 91 | $sql = "SELECT id,name,info FROM kind WHERE pid='$pid' AND name LIKE '%$key%' $this->limit"; 92 | 93 | return parent::all($sql); 94 | } 95 | 96 | 97 | //获取单个类型 98 | public function getOneKind($id){ 99 | $sql = "SELECT k1.name,k1.info,k2.id iid,k2.name nname FROM kind k1 LEFT JOIN kind k2 ON k1.pid=k2.id WHERE k1.id='$id'"; 100 | 101 | return parent::one($sql); 102 | } 103 | 104 | 105 | //新增类别 106 | public function add($name, $info, $pid){ 107 | $sql = "INSERT INTO kind(name,info,pid) VALUES('$name','$info','$pid')"; 108 | 109 | return parent::aud($sql); 110 | } 111 | 112 | 113 | //修改类别 114 | public function update($id, $name, $info){ 115 | $sql = "UPDATE kind SET name='$name',info='$info' WHERE id='$id'"; 116 | 117 | return parent::aud($sql); 118 | } 119 | 120 | 121 | //删除 122 | public function delete($id){ 123 | $sql = "DELETE FROM kind WHERE id='$id' LIMIT 1"; 124 | 125 | return parent::aud($sql); 126 | } 127 | } 128 | 129 | ?> -------------------------------------------------------------------------------- /model/ManageModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 9 | } 10 | 11 | //拦截器(__get) 12 | public function __get($_key) { 13 | return $this->$_key; 14 | } 15 | 16 | 17 | //获取后台用户 18 | public function getLoginManage($user, $pass){ 19 | $sql = "SELECT m.user,m.level,m.pass,l.name FROM manage m,level l WHERE m.user='$user' AND m.level = l.id"; 20 | 21 | return parent::one($sql); 22 | } 23 | 24 | 25 | //获取所有权限等级 26 | public function getAllLevel() 27 | { 28 | $sql = "SELECT id,name FROM level"; 29 | 30 | return parent::all($sql); 31 | } 32 | 33 | //获取记录总数量 34 | public function getManageTotal(){ 35 | $sql = "SELECT COUNT(*) FROM manage"; 36 | 37 | return parent::total($sql); 38 | } 39 | 40 | 41 | //获取所有记录 42 | public function getAllManage($key="") 43 | { 44 | $sql = "SELECT * FROM 45 | (SELECT m.id,m.user,l.name FROM manage m,level l WHERE l.id=m.level) a 46 | WHERE a.user LIKE '%$key%' OR a.name LIKE '%$key%' 47 | $this->limit"; 48 | 49 | return parent::all($sql); 50 | } 51 | 52 | 53 | //后台模糊查找的数量 54 | public function getNumberBy($key="") 55 | { 56 | $sql = "SELECT COUNT(*) FROM 57 | (SELECT m.id,m.user,l.name FROM manage m,level l WHERE l.id=m.level) a 58 | WHERE a.user LIKE '%$key%' OR a.name LIKE '%$key%'"; 59 | 60 | return parent::total($sql); 61 | } 62 | 63 | 64 | //获取一条数据 65 | public function getOneManage($id){ 66 | $sql = "SELECT user,level,pass FROM manage WHERE id='$id'"; 67 | 68 | return parent::one($sql); 69 | } 70 | 71 | //新增数据 72 | public function add($user, $pass, $level){ 73 | $sql = "INSERT INTO manage(user,pass,level) VALUES('$user','$pass','$level')"; 74 | 75 | return parent::aud($sql); 76 | } 77 | 78 | //更新数据 79 | public function update($id, $user, $pass, $level){ 80 | $sql = "UPDATE manage SET user='$user',pass='$pass',level='$level' WHERE id='$id' LIMIT 1"; 81 | 82 | return parent::aud($sql); 83 | } 84 | 85 | //删除 86 | public function delete($id) 87 | { 88 | $sql = "DELETE FROM manage WHERE id='$id'"; 89 | 90 | return parent::aud($sql); 91 | } 92 | } 93 | 94 | ?> -------------------------------------------------------------------------------- /model/Model.class.php: -------------------------------------------------------------------------------- 1 | multi_query($_sql); 9 | DB::unDB($_result = null, $_db); 10 | return true; 11 | } 12 | 13 | //获取下一个增值id模型 14 | public function nextid($_table) { 15 | $_sql = "SHOW TABLE STATUS LIKE '$_table'"; 16 | $_object = $this->one($_sql); 17 | return $_object->Auto_increment; 18 | } 19 | 20 | //查找总记录模型 21 | protected function total($_sql) { 22 | $_db = DB::getDB(); 23 | $_result = $_db->query($_sql); 24 | $_total = $_result->fetch_row(); 25 | DB::unDB($_result, $_db); 26 | return $_total[0]; 27 | } 28 | 29 | //查找单个数据模型 30 | protected function one($_sql) { 31 | $_db = DB::getDB(); 32 | $_result = $_db->query($_sql); 33 | $_objects = $_result->fetch_object(); 34 | DB::unDB($_result, $_db); 35 | return Tool::htmlString($_objects); 36 | } 37 | 38 | //查找多个数据模型 39 | protected function all($_sql) { 40 | $_db = DB::getDB(); 41 | $_result = $_db->query($_sql); 42 | $_html = array(); 43 | while (!!$_objects = $_result->fetch_object()) { 44 | $_html[] = $_objects; 45 | } 46 | DB::unDB($_result, $_db); 47 | if($_html != null) 48 | return Tool::htmlString($_html); 49 | } 50 | 51 | 52 | //增删修模型 53 | protected function aud($_sql) { 54 | $_db = DB::getDB(); 55 | $_db->query($_sql); 56 | $_affected_rows = $_db->affected_rows; 57 | DB::unDB($_result, $_db); 58 | return $_affected_rows; 59 | } 60 | } 61 | 62 | ?> -------------------------------------------------------------------------------- /model/ReaderModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 10 | } 11 | 12 | //拦截器(__get) 13 | public function __get($_key) { 14 | return $this->$_key; 15 | } 16 | 17 | 18 | //检验邮箱是否已存在 19 | public function checkEmail($email){ 20 | $sql = "SELECT id FROM reader WHERE email='$email'"; 21 | 22 | return parent::one($sql); 23 | } 24 | 25 | 26 | //获取记录数量 27 | public function getReaderToatal($key=""){ 28 | $sql = "SELECT COUNT(*) FROM reader WHERE reader LIKE '%$key%' OR email LIKE '%$key%'"; 29 | 30 | return parent::total($sql); 31 | } 32 | 33 | 34 | //获取所有数据 35 | public function getAllReader($key=""){ 36 | $sql = "SELECT id,email,reader,state FROM reader WHERE reader LIKE '%$key%' OR email LIKE '%$key%' $this->limit"; 37 | 38 | return parent::all($sql); 39 | } 40 | 41 | //修改头像 42 | public function updateFace($id, $face){ 43 | $sql = "UPDATE reader SET face='$face' WHERE id='$id'"; 44 | 45 | return parent::aud($sql); 46 | } 47 | 48 | 49 | //检验昵称是否已存在 50 | public function checkReader($reader, $id){ 51 | $sql = "SELECT id FROM reader WHERE reader='$reader' AND id!='$id'"; 52 | 53 | return parent::one($sql); 54 | } 55 | 56 | 57 | //获取一条数据 58 | public function getOneReader($id){ 59 | $sql = "SELECT * FROM reader WHERE id=$id"; 60 | 61 | return parent::one($sql); 62 | } 63 | 64 | //读者登录检验 65 | public function checkLogin($email, $pass){ 66 | $sql = "SELECT id,reader,face FROM reader WHERE email='$email' AND pass='$pass'"; 67 | 68 | return parent::one($sql); 69 | } 70 | 71 | //添加数据 72 | public function add($email, $reader, $pass, $time){ 73 | $sql = "INSERT INTO reader(email,reader,pass,time) VALUES('$email','$reader','$pass', $time)"; 74 | 75 | return parent::aud($sql); 76 | } 77 | 78 | //后台修改数据 79 | public function update($id, $reader, $pass, $state){ 80 | $sql = "UPDATE reader SET reader='$reader',pass='$pass',state='$state' WHERE id='$id'"; 81 | 82 | return parent::aud($sql); 83 | } 84 | 85 | 86 | //前台修改数据 87 | public function updateFront($id, $reader, $adress, $sex, $pass, $info){ 88 | $sql = "UPDATE reader SET reader='$reader',adress='$adress',sex='$sex',pass='$pass',info='$info' WHERE id='$id'"; 89 | 90 | return parent::aud($sql); 91 | } 92 | 93 | //删除数据 94 | public function delete($id){ 95 | $sql = "DELETE FROM reader WHERE id='$id'"; 96 | 97 | return parent::aud($sql); 98 | } 99 | 100 | 101 | //修改状态 102 | public function changeState($id, $state){ 103 | $sql = "UPDATE reader SET state='$state' WHERE id='$id'"; 104 | 105 | return parent::aud($sql); 106 | } 107 | } 108 | 109 | ?> -------------------------------------------------------------------------------- /model/RecommendModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 12 | } 13 | 14 | //拦截器(__get) 15 | public function __get($_key) { 16 | return $this->$_key; 17 | } 18 | 19 | //获取全部推荐的数量 20 | public function getTotalOfAll($key=""){ 21 | $sql = "SELECT COUNT(*) FROM recommend WHERE title LIKE '%$key%' OR attr LIKE '%$key%'"; 22 | 23 | return parent::total($sql); 24 | } 25 | 26 | //获取全部推荐 27 | public function getAllRecommend($key=""){ 28 | $sql = "SELECT id,title,attr,href 29 | FROM recommend 30 | WHERE title LIKE '%$key%' OR attr LIKE '%$key%' 31 | ORDER BY id DESC 32 | $this->limit"; 33 | 34 | return parent::all($sql); 35 | } 36 | 37 | //添加推荐 38 | public function add($title, $attr, $href){ 39 | $sql = "INSERT INTO recommend(title,attr,href) VALUES('$title','$attr','$href')"; 40 | 41 | return parent::aud($sql); 42 | } 43 | 44 | //获取一条推荐 45 | public function getOneRecommend($id){ 46 | $sql = "SELECT id,title,attr,href FROM recommend WHERE id='$id'"; 47 | 48 | return parent::one($sql); 49 | } 50 | 51 | 52 | //获取第i条推荐 53 | public function getOneBy($i){ 54 | $sql = "SELECT title,attr,href FROM recommend ORDER BY id DESC LIMIT $i,1"; 55 | 56 | return parent::one($sql); 57 | } 58 | 59 | 60 | //获取8条数据 61 | public function getMoreBy($i){ 62 | $sql = "SELECT title,attr,href FROM recommend ORDER BY id DESC LIMIT $i,8"; 63 | 64 | return parent::all($sql); 65 | } 66 | 67 | 68 | //修改 69 | public function update($id, $title, $attr, $href){ 70 | $sql = "UPDATE recommend SET title='$title',attr='$attr',href='$href' WHERE id='$id'"; 71 | 72 | return parent::aud($sql); 73 | } 74 | 75 | //删除 76 | public function delete($id){ 77 | $sql = "DELETE FROM recommend WHERE id='$id'"; 78 | 79 | return parent::aud($sql); 80 | } 81 | 82 | } 83 | 84 | ?> -------------------------------------------------------------------------------- /model/VolumeModel.class.php: -------------------------------------------------------------------------------- 1 | $_key = Tool::mysqlString($_value); 12 | } 13 | 14 | //拦截器(__get) 15 | public function __get($_key) { 16 | return $this->$_key; 17 | } 18 | 19 | 20 | //获取书籍的分卷数量 21 | public function getAllVolumeTotal($bid){ 22 | $sql = "SELECT COUNT(*) FROM volume WHERE bid='$bid'"; 23 | 24 | return parent::total($sql); 25 | } 26 | 27 | 28 | //获取某本书的分卷 29 | public function getVolumeOfBook($bid){ 30 | $sql = "SELECT id,name FROM volume WHERE bid='$bid'"; 31 | 32 | return parent::all($sql); 33 | } 34 | 35 | 36 | //获取书籍的所有分卷 37 | public function getAllVolume($bid){ 38 | $sql = "SELECT id,name,time FROM volume WHERE bid='$bid' $this->limit"; 39 | 40 | return parent::all($sql); 41 | } 42 | 43 | 44 | //获取书籍的所有分卷,不带limit 45 | public function getVolumes($bid){ 46 | $sql = "SELECT id,name FROM volume WHERE bid='$bid'"; 47 | 48 | return parent::all($sql); 49 | } 50 | 51 | 52 | //新增分卷 53 | public function add($bid, $name, $time){ 54 | $sql = "INSERT INTO volume(name,bid,time) VALUES('$name','$bid','$time')"; 55 | 56 | return parent::aud($sql); 57 | } 58 | 59 | //更新分卷 60 | public function update($id, $name){ 61 | $sql = "UPDATE volume SET name='$name' WHERE id='$id'"; 62 | 63 | return parent::aud($sql); 64 | } 65 | 66 | 67 | //删除 68 | public function delete($id){ 69 | $sql = "DELETE FROM volume WHERE id='$id'"; 70 | 71 | return parent::aud($sql); 72 | } 73 | 74 | 75 | //删除分卷,根据书籍编号 76 | public function deleteByBid($bid){ 77 | $sql = "DELETE FROM volume WHERE bid='$bid'"; 78 | 79 | return parent::aud($sql); 80 | } 81 | 82 | 83 | } 84 | 85 | ?> -------------------------------------------------------------------------------- /rank.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | 11 | //执行diaplay,生成编译文件,并且引入 12 | $tpl->display("rank.tpl"); 13 | 14 | 15 | ?> -------------------------------------------------------------------------------- /reader.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("reader.tpl"); 12 | 13 | 14 | ?> -------------------------------------------------------------------------------- /register.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("register.tpl"); 12 | 13 | 14 | ?> -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | //执行diaplay,生成编译文件,并且引入 11 | $tpl->display("search.tpl"); 12 | 13 | 14 | ?> -------------------------------------------------------------------------------- /section.php: -------------------------------------------------------------------------------- 1 | action(); 9 | 10 | 11 | //执行diaplay,生成编译文件,并且引入 12 | $tpl->display("section.tpl"); 13 | 14 | ?> -------------------------------------------------------------------------------- /templates/admin.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 小说连载系统后台管理 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /templates/admin_bbs.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 | {if $show} 11 |

论坛管理

12 |
13 |
{$btitle}/{$titl}
14 |
15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 | 23 | 24 | 25 | {if $Allbbs} 26 | {foreach $Allbbs(key,value)} 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | {/foreach} 35 | {else} 36 | 37 | {/if} 38 |
编号标题用户名状态操作
{@value->title}{@value->reader}{@value->state}查看详情 | 删除
对不起,没有任何数据。
39 | 40 |
41 | {$page} 42 |
43 |
44 | {/if} 45 | 46 | 47 | {if $detail} 48 |

详情

49 |
50 |
51 |
{$title}
52 |
53 | {$reader} 54 | / 55 | {$state} 56 |
57 | 58 |
{$content}
59 |
60 | 61 | 62 | [ 返回上一页 ] 63 |
64 |
65 |
66 | {/if} 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /templates/admin_book.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 |

作品管理

11 |
12 |
作品内容管理/{$titl}
13 |
14 | 15 | 16 | 17 |
18 |
19 | 20 | {if $show} 21 |
22 | 23 | 24 | {if $AllBook} 25 | {foreach $AllBook(key,value)} 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | {/foreach} 36 | {else} 37 | 38 | {/if} 39 |
编号书号书名作者状态审核操作
{@value->id}{@value->name}{@value->pseudonym}{@value->state}{@value->check}查看详情 | 删除
对不起,没有任何数据。
40 | 41 |
42 | {$page} 43 |
44 |
45 | {/if} 46 | 47 | 48 | {if $detail} 49 |
50 |

《{$name}》

51 |
52 |
53 |
54 | 55 | {$pseudonym} 56 |
57 |
/
58 |
59 | 60 | {$kname} 61 |
62 |
/
63 |
64 | 65 | {$state} 66 |
67 |
/
68 |
69 | 70 | {$count} 71 |
72 |
73 |
74 | 75 |

{$info}

76 |
77 |
78 |
79 | 80 | 81 | [ 返回上一页 ] 82 | [ 查看章节 ] 83 |
84 |
85 |
86 | {/if} 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /templates/admin_comment.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 |

论坛管理

11 |
12 |
评论管理/{$titl}
13 |
14 | 15 | 16 | 17 |
18 |
19 | 20 | {if $show} 21 |
22 | 23 | 24 | 25 | {if $AllComment} 26 | {foreach $AllComment(key,value)} 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | {/foreach} 35 | {else} 36 | 37 | {/if} 38 |
编号内容用户名发表时间操作
{@value->content}{@value->reader}{@value->time}删除
对不起,没有任何数据...
39 |
{$page}
40 |
41 | {/if} 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /templates/admin_login.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 小说连载系统后台登录 6 | 7 | 8 | 9 | 10 |
11 |
12 | 小说连载系统后台登录 13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 |
21 |
22 | 23 | 24 |

请输入下面的验证码,不必区分大小写...

25 |
26 |
27 | 28 |
29 |
30 | 31 |
32 | 33 |
34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /templates/admin_notice.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 | 11 | {if $notice} 12 |

公告管理

13 |
14 |
{$btitle}/{$titl}
15 | 发 表 公 告 16 |
17 | 18 | 19 |
20 |
21 | 22 |
23 | 24 | 25 | 26 | {if $AllNotice} 27 | {foreach $AllNotice(key,value)} 28 | 29 | 30 | 31 | 32 | 33 | 34 | {/foreach} 35 | {else} 36 | 37 | {/if} 38 |
编号标题发表时间操作
{@value->title}{@value->time}查看详情 | 修改 | 删除
对不起,没有任何数据。
39 |
40 | {$page} 41 |
42 |
43 | {/if} 44 | 45 | 46 |
47 |

发表公告×

48 |
49 | 50 |
51 | 52 | 53 |
54 |
55 | 56 | 57 |
58 |
59 | 60 | 关闭 61 |
62 |
63 |
64 | 65 | 66 |
67 |

更新数据×

68 |
69 | 70 |
71 | 72 | 73 |
74 |
75 | 76 | 77 |
78 |
79 | 80 | 关闭 81 |
82 |
83 |
84 | 85 |
86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /templates/admin_recommend.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 | 11 |

推荐管理

12 |
13 |
推荐管理/列表
14 | 添 加 推 荐 15 |
16 | 17 | 18 |
19 |
20 | 21 |
22 | 23 | 24 | 25 | {if $AllRecommend} 26 | {foreach $AllRecommend(key,value)} 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | {/foreach} 35 | {else} 36 | 37 | {/if} 38 |
编号标题属性链接操作
{@value->title}{@value->attr}{@value->href}修改 | 删除
对不起,没有任何数据。
39 | {if $page} 40 |
41 | {$page} 42 |
43 | {/if} 44 |
45 | 46 | 47 | 48 |
49 |

添加推荐×

50 |
51 | 52 |
53 | 54 | 55 |
56 |
57 | 58 | 59 |
60 |
61 | 62 | 63 |
64 |
65 | 66 | 关闭 67 |
68 |
69 |
70 | 71 | 72 |
73 |

更新数据×

74 |
75 | 76 |
77 | 78 | 79 |
80 |
81 | 82 | 83 |
84 |
85 | 86 | 87 |
88 |
89 | 90 | 关闭 91 |
92 |
93 |
94 | 95 |
96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /templates/admin_section.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 |

作品管理

11 |
12 |
章节管理/{$titl}
13 |
14 | 15 | 16 | 17 |
18 |
19 | 20 | 21 | {if $show} 22 |
23 | 24 | 25 | {if $AllSection} 26 | {foreach $AllSection(key,value)} 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | {/foreach} 36 | {else} 37 | 38 | {/if} 39 |
编号章节书名状态更新时间操作
{@value->title}{@value->name}{@value->state}{@value->time}查看详情 | 删除
对不起,没有任何数据。
40 | 41 |
42 | {$page} 43 |
44 |
45 | {/if} 46 | 47 | {if $detail} 48 |
49 |

{$title}

50 |
51 |
52 | {$name} 53 | / 54 | {$pseudonym} 55 | / 56 | {$vname} 57 | / 58 | {$count} 59 |
60 |
{$time}
61 |
62 |
{$content}
63 |
64 |
65 | 66 | 67 |
68 |
69 | 70 |
71 | {/if} 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /templates/authorr.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 作者专区 6 | 7 | 8 | 9 | 10 | 11 | 17 | 18 | 19 | 20 |

登录 21 | · 22 | 注册 23 |

24 | 25 | {if $register} 26 |
27 |
28 |
    29 |
  • 30 | 邮箱: 31 | 32 |
  • 33 |
  • 34 | 姓名: 35 | 36 |
  • 37 |
  • 38 | 密码: 39 | 40 |
  • 41 |
  • 42 | 确认密码: 43 | 44 |
  • 45 |
  • 46 | 笔名: 47 | 48 |
  • 49 |
  • 50 | 验证码: 51 | 52 | 53 |
  • 54 |
  • 55 | 56 |
  • 57 |
58 |
59 |
60 | {/if} 61 | 62 | {if $logins} 63 |
64 |
65 |
    66 |
  • 67 | 账号: 68 | 69 |
  • 70 |
  • 71 | 密码: 72 | 73 |
  • 74 |
  • 75 | 验证码: 76 | 77 | 78 |
  • 79 |
  • 80 | 81 |
  • 82 |
83 |
84 |
85 | {/if} 86 | 87 | -------------------------------------------------------------------------------- /templates/book.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {$bname} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | {include file='header.tpl'} 15 | 16 |
17 | 18 |
19 |

{$bname}

20 |
21 | 作者:{$pseudonym} 22 | 23 | 分类:{$kname} 24 | 25 | 字数:{$count}字 26 | 27 | 点击量:{$click} 28 |
29 |

{$info}

30 |
31 |
32 | 点击阅读 33 | 加入书架 34 | 35 | 36 | 37 | 查看目录 38 |
39 |
40 | 最新章节 41 | {$vname}: {$title} 42 |

{$content}

43 |
44 |
45 |
46 | 关键字: 47 | {$keyword} 48 |
49 |
50 | 51 |
52 |

评论区

53 | {if $AllComment} 54 | {foreach $AllComment(key,value)} 55 | 56 | 57 | 58 | 59 | 65 | 66 | 67 |
60 |
61 | {@value->reader}|发表于{@value->time} 62 |
63 |
{@value->content}
64 |
68 | {/foreach} 69 |
{$page}
70 | {else} 71 |
暂无书评!!
72 | {/if} 73 | 74 |
75 | 76 | 发表 77 |
78 |
79 | 80 |
81 |
82 |

83 | 确 定 84 |
85 | 86 | {include file='footer.tpl'} 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /templates/catalog.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 章节列表_{$bname} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | {include file='headers.tpl'} 15 |
16 | 首页 17 | 18 | {$kname} 19 | 20 | {$cname} 21 | 22 | {$bname} 23 |
24 |
25 |
26 |

{$bname}

27 | 作者:{$pseudonym} 28 | {if $volume} 29 | {foreach $volume(key,value)} 30 |
31 |
{@value->name}
32 | 33 |
    34 | 35 | {iff @value->section} 36 | {for @value->section(key,value)} 37 |
  • {@value->title}
  • 38 | {/for} 39 | {/iff} 40 |
41 |
42 | {/foreach} 43 | {/if} 44 |
45 | 46 | {include file='footer.tpl'} 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /templates/footer.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Copyright© www.itcuijian.com

4 |

All Rights Reserved 版权所有 崔健

5 |

作者发布小说作品时,请遵守国家互联网信息管理办法规定。本站所收录小说作品、社区话题、书库评论均属其个人行为,不代表本站立场。

6 |
-------------------------------------------------------------------------------- /templates/headers.tpl: -------------------------------------------------------------------------------- 1 | 61 | 62 | 63 | 87 | 88 |
-------------------------------------------------------------------------------- /templates/library.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 书库 7 | 8 | 9 | 10 | 11 | 12 | 13 | {include file='header.tpl'} 14 |
书库
15 |
16 |
作品类型:
17 |
18 | 全部 19 | {if $AllKind} 20 | {foreach $AllKind(key,value)} 21 | {@value->name} 22 | {/foreach} 23 | {/if} 24 |
25 |
26 | 27 |
28 |
29 | 类别 30 | 书名/章节 31 | 总字数 32 | 作者 33 | 更新时间 34 |
35 | 51 |
52 | {$page} 53 |
54 |
55 | 56 |
57 |

点击排行榜

58 |
    59 | {if $click} 60 | {foreach $click(key,value)} 61 |
  • 62 | {@value->bname} 63 | {@value->click}{@key+1} 64 |
  • 65 | {/foreach} 66 | {/if} 67 |
68 | 69 |
70 | 71 | {include file='footer.tpl'} 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /templates/manage.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 | 11 |

用户管理

12 |
13 |
后台会员管理/列表
14 | 新 增 15 |
16 | 17 | 18 |
19 |
20 | 21 |
22 | 23 | 24 | {if $AllManage} 25 | {foreach $AllManage(key,value)} 26 | 27 | 28 | 29 | 30 | 31 | {/foreach} 32 | {else} 33 | 34 | {/if} 35 |
编号会员名权限操作
{@value->user}{@value->name}[ 修改 ] | [ 删除 ]
36 |
37 | {$page} 38 |
39 |
40 | 41 | 42 |
43 |

新增数据×

44 |
45 |
46 | 47 | 48 |

11个字符以内。

49 |
50 |
51 | 52 | 53 |

不能少于6位。

54 |
55 |
56 | 57 | 58 |
59 |
60 | 61 | 66 |
67 |
68 | 69 | 关闭 70 |
71 |
72 |
73 | 74 | 75 | 76 | 77 |
78 |

更新数据×

79 |
80 | 81 | 82 | 83 |
84 | 85 | 86 |

11个字符以内。

87 |
88 |
89 | 90 | 91 |

不能少于6位,留空则不修改。

92 |
93 |
94 | 95 | 96 |
97 |
98 | 99 | 104 |
105 |
106 | 107 | 关闭 108 |
109 |
110 |
111 | 112 | 113 |
114 | 115 | 116 | 117 | 118 | 119 | -------------------------------------------------------------------------------- /templates/rank.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 排行榜 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | {include file='header.tpl'} 15 | 16 |
17 |
18 |

综合排行榜

19 | 24 |
25 |
26 |

分类排行榜

27 |
    28 | {if $SevenKind} 29 | {foreach $SevenKind(key,value)} 30 |
  • {@value->name}榜
  • 31 | {/foreach} 32 | {/if} 33 |
34 |
35 |
36 | 37 |
38 |

{$h3}

39 |
40 | 排名 41 | 类别 42 | 书名/章节 43 | {$head} 44 | 作者 45 | 更新时间 46 |
47 | 66 |
67 | {$page} 68 |
69 |
70 | 71 | {include file='footer.tpl'} 72 | 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /templates/register.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 注册 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | {include file='header.tpl'} 15 | 16 |
17 |

小说连载系统 · 注册

18 |
19 |
    20 |
  • 22 | 23 |
  • 24 |
  • 26 | 27 |
  • 28 |
  • 30 | 31 |
  • 32 |
  • 33 | 34 | 35 |
  • 36 |
  • 37 | 38 |
  • 39 |
  • 40 |
41 |
42 |
43 | 44 | {include file='footer.tpl'} 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /templates/search.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 搜索 7 | 8 | 9 | 10 | 11 | 12 | 13 | {include file='header.tpl'} 14 | 15 | 16 |
17 |
18 | 关键字: 19 | 热血 20 | 爽文 21 | 穿越 22 | 异世 23 | 网游 24 |
25 |
26 | 27 | 28 | 35 | 36 | 37 |
38 |
39 | 40 |
41 |

搜索结果

42 | {if $Result} 43 | {foreach $Result(key,value)} 44 |
45 |
46 |
47 |
48 |

{@value->name}

49 |
50 | 作者: 51 | {@value->pseudonym} 52 | 53 | 分类: 54 | {@value->kname} 55 | 56 | 关键字:{@value->word} 57 |
{@value->info}
58 |
59 |
60 |
最新更新: 61 | {@value->title} 62 | {@value->time} 63 |
64 |
65 | 订阅本书 | 66 | 立即阅读 67 | 68 | 69 |
70 |
71 |
72 |
73 |
74 | {/foreach} 75 |
{$page}
76 | {else} 77 |
没有找到符合条件的小说,请尝试搜索其它关键字。
78 | {/if} 79 | 80 |
81 | 82 |
83 |
84 |

85 | 确 定 86 |
87 | 88 | {include file='footer.tpl'} 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /templates/side.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | siderbar 6 | 7 | 8 | 9 | 10 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /templates/top.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | top 6 | 7 | 8 | 9 | 10 |
小说连载系统后台管理
11 | 15 |
16 |
: {$admin_user}
17 |
: {$admin_lname}
18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /uploadify/uploadify-cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploadify/uploadify-cancel.png -------------------------------------------------------------------------------- /uploadify/uploadify.css: -------------------------------------------------------------------------------- 1 | /* 2 | Uploadify 3 | Copyright (c) 2012 Reactive Apps, Ronnie Garcia 4 | Released under the MIT License 5 | */ 6 | 7 | .uploadify { 8 | position: relative; 9 | margin-bottom: 1em; 10 | } 11 | .uploadify-button { 12 | background-color: #505050; 13 | background-image: linear-gradient(bottom, #505050 0%, #707070 100%); 14 | background-image: -o-linear-gradient(bottom, #505050 0%, #707070 100%); 15 | background-image: -moz-linear-gradient(bottom, #505050 0%, #707070 100%); 16 | background-image: -webkit-linear-gradient(bottom, #505050 0%, #707070 100%); 17 | background-image: -ms-linear-gradient(bottom, #505050 0%, #707070 100%); 18 | background-image: -webkit-gradient( 19 | linear, 20 | left bottom, 21 | left top, 22 | color-stop(0, #505050), 23 | color-stop(1, #707070) 24 | ); 25 | background-position: center top; 26 | background-repeat: no-repeat; 27 | -webkit-border-radius: 30px; 28 | -moz-border-radius: 30px; 29 | border-radius: 30px; 30 | border: 2px solid #808080; 31 | color: #FFF; 32 | font: bold 12px Arial, Helvetica, sans-serif; 33 | text-align: center; 34 | text-shadow: 0 -1px 0 rgba(0,0,0,0.25); 35 | width: 100%; 36 | } 37 | .uploadify:hover .uploadify-button { 38 | background-color: #606060; 39 | background-image: linear-gradient(top, #606060 0%, #808080 100%); 40 | background-image: -o-linear-gradient(top, #606060 0%, #808080 100%); 41 | background-image: -moz-linear-gradient(top, #606060 0%, #808080 100%); 42 | background-image: -webkit-linear-gradient(top, #606060 0%, #808080 100%); 43 | background-image: -ms-linear-gradient(top, #606060 0%, #808080 100%); 44 | background-image: -webkit-gradient( 45 | linear, 46 | left bottom, 47 | left top, 48 | color-stop(0, #606060), 49 | color-stop(1, #808080) 50 | ); 51 | background-position: center bottom; 52 | } 53 | .uploadify-button.disabled { 54 | background-color: #D0D0D0; 55 | color: #808080; 56 | } 57 | .uploadify-queue { 58 | margin-bottom: 1em; 59 | } 60 | .uploadify-queue-item { 61 | background-color: #F5F5F5; 62 | -webkit-border-radius: 3px; 63 | -moz-border-radius: 3px; 64 | border-radius: 3px; 65 | font: 11px Verdana, Geneva, sans-serif; 66 | margin-top: 5px; 67 | max-width: 350px; 68 | padding: 10px; 69 | } 70 | .uploadify-error { 71 | background-color: #FDE5DD !important; 72 | } 73 | .uploadify-queue-item .cancel a { 74 | background: url('../img/uploadify-cancel.png') 0 0 no-repeat; 75 | float: right; 76 | height: 16px; 77 | text-indent: -9999px; 78 | width: 16px; 79 | } 80 | .uploadify-queue-item.completed { 81 | background-color: #E5E5E5; 82 | } 83 | .uploadify-progress { 84 | background-color: #E5E5E5; 85 | margin-top: 10px; 86 | width: 100%; 87 | } 88 | .uploadify-progress-bar { 89 | background-color: #0099FF; 90 | height: 3px; 91 | width: 1px; 92 | } -------------------------------------------------------------------------------- /uploadify/uploadify.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /uploadify/uploadify.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploadify/uploadify.swf -------------------------------------------------------------------------------- /uploads/20150902/20150902193140940.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150902/20150902193140940.jpg -------------------------------------------------------------------------------- /uploads/20150902/20150902193244783.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150902/20150902193244783.jpg -------------------------------------------------------------------------------- /uploads/20150905/20150905003029142.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150905/20150905003029142.jpg -------------------------------------------------------------------------------- /uploads/20150905/20150905103740534.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150905/20150905103740534.jpg -------------------------------------------------------------------------------- /uploads/20150905/20150905104756328.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150905/20150905104756328.jpg -------------------------------------------------------------------------------- /uploads/20150906/20150906110519590.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150906/20150906110519590.jpg -------------------------------------------------------------------------------- /uploads/20150907/20150907091742429.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150907/20150907091742429.jpg -------------------------------------------------------------------------------- /uploads/20150907/20150907094211452.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150907/20150907094211452.jpg -------------------------------------------------------------------------------- /uploads/20150907/20150907120801669.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150907/20150907120801669.jpg -------------------------------------------------------------------------------- /uploads/20150907/20150907121819891.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150907/20150907121819891.jpg -------------------------------------------------------------------------------- /uploads/20150907/20150907123426197.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150907/20150907123426197.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911095812468.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911095812468.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911101528725.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911101528725.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911103007566.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911103007566.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911210106795.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911210106795.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911212532463.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911212532463.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911213222812.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911213222812.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911214540559.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911214540559.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911215113825.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911215113825.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911220018923.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911220018923.jpg -------------------------------------------------------------------------------- /uploads/20150911/20150911224712494.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150911/20150911224712494.jpg -------------------------------------------------------------------------------- /uploads/20150913/20150913101929901.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150913/20150913101929901.jpg -------------------------------------------------------------------------------- /uploads/20150913/20150913105706399.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150913/20150913105706399.jpg -------------------------------------------------------------------------------- /uploads/20150913/20150913111254481.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150913/20150913111254481.jpg -------------------------------------------------------------------------------- /uploads/20150913/20150913113055472.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150913/20150913113055472.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918092511505.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918092511505.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918094245581.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918094245581.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918095218234.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918095218234.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918101016408.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918101016408.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918101809518.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918101809518.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918102646824.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918102646824.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918103642733.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918103642733.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918104736584.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918104736584.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918163727157.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918163727157.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918164613900.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918164613900.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918165819914.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918165819914.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918174204294.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918174204294.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918175157996.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918175157996.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918180537861.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918180537861.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918181641290.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918181641290.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918183030951.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918183030951.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918184227487.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918184227487.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918191702383.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918191702383.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918192559729.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918192559729.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918202329771.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918202329771.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918205533989.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918205533989.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918211508236.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918211508236.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918215734372.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918215734372.jpg -------------------------------------------------------------------------------- /uploads/20150918/20150918223042165.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150918/20150918223042165.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919092845576.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919092845576.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919093928383.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919093928383.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919095509147.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919095509147.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919100348594.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919100348594.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919103546422.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919103546422.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919110535650.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919110535650.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919121727584.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919121727584.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919151705901.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919151705901.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919154236474.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919154236474.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919160400866.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919160400866.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919164115786.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919164115786.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919165531190.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919165531190.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919170602895.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919170602895.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919193603906.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919193603906.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919194609322.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919194609322.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919195556414.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919195556414.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919201907619.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919201907619.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919202951604.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919202951604.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919204522127.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919204522127.jpg -------------------------------------------------------------------------------- /uploads/20150919/20150919214727726.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150919/20150919214727726.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920094322612.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920094322612.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920100857496.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920100857496.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920105604412.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920105604412.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920115637152.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920115637152.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920143915667.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920143915667.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920151428292.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920151428292.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920155037869.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920155037869.jpg -------------------------------------------------------------------------------- /uploads/20150920/20150920180307282.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150920/20150920180307282.jpg -------------------------------------------------------------------------------- /uploads/20150928/20150928212524436.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20150928/20150928212524436.jpg -------------------------------------------------------------------------------- /uploads/20151005/20151005174253500.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20151005/20151005174253500.jpg -------------------------------------------------------------------------------- /uploads/20151007/20151007232833442.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20151007/20151007232833442.jpg -------------------------------------------------------------------------------- /uploads/20151008/20151008225532511.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20151008/20151008225532511.jpg -------------------------------------------------------------------------------- /uploads/20151114/20151114103704522.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itcuijian/novel/51e808e8096d635a8b4abf30724a7638c81b345e/uploads/20151114/20151114103704522.jpg --------------------------------------------------------------------------------