├── sys ├── view │ ├── admin │ │ ├── index.php │ │ ├── version_not_found.php │ │ ├── plugin.php │ │ ├── project_select.php │ │ ├── footer.php │ │ ├── setting.php │ │ ├── page_list.php │ │ ├── header.php │ │ ├── version_list.php │ │ ├── item_create.php │ │ ├── project_create.php │ │ ├── page_edit.php │ │ ├── item_edit.php │ │ ├── project_edit.php │ │ ├── version_add.php │ │ ├── version_item_list.php │ │ └── user.php │ ├── home │ │ ├── logged.php │ │ ├── 404.html │ │ ├── home.php │ │ └── login.php │ ├── project │ │ ├── page.php │ │ ├── help.php │ │ ├── change.php │ │ ├── download.php │ │ ├── about.php │ │ ├── document.php │ │ ├── home.php │ │ └── picture.php │ ├── version │ │ ├── history.php │ │ └── update_info.php │ └── comm │ │ ├── footer.php │ │ └── header.php ├── core │ ├── view │ │ ├── 404.html │ │ └── default.html │ ├── lib │ │ ├── sql.php │ │ ├── router.php │ │ └── cookie.php │ ├── page.php │ ├── lib.php │ ├── config.php │ ├── interface.php │ ├── hook.php │ ├── core.php │ └── timer.php ├── page │ ├── Error.php │ ├── Home.php │ └── Page.php ├── lib │ ├── plugin.php │ ├── router.php │ ├── hook.php │ ├── setting.php │ ├── version_hook.php │ ├── menu.php │ └── project.php ├── config.php └── helper │ ├── func.php │ ├── theme.php │ └── admin.php ├── images ├── alipay.png └── yongqi.jpg ├── robots.txt ├── .gitmodules ├── ex ├── kindeditor │ ├── themes │ │ ├── common │ │ │ ├── rm.gif │ │ │ ├── anchor.gif │ │ │ ├── blank.gif │ │ │ ├── flash.gif │ │ │ ├── media.gif │ │ │ └── loading.gif │ │ ├── default │ │ │ ├── default.png │ │ │ └── background.png │ │ └── simple │ │ │ └── simple.css │ ├── plugins │ │ ├── emoticons │ │ │ └── images │ │ │ │ ├── 0.gif │ │ │ │ ├── 1.gif │ │ │ │ ├── 10.gif │ │ │ │ ├── 11.gif │ │ │ │ ├── 12.gif │ │ │ │ ├── 13.gif │ │ │ │ ├── 14.gif │ │ │ │ ├── 15.gif │ │ │ │ ├── 16.gif │ │ │ │ ├── 17.gif │ │ │ │ ├── 18.gif │ │ │ │ ├── 19.gif │ │ │ │ ├── 2.gif │ │ │ │ ├── 20.gif │ │ │ │ ├── 21.gif │ │ │ │ ├── 22.gif │ │ │ │ ├── 23.gif │ │ │ │ ├── 24.gif │ │ │ │ ├── 25.gif │ │ │ │ ├── 26.gif │ │ │ │ ├── 27.gif │ │ │ │ ├── 28.gif │ │ │ │ ├── 29.gif │ │ │ │ ├── 3.gif │ │ │ │ ├── 30.gif │ │ │ │ ├── 31.gif │ │ │ │ ├── 32.gif │ │ │ │ ├── 33.gif │ │ │ │ ├── 34.gif │ │ │ │ ├── 35.gif │ │ │ │ ├── 36.gif │ │ │ │ ├── 37.gif │ │ │ │ ├── 38.gif │ │ │ │ ├── 39.gif │ │ │ │ ├── 4.gif │ │ │ │ ├── 40.gif │ │ │ │ ├── 41.gif │ │ │ │ ├── 42.gif │ │ │ │ ├── 43.gif │ │ │ │ ├── 44.gif │ │ │ │ ├── 45.gif │ │ │ │ ├── 46.gif │ │ │ │ ├── 47.gif │ │ │ │ ├── 48.gif │ │ │ │ ├── 49.gif │ │ │ │ ├── 5.gif │ │ │ │ ├── 50.gif │ │ │ │ ├── 51.gif │ │ │ │ ├── 52.gif │ │ │ │ ├── 53.gif │ │ │ │ ├── 54.gif │ │ │ │ ├── 55.gif │ │ │ │ ├── 56.gif │ │ │ │ ├── 57.gif │ │ │ │ ├── 58.gif │ │ │ │ ├── 59.gif │ │ │ │ ├── 6.gif │ │ │ │ ├── 60.gif │ │ │ │ ├── 61.gif │ │ │ │ ├── 62.gif │ │ │ │ ├── 63.gif │ │ │ │ ├── 64.gif │ │ │ │ ├── 65.gif │ │ │ │ ├── 66.gif │ │ │ │ ├── 67.gif │ │ │ │ ├── 68.gif │ │ │ │ ├── 69.gif │ │ │ │ ├── 7.gif │ │ │ │ ├── 70.gif │ │ │ │ ├── 71.gif │ │ │ │ ├── 72.gif │ │ │ │ ├── 73.gif │ │ │ │ ├── 74.gif │ │ │ │ ├── 75.gif │ │ │ │ ├── 76.gif │ │ │ │ ├── 77.gif │ │ │ │ ├── 78.gif │ │ │ │ ├── 79.gif │ │ │ │ ├── 8.gif │ │ │ │ ├── 80.gif │ │ │ │ ├── 81.gif │ │ │ │ ├── 82.gif │ │ │ │ ├── 83.gif │ │ │ │ ├── 84.gif │ │ │ │ ├── 85.gif │ │ │ │ ├── 86.gif │ │ │ │ ├── 87.gif │ │ │ │ ├── 88.gif │ │ │ │ ├── 89.gif │ │ │ │ ├── 9.gif │ │ │ │ ├── 90.gif │ │ │ │ ├── 91.gif │ │ │ │ ├── 92.gif │ │ │ │ ├── 93.gif │ │ │ │ ├── 94.gif │ │ │ │ ├── 95.gif │ │ │ │ ├── 96.gif │ │ │ │ ├── 97.gif │ │ │ │ ├── 98.gif │ │ │ │ ├── 99.gif │ │ │ │ ├── 100.gif │ │ │ │ ├── 101.gif │ │ │ │ ├── 102.gif │ │ │ │ ├── 103.gif │ │ │ │ ├── 104.gif │ │ │ │ ├── 105.gif │ │ │ │ ├── 106.gif │ │ │ │ ├── 107.gif │ │ │ │ ├── 108.gif │ │ │ │ ├── 109.gif │ │ │ │ ├── 110.gif │ │ │ │ ├── 111.gif │ │ │ │ ├── 112.gif │ │ │ │ ├── 113.gif │ │ │ │ ├── 114.gif │ │ │ │ ├── 115.gif │ │ │ │ ├── 116.gif │ │ │ │ ├── 117.gif │ │ │ │ ├── 118.gif │ │ │ │ ├── 119.gif │ │ │ │ ├── 120.gif │ │ │ │ ├── 121.gif │ │ │ │ ├── 122.gif │ │ │ │ ├── 123.gif │ │ │ │ ├── 124.gif │ │ │ │ ├── 125.gif │ │ │ │ ├── 126.gif │ │ │ │ ├── 127.gif │ │ │ │ ├── 128.gif │ │ │ │ ├── 129.gif │ │ │ │ ├── 130.gif │ │ │ │ ├── 131.gif │ │ │ │ ├── 132.gif │ │ │ │ ├── 133.gif │ │ │ │ ├── 134.gif │ │ │ │ └── static.gif │ │ ├── image │ │ │ └── images │ │ │ │ ├── align_top.gif │ │ │ │ ├── refresh.png │ │ │ │ ├── align_left.gif │ │ │ │ └── align_right.gif │ │ ├── filemanager │ │ │ └── images │ │ │ │ ├── go-up.gif │ │ │ │ ├── file-16.gif │ │ │ │ ├── file-64.gif │ │ │ │ ├── folder-16.gif │ │ │ │ └── folder-64.gif │ │ ├── multiimage │ │ │ └── images │ │ │ │ ├── image.png │ │ │ │ ├── swfupload.swf │ │ │ │ ├── select-files-en.png │ │ │ │ └── select-files-zh_CN.png │ │ ├── template │ │ │ ├── html │ │ │ │ ├── 1.html │ │ │ │ ├── 3.html │ │ │ │ └── 2.html │ │ │ └── template.js │ │ ├── code │ │ │ ├── prettify.css │ │ │ └── code.js │ │ ├── pagebreak │ │ │ └── pagebreak.js │ │ ├── preview │ │ │ └── preview.js │ │ ├── clearhtml │ │ │ └── clearhtml.js │ │ ├── lineheight │ │ │ └── lineheight.js │ │ ├── baidumap │ │ │ ├── map.html │ │ │ ├── index.html │ │ │ └── baidumap.js │ │ ├── autoheight │ │ │ └── autoheight.js │ │ ├── plainpaste │ │ │ └── plainpaste.js │ │ ├── anchor │ │ │ └── anchor.js │ │ ├── wordpaste │ │ │ └── wordpaste.js │ │ ├── map │ │ │ └── map.html │ │ ├── quickformat │ │ │ └── quickformat.js │ │ └── link │ │ │ └── link.js │ └── php │ │ └── init.php └── plugin │ ├── picture │ ├── images │ │ ├── border.png │ │ ├── controls.png │ │ ├── loading.gif │ │ ├── overlay.png │ │ ├── uploadify-cancel.png │ │ ├── ie6 │ │ │ ├── borderTopCenter.png │ │ │ ├── borderTopLeft.png │ │ │ ├── borderTopRight.png │ │ │ ├── borderBottomLeft.png │ │ │ ├── borderBottomRight.png │ │ │ ├── borderMiddleLeft.png │ │ │ ├── borderMiddleRight.png │ │ │ └── borderBottomCenter.png │ │ └── loading_background.png │ └── run.php │ ├── sitemap │ ├── page.php │ ├── run.php │ └── sitemap.xsl │ ├── record_counter │ ├── select_db.php │ ├── run.php │ ├── RecordCounter.php │ └── page.php │ ├── robots │ ├── page.php │ └── run.php │ ├── duoshuo │ └── run.php │ ├── https │ └── page.php │ └── out_hook │ ├── page.php │ └── run.php ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.ttf └── glyphicons-halflings-regular.woff ├── .gitignore ├── nginx.conf ├── .htaccess ├── index.php ├── README.md ├── js ├── ie8-responsive-file-warning.js ├── loveyu.js ├── admin │ └── page_edit.js ├── html5shiv.min.js └── respond.min.js ├── config └── all-simple.php └── css └── style.css /sys/view/admin/index.php: -------------------------------------------------------------------------------- 1 |

管理中心

2 | 3 |

个人网站项目管理中心

-------------------------------------------------------------------------------- /sys/view/admin/version_not_found.php: -------------------------------------------------------------------------------- 1 |

你查询的版本未找到

-------------------------------------------------------------------------------- /sys/view/home/logged.php: -------------------------------------------------------------------------------- 1 |
2 |

用户已登录

3 |
-------------------------------------------------------------------------------- /images/alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/images/alipay.png -------------------------------------------------------------------------------- /images/yongqi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/images/yongqi.jpg -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /Admin 3 | Disallow: /Admin/ 4 | sitemap: /sitemap.xml 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Update"] 2 | path = Update 3 | url = git@e.coding.net:loveyu/loveyu.net.update.git 4 | -------------------------------------------------------------------------------- /sys/view/home/404.html: -------------------------------------------------------------------------------- 1 |
2 |

你要找的内容没有找到!

3 |

这里是404页面,你可以跳转到首页去浏览其他内容。

4 |
-------------------------------------------------------------------------------- /ex/kindeditor/themes/common/rm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/common/rm.gif -------------------------------------------------------------------------------- /ex/plugin/picture/images/border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/border.png -------------------------------------------------------------------------------- /sys/view/project/page.php: -------------------------------------------------------------------------------- 1 |
2 | content(); 4 | ?> 5 |
-------------------------------------------------------------------------------- /ex/kindeditor/themes/common/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/common/anchor.gif -------------------------------------------------------------------------------- /ex/kindeditor/themes/common/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/common/blank.gif -------------------------------------------------------------------------------- /ex/kindeditor/themes/common/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/common/flash.gif -------------------------------------------------------------------------------- /ex/kindeditor/themes/common/media.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/common/media.gif -------------------------------------------------------------------------------- /ex/plugin/picture/images/controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/controls.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/loading.gif -------------------------------------------------------------------------------- /ex/plugin/picture/images/overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/overlay.png -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /ex/kindeditor/themes/common/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/common/loading.gif -------------------------------------------------------------------------------- /ex/kindeditor/themes/default/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/default/default.png -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /ex/kindeditor/themes/default/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/themes/default/background.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | sitemap.xml 2 | .idea 3 | robots.txt 4 | upload/ 5 | config/all.php 6 | project/ 7 | favicon.ico 8 | crossdomain.xml 9 | baidu_verify_* -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/0.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/1.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/10.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/11.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/12.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/13.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/14.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/15.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/16.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/17.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/18.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/19.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/2.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/20.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/21.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/22.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/23.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/24.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/25.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/26.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/27.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/28.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/29.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/3.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/30.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/31.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/32.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/33.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/34.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/35.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/36.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/37.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/38.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/39.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/4.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/40.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/41.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/42.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/43.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/44.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/45.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/46.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/47.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/48.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/49.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/5.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/50.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/51.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/52.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/53.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/54.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/55.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/56.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/57.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/58.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/59.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/6.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/60.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/61.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/62.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/63.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/64.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/65.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/66.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/67.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/68.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/69.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/7.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/70.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/71.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/72.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/72.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/73.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/73.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/74.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/74.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/75.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/75.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/76.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/76.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/77.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/77.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/78.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/78.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/79.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/79.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/8.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/80.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/80.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/81.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/81.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/82.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/82.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/83.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/83.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/84.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/84.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/85.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/85.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/86.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/86.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/87.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/87.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/88.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/88.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/89.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/89.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/9.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/90.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/90.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/91.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/91.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/92.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/92.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/93.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/93.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/94.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/94.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/95.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/95.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/96.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/96.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/97.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/97.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/98.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/98.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/99.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/99.gif -------------------------------------------------------------------------------- /ex/plugin/picture/images/uploadify-cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/uploadify-cancel.png -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/100.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/100.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/101.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/101.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/102.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/103.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/103.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/104.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/104.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/105.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/106.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/106.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/107.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/108.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/108.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/109.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/109.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/110.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/111.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/112.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/113.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/113.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/114.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/114.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/115.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/116.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/116.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/117.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/118.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/118.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/119.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/119.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/120.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/121.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/121.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/122.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/123.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/123.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/124.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/124.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/125.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/125.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/126.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/127.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/127.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/128.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/129.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/129.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/130.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/130.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/131.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/132.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/132.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/133.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/134.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/134.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/image/images/align_top.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/image/images/align_top.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/image/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/image/images/refresh.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderTopCenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderTopCenter.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderTopLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderTopLeft.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderTopRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderTopRight.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/loading_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/loading_background.png -------------------------------------------------------------------------------- /ex/kindeditor/plugins/emoticons/images/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/emoticons/images/static.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/filemanager/images/go-up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/filemanager/images/go-up.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/image/images/align_left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/image/images/align_left.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/image/images/align_right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/image/images/align_right.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/multiimage/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/multiimage/images/image.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderBottomLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderBottomLeft.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderBottomRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderBottomRight.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderMiddleLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderMiddleLeft.png -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderMiddleRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderMiddleRight.png -------------------------------------------------------------------------------- /ex/kindeditor/plugins/filemanager/images/file-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/filemanager/images/file-16.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/filemanager/images/file-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/filemanager/images/file-64.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/multiimage/images/swfupload.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/multiimage/images/swfupload.swf -------------------------------------------------------------------------------- /ex/plugin/picture/images/ie6/borderBottomCenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/plugin/picture/images/ie6/borderBottomCenter.png -------------------------------------------------------------------------------- /ex/kindeditor/plugins/filemanager/images/folder-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/filemanager/images/folder-16.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/filemanager/images/folder-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/filemanager/images/folder-64.gif -------------------------------------------------------------------------------- /ex/kindeditor/plugins/multiimage/images/select-files-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/multiimage/images/select-files-en.png -------------------------------------------------------------------------------- /ex/kindeditor/plugins/multiimage/images/select-files-zh_CN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/ProjectManager/main/ex/kindeditor/plugins/multiimage/images/select-files-zh_CN.png -------------------------------------------------------------------------------- /sys/view/admin/plugin.php: -------------------------------------------------------------------------------- 1 |

插件设置

2 | 5 | apply('admin_plugin_content', $__param); 7 | ?> 8 | -------------------------------------------------------------------------------- /sys/view/project/help.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

title()?>

4 |
5 | content();?> 6 |
-------------------------------------------------------------------------------- /sys/view/project/change.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

title()?>

4 |
5 | content();?> 6 |
-------------------------------------------------------------------------------- /sys/view/project/download.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

title()?>

4 |
5 | content();?> 6 |
-------------------------------------------------------------------------------- /sys/view/project/about.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

关于 - project_title()?>

4 |
5 | content();?> 6 |
-------------------------------------------------------------------------------- /ex/plugin/sitemap/page.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 |
6 |
-------------------------------------------------------------------------------- /sys/core/view/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 404 Not Found 4 | 5 | 6 | 7 |

404 Not Found

8 | 9 |

对不起,你要访问的页面未找到!

10 | 11 | -------------------------------------------------------------------------------- /sys/view/project/document.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

title()?>

4 |

desc()?>

5 |
6 | content();?> 7 |
-------------------------------------------------------------------------------- /sys/view/project/home.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

title()?>

4 | 5 |

desc()?>

6 |
7 | content();?> 8 |
-------------------------------------------------------------------------------- /sys/core/view/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Welcome 4 | 5 | 6 | 7 |

这里是默认页面

8 | 9 |

当出现这个页面的时候,请检查是否对page中进行了main方法的重载。

10 | 11 | -------------------------------------------------------------------------------- /sys/view/project/picture.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

title()?>

4 | 5 |

desc()?>

6 |
7 | content();?> 8 |
-------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- 1 | location / { 2 | if (!-f $request_filename){ 3 | rewrite (.*) /index.php; 4 | } 5 | } 6 | location ~* ^/(sys|config)/.*{ 7 | rewrite (.*) /index.php; 8 | } 9 | location ~* ^/ex/plugin/.*\.(php|php5){ 10 | rewrite (.*) /index.php; 11 | } 12 | error_page 404 /index.php; -------------------------------------------------------------------------------- /ex/kindeditor/plugins/template/html/1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入标题 9 |

10 |

11 | 在此处输入内容 12 |

13 | 14 | -------------------------------------------------------------------------------- /ex/kindeditor/php/init.php: -------------------------------------------------------------------------------- 1 | load('../../../config/all.php'); //加载其他配置文件 4 | lib()->load('hook', 'user')->add('Hook', new \ULib\Hook())->add(); //加载自定义类 5 | $user = new \ULib\User(true); 6 | if(!$user->login_status()){ 7 | u()->load_404(); 8 | exit; 9 | } -------------------------------------------------------------------------------- /ex/plugin/record_counter/select_db.php: -------------------------------------------------------------------------------- 1 |
2 | ", $v, "\n"; 9 | } 10 | ?> 11 |
-------------------------------------------------------------------------------- /ex/plugin/robots/page.php: -------------------------------------------------------------------------------- 1 | 4 |
5 | 6 | 7 |
8 | -------------------------------------------------------------------------------- /sys/view/admin/project_select.php: -------------------------------------------------------------------------------- 1 |
2 |

选择项目

3 | 4 |
5 | ", $v['title'], "(", $v['name'], ") \n"; 12 | } 13 | ?> 14 |
15 |
-------------------------------------------------------------------------------- /sys/view/version/history.php: -------------------------------------------------------------------------------- 1 | 6 |

当前无任何历史版本信息

7 |


Version: :

getTimer()->setBeginTime($time); //修正启动时间 5 | unset($time); //删除时间变量 6 | define('IS_DEMO_SITE', $_SERVER['HTTP_HOST'] === "demo.loveyu.net"); 7 | //define('IS_DEMO_SITE', true); 8 | cfg()->load('config/all.php'); //加载其他配置文件 9 | lib()->load('hook')->add('Hook', new \ULib\Hook())->add(); //加载自定义类 10 | u()->home(array('Home'), array( 11 | 'Error', 12 | 'page_404' 13 | )); //开始加载默认页面 -------------------------------------------------------------------------------- /sys/view/admin/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/template/html/3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入内容 9 |

10 |
    11 |
  1. 12 | 描述1 13 |
  2. 14 |
  3. 15 | 描述2 16 |
  4. 17 |
  5. 18 | 描述3 19 |
  6. 20 |
21 |

22 | 在此处输入内容 23 |

24 | 35 | 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 恋羽的PHP个人项目发布平台 2 | ====================================== 3 | 4 | ## 使用说明 5 | 6 | * 初次使用时先导入数据到mysql数据库 7 | * 修改config目录下的all.config 其中的数据库配置文件 8 | * 详细配置文件可以查看sys/config.php,对目录位置进行调整 9 | 10 | ## 访问说明 11 | 12 | * apache下需要PATH_INFO支持 13 | * 或者使用伪静态规则,nginx下需提供重定向支持,已提供默认配置文件 14 | * 修改系统路径需要对伪静态目录访问进行限制,否则会出现绝对路径泄露的问题 15 | 16 | ## 默认用户名及密码 17 | 18 | * 用户名为:`loveyu` 19 | * 密码为:`123456` 20 | 21 | ## 演示及说明 22 | 23 | * 下载 https://www.loveyu.net 24 | 25 | * 反馈 https://www.loveyu.org/2882.html -------------------------------------------------------------------------------- /ex/plugin/record_counter/run.php: -------------------------------------------------------------------------------- 1 | add('admin_plugin_menu', [ 11 | $counter, 12 | 'out_menu' 13 | ]); 14 | hook()->add('admin_plugin_content', [ 15 | $counter, 16 | 'out_content' 17 | ]); 18 | hook()->add('ajax_plugin_' . RecordCounter::name, [ 19 | $counter, 20 | 'ajax' 21 | ]); 22 | } -------------------------------------------------------------------------------- /sys/page/Error.php: -------------------------------------------------------------------------------- 1 | status()){ 10 | $this->page_404(); 11 | } else{ 12 | echo "SQL Error:", db()->ex_message(); 13 | } 14 | } 15 | 16 | /** 17 | * 404错误页面 18 | */ 19 | public function page_404(){ 20 | lib()->load('menu')->add('menu', new \ULib\Menu()); 21 | header("HTTP/1.1 404 Not Found"); 22 | header("Content-Type:text/html; charset=utf-8"); 23 | $this->__view('comm/header.php'); 24 | $this->__view('home/404.html'); 25 | $this->__view('comm/footer.php'); 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /ex/plugin/robots/run.php: -------------------------------------------------------------------------------- 1 | add('admin_plugin_menu', 'robots_menu'); 3 | hook()->add('admin_plugin_content', 'robots_content'); 4 | 5 | function robots_menu($menu){ 6 | array_push($menu, array( 7 | 'name' => 'Robots设置', 8 | 'router' => array( 9 | 'Admin', 10 | 'plugin', 11 | 'robots' 12 | ), 13 | 'hidden' => false 14 | )); 15 | return $menu; 16 | } 17 | 18 | function robots_content($name){ 19 | if($name == 'robots'){ 20 | if(req()->is_post()){ 21 | file_put_contents(_BasePath_ . "/robots.txt", req()->_plain()->post('robots')); 22 | } 23 | include(__DIR__ . "/page.php"); 24 | } 25 | return $name; 26 | } -------------------------------------------------------------------------------- /js/ie8-responsive-file-warning.js: -------------------------------------------------------------------------------- 1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT 2 | // IT'S JUST JUNK FOR OUR DOCS! 3 | // ++++++++++++++++++++++++++++++++++++++++++ 4 | /*! 5 | * Copyright 2013 Twitter, Inc. 6 | * 7 | * Licensed under the Creative Commons Attribution 3.0 Unported License. For 8 | * details, see http://creativecommons.org/licenses/by/3.0/. 9 | */ 10 | // Intended to prevent false-positive bug reports about responsive styling supposedly not working in IE8. 11 | if (window.location.protocol == 'file:') 12 | alert("ERROR: Bootstrap's responsive CSS is disabled!\nSee getbootstrap.com/getting-started/#respond-file-proto for details.") 13 | -------------------------------------------------------------------------------- /config/all-simple.php: -------------------------------------------------------------------------------- 1 | array( 4 | 'database_type' => 'mysql', 5 | //服务器类型 支持 mysql sqlite pgsql mssql sybase 6 | 'server' => 'localhost', 7 | //服务器地址 8 | 'username' => 'root', 9 | //用户名 10 | 'password' => '123456', 11 | //密码 12 | 'database_file' => '', 13 | //数据库文件, SqLite 专有文件 14 | 'charset' => 'utf8', 15 | //编码 16 | 'database_name' => 'pm', 17 | //数据库名 18 | 'option' => array( //PDO选项 19 | PDO::ATTR_CASE => PDO::CASE_NATURAL 20 | ), 21 | ), 22 | 'cookie' => array( 23 | //是否对COOKIE值进行加密,其中密钥在系统配置config.php中 24 | 'encode' => true 25 | ), 26 | //用于存放系统设置 27 | 'system' => array(), 28 | ); -------------------------------------------------------------------------------- /ex/plugin/duoshuo/run.php: -------------------------------------------------------------------------------- 1 | add('project_content', 'duoshuo_hook'); 3 | function duoshuo_hook($data, $type, $item_id, $title){ 4 | $url = json_encode(URL_NOW); 5 | $item_id = json_encode(md5($item_id)); 6 | $html = << 8 | 13 | HTML; 14 | 15 | return str_replace('<[COMMENT_TAG]>', $html, $data); 16 | } -------------------------------------------------------------------------------- /ex/kindeditor/plugins/template/html/2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 标题 9 |

10 | 11 | 12 | 13 | 16 | 19 | 20 | 21 | 24 | 27 | 28 | 29 | 32 | 35 | 36 | 37 |
14 |

标题1

15 |
17 |

标题1

18 |
22 | 内容1 23 | 25 | 内容2 26 |
30 | 内容3 31 | 33 | 内容4 34 |
38 |

39 | 表格说明 40 |

41 | 42 | -------------------------------------------------------------------------------- /sys/view/admin/setting.php: -------------------------------------------------------------------------------- 1 |

系统设置

2 |
3 |
4 |
5 | 6 |
7 |
8 | 9 | 10 |
11 | 12 |
13 |
14 | 15 |
16 |
17 |
18 |
19 | -------------------------------------------------------------------------------- /sys/view/home/home.php: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |
5 |
6 | 11 | 12 |
13 |
14 | get_list() as $v){ 16 | echo '
', $v['title'], '
', $v['desc'], "
\n"; 17 | } 18 | ?> 19 |
20 |
21 |
-------------------------------------------------------------------------------- /sys/view/version/update_info.php: -------------------------------------------------------------------------------- 1 | 6 |

无任何更新记录

7 | 9 |
10 | 11 |
版本
12 |
13 | 14 |
    15 | 16 |
  1. 17 | 详情 18 |
  2. 19 | 20 |
21 | 22 | 无信息 23 | 24 |
25 | 26 |
3 && parse[3] != location.hostname) 6 | || ($(elem).attr("rel") + "").toLowerCase() == "external") { 7 | $(elem).attr("target", "_blank"); 8 | } 9 | }); 10 | if (typeof(PM_PAGE_ID) != 'undefined' && PM_PAGE_ID > 0) { 11 | //对可以访问的文章进行访问统计 12 | $.post(SITE_URL + "Home/page_view", {id:PM_PAGE_ID}, function (data) { 13 | if (typeof(data['view']) != 'undefined') { 14 | //统计存在的操作 15 | } 16 | }); 17 | } 18 | if (typeof(PM_USER_LOGIN_STATUS) != 'undefined' && PM_USER_LOGIN_STATUS) { 19 | //当用户登录时的操作 20 | } else { 21 | //非登录用户的操作 22 | } 23 | }); -------------------------------------------------------------------------------- /sys/view/comm/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | -------------------------------------------------------------------------------- /sys/lib/plugin.php: -------------------------------------------------------------------------------- 1 | path = $path; 22 | $this->read_dir(); 23 | $this->run(); 24 | } 25 | 26 | /** 27 | * 运行所有插件 28 | */ 29 | private function run(){ 30 | foreach($this->list as $name){ 31 | $path = $this->path . "/" . $name . "/run.php"; 32 | if(is_file($path)){ 33 | include $path; 34 | } 35 | } 36 | } 37 | 38 | /** 39 | * 读取插件列表 40 | */ 41 | private function read_dir(){ 42 | $hd = opendir($this->path); 43 | if($hd){ 44 | while(($name = readdir($hd)) != null){ 45 | if(substr($name, 0, 1) != '.' && is_dir($this->path . "/" . $name)){ 46 | $this->list[] = $name; 47 | } 48 | } 49 | } 50 | } 51 | } 52 | 53 | ?> -------------------------------------------------------------------------------- /ex/kindeditor/plugins/code/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} 2 | 3 | pre.prettyprint { 4 | border: 0; 5 | border-left: 3px solid rgb(204, 204, 204); 6 | margin-left: 2em; 7 | padding: 0.5em; 8 | font-size: 110%; 9 | display: block; 10 | font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; 11 | margin: 1em 0px; 12 | white-space: pre; 13 | } 14 | -------------------------------------------------------------------------------- /ex/plugin/picture/run.php: -------------------------------------------------------------------------------- 1 | add('project_content', 'picture_post_edit'); 4 | hook()->add('pm_header', 'picture_header'); 5 | hook()->add('pm_footer', 'picture_footer'); 6 | } 7 | function picture_header(){ 8 | if(project() && project()->type() == 'picture'){ 9 | echo theme()->js(array('src' => get_file_url('ex/plugin/picture/jquery.colorbox-min.js'))), "\n"; 10 | echo theme()->css(array('href' => get_file_url('ex/plugin/picture/colorbox.css'))), "\n"; 11 | } 12 | } 13 | 14 | function picture_footer(){ 15 | if(project() && project()->type() == 'picture'){ 16 | echo ''; 22 | } 23 | } 24 | 25 | function picture_post_edit($content, $type){ 26 | return $content; 27 | } 28 | 29 | ?> -------------------------------------------------------------------------------- /ex/kindeditor/plugins/pagebreak/pagebreak.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('pagebreak', function(K) { 11 | var self = this; 12 | var name = 'pagebreak'; 13 | var pagebreakHtml = K.undef(self.pagebreakHtml, '
'); 14 | 15 | self.clickToolbar(name, function() { 16 | var cmd = self.cmd, range = cmd.range; 17 | self.focus(); 18 | var tail = self.newlineTag == 'br' || K.WEBKIT ? '' : ''; 19 | self.insertHtml(pagebreakHtml + tail); 20 | if (tail !== '') { 21 | var p = K('#__kindeditor_tail_tag__', self.edit.doc); 22 | range.selectNodeContents(p[0]); 23 | p.removeAttr('id'); 24 | cmd.select(); 25 | } 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /sys/core/lib/sql.php: -------------------------------------------------------------------------------- 1 | status = true; 36 | } catch(\Exception $ex){ 37 | $this->ex_message = $ex->getMessage(); 38 | } 39 | } 40 | 41 | /** 42 | * 返回数据库连接状态 43 | * @return bool 44 | */ 45 | public function status(){ 46 | return $this->status; 47 | } 48 | 49 | /** 50 | * 获取异常信息 51 | * @return string 52 | */ 53 | public function ex_message(){ 54 | return $this->ex_message; 55 | } 56 | 57 | /** 58 | * 返回数据库的查询次数 59 | * @return int 60 | */ 61 | public function get_query_count(){ 62 | return $this->count_number; 63 | } 64 | } -------------------------------------------------------------------------------- /sys/view/admin/page_list.php: -------------------------------------------------------------------------------- 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 |
38 |
39 |
-------------------------------------------------------------------------------- /ex/kindeditor/plugins/preview/preview.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('preview', function(K) { 11 | var self = this, name = 'preview', undefined; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '' + 16 | '
', 17 | dialog = self.createDialog({ 18 | name : name, 19 | width : 750, 20 | title : self.lang(name), 21 | body : html 22 | }), 23 | iframe = K('iframe', dialog.div), 24 | doc = K.iframeDoc(iframe); 25 | doc.open(); 26 | doc.write(self.fullHtml()); 27 | doc.close(); 28 | K(doc.body).css('background-color', '#FFF'); 29 | iframe[0].contentWindow.focus(); 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/clearhtml/clearhtml.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('clearhtml', function(K) { 11 | var self = this, name = 'clearhtml'; 12 | self.clickToolbar(name, function() { 13 | self.focus(); 14 | var html = self.html(); 15 | html = html.replace(/(]*>)([\s\S]*?)(<\/script>)/ig, ''); 16 | html = html.replace(/(]*>)([\s\S]*?)(<\/style>)/ig, ''); 17 | html = K.formatHtml(html, { 18 | a : ['href', 'target'], 19 | embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], 20 | img : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'], 21 | table : ['border'], 22 | 'td,th' : ['rowspan', 'colspan'], 23 | 'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [] 24 | }); 25 | self.html(html); 26 | self.cmd.selection(true); 27 | self.addBookmark(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/lineheight/lineheight.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('lineheight', function(K) { 11 | var self = this, name = 'lineheight', lang = self.lang(name + '.'); 12 | self.clickToolbar(name, function() { 13 | var curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'}); 14 | if (commonNode) { 15 | curVal = commonNode.css('line-height'); 16 | } 17 | var menu = self.createMenu({ 18 | name : name, 19 | width : 150 20 | }); 21 | K.each(lang.lineHeight, function(i, row) { 22 | K.each(row, function(key, val) { 23 | menu.addItem({ 24 | title : val, 25 | checked : curVal === key, 26 | click : function() { 27 | self.cmd.toggle('', { 28 | span : '.line-height=' + key 29 | }); 30 | self.updateState(); 31 | self.addBookmark(); 32 | self.hideMenu(); 33 | } 34 | }); 35 | }); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/baidumap/map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Baidu Maps 6 | 10 | 11 | 39 | 40 | 41 |
42 | 43 | 44 | -------------------------------------------------------------------------------- /sys/view/home/login.php: -------------------------------------------------------------------------------- 1 |
2 |

用户登录

3 | 4 |
5 |
6 | 7 | 8 |
9 | "> 14 |
15 |
16 |
17 | 18 | 19 |
20 | "> 25 |
26 |
27 |
28 |
29 |
30 | 33 |
34 |
35 |
36 | apply('Home_login_page', null);?> 37 |
38 |
39 | 40 |
41 |
42 |
43 |
-------------------------------------------------------------------------------- /sys/config.php: -------------------------------------------------------------------------------- 1 | 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('autoheight', function(K) { 11 | var self = this; 12 | 13 | if (!self.autoHeightMode) { 14 | return; 15 | } 16 | 17 | var minHeight; 18 | 19 | function hideScroll() { 20 | var edit = self.edit; 21 | var body = edit.doc.body; 22 | edit.iframe[0].scroll = 'no'; 23 | body.style.overflowY = 'hidden'; 24 | } 25 | 26 | function resetHeight() { 27 | var edit = self.edit; 28 | var body = edit.doc.body; 29 | edit.iframe.height(minHeight); 30 | self.resize(null, Math.max((K.IE ? body.scrollHeight : body.offsetHeight) + 76, minHeight)); 31 | } 32 | 33 | function init() { 34 | minHeight = K.removeUnit(self.height); 35 | 36 | self.edit.afterChange(resetHeight); 37 | hideScroll(); 38 | resetHeight(); 39 | } 40 | 41 | if (self.isCreated) { 42 | init(); 43 | } else { 44 | self.afterCreate(init); 45 | } 46 | }); 47 | 48 | /* 49 | * 如何实现真正的自动高度? 50 | * 修改编辑器高度之后,再次获取body内容高度时,最小值只会是当前iframe的设置高度,这样就导致高度只增不减。 51 | * 所以每次获取body内容高度之前,先将iframe的高度重置为最小高度,这样就能获取body的实际高度。 52 | * 由此就实现了真正的自动高度 53 | * 测试:chrome、firefox、IE9、IE8 54 | * */ 55 | -------------------------------------------------------------------------------- /sys/core/page.php: -------------------------------------------------------------------------------- 1 | load_404(); 25 | } 26 | 27 | /** 28 | * 加载类库 29 | * @return \Core\Lib 30 | */ 31 | protected function __lib(){ 32 | return call_user_func_array(array( 33 | lib(), 34 | 'load' 35 | ), func_get_args()); 36 | } 37 | 38 | /** 39 | * 加载视图 40 | */ 41 | protected function __view($file, $param = null){ 42 | if(is_array($file)){ 43 | foreach($file as $v){ 44 | if(is_file(_ViewPath_ . "/$v")){ 45 | $this->view($v, $param); 46 | } 47 | } 48 | } else{ 49 | if(is_file(_ViewPath_ . "/$file")){ 50 | $this->view($file, $param); 51 | } 52 | } 53 | } 54 | 55 | /** 56 | * 包含存在的视图文件 57 | * @param $file 58 | * @param $param 59 | */ 60 | private function view($file, $param){ 61 | if(is_array($param)){ 62 | foreach(array_keys($param) as $key){ 63 | $tmp = "__" . $key; 64 | $$tmp = & $param[$key]; 65 | } 66 | unset($key); 67 | unset($tmp); 68 | } 69 | include(_ViewPath_ . "/$file"); 70 | } 71 | 72 | /** 73 | * 默认页面,加载404页面 74 | */ 75 | public function main(){ 76 | //include(_CorePath_ . "/view/default.html"); 77 | $this->__load_404(); 78 | } 79 | } 80 | 81 | ?> -------------------------------------------------------------------------------- /sys/core/lib.php: -------------------------------------------------------------------------------- 1 | lib_list = array(); 27 | if(is_dir($path)){ 28 | $this->lib_path = $path; 29 | } else{ 30 | $this->lib_path = _LibPath_; 31 | } 32 | } 33 | 34 | /** 35 | * 加载Lib类文件 36 | * 37 | * @return Lib 38 | */ 39 | public function load(){ 40 | $list = func_get_args(); 41 | foreach($list as $name){ 42 | if(is_file($this->lib_path . "/" . $name . '.php')){ 43 | require_once($this->lib_path . "/" . $name . '.php'); 44 | } 45 | } 46 | return $this; 47 | } 48 | 49 | 50 | /** 51 | * 添加一个类的引用到数组中 52 | * @param string $name 53 | * @param object $obj 54 | * @return object 55 | */ 56 | public function add($name, $obj){ 57 | $this->lib_list[$name] = $obj; 58 | return $obj; 59 | } 60 | 61 | /** 62 | * 使用一个类,即从数组中返回 63 | * @param string $name 64 | * @return bool|object 65 | */ 66 | public function using($name){ 67 | if(isset($this->lib_list[$name])){ 68 | return $this->lib_list[$name]; 69 | } else{ 70 | return false; 71 | } 72 | } 73 | 74 | /** 75 | * 删除一个对应的类 76 | * @param string $name 77 | */ 78 | public function del($name){ 79 | if(isset($this->lib_list[$name])) 80 | unset($this->lib_list[$name]); 81 | } 82 | } -------------------------------------------------------------------------------- /ex/kindeditor/plugins/plainpaste/plainpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('plainpaste', function(K) { 11 | var self = this, name = 'plainpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var html = textarea.val(); 27 | html = K.escape(html); 28 | html = html.replace(/ {2}/g, '  '); 29 | if (self.newlineTag == 'p') { 30 | html = html.replace(/^/, '

').replace(/$/, '

').replace(/\n/g, '

'); 31 | } else { 32 | html = html.replace(/\n/g, '
$&'); 33 | } 34 | self.insertHtml(html).hideDialog().focus(); 35 | } 36 | } 37 | }), 38 | textarea = K('textarea', dialog.div); 39 | textarea[0].focus(); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /sys/core/config.php: -------------------------------------------------------------------------------- 1 | _config = array(); 20 | } 21 | 22 | /** 23 | * 读取配置文件并保存 24 | * @param string $file_path 配置文件路径,无目录 25 | * @return mixed|null 26 | */ 27 | public function load($file_path){ 28 | if(is_file($file_path)){ 29 | $config = require_once($file_path); 30 | if(is_array($config)){ 31 | foreach($config as $id => $v){ 32 | if(!is_numeric($id) && !isset($this->_config[$id])){ 33 | $this->_config[$id] = $v; 34 | } 35 | } 36 | } 37 | return $config; 38 | } 39 | return null; 40 | } 41 | 42 | /** 43 | * 获取配置 44 | * @return array|string|null|bool|object 45 | */ 46 | public function get(){ 47 | $rs = & $this->_config; 48 | foreach(func_get_args() as $v){ 49 | if(isset($rs[$v])){ 50 | $rs = & $rs[$v]; 51 | } else{ 52 | return null; 53 | } 54 | } 55 | return $rs; 56 | } 57 | 58 | 59 | /** 60 | * 修改指定配置文件 61 | * @param array $key 62 | * @param mixed $value 63 | */ 64 | public function set($key, $value){ 65 | $p = & $this->_config; 66 | $count = count($key); 67 | foreach($key as $v){ 68 | $count--; 69 | if(isset($p[$v])){ 70 | if(!$count){ 71 | $p[$v] = $value; 72 | return; 73 | } 74 | } else{ 75 | if($count){ 76 | $p[$v] = array(); 77 | } else{ 78 | $p[$v] = $value; 79 | return; 80 | } 81 | } 82 | $p = & $p[$v]; 83 | } 84 | } 85 | } 86 | 87 | ?> -------------------------------------------------------------------------------- /sys/view/admin/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <?php pm_title();?> 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

32 |
33 |
34 | 37 |
38 |
39 | 40 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/anchor/anchor.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('anchor', function(K) { 11 | var self = this, name = 'anchor', lang = self.lang(name + '.'); 12 | self.plugin.anchor = { 13 | edit : function() { 14 | var html = ['
', 15 | '
', 16 | '', 17 | '', 18 | '
', 19 | '
'].join(''); 20 | var dialog = self.createDialog({ 21 | name : name, 22 | width : 300, 23 | title : self.lang(name), 24 | body : html, 25 | yesBtn : { 26 | name : self.lang('yes'), 27 | click : function(e) { 28 | self.insertHtml('').hideDialog().focus(); 29 | } 30 | } 31 | }); 32 | var div = dialog.div, 33 | nameBox = K('input[name="name"]', div); 34 | var img = self.plugin.getSelectedAnchor(); 35 | if (img) { 36 | nameBox.val(unescape(img.attr('data-ke-name'))); 37 | } 38 | nameBox[0].focus(); 39 | nameBox[0].select(); 40 | }, 41 | 'delete' : function() { 42 | self.plugin.getSelectedAnchor().remove(); 43 | } 44 | }; 45 | self.clickToolbar(name, self.plugin.anchor.edit); 46 | }); 47 | -------------------------------------------------------------------------------- /sys/lib/router.php: -------------------------------------------------------------------------------- 1 | select("item", array( 32 | '[><]project' => array('project_id' => 'id') 33 | ), array( 34 | 'item.id' => 'item', 35 | 'project.id' => 'project' 36 | ), array( 37 | 'AND' => array( 38 | 'project.name' => $list[0], 39 | 'item.name' => $list[1] 40 | ), 41 | 'LIMIT' => 1 42 | )); 43 | if(isset($rt[0])){ 44 | $rt = $rt[0]; 45 | } else{ 46 | $rt = null; 47 | } 48 | break; 49 | case 1: 50 | $rt = db()->get("project", array( 51 | "id" => "project", 52 | "type" 53 | ), array('name' => $list[0])); 54 | if(!is_array($rt)){ 55 | $rt = null; 56 | } else{ 57 | $rt['item'] = null; 58 | if($rt['type'] == 'page'){ 59 | //当项目类型为Page时的处理 60 | self::$begin_status = true; 61 | return array( 62 | 'Page', 63 | 'page', 64 | $rt['project'] 65 | ); 66 | } 67 | } 68 | break; 69 | } 70 | if($rt !== null){ 71 | self::$begin_status = true; 72 | $list = array( 73 | 'Page', 74 | 'project', 75 | $rt['project'], 76 | $rt['item'] 77 | ); 78 | } 79 | return $list; 80 | } 81 | } -------------------------------------------------------------------------------- /sys/lib/hook.php: -------------------------------------------------------------------------------- 1 | load('router', 'sql')->add('sql', new \CLib\Sql(cfg()->get('sql'))); 25 | $this->_router = new \CLib\Router(); //系统路由类 26 | lib()->load('router'); 27 | $this->project_router = new Router(); //自定义路由类 28 | } 29 | 30 | /** 31 | * 添加钩子,并初始化部分信息 32 | */ 33 | public function add(){ 34 | if(!db()->status()){ 35 | hook()->add('UriInfo_process', array( 36 | $this, 37 | 'sql_error' 38 | )); 39 | } else{ 40 | c_lib()->load('cookie')->add('cookie', new \CLib\Cookie(cfg()->get('cookie', 'encode'))); 41 | lib()->load('setting', 'user', 'plugin','version_hook')->add('setting', new Setting()); 42 | lib()->add('user', new User(true)); 43 | lib()->add("version_hook",new Version_Hook()); 44 | l_h('theme.php'); 45 | hook()->add('UriInfo_process', array( 46 | $this, 47 | 'router' 48 | )); 49 | lib()->add('plugin', new Plugin(_BasePath_ . "/ex/plugin")); 50 | } 51 | } 52 | 53 | /** 54 | * 指定数据库连接出错的页面 55 | * @return array 56 | */ 57 | public function sql_error(){ 58 | return array( 59 | 'Error', 60 | 'sql' 61 | ); 62 | } 63 | 64 | /** 65 | * 路由回调 66 | * @param $list 67 | * @return mixed 68 | */ 69 | public function router($list){ 70 | return $this->project_router->end($this->_router->result($this->project_router->begin($list))); 71 | } 72 | } -------------------------------------------------------------------------------- /sys/view/admin/version_list.php: -------------------------------------------------------------------------------- 1 |
2 |

选择版本控制 3 | 添加 4 |

5 | 6 |
7 | 没有任何版本项目

"; 10 | } 11 | foreach($__list as $v){ 12 | echo "", $v['name'], " \n"; 17 | } 18 | ?> 19 |
20 |
21 | -------------------------------------------------------------------------------- /js/admin/page_edit.js: -------------------------------------------------------------------------------- 1 | PageEdit = function () { 2 | 3 | } 4 | PageEdit.page_info = null; 5 | PageEdit.load = function (id) { 6 | $.get(SITE_URL + 'Admin/ajax', {type:'page_info', id:id}, function (data) { 7 | if (data['status']) { 8 | PageEdit.page_info = data; 9 | $("form#page_edit input[name='title']").val(data['data']['title']); 10 | $("form#page_edit input[name='time']").val(data['data']['time']); 11 | $("form#page_edit input[name='view']").val(data['data']['view']); 12 | $("form#page_edit select[name='type']").val(data['data']['type']); 13 | $("form#page_edit input[name='keywords']").val(data['data']['keywords']); 14 | $.each(data['status_list'], function (index, elem) { 15 | $("form#page_edit select[name='status']").append(''); 16 | }); 17 | $("form#page_edit select[name='status']").val(data['data']['status']); 18 | editor.html(data['data']['content']); 19 | } else { 20 | PageEdit.alert("请求内容不存在,当前ID为" + id + "!", 'danger'); 21 | $("form#page_edit").hide(); 22 | } 23 | }); 24 | $("form#page_edit").ajaxForm(function (data) { 25 | $("#alert_box").html(""); 26 | switch (data['status']) { 27 | case 'success': 28 | PageEdit.alert("内容修改成功", "success"); 29 | break; 30 | case 'no change': 31 | PageEdit.alert("内容无修改", "warning"); 32 | break; 33 | case 'error': 34 | PageEdit.alert('修改出错
错误信息:' + data['message'], "danger"); 35 | break; 36 | } 37 | setTimeout('$(".alert").alert("close");', 5000); 38 | }); 39 | } 40 | PageEdit.alert = function (content, type) { 41 | $("#alert_box").html("
" + 42 | "×" + 43 | "

" + content + "

" + 44 | "
"); 45 | } -------------------------------------------------------------------------------- /ex/plugin/https/page.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 |
7 | get('s_g', 'https', 'mode'); 9 | foreach(['share' => '共享模式','focus'=>'强制HTTPS','none'=>'关闭HTTPS'] as $name => $value): 10 | $checked = ($name==$mode)?"checked":""; 11 | ?> 12 | 15 | 16 |
17 |
18 |
19 | 20 |
21 |
22 | 25 | 26 |
27 |
28 | 31 | 32 |
33 |
34 | 37 | 38 |
39 |
40 | 41 |
42 |
43 |
-------------------------------------------------------------------------------- /ex/plugin/out_hook/page.php: -------------------------------------------------------------------------------- 1 | 5 |
6 |
7 |
8 | 无登录区分 9 | 10 | 12 | 13 | 15 | 16 |
17 |
18 | 登录状态下 19 | 20 | 22 | 23 | 25 | 26 |
27 |
28 | 未登录状态 29 | 30 | 32 | 33 | 35 | 36 |
37 |
38 |
-------------------------------------------------------------------------------- /ex/kindeditor/plugins/wordpaste/wordpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('wordpaste', function(K) { 11 | var self = this, name = 'wordpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var str = doc.body.innerHTML; 27 | str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); 28 | self.insertHtml(str).hideDialog().focus(); 29 | } 30 | } 31 | }), 32 | div = dialog.div, 33 | iframe = K('iframe', div), 34 | doc = K.iframeDoc(iframe); 35 | if (!K.IE) { 36 | doc.designMode = 'on'; 37 | } 38 | doc.open(); 39 | doc.write('WordPaste'); 40 | doc.write(''); 41 | if (!K.IE) { 42 | doc.write('
'); 43 | } 44 | doc.write(''); 45 | doc.close(); 46 | if (K.IE) { 47 | doc.body.contentEditable = 'true'; 48 | } 49 | iframe[0].contentWindow.focus(); 50 | }); 51 | }); 52 | -------------------------------------------------------------------------------- /sys/view/comm/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <?php pm_title()?> 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 | 19 | 20 | 40 |
41 | 42 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/map/map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 53 | 54 | 55 |
56 | 57 | -------------------------------------------------------------------------------- /sys/core/interface.php: -------------------------------------------------------------------------------- 1 | getUri(); 23 | } 24 | 25 | /** 26 | * 获取钩子 27 | * @return Core\Hook 28 | */ 29 | function hook(){ 30 | return c()->getHook(); 31 | } 32 | 33 | /** 34 | * 获取LIB 35 | * @return Core\Lib 36 | */ 37 | function lib(){ 38 | return c()->getLib(); 39 | } 40 | 41 | /** 42 | * 获取系统LIB 43 | * @return Core\Lib 44 | */ 45 | function c_lib(){ 46 | return c()->getCoreLib(); 47 | } 48 | 49 | /** 50 | * 获取系统配置 51 | * @return Core\Config 52 | */ 53 | function cfg(){ 54 | return c()->getConfig(); 55 | } 56 | 57 | /** 58 | * 加载一个助手文件 59 | * @param string $helper_file 文件名,或者相对助手文件夹路径 60 | * @return mixed 61 | */ 62 | function l_h($helper_file){ 63 | return require(_HelperPath_ . "/" . $helper_file); 64 | } 65 | 66 | /** 67 | * 加载一个系统助手文件 68 | * @param string $helper_file 文件名,或者相对助手文件夹路径 69 | * @return mixed 70 | */ 71 | function c_h($helper_file){ 72 | return require(_CorePath_ . "/helper/" . $helper_file); 73 | } 74 | 75 | /** 76 | * 获取请求类 77 | * @return Core\Request 78 | */ 79 | function req(){ 80 | return c()->getRequest(); 81 | } 82 | 83 | /** 84 | * 输出调试信息 85 | * @param string $str 86 | */ 87 | function debug($str){ 88 | if(_Debug_) 89 | echo "Debug:$str\n"; 90 | } 91 | 92 | 93 | require_once(_CorePath_ . "/core.php"); 94 | require_once(_CorePath_ . "/timer.php"); 95 | require_once(_CorePath_ . "/hook.php"); 96 | require_once(_CorePath_ . "/config.php"); 97 | require_once(_CorePath_ . "/uri.php"); 98 | require_once(_CorePath_ . "/lib.php"); 99 | require_once(_CorePath_ . "/page.php"); 100 | require_once(_CorePath_ . "/request.php"); 101 | ?> -------------------------------------------------------------------------------- /sys/helper/func.php: -------------------------------------------------------------------------------- 1 | using('sql'); 14 | } 15 | 16 | /** 17 | * cookie类 18 | * @return \CLib\Cookie 19 | */ 20 | function ck(){ 21 | return c_lib()->using('cookie'); 22 | } 23 | 24 | /** 25 | * 项目类 26 | * @return \ULib\Project 27 | */ 28 | function project(){ 29 | return lib()->using('project'); 30 | } 31 | 32 | /** 33 | * 网站菜单类 34 | * @return \ULib\Menu 35 | */ 36 | function menu(){ 37 | return lib()->using('menu'); 38 | } 39 | 40 | 41 | /** 42 | * 用户类 43 | * @return \ULib\User 44 | */ 45 | function user(){ 46 | return lib()->using('user'); 47 | } 48 | 49 | /** 50 | * 项目管理类,不存在的情况下自己加装并初始化 51 | * @return \ULib\ManageProject 52 | */ 53 | function m_project(){ 54 | if(lib()->using('manage_project') == false){ 55 | lib()->load('manage_project')->add('manage_project', new \ULib\ManageProject()); 56 | } 57 | return lib()->using('manage_project'); 58 | } 59 | 60 | 61 | /** 62 | * 系统设置类 63 | * @return \ULib\Setting 64 | */ 65 | function setting_lib(){ 66 | return lib()->using('setting'); 67 | } 68 | 69 | 70 | /** 71 | * 生成随机字符 72 | * @param int $len 73 | * @return string 74 | */ 75 | function salt($len = 40){ 76 | $output = ''; 77 | for($a = 0; $a < $len; $a++){ 78 | $output .= chr(mt_rand(33, 126)); //生成php随机数 79 | } 80 | return $output; 81 | } 82 | 83 | /** 84 | * 通过加盐生成hash值 85 | * @param $hash 86 | * @param $salt 87 | * @return string 88 | */ 89 | function salt_hash($hash, $salt){ 90 | $count = strlen($salt); 91 | if ($salt === null || $count < 1) { 92 | return _hash($hash); 93 | } 94 | return _hash(substr($salt, 0, max((int)($count / 3),1)) . $hash . $salt); 95 | } 96 | 97 | /** 98 | * 单独封装hash函数 99 | * @param $str 100 | * @return string 101 | */ 102 | function _hash($str){ 103 | return sha1($str); 104 | } 105 | 106 | -------------------------------------------------------------------------------- /ex/plugin/sitemap/run.php: -------------------------------------------------------------------------------- 1 | add('admin_plugin_menu', 'sitemap_menu'); 3 | hook()->add('admin_plugin_content', 'sitemap_content'); 4 | 5 | /** 6 | * 插件内容设置 7 | * @param string $name 对应标记参数 8 | * @return string 9 | */ 10 | function sitemap_content($name){ 11 | if($name == 'sitemap'){ 12 | if(req()->is_post()){ 13 | sitemap_create(true); 14 | } 15 | include(__DIR__ . "/page.php"); 16 | } 17 | return $name; 18 | } 19 | 20 | /** 21 | * 添加插件菜单 22 | * @param $menu 23 | * @return mixed 24 | */ 25 | function sitemap_menu($menu){ 26 | array_push($menu, array( 27 | 'name' => '网站地图设置', 28 | 'router' => array( 29 | 'Admin', 30 | 'plugin', 31 | 'sitemap' 32 | ), 33 | 'hidden' => false 34 | )); 35 | return $menu; 36 | } 37 | 38 | /** 39 | * 返回可读的大小 40 | * @param int $size 整型的文件大小 41 | * @param int $save 保留的整数位 42 | * @return string 43 | */ 44 | function sitemap_size($size, $save = 2){ 45 | $a = array( 46 | "B", 47 | "KB", 48 | "MB", 49 | "GB", 50 | "TB", 51 | "PB", 52 | "EB", 53 | "ZB", 54 | "YB" 55 | ); 56 | $pos = 0; 57 | if($size < 0) 58 | return "0"; 59 | while($size > 1024){ 60 | $size /= 1024; 61 | $pos++; 62 | } 63 | return round($size, $save) . $a[$pos]; 64 | } 65 | 66 | /** 67 | * 生成网站地图信息 68 | */ 69 | function sitemap_create($out_message = false){ 70 | require_once(__DIR__ . "/sitemap.php"); 71 | $sitemap = new \Plugin\SiteMap($out_message); 72 | $sitemap->msg("准备生成网站地图,最大10M,最多5000条
当前内存消耗:" . sitemap_size(memory_get_usage()) . ""); 73 | $sitemap->create(); 74 | $file = _BasePath_ . "/sitemap.xml"; 75 | $sitemap->write_file($file); 76 | $sitemap->msg("生成文件大小: " . sitemap_size(filesize($file)) . ""); 77 | $sitemap->msg("生成记录: " . $sitemap->count() . " 条"); 78 | $sitemap->msg("地图地址: " . get_file_view_url('sitemap.xml') . ""); 79 | $sitemap->msg("生成地图成功
当前内存消耗:" . sitemap_size(memory_get_usage()) . ""); 80 | } -------------------------------------------------------------------------------- /sys/core/hook.php: -------------------------------------------------------------------------------- 1 | _hook_list = array(); 23 | } 24 | 25 | /** 26 | * 添加一个钩子到系统 27 | * @param string $name 28 | * @param callback $func 29 | */ 30 | public function add($name, $func){ 31 | if(!isset($this->_hook_list[$name])){ 32 | $this->_hook_list[$name] = array(); 33 | } 34 | if(is_array($func)){ 35 | $this->_hook_list[$name][get_class($func[0]) . ":" . $func[1]] = $func; 36 | } else{ 37 | if(is_string($func)){ 38 | $this->_hook_list[$name][$func] = $func; 39 | } else if(is_object($func) && get_class($func) == "Closure"){ 40 | $this->_hook_list[$name]["Closure"] = $func; 41 | } else{ 42 | trigger_error("Hook callback error!"); 43 | } 44 | } 45 | } 46 | 47 | 48 | /** 49 | * 应用钩子,至少包含一个参数名 50 | * @param string $name 对应名称 51 | * @param mixed $param1 第一个参数 52 | * @return mixed 返回调用的第一个参数 53 | */ 54 | public function apply($name, $param1){ 55 | //必须存在$param1对$args[0]进行约束 56 | if(isset($this->_hook_list[$name])){ 57 | $args = array_slice(func_get_args(), 1); 58 | foreach($this->_hook_list[$name] as $v){ 59 | $param1 = call_user_func_array($v, $args); 60 | $args[0] = $param1; 61 | } 62 | } 63 | return $param1; 64 | } 65 | 66 | /** 67 | * 移除对应的钩子 68 | * @param string $name 钩子名称 69 | * @param callback|string $func 钩子对应的调用方法 70 | */ 71 | public function remove($name, $func = ''){ 72 | if(isset($this->_hook_list[$name])){ 73 | if(empty($func)){ 74 | unset($this->_hook_list[$name]); 75 | } else{ 76 | if(is_array($func)){ 77 | if(isset($this->_hook_list[$name][get_class($func[0]) . ":" . $func[1]])){ 78 | unset($this->_hook_list[$name][get_class($func[0]) . ":" . $func[1]]); 79 | } 80 | } else{ 81 | if(isset($this->_hook_list[$name][$func])){ 82 | unset($this->_hook_list[$name][$func]); 83 | } 84 | } 85 | } 86 | } 87 | } 88 | } -------------------------------------------------------------------------------- /sys/core/lib/router.php: -------------------------------------------------------------------------------- 1 | _redirect = array(); 25 | $this->_preg = array(); 26 | } 27 | 28 | /** 29 | * 添加重定向路由 30 | * @param string $form 31 | * @param string $to 32 | */ 33 | public function add_redirect($form, $to){ 34 | $this->_redirect[$form] = $to; 35 | } 36 | 37 | /** 38 | * 根据正则表达式进行替换路由 39 | * @param string|array $list 40 | * @param null|string $set 41 | */ 42 | public function add_preg($list, $set = null){ 43 | if(!is_null($set) && is_string($list)){ 44 | $this->_preg[$list] = $set; 45 | } 46 | if(is_array($list)){ 47 | foreach($list as $id => $v){ 48 | if(!is_int($id) && is_string($v)){ 49 | $this->_preg[$id] = $v; 50 | } 51 | } 52 | } 53 | } 54 | 55 | /** 56 | * 执行路由替换工作,并返回对应的路由 57 | * @param $uri_list 58 | * @return array 59 | */ 60 | public function result($uri_list){ 61 | $str = implode(ROUTER_SPLIT_CHAR, $uri_list); 62 | foreach($this->_redirect as $key => $val){ 63 | if($key === $str){ 64 | return $this->to_list($val); 65 | } 66 | } 67 | //支持正则表达式,使用preg_match_all();匹配,对仅有一次的匹配结果的进行替换,对应的值为数组的序号,用[0]表示完全匹配的结果 68 | //"/Topic-([0-9]+)-([0-9]+)\.html/" => "Topic/main/[1]/[2]",测试实例 69 | foreach($this->_preg as $rul => $page){ 70 | if(preg_match_all($rul, $str, $match, PREG_SET_ORDER) === 1){ 71 | if($match[0][0] == $str){ 72 | foreach($match[0] as $id => $val){ 73 | $page = str_replace("[$id]", $val, $page); 74 | } 75 | return $this->to_list($page); 76 | } 77 | } 78 | } 79 | return $uri_list; 80 | } 81 | 82 | /** 83 | * 对字符串进行路由转换 84 | * @param $str 85 | * @return array 86 | */ 87 | private function to_list($str){ 88 | $list = explode(ROUTER_SPLIT_CHAR, trim($str)); 89 | $rt = array(); 90 | foreach($list as $v){ 91 | if(trim($v) !== ""){ 92 | $rt[] = trim($v); 93 | } 94 | } 95 | return $rt; 96 | } 97 | } -------------------------------------------------------------------------------- /ex/plugin/out_hook/run.php: -------------------------------------------------------------------------------- 1 | add('admin_plugin_menu', 'out_hook_menu'); 3 | hook()->add('admin_plugin_content', 'out_hook_content'); 4 | hook()->add('pm_footer', 'out_hook_footer'); 5 | hook()->add('pm_header', 'out_hook_header'); 6 | 7 | if(!is_array(($cfg = cfg()->get('s_g', 'out_hook')))){ 8 | if($cfg){ 9 | cfg()->set(array( 10 | 's_g', 11 | 'out_hook' 12 | ), json_decode($cfg, true)); 13 | } 14 | } 15 | 16 | function out_hook_menu($menu){ 17 | array_push($menu, array( 18 | 'name' => '输出钩子设置', 19 | 'router' => array( 20 | 'Admin', 21 | 'plugin', 22 | 'out_hook' 23 | ), 24 | 'hidden' => false 25 | )); 26 | return $menu; 27 | } 28 | 29 | function out_hook_content($name){ 30 | if($name == 'out_hook'){ 31 | if(!req()->is_post() || out_hook_post()){ 32 | include(__DIR__ . "/page.php"); 33 | } 34 | } 35 | return $name; 36 | } 37 | 38 | function out_hook_footer(){ 39 | $cfg = cfg(); 40 | echo $cfg->get('s_g','out_hook','common_foot'); 41 | if(is_login()){ 42 | echo $cfg->get('s_g','out_hook','login_foot'); 43 | }else{ 44 | echo $cfg->get('s_g','out_hook','gust_foot'); 45 | } 46 | } 47 | 48 | function out_hook_header(){ 49 | $cfg = cfg(); 50 | echo $cfg->get('s_g','out_hook','common_head'); 51 | if(is_login()){ 52 | echo $cfg->get('s_g','out_hook','login_head'); 53 | }else{ 54 | echo $cfg->get('s_g','out_hook','gust_head'); 55 | } 56 | } 57 | 58 | function out_hook_post(){ 59 | $req = req(); 60 | $data = array( 61 | 'common_head' => $req->post('common_head'), 62 | 'common_foot' => $req->post('common_foot'), 63 | 'login_head' => $req->post('login_head'), 64 | 'login_foot' => $req->post('login_foot'), 65 | 'gust_head' => $req->post('gust_head'), 66 | 'gust_foot' => $req->post('gust_foot'), 67 | ); 68 | /** 69 | * @var $setting \ULib\Setting 70 | */ 71 | $setting = lib()->using('setting'); 72 | $rt = $setting->edit_sql('out_hook', json_encode($data)); 73 | if($rt['status'] == false){ 74 | if(!$setting->add('out_hook', json_encode($data), true)){ 75 | echo "

更新数据失败,无法创建设置选项

"; 76 | return false; 77 | } 78 | } 79 | echo "

更新成功!

"; 80 | cfg()->set(array( 81 | 's_g', 82 | 'out_hook' 83 | ), $data); 84 | return true; 85 | } -------------------------------------------------------------------------------- /sys/view/admin/item_create.php: -------------------------------------------------------------------------------- 1 |
2 |

标题:, 名称:

6 |
7 | 8 |
" method="post"> 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 | 38 |
39 |
40 |
41 |
42 | 43 |
44 |
45 | 46 |
47 | 62 |
-------------------------------------------------------------------------------- /ex/kindeditor/plugins/quickformat/quickformat.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('quickformat', function(K) { 11 | var self = this, name = 'quickformat', 12 | blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p'); 13 | function getFirstChild(knode) { 14 | var child = knode.first(); 15 | while (child && child.first()) { 16 | child = child.first(); 17 | } 18 | return child; 19 | } 20 | self.clickToolbar(name, function() { 21 | self.focus(); 22 | var doc = self.edit.doc, 23 | range = self.cmd.range, 24 | child = K(doc.body).first(), next, 25 | nodeList = [], subList = [], 26 | bookmark = range.createBookmark(true); 27 | while(child) { 28 | next = child.next(); 29 | var firstChild = getFirstChild(child); 30 | if (!firstChild || firstChild.name != 'img') { 31 | if (blockMap[child.name]) { 32 | child.html(child.html().replace(/^(\s| | )+/ig, '')); 33 | child.css('text-indent', '2em'); 34 | } else { 35 | subList.push(child); 36 | } 37 | if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) { 38 | if (subList.length > 0) { 39 | nodeList.push(subList); 40 | } 41 | subList = []; 42 | } 43 | } 44 | child = next; 45 | } 46 | K.each(nodeList, function(i, subList) { 47 | var wrapper = K('

', doc); 48 | subList[0].before(wrapper); 49 | K.each(subList, function(i, knode) { 50 | wrapper.append(knode); 51 | }); 52 | }); 53 | range.moveToBookmark(bookmark); 54 | self.addBookmark(); 55 | }); 56 | }); 57 | 58 | /** 59 | -------------------------- 60 | abcd
61 | 1234
62 | 63 | to 64 | 65 |

66 | abcd
67 | 1234
68 |

69 | 70 | -------------------------- 71 | 72 |   abcd1233 73 |

1234

74 | 75 | to 76 | 77 |

abcd1233

78 |

1234

79 | 80 | -------------------------- 81 | */ -------------------------------------------------------------------------------- /ex/kindeditor/plugins/template/template.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('template', function(K) { 11 | var self = this, name = 'template', lang = self.lang(name + '.'), 12 | htmlPath = self.pluginsPath + name + '/html/'; 13 | function getFilePath(fileName) { 14 | return htmlPath + fileName + '?ver=' + encodeURIComponent(K.DEBUG ? K.TIME : K.VERSION); 15 | } 16 | self.clickToolbar(name, function() { 17 | var lang = self.lang(name + '.'), 18 | arr = ['
', 19 | '
', 20 | // left start 21 | '
', 22 | lang. selectTemplate + '
', 28 | // right start 29 | '
', 30 | ' ', 31 | '
', 32 | '
', 33 | '
', 34 | '', 35 | '
'].join(''); 36 | var dialog = self.createDialog({ 37 | name : name, 38 | width : 500, 39 | title : self.lang(name), 40 | body : html, 41 | yesBtn : { 42 | name : self.lang('yes'), 43 | click : function(e) { 44 | var doc = K.iframeDoc(iframe); 45 | self[checkbox[0].checked ? 'html' : 'insertHtml'](doc.body.innerHTML).hideDialog().focus(); 46 | } 47 | } 48 | }); 49 | var selectBox = K('select', dialog.div), 50 | checkbox = K('[name="replaceFlag"]', dialog.div), 51 | iframe = K('iframe', dialog.div); 52 | checkbox[0].checked = true; 53 | iframe.attr('src', getFilePath(selectBox.val())); 54 | selectBox.change(function() { 55 | iframe.attr('src', getFilePath(this.value)); 56 | }); 57 | }); 58 | }); 59 | -------------------------------------------------------------------------------- /sys/view/admin/project_create.php: -------------------------------------------------------------------------------- 1 |

创建新的项目

2 | 3 |
4 | 5 |
" method="post"> 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 |
38 | 39 | 40 |
41 | 45 |
46 |
47 |
48 |
49 | 50 |
51 |
52 |
53 | 68 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/code/code.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | // google code prettify: http://google-code-prettify.googlecode.com/ 11 | // http://google-code-prettify.googlecode.com/ 12 | 13 | KindEditor.plugin('code', function(K) { 14 | var self = this, name = 'code'; 15 | self.clickToolbar(name, function() { 16 | var lang = self.lang(name + '.'), 17 | html = ['
', 18 | '
', 19 | '', 35 | '
', 36 | '', 37 | '
'].join(''), 38 | dialog = self.createDialog({ 39 | name : name, 40 | width : 450, 41 | title : self.lang(name), 42 | body : html, 43 | yesBtn : { 44 | name : self.lang('yes'), 45 | click : function(e) { 46 | var type = K('.ke-code-type', dialog.div).val(), 47 | code = textarea.val(), 48 | cls = type === '' ? '' : ' lang-' + type, 49 | html = '
\n' + K.escape(code) + '
'; 50 | if (K.trim(code) === '') { 51 | alert(lang.pleaseInput); 52 | textarea[0].focus(); 53 | return; 54 | } 55 | self.insertHtml(html).hideDialog().focus(); 56 | } 57 | } 58 | }), 59 | textarea = K('textarea', dialog.div); 60 | textarea[0].focus(); 61 | }); 62 | }); 63 | -------------------------------------------------------------------------------- /js/html5shiv.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); 8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('link', function(K) { 11 | var self = this, name = 'link'; 12 | self.plugin.link = { 13 | edit : function() { 14 | var lang = self.lang(name + '.'), 15 | html = '
' + 16 | //url 17 | '
' + 18 | '' + 19 | '
' + 20 | //type 21 | '
' + 22 | '' + 23 | '' + 24 | '
' + 25 | '
', 26 | dialog = self.createDialog({ 27 | name : name, 28 | width : 450, 29 | title : self.lang(name), 30 | body : html, 31 | yesBtn : { 32 | name : self.lang('yes'), 33 | click : function(e) { 34 | var url = K.trim(urlBox.val()); 35 | if (url == 'http://' || K.invalidUrl(url)) { 36 | alert(self.lang('invalidUrl')); 37 | urlBox[0].focus(); 38 | return; 39 | } 40 | self.exec('createlink', url, typeBox.val()).hideDialog().focus(); 41 | } 42 | } 43 | }), 44 | div = dialog.div, 45 | urlBox = K('input[name="url"]', div), 46 | typeBox = K('select[name="type"]', div); 47 | urlBox.val('http://'); 48 | typeBox[0].options[0] = new Option(lang.newWindow, '_blank'); 49 | typeBox[0].options[1] = new Option(lang.selfWindow, ''); 50 | self.cmd.selection(); 51 | var a = self.plugin.getSelectedLink(); 52 | if (a) { 53 | self.cmd.range.selectNode(a[0]); 54 | self.cmd.select(); 55 | urlBox.val(a.attr('data-ke-src')); 56 | typeBox.val(a.attr('target')); 57 | } 58 | urlBox[0].focus(); 59 | urlBox[0].select(); 60 | }, 61 | 'delete' : function() { 62 | self.exec('unlink', null); 63 | } 64 | }; 65 | self.clickToolbar(name, self.plugin.link.edit); 66 | }); 67 | -------------------------------------------------------------------------------- /sys/lib/setting.php: -------------------------------------------------------------------------------- 1 | select("setting", array( 12 | 'name', 13 | 'value' 14 | ), array('auto' => 1)); 15 | $rt = array(); 16 | foreach($list as $v){ 17 | $rt[$v['name']] = $v['value']; 18 | } 19 | cfg()->set(array('s_g'), $rt); 20 | } 21 | 22 | /** 23 | * 编辑数据库设置 24 | * @param string $name 25 | * @param string $value 26 | * @return array 状态信息 27 | */ 28 | public function edit_sql($name, $value){ 29 | $rt = array( 30 | 'status' => false, 31 | 'error' => '' 32 | ); 33 | $data = db()->get("setting", array( 34 | 'name', 35 | 'value' 36 | ), array('name' => $name)); 37 | if(isset($data['name'])){ 38 | if($data['value'] == $value){ 39 | $rt['status'] = true; 40 | } else{ 41 | if(db()->update("setting", array('value' => $value), array('name' => $name))){ 42 | $rt['status'] = true; 43 | } else{ 44 | $rt['status'] = db()->error(); 45 | } 46 | } 47 | } else{ 48 | $rt['error'] = "该设置不存在"; 49 | } 50 | return $rt; 51 | } 52 | 53 | /** 54 | * 添加一个设置选项 55 | * @param string $name 56 | * @param string $value 57 | * @param bool $auto 默认为自动加载 58 | * @return bool 59 | */ 60 | public function add($name, $value, $auto = true){ 61 | $ret = db()->insert("setting", array( 62 | 'name' => $name, 63 | 'value' => $value, 64 | 'auto' => $auto ? 1 : 0 65 | )); 66 | return $ret > 0; 67 | } 68 | 69 | /** 70 | * 获取项目全部列表 71 | * @param int $page 72 | * @param int $number 73 | * @return array 74 | */ 75 | public function get_list($page, $number = 20){ 76 | if(empty($page)){ 77 | $page = 1; 78 | } 79 | if(empty($number)){ 80 | $number = 20; 81 | } 82 | $rt = array( 83 | 'status' => false, 84 | 'count' => db()->count("setting"), 85 | 'data' => array(), 86 | 'number' => $number, 87 | 'page' => $page 88 | ); 89 | $rt['data'] = db()->select("setting", array( 90 | 'id', 91 | 'name', 92 | 'value', 93 | 'auto' 94 | ), array( 95 | 'LIMIT' => array( 96 | $number * ($page - 1), 97 | $number 98 | ) 99 | )); 100 | if(count($rt['data']) > 0){ 101 | $rt['status'] = true; 102 | } 103 | return $rt; 104 | } 105 | 106 | } -------------------------------------------------------------------------------- /sys/view/admin/page_edit.php: -------------------------------------------------------------------------------- 1 |

编辑文章

2 | 3 |
4 |
8 |
9 | 10 | 11 |
12 |
13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 |
21 |
22 | 23 | 33 |
34 |
35 | 36 | 37 |
38 |
39 | 40 |
41 | 关键字 42 | 43 |
44 | 45 |
46 | 47 |
48 | 49 |
50 | 65 | -------------------------------------------------------------------------------- /sys/lib/version_hook.php: -------------------------------------------------------------------------------- 1 | add('project_content', [ 10 | $this, 11 | 'content_parse' 12 | ]); 13 | } 14 | 15 | public function content_parse($data, $type){ 16 | preg_match_all("//", $data, $matches, PREG_SET_ORDER); 17 | foreach($matches as $v){ 18 | switch($v[2]){ 19 | case "history": 20 | $data = str_replace($v[0], $this->get_history($v[1]), $data); 21 | break; 22 | case "top_version": 23 | $data = str_replace($v[0], $this->get_top_version($v[1]), $data); 24 | break; 25 | case "top_version_code": 26 | $data = str_replace($v[0], $this->get_top_version_code($v[1]), $data); 27 | break; 28 | case "update_info": 29 | $data = str_replace($v[0], $this->get_update_info($v[1]), $data); 30 | break; 31 | } 32 | } 33 | return $data; 34 | } 35 | 36 | private function get_update_info($name){ 37 | $this->__lib('version_api'); 38 | $list = db()->select("version_control", ["update_info","version"], [ 39 | 'AND' => [ 40 | 'name' => $name, 41 | 'version_code[>]' => 0 42 | ], 43 | 'ORDER' => 'version_code DESC' 44 | ]); 45 | foreach($list as &$v){ 46 | $v['update_info'] = Version_Api::parse_info($v['update_info']); 47 | } 48 | ob_start(); 49 | $this->__view("version/update_info.php", ['list' => $list]); 50 | $c = ob_get_contents(); 51 | ob_clean(); 52 | return $c; 53 | } 54 | 55 | private function get_top_version($name){ 56 | $r = db()->get("version", "top_version", ['name' => $name]); 57 | return isset($r['top_version']) ? $r['top_version'] : (is_string($r) ? $r : "0.0.0"); 58 | } 59 | 60 | private function get_top_version_code($name){ 61 | $r = db()->get("version", "top_version_code", ['name' => $name]); 62 | return isset($r['top_version_code']) ? $r['top_version_code'] : (is_string($r) ? $r : "0"); 63 | } 64 | 65 | private function get_history($name){ 66 | $list = db()->select("version_control", [ 67 | 'version', 68 | 'time', 69 | 'download_url' 70 | ], [ 71 | 'AND' => [ 72 | 'name' => $name, 73 | 'version_code[>]' => 0 74 | ], 75 | 'ORDER' => 'version_code DESC' 76 | ]); 77 | ob_start(); 78 | $this->__view("version/history.php", ['list' => $list]); 79 | $c = ob_get_contents(); 80 | ob_clean(); 81 | return $c; 82 | } 83 | } -------------------------------------------------------------------------------- /sys/page/Home.php: -------------------------------------------------------------------------------- 1 | load('menu')->add('menu', new \ULib\Menu()); 13 | } 14 | 15 | /** 16 | * 默认首页 17 | */ 18 | public function main(){ 19 | if(u()->getUriInfo()->getUrlListLast() !== NULL){ 20 | $this->__load_404(); 21 | } else{ 22 | header("Content-Type: text/html; charset=utf-8"); 23 | theme()->set_desc(site_title(false) . " - " . site_desc(false)); 24 | theme()->set_keywords(site_keywords()); 25 | $this->__view('comm/header.php'); 26 | $this->__view('home/home.php'); 27 | $this->__view('comm/footer.php'); 28 | } 29 | } 30 | 31 | /** 32 | * 登录页面 33 | * @param int $code 34 | */ 35 | public function login($code = 0){ 36 | header("Content-Type: text/html; charset=utf-8"); 37 | $this->__view('comm/header.php'); 38 | if(is_login()){ 39 | $this->__view('home/logged.php'); 40 | } else{ 41 | $this->__view('home/login.php', [ 42 | 'IS_DEMO_SITE' => defined('IS_DEMO_SITE') && IS_DEMO_SITE 43 | ]); 44 | } 45 | $this->__view('comm/footer.php'); 46 | } 47 | 48 | /** 49 | * 登出页面 50 | */ 51 | public function logout(){ 52 | user()->logout(); 53 | hook()->apply('Home_logout', NULL); 54 | redirect(user()->login_go()); 55 | } 56 | 57 | public function page_view(){ 58 | $plain = req()->_plain(); 59 | $id = $plain->post('id') + 0; 60 | if($plain->is_post() && $id > 0){ 61 | $data = db()->get("page", array("view"), array('id' => $id)); 62 | if(isset($data['view'])){ 63 | db()->update("page", array('view[+]' => 1), array('id' => $id)); 64 | header("Content-Type:application/json; charset=utf-8"); 65 | echo json_encode(array('view' => $data['view'] + 1)); 66 | return; 67 | } 68 | } 69 | $this->__load_404(); 70 | } 71 | 72 | /** 73 | * 用户登录POST页面 74 | */ 75 | public function post(){ 76 | if(!req()->is_post()){ 77 | $this->__load_404(); 78 | } else{ 79 | header("Content-Type: text/html; charset=utf-8"); 80 | hook()->apply('Home_post_login', NULL); 81 | user()->login(req()->post('user'), req()->post('password'), req()->post('remember')); 82 | if(user()->login_status()){ 83 | hook()->apply('Home_post_login_success', NULL); 84 | redirect(user()->login_go(true)); 85 | } else{ 86 | hook()->apply('Home_post_login_error', NULL); 87 | redirect(get_url(array( 88 | 'Home', 89 | 'login' 90 | ), "?code=" . user()->login_code())); 91 | } 92 | } 93 | } 94 | } -------------------------------------------------------------------------------- /sys/view/admin/item_edit.php: -------------------------------------------------------------------------------- 1 |
2 |

标题:, 名称:

6 | 7 |
8 | 9 |
" method="post"> 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 |
38 | 39 |
40 |
41 |
42 |
43 | 44 |
45 |
46 | 47 |
48 | 62 |
-------------------------------------------------------------------------------- /sys/page/Page.php: -------------------------------------------------------------------------------- 1 | header_add("", 0); 10 | } 11 | 12 | /** 13 | * 项目页面 14 | * @param $project 15 | * @param $item 16 | */ 17 | public function project($project, $item){ 18 | if(\ULib\Router::$begin_status){ 19 | lib()->load('project', 'menu')->add("project", new \ULib\Project($project, $item)); 20 | lib()->add('menu', new \ULib\Menu()); 21 | $pj = project(); 22 | if($pj->is_top()){ 23 | set_title($pj->title()); 24 | } else{ 25 | set_title($pj->title() . " - " . $pj->project_title()); 26 | } 27 | theme()->set_desc($pj->desc()); 28 | theme()->header_add("", 40); 29 | theme()->set_keywords($pj->keywords()); 30 | header("Content-Type:text/html; charset=utf-8"); 31 | $this->__view('comm/header.php'); 32 | switch($pj->type()){ 33 | case 'page': 34 | $this->__view('project/page.php'); 35 | break; 36 | case 'home': 37 | $this->__view('project/home.php'); 38 | break; 39 | case 'picture': 40 | $this->__view('project/picture.php'); 41 | break; 42 | case 'about': 43 | $this->__view('project/about.php'); 44 | break; 45 | case 'document': 46 | $this->__view('project/document.php'); 47 | break; 48 | case 'download': 49 | $this->__view('project/download.php'); 50 | break; 51 | case 'change': 52 | $this->__view('project/change.php'); 53 | break; 54 | case 'help': 55 | $this->__view('project/help.php'); 56 | break; 57 | default: 58 | $this->__view('project/page.php'); 59 | } 60 | $this->__view('comm/footer.php'); 61 | } else{ 62 | $this->__load_404(); 63 | } 64 | } 65 | 66 | /** 67 | * 单独页面 68 | * @param $page 69 | */ 70 | public function page($page){ 71 | if(\ULib\Router::$begin_status){ 72 | lib()->load('project', 'menu')->add("project", new \ULib\Project($page, 0)); 73 | lib()->add('menu', new \ULib\Menu(true)); 74 | set_title(project()->title(), site_title(false)); 75 | theme()->header_add("", 40); 76 | theme()->set_desc(project()->desc()); 77 | theme()->set_keywords(project()->keywords()); 78 | header("Content-Type:text/html; charset=utf-8"); 79 | $this->__view('comm/header.php'); 80 | $this->__view('project/page.php'); 81 | $this->__view('comm/footer.php'); 82 | } else{ 83 | $this->__load_404(); 84 | } 85 | } 86 | } 87 | 88 | ?> -------------------------------------------------------------------------------- /ex/kindeditor/themes/simple/simple.css: -------------------------------------------------------------------------------- 1 | /* container */ 2 | .ke-container-simple { 3 | display: block; 4 | border: 1px solid #CCC; 5 | background-color: #FFF; 6 | overflow: hidden; 7 | } 8 | /* toolbar */ 9 | .ke-container-simple .ke-toolbar { 10 | border-bottom: 1px solid #CCC; 11 | background-color: #FFF; 12 | padding: 2px 5px; 13 | overflow: hidden; 14 | } 15 | .ke-container-simple .ke-toolbar .ke-outline { 16 | border: 1px solid #FFF; 17 | background-color: transparent; 18 | margin: 1px; 19 | padding: 1px 2px; 20 | font-size: 0; 21 | line-height: 0; 22 | overflow: hidden; 23 | cursor: pointer; 24 | } 25 | .ke-container-simple .ke-toolbar .ke-on { 26 | border: 1px solid #5690D2; 27 | } 28 | .ke-container-simple .ke-toolbar .ke-selected { 29 | border: 1px solid #5690D2; 30 | background-color: #E9EFF6; 31 | } 32 | .ke-container-simple .ke-toolbar .ke-disabled { 33 | cursor: default; 34 | } 35 | /* statusbar */ 36 | .ke-container-simple .ke-statusbar { 37 | position: relative; 38 | background-color: #FFF; 39 | border-top: 1px solid #CCCCCC; 40 | font-size: 0; 41 | line-height: 0; 42 | *height: 12px; 43 | overflow: hidden; 44 | text-align: center; 45 | cursor: s-resize; 46 | } 47 | /* menu */ 48 | .ke-menu-simple { 49 | border: 1px solid #A0A0A0; 50 | background-color: #FFF; 51 | color: #222222; 52 | padding: 2px; 53 | font-family: "sans serif",tahoma,verdana,helvetica; 54 | font-size: 12px; 55 | text-align: left; 56 | overflow: hidden; 57 | } 58 | .ke-menu-simple .ke-menu-item { 59 | border: 1px solid #FFF; 60 | background-color: #FFF; 61 | color: #222222; 62 | height: 24px; 63 | overflow: hidden; 64 | cursor: pointer; 65 | } 66 | .ke-menu-simple .ke-menu-item-on { 67 | border: 1px solid #5690D2; 68 | background-color: #FFF; 69 | } 70 | /* colorpicker */ 71 | .ke-colorpicker-simple { 72 | border: 1px solid #A0A0A0; 73 | background-color: #FEFEFE; 74 | color: #222222; 75 | padding: 2px; 76 | } 77 | .ke-colorpicker-simple .ke-colorpicker-cell { 78 | font-size: 0; 79 | line-height: 0; 80 | border: 1px solid #FEFEFE; 81 | cursor: pointer; 82 | margin:3px; 83 | padding:0; 84 | } 85 | .ke-colorpicker-simple .ke-colorpicker-cell-top { 86 | font-family: "sans serif",tahoma,verdana,helvetica; 87 | font-size: 12px; 88 | line-height: 24px; 89 | border: 1px solid #FEFEFE; 90 | cursor: pointer; 91 | margin:0; 92 | padding:0; 93 | text-align: center; 94 | } 95 | .ke-colorpicker-simple .ke-colorpicker-cell-on { 96 | border: 1px solid #5690D2; 97 | } 98 | .ke-colorpicker-simple .ke-colorpicker-cell-selected { 99 | border: 1px solid #2446AB; 100 | } 101 | -------------------------------------------------------------------------------- /sys/core/lib/cookie.php: -------------------------------------------------------------------------------- 1 | encode = $encode; 21 | if($encode){ 22 | if(!class_exists('Safe')){ 23 | c_lib()->load('safe'); 24 | } 25 | hook()->add('Request_cookie', array( 26 | $this, 27 | 'de' 28 | )); 29 | hook()->add('Cookie_set', array( 30 | $this, 31 | 'en' 32 | )); 33 | } 34 | } 35 | 36 | /** 37 | * 通过Cookie_Key加密数据或数组 38 | * 39 | * @param $data 40 | * @return array|string 41 | */ 42 | public function en($data){ 43 | if($data === null) 44 | return $data; 45 | return is_array($data) ? array_map(array( 46 | $this, 47 | 'de' 48 | ), $data) : Safe::encrypt($data, COOKIE_KEY); 49 | } 50 | 51 | /** 52 | * 通过Cookie_Key解密数据或数组 53 | * 54 | * @param $data 55 | * @return array|string 56 | */ 57 | public function de($data){ 58 | if($data === null) 59 | return $data; 60 | return is_array($data) ? array_map(array( 61 | $this, 62 | 'de' 63 | ), $data) : Safe::decrypt($data, COOKIE_KEY); 64 | } 65 | 66 | /** 67 | * 设置COOKIE的值 68 | * 69 | * @param $name 70 | * @param $value 71 | * @param int $expire 72 | * @param string $path 73 | * @param string $domain 74 | * @param bool $secure 75 | * @param bool $httponly 76 | */ 77 | public function set($name, $value, $expire = 0, $path = '', $domain = '', $secure = false, $httponly = true){ 78 | setcookie(COOKIE_PREFIX . $name, hook()->apply('Cookie_set', $value), $expire, $this->path($path), $this->domain($domain), $secure, $httponly); 79 | } 80 | 81 | /** 82 | * 删除COOKIE的值 83 | * 84 | * @param $name 85 | * @param string $path 86 | * @param string $domain 87 | */ 88 | public function del($name, $path = '', $domain = ''){ 89 | setcookie(COOKIE_PREFIX . $name, "", 0, $this->path($path), $this->domain($domain), ''); 90 | } 91 | 92 | /** 93 | * 修正COOKIE设置的路径 94 | * 95 | * @param $path 96 | * @return mixed 97 | */ 98 | private function path($path){ 99 | if('' == $path){ 100 | $path = URL_PATH; 101 | } 102 | return hook()->apply('Cookie_path', $path); 103 | } 104 | 105 | /** 106 | * 修改域名路径 107 | * @param $domain 108 | * @return string 109 | */ 110 | private function domain($domain){ 111 | if('' == $domain){ 112 | $domain = u()->getUriInfo()->getHttpHost(); 113 | } 114 | return hook()->apply('Cookie_domain', $domain); 115 | } 116 | 117 | } -------------------------------------------------------------------------------- /sys/view/admin/project_edit.php: -------------------------------------------------------------------------------- 1 |

修改你的项目

2 | 3 |
4 | 5 |
" method="post"> 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 |
38 | 39 | 40 |
41 | 45 |
46 |
47 |
48 |
49 | 50 |
51 |
52 | 53 |
54 | 68 | -------------------------------------------------------------------------------- /sys/core/core.php: -------------------------------------------------------------------------------- 1 | _timer = new Timer(); 63 | $this->_lib = new Lib(_LibPath_); 64 | $this->_core_lib = new Lib(_CorePath_ . "/lib"); 65 | $this->_config = new Config(); 66 | $this->_hook = new Hook(); 67 | $this->_uri = new Uri(); 68 | $this->_request = new Request(); 69 | 70 | //加载系统帮助类 71 | require(_CorePath_ . "/helper/system.php"); 72 | } 73 | 74 | 75 | /** 76 | * 获取核心实例 77 | * @return Core 78 | */ 79 | public static function &getInstance(){ 80 | if(is_null(self::$_instance)){ 81 | self::$_instance = new Core(); 82 | } 83 | return self::$_instance; 84 | } 85 | 86 | /** 87 | * 禁止克隆对象 88 | */ 89 | private function __clone(){ 90 | $this->error(_("Clone is forbidden.")); 91 | } 92 | 93 | /** 94 | * 获取钩子类 95 | * @return Hook 96 | */ 97 | public function &getHook(){ 98 | return $this->_hook; 99 | } 100 | 101 | /** 102 | * 获取请求类 103 | * @return Request 104 | */ 105 | public function &getRequest(){ 106 | return $this->_request; 107 | } 108 | 109 | /** 110 | * 获取URI类 111 | * 112 | * @return Uri 113 | */ 114 | public function &getUri(){ 115 | return $this->_uri; 116 | } 117 | 118 | 119 | /** 120 | * 获取配置类 121 | * @return Config 122 | */ 123 | public function &getConfig(){ 124 | return $this->_config; 125 | } 126 | 127 | /** 128 | * 获取LIB类 129 | * 130 | * @return Lib 131 | */ 132 | public function &getLib(){ 133 | return $this->_lib; 134 | } 135 | 136 | /** 137 | * 获取系统计时器类 138 | * @return Timer 139 | */ 140 | public function &getTimer(){ 141 | return $this->_timer; 142 | } 143 | 144 | /** 145 | * 获取核心LIB类 146 | * 147 | * @return Lib 148 | */ 149 | public function &getCoreLib(){ 150 | return $this->_core_lib; 151 | } 152 | 153 | /** 154 | * 输出错误信息,并结束程序 155 | * @param $err 156 | */ 157 | private function error($err){ 158 | die($err . E_USER_ERROR); 159 | } 160 | } 161 | 162 | ?> -------------------------------------------------------------------------------- /sys/core/timer.php: -------------------------------------------------------------------------------- 1 | start(); 28 | } else{ 29 | $this->setBeginTime($microtime); 30 | } 31 | } 32 | 33 | /** 34 | * 启动或重置计时器 35 | */ 36 | public function start(){ 37 | $this->begin_time = $this->get_microtime(); 38 | $this->end_time = 0; 39 | } 40 | 41 | /** 42 | * 获取运行的微秒数 43 | * @return float 44 | */ 45 | private function get_microtime(){ 46 | list($u_sec, $sec) = explode(' ', microtime()); 47 | return ((float)$u_sec + (float)$sec); 48 | } 49 | 50 | /** 51 | * 停止计时,设置一个时间点,如果要获取时间点的时间传递参数时使用true 52 | */ 53 | public function stop(){ 54 | $this->end_time = $this->get_microtime(); 55 | } 56 | 57 | /** 58 | * 设置开始时间 59 | * @param string $microtime 使用microtime()函数获取的时间 60 | */ 61 | public function setBeginTime($microtime){ 62 | list($u_sec, $sec) = explode(' ', $microtime); 63 | $this->begin_time = ((float)$u_sec + (float)$sec); 64 | } 65 | 66 | /** 67 | * 获取运行的微秒数 68 | * @param bool $last 是否显示上次计时的时间,默认false显示当前计时 69 | * @return float|int 70 | */ 71 | public function get_micro($last = false){ 72 | if(!$last || $this->end_time == 0) 73 | $this->stop(); 74 | return round(($this->end_time - $this->begin_time) * 1000000, 5); 75 | } 76 | 77 | /** 78 | * 获取运行的秒数 79 | * @param bool $last 是否显示上次计时的时间,默认false显示当前计时 80 | * @return float 81 | */ 82 | public function get_second($last = false){ 83 | if(!$last || $this->end_time == 0) 84 | $this->stop(); 85 | return round($this->end_time - $this->begin_time, 5); 86 | } 87 | 88 | /** 89 | * 获取运行的分钟数 90 | * @param bool $last 是否显示上次计时的时间,默认false显示当前计时 91 | * @return float 92 | */ 93 | public function get_minute($last = false){ 94 | if(!$last || $this->end_time == 0) 95 | $this->stop(); 96 | return round(($this->end_time - $this->begin_time) / 60, 5); 97 | } 98 | 99 | /** 100 | * 获取运行的毫秒数 101 | * @param bool $last 是否显示上次计时的时间,默认false显示当前计时 102 | * @return float 103 | */ 104 | public function get_Millisecond($last = false){ 105 | if(!$last || $this->end_time == 0) 106 | $this->stop(); 107 | return round(($this->end_time - $this->begin_time) * 1000, 5); 108 | } 109 | 110 | /** 111 | * 获取启动时间 112 | * @return float 113 | */ 114 | public function getBeginTime(){ 115 | return $this->begin_time; 116 | } 117 | 118 | /** 119 | * 获取结束时间 120 | * @return float 121 | */ 122 | public function getEndTime(){ 123 | return $this->end_time; 124 | } 125 | } 126 | 127 | ?> -------------------------------------------------------------------------------- /sys/view/admin/version_add.php: -------------------------------------------------------------------------------- 1 |

添加新版本

2 |
" method="post"> 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 | 01"> 33 |
34 |
35 |
36 | 37 | 38 |
39 | 43 |
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 |

每行一条,用于描述相对更新的内容,支持行内HTML标记,[#]分割内容与详情网址

72 | 73 |
74 |
75 |
76 |
77 | 78 |
79 |
80 |
-------------------------------------------------------------------------------- /ex/plugin/record_counter/RecordCounter.php: -------------------------------------------------------------------------------- 1 | db = db(); 24 | } 25 | 26 | /** 27 | * 输出菜单 28 | * @param $menu 29 | * @return mixed 30 | */ 31 | public function out_menu($menu){ 32 | array_push($menu, array( 33 | 'name' => 'Android统计记录', 34 | 'router' => array( 35 | 'Admin', 36 | 'plugin', 37 | self::name 38 | ), 39 | 'hidden' => false 40 | )); 41 | return $menu; 42 | } 43 | 44 | public function ajax(){ 45 | $msg = [ 46 | 'status' => false, 47 | 'data' => NULL 48 | ]; 49 | if(!$this->sql_table_check(req()->get('db'))){ 50 | $msg['data'] = 'Sql check error!'; 51 | } else{ 52 | try{ 53 | require_once(__DIR__ . "/RecordAction.php"); 54 | if(req()->is_post()){ 55 | $action = new RecordAction(req()->post('action'), $this->tmp_table); 56 | echo json_encode($action->run()); 57 | return; 58 | } else{ 59 | if($this->sql_table_check($this->tmp_table)){ 60 | $action = new RecordAction(req()->get('action'), $this->tmp_table); 61 | echo $action->run(); 62 | return; 63 | } else{ 64 | $msg['data'] = "Template table is not exist"; 65 | } 66 | } 67 | } catch(Exception $e){ 68 | $msg['data'] = "Exception:" . $e->getMessage(); 69 | } 70 | } 71 | echo json_encode($msg); 72 | } 73 | 74 | /** 75 | * 输出内容 76 | * @param $name 77 | * @return mixed 78 | */ 79 | public function out_content($name){ 80 | if($name == self::name){ 81 | if($this->sql_table_check(req()->get('db'))){ 82 | $db = req()->get('db'); 83 | $has_tmp_table = $this->sql_table_check($this->tmp_table); 84 | $db_count = $this->db->count($db); 85 | $tmp_count = $has_tmp_table ? $this->db->count($this->tmp_table) : -1; 86 | include(__DIR__ . "/page.php"); 87 | } else{ 88 | $list = $this->get_table_list(); 89 | include(__DIR__ . "/select_db.php"); 90 | } 91 | } 92 | return $name; 93 | } 94 | 95 | 96 | /** 97 | * 检测当前是否有数据库 98 | * @param string $name 99 | * @return bool 100 | */ 101 | private function sql_table_check($name){ 102 | if(empty($name)){ 103 | return false; 104 | } 105 | $s = $this->db->query("show tables like " . $this->db->quote($name)); 106 | return $s->rowCount() == 1; 107 | } 108 | 109 | /** 110 | * 返回数据库列表 111 | * @return array 112 | */ 113 | private function get_table_list(){ 114 | $stmt = $this->db->query("show tables"); 115 | if(!$stmt){ 116 | return []; 117 | } 118 | $list = $stmt->fetchAll(PDO::FETCH_ASSOC); 119 | $rt = []; 120 | foreach($list as $v){ 121 | $rt[] = array_values($v)[0]; 122 | } 123 | return $rt; 124 | } 125 | } -------------------------------------------------------------------------------- /sys/view/admin/version_item_list.php: -------------------------------------------------------------------------------- 1 |

】版本列表 2 | 添加新版本 3 | 4 |

5 |
6 |

最新版本:()编辑信息 8 |

9 | 10 |

下载地址:

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 | 40 | 41 | 42 |
时间版本版本号构建版本下载地址更新地址操作
GOGO详情 38 | " class="label label-warning version_edit">编辑 39 | 删除
43 | 44 |

无任何可查询数据

45 | 46 | -------------------------------------------------------------------------------- /ex/plugin/record_counter/page.php: -------------------------------------------------------------------------------- 1 | 10 |
11 |

当前选择数据库:,数据总数为 : , 临时数据为 :

12 | 13 |

14 | 临时数据库状态:存在,点击删除" : "不存在,点击创建" ?>

15 | 16 |

每日用户数据:导出

17 | 18 |

从临时表新用户每日数据:导出

19 | 20 |

临时表手机品牌统计:导出

21 | 22 |

临时表手机型号统计:导出

23 | 24 |

临时表安卓版本统计:导出

25 | 26 |

临时表分辨率版本统计:导出

27 | 28 |

用户使用次数排行:导出

29 | 30 |

用户使用次数统计:导出

31 | 32 |
33 | -------------------------------------------------------------------------------- /ex/kindeditor/plugins/baidumap/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 百度地图API自定义地图 8 | 9 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 83 | -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | img { 4 | max-width: 100%; 5 | } 6 | 7 | footer.pm_footer { 8 | margin: 20px 0; 9 | border-top: solid 1px #e5e5e5; 10 | padding-top: 20px; 11 | } 12 | 13 | #home .content { 14 | margin: 20px 0; 15 | padding-top: 10px; 16 | } 17 | 18 | #home h1{ 19 | color: #004444; 20 | } 21 | 22 | #home .avatar { 23 | margin: 10px 0; 24 | } 25 | 26 | #home .avatar img { 27 | box-shadow: 0 0 8px #b2b2b2; 28 | } 29 | 30 | #home .project_list a:hover { 31 | text-decoration: none; 32 | } 33 | 34 | #home .project_list dl { 35 | margin: 10px 0 20px 0; 36 | border-left: 10px solid #c4e5ff; 37 | padding: 2px 5px; 38 | width: 50%; 39 | float: left; 40 | } 41 | 42 | #home .project_list dl:hover { 43 | background-color: #f6fcff; 44 | } 45 | 46 | #home .project_list dt { 47 | font-size: 2em; 48 | } 49 | 50 | #home .project_list dd { 51 | font-size: 1.2em; 52 | } 53 | 54 | #PMP-home .big_list li { 55 | line-height: 2em; 56 | } 57 | 58 | #PMP-picture dl dt { 59 | text-align: right; 60 | color: #955; 61 | border-right: #ccc solid 3px; 62 | padding-right: 10px;; 63 | } 64 | 65 | #PMP-picture dd { 66 | text-align: center; 67 | } 68 | 69 | #PMP-picture dl { 70 | padding-bottom: 5px; 71 | border-bottom: dotted 2px #ddd; 72 | } 73 | 74 | #PMP-about .content { 75 | margin: 15px 5px 5px 5px; 76 | } 77 | 78 | #PMP-about p { 79 | text-indent: 2em; 80 | } 81 | 82 | #PMP-about .license { 83 | background-color: #dee; 84 | padding: 5px; 85 | } 86 | 87 | #PMP-doc table { 88 | margin: 20px 0; 89 | } 90 | 91 | #PMP-change dl { 92 | margin-top: 20px; 93 | } 94 | 95 | #PMP-change dd { 96 | padding-bottom: 20px; 97 | } 98 | 99 | #PMP-help ul { 100 | list-style: none; 101 | } 102 | 103 | .pm_content .title { 104 | border-left: 4px solid #eaa; 105 | padding-left: 15px; 106 | } 107 | 108 | .pm_content .title h1 { 109 | color: #933; 110 | } 111 | 112 | .pm_content .title p { 113 | font-size: 120%; 114 | text-indent: 0; 115 | } 116 | 117 | #login { 118 | max-width: 600px; 119 | margin: 0 auto; 120 | } 121 | 122 | #login .title { 123 | color: #435363; 124 | } 125 | 126 | #item_create_select .list { 127 | font-size: 1.5em; 128 | } 129 | 130 | .admin_content h3 { 131 | border-bottom: solid 1px #e3e3e3; 132 | padding-bottom: 5px; 133 | margin-bottom: 15px; 134 | } 135 | 136 | #page_edit .editor { 137 | margin-top: 20px; 138 | margin-bottom: 10px; 139 | } 140 | 141 | #page_list .view_item { 142 | cursor: pointer; 143 | } 144 | 145 | #page_list .item_list_table a.close { 146 | text-align: center; 147 | float: none; 148 | display: block; 149 | } 150 | 151 | #page_list .item_list_table td.close_td { 152 | vertical-align: middle; 153 | 154 | } 155 | 156 | #user_edit #alert_box p em { 157 | color: #eee; 158 | margin: 0 10px; 159 | padding: 1px 5px; 160 | background-color: #444; 161 | } 162 | 163 | table.table td{word-break: break-all} 164 | 165 | @media (max-width:782px){ 166 | /*小尺寸设备*/ 167 | #home .project_list{ 168 | padding: 0; 169 | } 170 | #home .project_list dl { 171 | padding: 0; 172 | border: none; 173 | width: 100%; 174 | margin: 4px 0; 175 | } 176 | #home .content{ 177 | margin: 0; 178 | } 179 | } -------------------------------------------------------------------------------- /ex/plugin/sitemap/sitemap.xsl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 网站地图 11 | 12 | 58 | 59 | 60 |

网站地图索引

61 |
62 |

这里是自动生成的网站地图页面,用于提交到百度或者谷歌各种搜索引擎。

63 |
64 |
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | high 78 | 79 | 87 | 90 | 93 | 96 | 97 | 98 |
固定网址优先级更新频率最后更新时间 (GMT)
80 | 81 | 82 | 83 | 84 | 85 | 86 | 88 | 89 | 91 | 92 | 94 | 95 |
99 |
100 | 104 | 105 | 106 |
107 |
-------------------------------------------------------------------------------- /sys/helper/theme.php: -------------------------------------------------------------------------------- 1 | get('s_g', 'site_name'); 14 | } else{ 15 | return cfg()->get('s_g', 'site_name'); 16 | } 17 | } 18 | 19 | /** 20 | * 获取网站标题 21 | * @param bool $out 22 | * @return string 23 | */ 24 | function site_title($out = true){ 25 | if($out){ 26 | echo cfg()->get('s_g', 'site_title'); 27 | } else{ 28 | return cfg()->get('s_g', 'site_title'); 29 | } 30 | } 31 | 32 | /** 33 | * 网站描述 34 | * @param bool $out 35 | * @return array|bool|null|object|string 36 | */ 37 | function site_desc($out = true){ 38 | if($out){ 39 | echo cfg()->get('s_g', 'site_desc'); 40 | } else{ 41 | return cfg()->get('s_g', 'site_desc'); 42 | } 43 | } 44 | 45 | /** 46 | * 网站关键字 47 | * @return string 48 | */ 49 | function site_keywords(){ 50 | return cfg()->get('s_g', 'keywords') . ""; 51 | } 52 | 53 | /** 54 | * 设置标题 55 | * @param null $title 56 | * @param null $desc 57 | */ 58 | function set_title($title = null, $desc = null){ 59 | if($title !== null){ 60 | cfg()->set(array( 61 | 'theme', 62 | 'title' 63 | ), $title); 64 | } 65 | if($desc !== null){ 66 | cfg()->set(array( 67 | 'theme', 68 | 'desc' 69 | ), $desc); 70 | } 71 | } 72 | 73 | 74 | /** 75 | * 输出标题 76 | * @param bool $out 77 | * @return mixed 78 | */ 79 | function pm_title($out = true){ 80 | $title = hook()->apply('pm_title_title', cfg()->get('theme', 'title')); 81 | $desc = hook()->apply('pm_title_title', cfg()->get('theme', 'desc')); 82 | 83 | if($title === null){ 84 | $title = site_title(false); 85 | } 86 | if($desc === null){ 87 | $desc = site_desc(false); 88 | } 89 | if(empty($desc)){ 90 | $out = hook()->apply('pm_title', $title); 91 | } else{ 92 | $out = hook()->apply('pm_title', $title . " | " . site_name(false)); 93 | } 94 | if($out){ 95 | echo $out; 96 | } 97 | return $out; 98 | } 99 | 100 | /** 101 | * 主题头回调函数 102 | */ 103 | function pm_header(){ 104 | hook()->apply('pm_header', null); 105 | } 106 | 107 | /** 108 | * 主题尾回调函数 109 | */ 110 | function pm_footer(){ 111 | hook()->apply('pm_footer', null); 112 | } 113 | 114 | /** 115 | * 返回主题类 116 | * @return \ULib\Theme 117 | */ 118 | function theme(){ 119 | return lib()->using('theme'); 120 | } 121 | 122 | /** 123 | * 判断是否已登录 124 | * @return bool 125 | */ 126 | function is_login(){ 127 | return user()->login_status(); 128 | } 129 | 130 | /** 131 | * 判断是否为管理员页面 132 | * @return bool 133 | */ 134 | function is_admin_page(){ 135 | $u = u()->getUriInfo()->getUrlList(); 136 | return isset($u[0]) && $u[0] == 'Admin'; 137 | } 138 | 139 | 140 | /** 141 | * 返回是否为首页 142 | * @return bool 143 | */ 144 | function is_home(){ 145 | return count(u()->getUriInfo()->getUrlList()) == 0; 146 | } 147 | 148 | /** 149 | * 返回是否为404页面 150 | * @return bool 151 | */ 152 | function is_404(){ 153 | return cfg()->get('system', 'is_404') == true; 154 | } 155 | 156 | /** 157 | * 生成OPTION数据 158 | * @param array $value_list 159 | * @param string $select 160 | * @return string 161 | */ 162 | function html_option($value_list, $select){ 163 | $rt = ""; 164 | foreach($value_list as $value => $name){ 165 | $rt .= ""; 166 | } 167 | return $rt; 168 | } 169 | 170 | //自己初始化主题类并存入库管理 171 | lib()->load('theme')->add('theme', new \ULib\Theme()); -------------------------------------------------------------------------------- /sys/helper/admin.php: -------------------------------------------------------------------------------- 1 | header_add(theme()->css(array( 7 | 'href' => get_file_url("ex/kindeditor/themes/default/default.css") 8 | ))); 9 | theme()->header_add(theme()->js(array( 10 | 'src' => get_file_url("ex/kindeditor/kindeditor-min.js") 11 | ))); 12 | theme()->header_add(theme()->js(array( 13 | 'src' => get_file_url("ex/kindeditor/lang/zh_CN.js") 14 | ))); 15 | theme()->header_add(theme()->js(array( 16 | 'src' => get_file_url("js/jquery.form.js") 17 | ))); 18 | } 19 | 20 | /** 21 | * 输出后台菜单 22 | */ 23 | function admin_menu(){ 24 | $list = array( 25 | array( 26 | 'name' => '创建项目', 27 | 'router' => array( 28 | 'Admin', 29 | 'project_create' 30 | ), 31 | 'hidden' => false 32 | ), 33 | array( 34 | 'name' => '创建子页面', 35 | 'router' => array( 36 | 'Admin', 37 | 'item_create' 38 | ), 39 | 'hidden' => false 40 | ), 41 | array( 42 | 'name' => '编辑页面', 43 | 'router' => array( 44 | 'Admin', 45 | 'page_edit' 46 | ), 47 | 'hidden' => false 48 | ), 49 | array( 50 | 'name' => '编辑主项目', 51 | 'router' => array( 52 | 'Admin', 53 | 'project_edit' 54 | ), 55 | 'hidden' => true 56 | ), 57 | array( 58 | 'name' => '编辑子项目', 59 | 'router' => array( 60 | 'Admin', 61 | 'item_edit' 62 | ), 63 | 'hidden' => true 64 | ), 65 | array( 66 | 'name' => '网站设置', 67 | 'router' => array( 68 | 'Admin', 69 | 'setting' 70 | ), 71 | 'hidden' => true 72 | ), 73 | array( 74 | 'name' => '用户设置', 75 | 'router' => array( 76 | 'Admin', 77 | 'user' 78 | ), 79 | 'hidden' => false 80 | ), 81 | array( 82 | 'name' => '版本控制', 83 | 'router' => array( 84 | 'Admin', 85 | 'version' 86 | ), 87 | 'hidden' => false 88 | ), 89 | array( 90 | 'name' => '插件设置', 91 | 'router' => array( 92 | 'Admin', 93 | 'plugin' 94 | ), 95 | 'hidden' => false 96 | ), 97 | ); 98 | echo simple_menu($list); 99 | } 100 | 101 | /** 102 | * 插件菜单 103 | */ 104 | function admin_plugin_menu(){ 105 | echo simple_menu(hook()->apply('admin_plugin_menu', array())); 106 | } 107 | 108 | /** 109 | * 插件内容 110 | */ 111 | function admin_plugin_content($name){ 112 | return hook()->apply('admin_plugin_content',$name); 113 | } 114 | 115 | /** 116 | * 输出后台顶部菜单 117 | */ 118 | function admin_top_menu(){ 119 | echo simple_menu(array( 120 | array( 121 | 'name' => '创建项目', 122 | 'router' => array( 123 | 'Admin', 124 | 'project_create' 125 | ), 126 | 'hidden' => false 127 | ), 128 | array( 129 | 'name' => '网站设置', 130 | 'router' => array( 131 | 'Admin', 132 | 'setting' 133 | ), 134 | 'hidden' => false 135 | ), 136 | array( 137 | 'name' => '返回首页', 138 | 'router' => array(), 139 | 'hidden' => false 140 | ), 141 | )); 142 | } 143 | 144 | /** 145 | * 对菜单列表进行处理,并返回 146 | * @param array $list 菜单列表 147 | * @return string 148 | */ 149 | function simple_menu($list){ 150 | $uri = u()->getUriInfo()->getUrlList(); 151 | $rt = ""; 152 | foreach($list as $v){ 153 | $flag = " class=\"active\""; 154 | if(empty($v['router'])){ 155 | $flag = ""; 156 | } else{ 157 | foreach(array_keys($v['router']) as $i){ 158 | if(!isset($uri[$i]) || $uri[$i] != $v['router'][$i]){ 159 | $flag = ""; 160 | break; 161 | } 162 | } 163 | } 164 | if(!isset($v['hidden']) || $v['hidden'] == false || !empty($flag)){ 165 | $rt .= "" . $v['name'] . "\n"; 166 | } 167 | } 168 | return $rt; 169 | } -------------------------------------------------------------------------------- /sys/lib/menu.php: -------------------------------------------------------------------------------- 1 | top(); 40 | } else{ 41 | $this->p_id = $project->project_id(); 42 | $this->item_id = $project->item_id(); 43 | $this->p_name = $project->project_name(); 44 | $this->p_title = $project->project_title(); 45 | if(!$top){ 46 | $this->project(); 47 | $this->top = false; 48 | } else{ 49 | $this->top(); 50 | } 51 | } 52 | } 53 | 54 | /** 55 | * 针对项目获取子项列表 56 | */ 57 | private function project(){ 58 | $this->list = db()->select("item", array( 59 | 'id', 60 | 'name', 61 | 'title', 62 | 'sort' 63 | ), array( 64 | 'project_id' => $this->p_id, 65 | 'ORDER' => 'sort' 66 | )); 67 | } 68 | 69 | /** 70 | * 获取顶级菜单列表 71 | */ 72 | private function top(){ 73 | foreach(db()->select("project", array( 74 | 'id', 75 | 'name', 76 | 'title', 77 | 'sort' 78 | ), array( 79 | 'type' => 'project', 80 | 'ORDER' => 'sort', 81 | 'LIMIT' => array( 82 | 0, 83 | 4 84 | ) 85 | )) as $v){ 86 | $this->list[] = $v; 87 | } 88 | 89 | foreach(db()->select("project", array( 90 | 'id', 91 | 'name', 92 | 'title', 93 | 'sort' 94 | ), array( 95 | 'type' => 'page', 96 | 'ORDER' => 'sort', 97 | 'LIMIT' => array( 98 | 0, 99 | 3 100 | ) 101 | )) as $v){ 102 | $this->list[] = $v; 103 | } 104 | 105 | } 106 | 107 | /** 108 | * 用于输出菜单,添加相应的内容 109 | * @param string $tag 标签 110 | * @param string $before 之前 111 | * @param string $end 之后 112 | * @param string $class_style 活跃菜单的class名称 113 | */ 114 | public function out($tag = 'li', $before = '', $end = "\n", $class_style = 'active'){ 115 | $class = ""; 116 | if(empty($this->item_id)){ 117 | $class = " class=\"$class_style\""; 118 | } 119 | if(!$this->top){ 120 | echo $before, "<$tag$class>p_id, "\" href=\"" . get_url($this->p_name) . "\">", $this->p_name, "", $end; 121 | foreach($this->list as $v){ 122 | $class = ""; 123 | if($v['id'] == $this->item_id){ 124 | $class = " class=\"$class_style\""; 125 | } 126 | echo $before, "<$tag$class>p_name, $v['name']) . "\">$v[title]", $end; 127 | } 128 | } else{ 129 | $class = ''; 130 | if($this->p_id == 0){ 131 | $class = " class=\"$class_style\""; 132 | } 133 | echo $before, "<$tag$class>首页", $end; 134 | if (!empty($this->list) && is_array($this->list)) { 135 | foreach ($this->list as $v) { 136 | $class = ""; 137 | if ($v['id'] == $this->p_id) { 138 | $class = " class=\"$class_style\""; 139 | } 140 | echo $before, "<$tag$class>$v[title]", $end; 141 | } 142 | } 143 | } 144 | } 145 | } -------------------------------------------------------------------------------- /ex/kindeditor/plugins/baidumap/baidumap.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | // Baidu Maps: http://dev.baidu.com/wiki/map/index.php?title=%E9%A6%96%E9%A1%B5 11 | 12 | KindEditor.plugin('baidumap', function(K) { 13 | var self = this, name = 'baidumap', lang = self.lang(name + '.'); 14 | var mapWidth = K.undef(self.mapWidth, 558); 15 | var mapHeight = K.undef(self.mapHeight, 360); 16 | self.clickToolbar(name, function() { 17 | var html = ['
', 18 | '
', 19 | // left start 20 | '
', 21 | lang.address + ' ', 22 | '', 23 | '', 24 | '', 25 | '
', 26 | // right start 27 | '
', 28 | ' ', 29 | '
', 30 | '
', 31 | '
', 32 | '
', 33 | '
'].join(''); 34 | var dialog = self.createDialog({ 35 | name : name, 36 | width : mapWidth + 42, 37 | title : self.lang(name), 38 | body : html, 39 | yesBtn : { 40 | name : self.lang('yes'), 41 | click : function(e) { 42 | var map = win.map; 43 | var centerObj = map.getCenter(); 44 | var center = centerObj.lng + ',' + centerObj.lat; 45 | var zoom = map.getZoom(); 46 | var url = [checkbox[0].checked ? self.pluginsPath + 'baidumap/index.html' : 'http://api.map.baidu.com/staticimage', 47 | '?center=' + encodeURIComponent(center), 48 | '&zoom=' + encodeURIComponent(zoom), 49 | '&width=' + mapWidth, 50 | '&height=' + mapHeight, 51 | '&markers=' + encodeURIComponent(center), 52 | '&markerStyles=' + encodeURIComponent('l,A')].join(''); 53 | if (checkbox[0].checked) { 54 | self.insertHtml(''); 55 | } else { 56 | self.exec('insertimage', url); 57 | } 58 | self.hideDialog().focus(); 59 | } 60 | }, 61 | beforeRemove : function() { 62 | searchBtn.remove(); 63 | if (doc) { 64 | doc.write(''); 65 | } 66 | iframe.remove(); 67 | } 68 | }); 69 | var div = dialog.div, 70 | addressBox = K('[name="address"]', div), 71 | searchBtn = K('[name="searchBtn"]', div), 72 | checkbox = K('[name="insertDynamicMap"]', dialog.div), 73 | win, doc; 74 | var iframe = K(''); 75 | function ready() { 76 | win = iframe[0].contentWindow; 77 | doc = K.iframeDoc(iframe); 78 | } 79 | iframe.bind('load', function() { 80 | iframe.unbind('load'); 81 | if (K.IE) { 82 | ready(); 83 | } else { 84 | setTimeout(ready, 0); 85 | } 86 | }); 87 | K('.ke-map', div).replaceWith(iframe); 88 | // search map 89 | searchBtn.click(function() { 90 | win.search(addressBox.val()); 91 | }); 92 | }); 93 | }); 94 | -------------------------------------------------------------------------------- /sys/lib/project.php: -------------------------------------------------------------------------------- 1 | project_id = $project_id; 27 | $this->item_id = $item_id; 28 | $data = null; 29 | if(empty($item_id)){ 30 | //非子项目,仅仅为顶级项目 31 | $data = db()->select("project", array( 32 | '[><]page' => array( 33 | 'page_id' => 'id' 34 | ) 35 | ), array( 36 | 'project.id' => 'p_id', 37 | 'project.name' => 'p_name', 38 | 'project.title' => 'p_title', 39 | 'project.desc' => 'desc', 40 | 'page.content' => 'content', 41 | 'page.time' => 'time', 42 | 'page.id' => 'id', 43 | 'page.type' => 'type', 44 | 'page.title' => 'title', 45 | 'page.keywords' => 'keywords' 46 | ), array( 47 | 'project.id' => $project_id 48 | )); 49 | } else{ 50 | //存在子项目 51 | $data = db()->select("item", array( 52 | '[><]page' => array( 53 | 'page_id' => 'id' 54 | ), 55 | '[><]project' => array( 56 | 'project_id' => 'id' 57 | ) 58 | ), array( 59 | 'project.id' => 'p_id', 60 | 'project.name' => 'p_name', 61 | 'project.title' => 'p_title', 62 | 'item.name' => 'item_name', 63 | 'item.title' => 'item_title', 64 | 'page.content' => 'content', 65 | 'item.desc' => 'desc', 66 | 'page.time' => 'time', 67 | 'page.id' => 'id', 68 | 'page.type' => 'type', 69 | 'page.title' => 'title', 70 | 'page.keywords' => 'keywords' 71 | ), array( 72 | 'AND' => array( 73 | 'project.id' => $project_id, 74 | 'item.id' => $item_id 75 | ) 76 | )); 77 | } 78 | //对于数据,获取的只有一条 79 | if(isset($data[0])) 80 | $this->data = $data[0]; 81 | } 82 | 83 | /** 84 | * 判断是否为顶级 85 | * @return bool 86 | */ 87 | public function is_top(){ 88 | return empty($this->item_id); 89 | } 90 | 91 | /** 92 | * 获取标题 93 | * @return string 94 | */ 95 | public function title(){ 96 | return $this->data['title']; 97 | } 98 | 99 | /** 100 | * 获取内容 101 | * @return string 102 | */ 103 | public function content(){ 104 | return hook()->apply('project_content', $this->data['content'], $this->type(), $this->id(), $this->title()." - ".$this->project_title()); 105 | } 106 | 107 | /** 108 | * 获取关键字 109 | * @return string 110 | */ 111 | public function keywords(){ 112 | return $this->data['keywords']; 113 | } 114 | 115 | /** 116 | * 获取文章ID 117 | * 118 | * @return int 119 | */ 120 | public function id(){ 121 | return $this->data['id'] + 0; 122 | } 123 | 124 | /** 125 | * 获取文章类型 126 | * @return string 127 | */ 128 | public function type(){ 129 | return $this->data['type']; 130 | } 131 | 132 | /** 133 | * 获取项目名称 134 | * @return string 135 | */ 136 | public function project_name(){ 137 | return $this->data['p_name']; 138 | } 139 | 140 | /** 141 | * 获取项目标题 142 | * @return string 143 | */ 144 | public function project_title(){ 145 | return $this->data['p_title']; 146 | } 147 | 148 | /** 149 | * 获取页面描述 150 | * @return string 151 | */ 152 | public function desc(){ 153 | return $this->data['desc']; 154 | } 155 | 156 | /** 157 | * 项目ID 158 | * 159 | * @return int 160 | */ 161 | public function project_id(){ 162 | return 0 + $this->project_id; 163 | } 164 | 165 | /** 166 | * 子项目ID 167 | * 168 | * @return int 169 | */ 170 | public function item_id(){ 171 | return 0 + $this->item_id; 172 | } 173 | } 174 | 175 | ?> -------------------------------------------------------------------------------- /sys/view/admin/user.php: -------------------------------------------------------------------------------- 1 |

修改用户信息

2 |
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 | -------------------------------------------------------------------------------- /js/respond.min.js: -------------------------------------------------------------------------------- 1 | /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ 2 | /*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ 3 | window.matchMedia=window.matchMedia||function(a){"use strict";var c,d=a.documentElement,e=d.firstElementChild||d.firstChild,f=a.createElement("body"),g=a.createElement("div");return g.id="mq-test-1",g.style.cssText="position:absolute;top:-100em",f.style.background="none",f.appendChild(g),function(a){return g.innerHTML='­',d.insertBefore(f,e),c=42===g.offsetWidth,d.removeChild(f),{matches:c,media:a}}}(document); 4 | 5 | /*! Respond.js v1.3.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ 6 | (function(a){"use strict";function x(){u(!0)}var b={};if(a.respond=b,b.update=function(){},b.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,!b.mediaQueriesSupported){var q,r,t,c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=c.getElementsByTagName("base")[0],l=j.getElementsByTagName("link"),m=[],n=function(){for(var b=0;l.length>b;b++){var c=l[b],d=c.href,e=c.media,f=c.rel&&"stylesheet"===c.rel.toLowerCase();d&&f&&!h[d]&&(c.styleSheet&&c.styleSheet.rawCssText?(p(c.styleSheet.rawCssText,d,e),h[d]=!0):(!/^([a-zA-Z:]*\/\/)/.test(d)&&!k||d.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&m.push({href:d,media:e}))}o()},o=function(){if(m.length){var b=m.shift();v(b.href,function(c){p(c,b.href,b.media),h[b.href]=!0,a.setTimeout(function(){o()},0)})}},p=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),g=d&&d.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c;b.length&&(b+="/"),i&&(g=1);for(var j=0;g>j;j++){var k,l,m,n;i?(k=c,f.push(h(a))):(k=d[j].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],e.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:f.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},s=function(){var a,b=c.createElement("div"),e=c.body,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",e||(e=f=c.createElement("body"),e.style.background="none"),e.appendChild(b),d.insertBefore(e,d.firstChild),a=b.offsetWidth,f?d.removeChild(e):e.removeChild(b),a=t=parseFloat(a)},u=function(b){var h="clientWidth",k=d[h],m="CSS1Compat"===c.compatMode&&k||c.body[h]||k,n={},o=l[l.length-1],p=(new Date).getTime();if(b&&q&&i>p-q)return a.clearTimeout(r),r=a.setTimeout(u,i),void 0;q=p;for(var v in e)if(e.hasOwnProperty(v)){var w=e[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?t||s():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?t||s():1)),w.hasquery&&(z&&A||!(z||m>=x)||!(A||y>=m))||(n[w.media]||(n[w.media]=[]),n[w.media].push(f[w.rules]))}for(var C in g)g.hasOwnProperty(C)&&g[C]&&g[C].parentNode===j&&j.removeChild(g[C]);for(var D in n)if(n.hasOwnProperty(D)){var E=c.createElement("style"),F=n[D].join("\n");E.type="text/css",E.media=D,j.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(c.createTextNode(F)),g.push(E)}},v=function(a,b){var c=w();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},w=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();n(),b.update=n,a.addEventListener?a.addEventListener("resize",x,!1):a.attachEvent&&a.attachEvent("onresize",x)}})(this); 7 | --------------------------------------------------------------------------------