Full Code of Cherry-toto/jizhicms for AI

2.0 8c6a9104000d cached
480 files
9.8 MB
2.6M tokens
2395 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (11,036K chars total). Download the full file to get everything.
Repository: Cherry-toto/jizhicms
Branch: 2.0
Commit: 8c6a9104000d
Files: 480
Total size: 9.8 MB

Directory structure:
gitextract_8h9hwlxr/

├── .gitignore
├── .htaccess
├── 404.html
├── LICENSE
├── README.md
├── SECURITY.md
├── app/
│   ├── admin/
│   │   ├── c/
│   │   │   ├── AdminController.php
│   │   │   ├── ArticleController.php
│   │   │   ├── ClasstypeController.php
│   │   │   ├── CollectController.php
│   │   │   ├── CommentController.php
│   │   │   ├── CommonController.php
│   │   │   ├── ErrorController.php
│   │   │   ├── ExtmoldsController.php
│   │   │   ├── FieldsController.php
│   │   │   ├── IndexController.php
│   │   │   ├── JzattrController.php
│   │   │   ├── JzchainController.php
│   │   │   ├── LinksController.php
│   │   │   ├── LoginController.php
│   │   │   ├── MemberController.php
│   │   │   ├── MessageController.php
│   │   │   ├── MoldsController.php
│   │   │   ├── OrderController.php
│   │   │   ├── PluginsController.php
│   │   │   ├── ProductController.php
│   │   │   ├── RecycleController.php
│   │   │   ├── RulersController.php
│   │   │   ├── SysController.php
│   │   │   ├── TemplateController.php
│   │   │   ├── UploadsController.php
│   │   │   └── WechatController.php
│   │   ├── exts/
│   │   │   ├── .gitkeep
│   │   │   └── jizhicmsupdate/
│   │   │       ├── PluginsController.php
│   │   │       ├── config.php
│   │   │       ├── file/
│   │   │       │   ├── conf/
│   │   │       │   │   └── .gitkeep
│   │   │       │   └── mysql/
│   │   │       │       ├── admin/
│   │   │       │       │   ├── c/
│   │   │       │       │   │   └── back/
│   │   │       │       │   │       └── .gitkeep
│   │   │       │       │   └── tpl/
│   │   │       │       │       └── back/
│   │   │       │       │           └── .gitkeep
│   │   │       │       ├── frphp/
│   │   │       │       │   ├── back/
│   │   │       │       │   │   └── .gitkeep
│   │   │       │       │   ├── common/
│   │   │       │       │   │   └── back/
│   │   │       │       │   │       └── .gitkeep
│   │   │       │       │   ├── extend/
│   │   │       │       │   │   └── back/
│   │   │       │       │   │       └── .gitkeep
│   │   │       │       │   └── lib/
│   │   │       │       │       └── back/
│   │   │       │       │           └── .gitkeep
│   │   │       │       ├── home/
│   │   │       │       │   └── back/
│   │   │       │       │       └── .gitkeep
│   │   │       │       └── static/
│   │   │       │           └── .gitkeep
│   │   │       └── tpl/
│   │   │           ├── plugins-body.html
│   │   │           └── plugins-description.html
│   │   ├── lang/
│   │   │   ├── back.php
│   │   │   ├── cht.php
│   │   │   ├── common.php
│   │   │   ├── en.php
│   │   │   └── zh.php
│   │   ├── plugins/
│   │   │   └── IndexController.php
│   │   └── t/
│   │       └── tpl/
│   │           ├── addcache.html
│   │           ├── addmenu.html
│   │           ├── admin-add.html
│   │           ├── admin-edit.html
│   │           ├── admin-list.html
│   │           ├── admin.html
│   │           ├── article-add.html
│   │           ├── article-edit.html
│   │           ├── article-list.html
│   │           ├── attr-list.html
│   │           ├── beifen.html
│   │           ├── cache.html
│   │           ├── chain-list.html
│   │           ├── chongzhi-add.html
│   │           ├── chongzhi-list.html
│   │           ├── classtype-add.html
│   │           ├── classtype-addmany.html
│   │           ├── classtype-edit.html
│   │           ├── classtype-list.html
│   │           ├── collect-add.html
│   │           ├── collect-edit.html
│   │           ├── collect-list.html
│   │           ├── collecttype-add.html
│   │           ├── collecttype-edit.html
│   │           ├── collecttype-list.html
│   │           ├── comment-add.html
│   │           ├── comment-details.html
│   │           ├── comment-list.html
│   │           ├── common/
│   │           │   ├── content.html
│   │           │   ├── edit.html
│   │           │   ├── fields.html
│   │           │   ├── footer.html
│   │           │   ├── style.html
│   │           │   └── uediter.php
│   │           ├── ctype.html
│   │           ├── datacache.html
│   │           ├── desktop-add.html
│   │           ├── desktop-edit.html
│   │           ├── desktop.html
│   │           ├── editcache.html
│   │           ├── editmenu.html
│   │           ├── extmolds-add.html
│   │           ├── extmolds-edit.html
│   │           ├── extmolds-list.html
│   │           ├── fields-add.html
│   │           ├── fields-edit.html
│   │           ├── fields-list-show.html
│   │           ├── fields-list.html
│   │           ├── getchildren.html
│   │           ├── group-add.html
│   │           ├── group-edit.html
│   │           ├── group-list.html
│   │           ├── index.html
│   │           ├── links-add.html
│   │           ├── links-edit.html
│   │           ├── links-list.html
│   │           ├── linktype-add.html
│   │           ├── linktype-edit.html
│   │           ├── linktype-list.html
│   │           ├── login.html
│   │           ├── loginlog.html
│   │           ├── member-add.html
│   │           ├── member-edit.html
│   │           ├── member-list.html
│   │           ├── membergroup-add.html
│   │           ├── membergroup-edit.html
│   │           ├── membergroup-list.html
│   │           ├── menu.html
│   │           ├── message-details.html
│   │           ├── message-list.html
│   │           ├── molds-add.html
│   │           ├── molds-edit.html
│   │           ├── molds-list.html
│   │           ├── order-details.html
│   │           ├── order-list.html
│   │           ├── pictures.html
│   │           ├── plugins-list.html
│   │           ├── plugins-update.html
│   │           ├── power-add.html
│   │           ├── power-edit.html
│   │           ├── power-list.html
│   │           ├── power-tree.html
│   │           ├── product-add.html
│   │           ├── product-edit.html
│   │           ├── product-list.html
│   │           ├── recycle-list.html
│   │           ├── restrucfields.html
│   │           ├── ruler-add.html
│   │           ├── ruler-edit.html
│   │           ├── ruler-list.html
│   │           ├── showlabel.html
│   │           ├── sitemap.html
│   │           ├── style/
│   │           │   ├── css/
│   │           │   │   ├── font.css
│   │           │   │   ├── iconfont.css
│   │           │   │   ├── style.css
│   │           │   │   └── xadmin.css
│   │           │   ├── fonts/
│   │           │   │   ├── demo.css
│   │           │   │   ├── iconfont.css
│   │           │   │   ├── iconfont.js
│   │           │   │   └── iconfont.json
│   │           │   ├── js/
│   │           │   │   ├── target_page.js
│   │           │   │   ├── target_window.js
│   │           │   │   ├── xadmin.js
│   │           │   │   └── xm-select.js
│   │           │   └── tags/
│   │           │       ├── jquery.tagsinput.css
│   │           │       └── jquery.tagsinput.js
│   │           ├── sys.html
│   │           ├── systype.html
│   │           ├── template-list.html
│   │           ├── template-update.html
│   │           ├── tohtml.html
│   │           ├── unicode.html
│   │           ├── wechat-caidan.html
│   │           ├── wechat-sucai.html
│   │           └── welcome.html
│   └── home/
│       ├── c/
│       │   ├── CommentController.php
│       │   ├── CommonController.php
│       │   ├── ErrorController.php
│       │   ├── HomeController.php
│       │   ├── JzpayController.php
│       │   ├── LoginController.php
│       │   ├── MessageController.php
│       │   ├── MypayController.php
│       │   ├── OrderController.php
│       │   ├── ScreenController.php
│       │   ├── TagsController.php
│       │   ├── UploadsController.php
│       │   ├── UserController.php
│       │   └── WechatController.php
│       ├── lang/
│       │   ├── back.php
│       │   ├── cht.php
│       │   ├── common.php
│       │   └── zh.php
│       ├── plugins/
│       │   └── .gitkeep
│       └── template/
│           └── .gitkeep
├── backup/
│   └── .gitkeep
├── conf/
│   ├── Functions.php
│   ├── FunctionsExt.php
│   ├── config.php
│   └── route.php
├── frphp/
│   ├── common/
│   │   ├── Config.php
│   │   ├── Error.php
│   │   └── Functions.php
│   ├── db/
│   │   └── DBholder.php
│   ├── extend/
│   │   ├── ArrayPage.php
│   │   ├── DB_API.php
│   │   ├── DatabaseTool.php
│   │   ├── FrSession.php
│   │   ├── PHPMailer/
│   │   │   ├── LICENSE
│   │   │   ├── PHPMailerAutoload.php
│   │   │   ├── VERSION
│   │   │   ├── class.phpmailer.php
│   │   │   ├── class.phpmaileroauth.php
│   │   │   ├── class.phpmaileroauthgoogle.php
│   │   │   ├── class.pop3.php
│   │   │   ├── class.smtp.php
│   │   │   ├── extras/
│   │   │   │   ├── EasyPeasyICS.php
│   │   │   │   ├── README.md
│   │   │   │   ├── htmlfilter.php
│   │   │   │   └── ntlm_sasl_client.php
│   │   │   ├── get_oauth_token.php
│   │   │   └── testmail.php
│   │   ├── Page.php
│   │   ├── SessionRedis.php
│   │   ├── Uploader.class.php
│   │   ├── Vercode.php
│   │   ├── compressimage.php
│   │   ├── pay/
│   │   │   ├── alipay/
│   │   │   │   ├── AlipayService.php
│   │   │   │   └── AlipayServiceCheck.php
│   │   │   └── wechat/
│   │   │       ├── WxpayCheckOrder.php
│   │   │       ├── WxpayH5Service.php
│   │   │       ├── WxpayScan.php
│   │   │       ├── WxpayService.php
│   │   │       └── WxpayServiceCheck.php
│   │   ├── phpqrcode/
│   │   │   └── phpqrcode.php
│   │   └── pinyin.php
│   ├── fr.php
│   └── lib/
│       ├── Controller.php
│       ├── Model.php
│       └── View.php
├── index.php
├── install/
│   ├── db.php
│   ├── index.php
│   ├── test.php
│   └── tpl/
│       ├── css/
│       │   └── ui.progress-bar.css
│       ├── footer.tpl
│       ├── header.tpl
│       ├── index.jizhi
│       ├── js/
│       │   └── common.js
│       ├── layer/
│       │   ├── mobile/
│       │   │   ├── layer.js
│       │   │   └── need/
│       │   │       └── layer.css
│       │   └── theme/
│       │       └── default/
│       │           └── layer.css
│       ├── step1.jizhi
│       ├── step2.jizhi
│       ├── step3.jizhi
│       ├── step4.jizhi
│       └── step5.jizhi
├── readme.txt
├── robots.txt
├── static/
│   ├── cms/
│   │   ├── 404.html
│   │   ├── article/
│   │   │   ├── article-details.html
│   │   │   ├── article-list.html
│   │   │   └── faq.html
│   │   ├── backup/
│   │   │   └── .gitkeep
│   │   ├── comment.html
│   │   ├── faq.html
│   │   ├── footer.html
│   │   ├── func/
│   │   │   └── functions.php
│   │   ├── header.html
│   │   ├── index.html
│   │   ├── info.php
│   │   ├── install/
│   │   │   └── TemplateController.php
│   │   ├── js.html
│   │   ├── latestpost.html
│   │   ├── message/
│   │   │   └── contact-us.html
│   │   ├── page/
│   │   │   ├── about-us.html
│   │   │   └── page.html
│   │   ├── paytpl/
│   │   │   ├── alipay_in_weixin.html
│   │   │   ├── dmf.html
│   │   │   ├── overpay.html
│   │   │   ├── pay_form.html
│   │   │   ├── wechat_h5_pay.html
│   │   │   ├── wechat_pay.html
│   │   │   └── wechat_scan.html
│   │   ├── product/
│   │   │   ├── details.html
│   │   │   └── list.html
│   │   ├── search.html
│   │   ├── searchall.html
│   │   ├── searchform.html
│   │   ├── static/
│   │   │   ├── css/
│   │   │   │   ├── aos.css
│   │   │   │   ├── gordita-fonts.css
│   │   │   │   └── style.css
│   │   │   └── js/
│   │   │       ├── ajax.mail.js
│   │   │       ├── aos.js
│   │   │       └── main.js
│   │   ├── style.html
│   │   ├── tags-details.html
│   │   └── user/
│   │       ├── article-add.html
│   │       ├── article.html
│   │       ├── buy-list.html
│   │       ├── buy-view.html
│   │       ├── buy.html
│   │       ├── cart.html
│   │       ├── collect.html
│   │       ├── comment.html
│   │       ├── fans.html
│   │       ├── follow.html
│   │       ├── footer.html
│   │       ├── forget.html
│   │       ├── index.html
│   │       ├── left_nav.html
│   │       ├── likes.html
│   │       ├── login.html
│   │       ├── nologin.html
│   │       ├── notify.html
│   │       ├── order.html
│   │       ├── orderdetails.html
│   │       ├── password.html
│   │       ├── payment.html
│   │       ├── people.html
│   │       ├── prople.html
│   │       ├── register.html
│   │       ├── reset_password.html
│   │       ├── setmsg.html
│   │       ├── style.html
│   │       ├── tips.html
│   │       ├── top.html
│   │       ├── userinfo.html
│   │       └── wallet.html
│   ├── common/
│   │   ├── clipboard.js
│   │   ├── close.html
│   │   ├── layui/
│   │   │   ├── css/
│   │   │   │   ├── layui.css
│   │   │   │   └── modules/
│   │   │   │       ├── code.css
│   │   │   │       ├── laydate/
│   │   │   │       │   └── default/
│   │   │   │       │       └── laydate.css
│   │   │   │       └── layer/
│   │   │   │           └── default/
│   │   │   │               └── layer.css
│   │   │   └── layui.js
│   │   ├── md5.js
│   │   ├── uediter.php
│   │   ├── user/
│   │   │   ├── css/
│   │   │   │   ├── font_1546140_sw4m5ivcrg9.css
│   │   │   │   ├── reset.css
│   │   │   │   └── user.css
│   │   │   ├── js/
│   │   │   │   ├── jquery.min-1.10.2.js
│   │   │   │   └── user.js
│   │   │   └── uedit/
│   │   │       ├── dialogs/
│   │   │       │   ├── anchor/
│   │   │       │   │   └── anchor.html
│   │   │       │   ├── attachment/
│   │   │       │   │   ├── attachment.css
│   │   │       │   │   ├── attachment.html
│   │   │       │   │   └── attachment.js
│   │   │       │   ├── background/
│   │   │       │   │   ├── background.css
│   │   │       │   │   ├── background.html
│   │   │       │   │   └── background.js
│   │   │       │   ├── charts/
│   │   │       │   │   ├── chart.config.js
│   │   │       │   │   ├── charts.css
│   │   │       │   │   ├── charts.html
│   │   │       │   │   └── charts.js
│   │   │       │   ├── emotion/
│   │   │       │   │   ├── emotion.css
│   │   │       │   │   ├── emotion.html
│   │   │       │   │   └── emotion.js
│   │   │       │   ├── gmap/
│   │   │       │   │   └── gmap.html
│   │   │       │   ├── help/
│   │   │       │   │   ├── help.css
│   │   │       │   │   ├── help.html
│   │   │       │   │   └── help.js
│   │   │       │   ├── image/
│   │   │       │   │   ├── image.css
│   │   │       │   │   ├── image.html
│   │   │       │   │   └── image.js
│   │   │       │   ├── insertframe/
│   │   │       │   │   └── insertframe.html
│   │   │       │   ├── internal.js
│   │   │       │   ├── link/
│   │   │       │   │   └── link.html
│   │   │       │   ├── map/
│   │   │       │   │   ├── map.html
│   │   │       │   │   └── show.html
│   │   │       │   ├── music/
│   │   │       │   │   ├── music.css
│   │   │       │   │   ├── music.html
│   │   │       │   │   └── music.js
│   │   │       │   ├── preview/
│   │   │       │   │   └── preview.html
│   │   │       │   ├── scrawl/
│   │   │       │   │   ├── scrawl.css
│   │   │       │   │   ├── scrawl.html
│   │   │       │   │   └── scrawl.js
│   │   │       │   ├── searchreplace/
│   │   │       │   │   ├── searchreplace.html
│   │   │       │   │   └── searchreplace.js
│   │   │       │   ├── snapscreen/
│   │   │       │   │   └── snapscreen.html
│   │   │       │   ├── spechars/
│   │   │       │   │   ├── spechars.html
│   │   │       │   │   └── spechars.js
│   │   │       │   ├── table/
│   │   │       │   │   ├── edittable.css
│   │   │       │   │   ├── edittable.html
│   │   │       │   │   ├── edittable.js
│   │   │       │   │   ├── edittd.html
│   │   │       │   │   └── edittip.html
│   │   │       │   ├── template/
│   │   │       │   │   ├── config.js
│   │   │       │   │   ├── template.css
│   │   │       │   │   ├── template.html
│   │   │       │   │   └── template.js
│   │   │       │   ├── video/
│   │   │       │   │   ├── video.css
│   │   │       │   │   ├── video.html
│   │   │       │   │   └── video.js
│   │   │       │   ├── webapp/
│   │   │       │   │   └── webapp.html
│   │   │       │   └── wordimage/
│   │   │       │       ├── fClipboard_ueditor.swf
│   │   │       │       ├── imageUploader.swf
│   │   │       │       ├── tangram.js
│   │   │       │       ├── wordimage.html
│   │   │       │       └── wordimage.js
│   │   │       ├── lang/
│   │   │       │   ├── en/
│   │   │       │   │   └── en.js
│   │   │       │   └── zh-cn/
│   │   │       │       └── zh-cn.js
│   │   │       ├── themes/
│   │   │       │   ├── default/
│   │   │       │   │   ├── _css/
│   │   │       │   │   │   ├── autotypesetpicker.css
│   │   │       │   │   │   ├── button.css
│   │   │       │   │   │   ├── buttonicon.css
│   │   │       │   │   │   ├── cellalignpicker.css
│   │   │       │   │   │   ├── colorbutton.css
│   │   │       │   │   │   ├── colorpicker.css
│   │   │       │   │   │   ├── combox.css
│   │   │       │   │   │   ├── contextmenu.css
│   │   │       │   │   │   ├── dialog.css
│   │   │       │   │   │   ├── editor.css
│   │   │       │   │   │   ├── menu.css
│   │   │       │   │   │   ├── menubutton.css
│   │   │       │   │   │   ├── message.css
│   │   │       │   │   │   ├── multiMenu.css
│   │   │       │   │   │   ├── paragraphpicker.css
│   │   │       │   │   │   ├── pastepicker.css
│   │   │       │   │   │   ├── popup.css
│   │   │       │   │   │   ├── separtor.css
│   │   │       │   │   │   ├── shortcutmenu.css
│   │   │       │   │   │   ├── splitbutton.css
│   │   │       │   │   │   ├── tablepicker.css
│   │   │       │   │   │   ├── toolbar.css
│   │   │       │   │   │   ├── ueditor.css
│   │   │       │   │   │   └── uibase.css
│   │   │       │   │   ├── css/
│   │   │       │   │   │   └── ueditor.css
│   │   │       │   │   └── dialogbase.css
│   │   │       │   └── iframe.css
│   │   │       ├── third-party/
│   │   │       │   ├── SyntaxHighlighter/
│   │   │       │   │   ├── shCore.js
│   │   │       │   │   └── shCoreDefault.css
│   │   │       │   ├── codemirror/
│   │   │       │   │   ├── codemirror.css
│   │   │       │   │   └── codemirror.js
│   │   │       │   ├── highcharts/
│   │   │       │   │   ├── adapters/
│   │   │       │   │   │   ├── mootools-adapter.js
│   │   │       │   │   │   ├── mootools-adapter.src.js
│   │   │       │   │   │   ├── prototype-adapter.js
│   │   │       │   │   │   ├── prototype-adapter.src.js
│   │   │       │   │   │   ├── standalone-framework.js
│   │   │       │   │   │   └── standalone-framework.src.js
│   │   │       │   │   ├── highcharts-more.js
│   │   │       │   │   ├── highcharts-more.src.js
│   │   │       │   │   ├── highcharts.js
│   │   │       │   │   ├── highcharts.src.js
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── annotations.js
│   │   │       │   │   │   ├── annotations.src.js
│   │   │       │   │   │   ├── canvas-tools.js
│   │   │       │   │   │   ├── canvas-tools.src.js
│   │   │       │   │   │   ├── data.js
│   │   │       │   │   │   ├── data.src.js
│   │   │       │   │   │   ├── drilldown.js
│   │   │       │   │   │   ├── drilldown.src.js
│   │   │       │   │   │   ├── exporting.js
│   │   │       │   │   │   ├── exporting.src.js
│   │   │       │   │   │   ├── funnel.js
│   │   │       │   │   │   ├── funnel.src.js
│   │   │       │   │   │   ├── heatmap.js
│   │   │       │   │   │   ├── heatmap.src.js
│   │   │       │   │   │   ├── map.js
│   │   │       │   │   │   ├── map.src.js
│   │   │       │   │   │   ├── no-data-to-display.js
│   │   │       │   │   │   └── no-data-to-display.src.js
│   │   │       │   │   └── themes/
│   │   │       │   │       ├── dark-blue.js
│   │   │       │   │       ├── dark-green.js
│   │   │       │   │       ├── gray.js
│   │   │       │   │       ├── grid.js
│   │   │       │   │       └── skies.js
│   │   │       │   ├── jquery-1.10.2.js
│   │   │       │   ├── video-js/
│   │   │       │   │   ├── video-js.css
│   │   │       │   │   ├── video-js.swf
│   │   │       │   │   ├── video.dev.js
│   │   │       │   │   └── video.js
│   │   │       │   ├── webuploader/
│   │   │       │   │   ├── Uploader.swf
│   │   │       │   │   ├── webuploader.css
│   │   │       │   │   ├── webuploader.custom.js
│   │   │       │   │   ├── webuploader.flashonly.js
│   │   │       │   │   ├── webuploader.html5only.js
│   │   │       │   │   ├── webuploader.js
│   │   │       │   │   └── webuploader.withoutimage.js
│   │   │       │   └── zeroclipboard/
│   │   │       │       ├── ZeroClipboard.js
│   │   │       │       └── ZeroClipboard.swf
│   │   │       ├── ueditor.all.js
│   │   │       ├── ueditor.config.js
│   │   │       └── ueditor.parse.js
│   │   └── wangeditor/
│   │       └── wangeditor.css
│   └── default/
│       └── assets/
│           ├── css/
│           │   ├── Projects-Horizontal.css
│           │   ├── css.css
│           │   └── smoothproducts.css
│           └── js/
│               └── theme.js
└── web.config

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
/.idea
/cache

================================================
FILE: .htaccess
================================================
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteBase /
 #RewriteCond %{REQUEST_URI} !((.*).jpg|.jpeg|.bmp|.gif|.png|.js|.css|.tts|.woff )$
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
 #RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
 RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]
</IfModule>

================================================
FILE: 404.html
================================================
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>404</title>
<style>
	body{
		background-color:#444;
		font-size:14px;
	}
	h3{
		font-size:60px;
		color:#eee;
		text-align:center;
		padding-top:30px;
		font-weight:normal;
	}
</style>
</head>

<body>
<h3>404,您请求的文件不存在!</h3>
</body>
</html>


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021 如沐春

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
[![极致CMS建站系统](https://www.jizhicms.cn/header_1920x700.png)](http://down.jizhicms.cn/jizhicms.zip)

<h1 align="center">极致CMS建站系统</h1>

<p align="center">一款免费开源的PHP建站CMS系统,可以免授权商业使用该系统。</p>

<p align="center">
<img src="https://img.shields.io/badge/jizhicms-v2.0-important.svg" title="jizhicms" />
<img src="https://img.shields.io/badge/PHP-5.6+-blue.svg" title="PHP" />
<img src="https://img.shields.io/badge/MySQL-4.8+-red.svg" title="MySQL" />
</p>
<p align="center">
<img src="https://img.shields.io/badge/Apache-green.svg" title="Apache" />
<img src="https://img.shields.io/badge/Linux-success.svg" title="Linux" />
<img src="https://img.shields.io/badge/MIT-brightgreen.svg" title="MIT" />
</p>
<p align="center">
	<img src="https://gitee.com/Cherry_toto/jizhicms/badge/star.svg?theme=dark" alt="Gitee stars"/>  
	<img src="https://img.shields.io/github/stars/Cherry-toto/jizhicms" alt="GitHub stars"/>
</p>

官网:[www.jizhicms.cn](https://www.jizhicms.cn) | [www.jizhicms.com](https://www.jizhicms.com) | [应用市场](https://app.jizhicms.cn)   
演示:[demo.jizhicms.cn](https://demo.jizhicms.cn)   
后台:[https://demo.jizhicms.cn/admin.php](https://demo.jizhicms.cn/admin.php) [ 账户:test 密码:123456 ]  
单入口后台:[https://demo.jizhicms.cn/index.php/admins](https://demo.jizhicms.cn/index.php/admins) [ 账户:test 密码:123456 ]  
文档:[https://help.jizhicms.cn](https://help.jizhicms.cn)   
工具:[https://h.jizhicms.cn](https://h.jizhicms.cn)   
作者:留恋风(QQ:2581047041 微信:TF-2581047041)  
商务合作:13660240863    
QQ交流群:774764507 , 869094463 , 651403450 [【加群】](https://jq.qq.com/?_wv=1027&k=6zjN1tgq) 

## 极致CMS建站系统2.0 重磅更新!
> 支持后台在线模板,可以下载和更新模板,提供更多免费模板  
> 支持后台多语言本地化配置  
> 更新一套精美模板免费使用  
> 桌面配置更具人性化设定,支持更多图标选择及菜单名称自定义  
> 更具通俗化目录结构,让你一目了然  
> 字段重构,前台发布表单字段设定,列表字段控制,多种类型字段让你自由发挥创作!  
> 后台增加模板自定义方式,让你二开更方便!  
> 后台插件模板接口开放设定,可以自由维护自己的客户进行客制化服务!  
> 免费开源,代码无任何加密,可免费商用,前台界面可以去除版权显示,支持MIT协议,真正开源免费!  

   

*****
## 安装环境
* jizhicms的开发语言是PHP,支持PHP5.6+,发布之日起就已经兼容到PHP7.4版本,推荐使用PHP7.0版本以上。
* 安装环境建议Linux服务器,当然Windows也是可以安装的,云服务器建议安装宝塔面板 [查看](http://www.bt.cn/)
* 无论是Windows还是Linux建议安装Apache、mysql、phpMyAdmin配件 
* 本系统当前版本2.0仅支持mysql数据库

## 安装须知  
* PHP5.6+   
* MySQL4.8+,数据编码 <b>utf-8</b> 或者 <b>utf8-general-ci</b>   
* 部署环境必须支持伪静态  
* 支持Apache、Nginx、IIS     

## 开始安装  
1. 下载源码并解压源码到空间根目录(www)      
2. 浏览器访问 http://127.0.0.1/install/ (本地环境) http://绑定域名/install/ (空间服务器环境)   
3. 进入安装步骤,逐步进行安装   
4. 初次安装请安装备份或者测试数据    
5. 安装完毕后,为了安全,请删除根目录intall安装文件夹    

## 网站搬家   
1. 进入后台--【系统扩展】--【数据库列表】,点击 <b>备份数据库</b> 将当前数据库备份    
2. 将cache文件夹下面的缓存文件全部删除,并在根目录放置官方源码里的install文件夹        
3. 将整个根目录打包下载到本地    
4. 将打包后的压缩包上传到新空间   
5. 按照【开始安装】的步骤进行安装程序     
6. 安装第二步填入数据库账号密码后,选择你最新备份的数据库,点击进行安装    
7. 安装完毕,为了安全,请删除根目录intall安装文件夹   

## 版权声明
![极致CMS 2.0版权证明](https://www.jizhicms.cn/copyright.png)

## 支持协议  
[MIT](https://gitee.com/Cherry_toto/jizhicms/blob/2.0/LICENSE)

![极致CMS建站系统](https://www.jizhicms.cn/footer_1920x273.png)



================================================
FILE: SECURITY.md
================================================
## Security Policy 安全策略

### Supported Versions 支持的版本
| Version | Supported          |
| ------- | ------------------ |
| 2.0     |    [ ✓ ]           |
| 1.9.x   |    [ ✓ ]           |
| < 1.9.x |    [ × ]           |

### Reporting a Vulnerability 报告漏洞
We strongly encourage you to report security vulnerabilities to our private security mailing list: ttuuffuu@163.com or 2581047041@qq.com - first, before disclosing them in any public forums.

This is a private mailing list where only members of the JiZhiCMS internal security team are subscribed to, and is treated as top priority.

我们强烈建议您向我们的私人安全邮件列表报告安全漏洞:`ttuuffuu@163.com` 或 `2581047041@qq.com`,在任何公开论坛上披露之前。
这是一个私人邮件列表,只有 `JiZhiCMS` 内部安全团队的成员才能订阅,并被视为最高优先级。

================================================
FILE: app/admin/c/AdminController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/02
// +----------------------------------------------------------------------


namespace app\admin\c;


use frphp\extend\Page;

class AdminController extends CommonController
{

	
	
	public function group(){
		$page = new Page('Level_group');
		$sql = ' 1=1 ';
		if($this->admin['gid']!=1){
			$sql.=" and id!=1 ";
		}
		$data = $page->where($sql)->orderby('id desc')->page($this->frparam('page',0,1))->go();
		$pages = $page->pageList();
		
		$this->pages = $pages;
		$this->lists = $data;
		$this->sum = $page->sum;
		$this->display('group-list');
	}
	function group_del(){
		
		$id = $this->frparam('id');
		if($id){
			//检查是否有管理员
			if(M('level')->getCount(array('gid'=>$id))>0){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('该角色下存在用户,请先移除用户再删除!')));
			}
			if($id==1){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败,该分组不允许删除!')));
			}
			$data = M('level_group')->find(array('id'=>$id));
			if(M('level_group')->delete(array('id'=>$id))){
				$w['molds'] = 'level_group';
				$w['data'] = serialize($data);
				$w['title'] = '['.$data['id'].']'.$data['name'];
				$w['addtime'] = time();
				M('recycle')->add($w);
				JsonReturn(array('code'=>0,'msg'=>JZLANG('删除成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败,请重试!')));
			}
		}else{
			JsonReturn(array('code'=>1,'msg'=>JZLANG('非法操作!')));
		}
		
		
	}
	
	function groupedit(){
		$this->fields_biaoshi = 'level_group';
		if($this->frparam('go')==1){
			$data = $this->frparam();
			if($this->admin['gid']!=1 && $this->frparam('isadmin')==1){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败,您的权限不足!')));
			}
			$data['name'] = $this->frparam('name',1);
			$data['ischeck'] = $this->frparam('ischeck');
			$data['description'] = $this->frparam('description',1);
			$data['paction'] = (count($this->frparam('ruler',2))>0)?','.implode(',',$this->frparam('ruler',2)).',':'';
			$data['tids'] = (count($this->frparam('tids',2))>0)?','.implode(',',$this->frparam('tids',2)).',':'';
			if(M('level_group')->update(array('id'=>$data['id']),$data)){
				JsonReturn(array('code'=>0,'msg'=>JZLANG('修改成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败,请重新提交!')));
			}
			
			
			
		}
		
		$this->data = M('level_group')->find(['id'=>$this->frparam('id')]);
		$rulers = M('ruler')->findAll(null,'id ASC');
		$ruler_top = array();
		$ruler_children = array();
		foreach($rulers as $v){
			if($v['pid']==0){
				$ruler_top[]=$v;
			}else{
				$ruler_children[$v['pid']][]=$v;
			}
		}
		$this->ruler_top = $ruler_top;
		$this->ruler_children = $ruler_children;
		
		if(!$this->data){
			Error(JZLANG('没有该角色!'));
		}
		
		$this->display('group-edit');
	}
	
	function groupadd(){
		$this->fields_biaoshi = 'level_group';
		if($this->frparam('go')==1){
			$data = $this->frparam();
            if($this->admin['gid']!=1 && $this->frparam('isadmin')==1){
                JsonReturn(array('code'=>1,'msg'=>JZLANG('您的权限不足!')));
            }
			$data['name'] = $this->frparam('name',1);
			$data['ischeck'] = $this->frparam('ischeck');
			$data['description'] = $this->frparam('description',1);
			$data['paction'] = (count($this->frparam('ruler',2))>0)?','.implode(',',$this->frparam('ruler',2)).',':'';
			$data['tids'] = (count($this->frparam('tids',2))>0)?','.implode(',',$this->frparam('tids',2)).',':'';
			if(M('level_group')->add($data)){
				JsonReturn(array('code'=>0,'msg'=>JZLANG('新增成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('新增失败,请重新提交!')));
			}
			
			
			
		}
		
		
		$rulers = M('ruler')->findAll(null,'id ASC');
		$ruler_top = array();
		$ruler_children = array();
		foreach($rulers as $v){
			if($v['pid']==0){
				$ruler_top[]=$v;
			}else{
				$ruler_children[$v['pid']][]=$v;
			}
		}
		$this->ruler_top = $ruler_top;
		$this->ruler_children = $ruler_children;
		
		
		
		$this->display('group-add');
	}
	public function change_group_status(){
		$id = $this->frparam('id',1);
		if(!$id){
			JsonReturn(array('code'=>1,'msg'=>JZLANG('非法操作!')));
		}
		if($id==1){
			JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败,该分组不允许修改!')));
		}
		
		$x = M('Level_group')->find('id='.$id);
		if($x['isagree']==1){
			$x['isagree']=0;
		}else{
			$x['isagree']=1;
		}
		M('Level_group')->update(array('id'=>$id),array('isagree'=>$x['isagree']));
	}
	
	public function adminlist(){
		
		$data = $this->frparam();
		$res = molds_search('level',$data);
		$get_sql = ($res['fields_search_check']!='') ? (' and '.$res['fields_search_check']) : '';
		$this->fields_search = $res['fields_search'];
		$this->fields_list = M('Fields')->findAll(array('molds'=>'level','islist'=>1),'orders desc');
		$this->username = $this->frparam('username',1);
		$this->endtime = $this->frparam('end',1);
		$this->status = $this->frparam('status');
		$this->starttime = $this->frparam('start',1);
		if($this->frparam('ajax')){
			 $admin = adminInfo($_SESSION['admin']['id']);
			$page = new Page('level');
			$sql = ' 1=1 ';
			if($this->frparam('status')){
				$status = $this->frparam('status')==1 ? 1 : 0;
				$sql .= ' and status='.$status;
			}
			
			if($this->frparam('username',1)){
				$sql .= " and name like '%".$this->frparam('username',1)."%' ";
			}
			
			//只有超级管理员有权限看到整个列表
			if($this->admin['gid']!=1){
				$sql.= " and gid!=1 ";
			}
			
		   
			if($this->frparam('start',1)){
				$time = strtotime($this->frparam('start',1));
				
				$sql .= " and regtime >= ".$time;
				
			}
			if($this->frparam('end',1)){
				$end = strtotime($this->frparam('end',1).' 23:59:59');
				$sql .= " and regtime <= ".$end;
			}
			
			
			$sql .= $get_sql;
			
			
			$lists = $page->where($sql)->limit($this->frparam('limit',0,10))->page($this->frparam('page',0,1))->go();
			$pages = $page->pageList();
			
			$ajaxdata = [];
			foreach($lists as $k=>$v){
				$v['group'] = get_info_table('level_group',['id'=>$v['gid']],'name');
				$v['new_logintime'] = $v['logintime']!=0 ? date('Y-m-d H:i:s',$v['logintime']) : '-';
				$v['new_regtime'] = $v['regtime']!=0 ? date('Y-m-d H:i:s',$v['regtime']) : '-';
				$v['edit_url'] = U('Admin/adminedit',array('id'=>$v['id']));
				foreach($this->fields_list as $vv){
					$v[$vv['field']] = format_fields($vv,$v[$vv['field']]);
				}
				$ajaxdata[]=$v;
				
			}
			
			$this->lists = $lists;
			$this->page = $pages;
			$this->sum = $page->sum;
			JsonReturn(['code'=>0,'data'=>$ajaxdata,'count'=>$page->sum]);
		}
		
       
		$this->display('admin-list');
	}
	
	public function adminedit(){
		$this->fields_biaoshi = 'level';
		$id = $this->frparam('id',1);
		if($this->frparam('go')==1){
			$data = $this->frparam();
			$data = get_fields_data($data,'level');
			$data['gid'] = $this->frparam('gid',0,$this->admin['gid']);
			//防止越权操作
			$change_admin = M('level')->find(['id'=>$id]);
			if($this->admin['gid']!=1 && $change_admin['gid']==1){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('您没有权限操作!')));
			}
			
			//检查token
			$token = getCache('admin_'.$this->admin['id'].'_token');
			if(!isset($_SESSION['token']) || !$token || $token!=$_SESSION['token']){
				JsonReturn(array('code'=>1,'msg'=>'非法操作!'));
			}
			
			$data['email'] = $this->frparam('email',1);
			$data['pass'] = $this->frparam('pass',1);
			$data['repass'] = $this->frparam('repass',1);
			
			$data['name'] = $this->frparam('name',1);
			$data['tel'] = $this->frparam('tel',1);
			$data['status'] = $this->frparam('status');
			$data['id'] = $id;
			if($data['id']==0){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('非法操作!')));
			}
			
			
            
			if($data['pass']){
				if($data['pass']!=$data['repass']){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('两次密码不同!')));
				}
				$data['pass'] = md5(md5($data['pass']).'YF');
			}else{
				unset($data['pass']);
			}

			
          
           
			
			if($data['tel']){
				if(M('level')->find("tel='".$data['tel']."' and id!=".$data['id'])){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('手机号已被注册!')));
				}	
			}
			
			if(M('level')->find("name='".$data['name']."' and id!=".$data['id'])){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('昵称已被使用!')));
			}
			
			if($data['email']){
				if(M('level')->find("email='".$data['email']."' and id!=".$data['id'])){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('邮箱已被使用!')));
				}
			}
			
			$x = M('level')->update(array('id'=>$data['id']),$data);
			if($x){
				JsonReturn(array('code'=>0,'msg'=>JZLANG('修改成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败!')));
			}
			
		}
		$this->member = M('level')->find('id='.$id);
		if($_SESSION['admin']['isadmin']==1){
			
			$this->isadmin = true;
		}else{
			$this->isadmin = false;
		}
        $this->groups = M('level_group')->findAll();
		$token = getRandChar(10);
		$_SESSION['token'] = $token;
		setCache('admin_'.$this->admin['id'].'_token',$token);
		$this->token = $token;
		$this->display('admin-edit');
	}
	
	public function adminadd(){
		
		$this->fields_biaoshi = 'level';
		if($this->frparam('go')==1){
			$data = $this->frparam();
			$data = get_fields_data($data,'level');
			$data['gid'] = $this->frparam('gid',0,$this->admin['gid']);
			//防止越权操作
			if($this->admin['gid']!=1 && $data['gid']==1){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('您没有权限操作!')));
			}
			//检查token
			$token = getCache('admin_'.$this->admin['id'].'_token');
			if(!isset($_SESSION['token']) || !$token || $token!=$_SESSION['token']){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('非法操作!')));
			}
			
			
			$data['email'] = $this->frparam('email',1);
			$data['pass'] = $this->frparam('pass',1);
			$data['repass'] = $this->frparam('repass',1);
			
			$data['name'] = $this->frparam('name',1);
			$data['tel'] = $this->frparam('tel',1);
			$data['status'] = $this->frparam('status');
			
			$data['regtime'] = time();
			$data['logintime'] = time();
			
            
			if($data['pass']!=$data['repass']){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('两次密码不同!')));
			}
			$data['pass'] = md5(md5($data['pass']).'YF');
			if($data['tel']){
				if(M('level')->find("tel='".$data['tel']."'")){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('手机号已被注册!')));
				}
			}
			
			if(M('level')->find("name='".$data['name']."'")){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('昵称已被使用!')));
			}
			if($data['email']){
				if(M('level')->find("email='".$data['email']."' ")){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('邮箱已被使用!')));
				}
			}
			$x = M('level')->add($data);
			if($x){
				JsonReturn(array('code'=>0,'msg'=>JZLANG('新增成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('新增失败!')));
			}
			
		}
        $this->admin = $_SESSION['admin'];
        $this->groups = M('level_group')->findAll();
		if($_SESSION['admin']['isadmin']==1){
			
			$this->isadmin = true;
		}else{
			$this->isadmin = false;
		}
		
		$token = getRandChar(10);
		$_SESSION['token'] = $token;
		setCache('admin_'.$this->admin['id'].'_token',$token);
		$this->token = $token;
		$this->display('admin-add');
	
	}
	
	public function change_status(){
		$id = $this->frparam('id',1);
		if(!$id || $id==1){
			JsonReturn(array('code'=>1,'msg'=>JZLANG('非法操作!')));
		}
		
		$x = M('level')->find('id='.$id);
		
		
		if($x['status']==1){
			$x['status']=0;
		}else{
			$x['status']=1;
		}
		M('level')->update(array('id'=>$id),array('status'=>$x['status']));
	}
	public function admindelete(){
    	$id = $this->frparam('id',1);
        if($id==''){
        	JsonReturn(array('code'=>1,'msg'=>JZLANG('非法操作!')));
        }
		
		if($id==1){
			JsonReturn(array('code'=>1,'msg'=>JZLANG('系统管理员不能删除!')));
		}
		
        $data = M('level')->find(array('id'=>$id));
        $x = M('level')->delete(array('id'=>$id));
		  if($x){
			$w['molds'] = 'level';
			$w['data'] = serialize($data);
			$w['title'] = '['.$data['id'].']'.$data['name'];
			$w['addtime'] = time();
			M('recycle')->add($w);
			JsonReturn(array('code'=>0,'msg'=>JZLANG('删除成功!')));
		  }else{
			JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败!')));
		  }
    }

	
	function deleteAll(){
		$data = $this->frparam('data',1);
		if($data!=''){
			if($this->admin['gid']!=1){
				$lists = M('level')->findAll('id in('.$data.')');
				foreach($lists as $v){
					if($v['gid']==1){
						JsonReturn(array('code'=>1,'msg'=>JZLANG('批量操作失败!')));
					}
				}
			}
			$all = M('level')->findAll('id in('.$data.')');
			if(M('level')->delete('id in('.$data.')')){
				foreach($all as $v){
					$w['molds'] = 'level';
					$w['data'] = serialize($v);
					$w['title'] = '['.$v['id'].']'.$v['name'];
					$w['addtime'] = time();
					M('recycle')->add($w);
				}
				JsonReturn(array('code'=>0,'msg'=>JZLANG('批量删除成功!')));
				
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('批量操作失败!')));
			}
		}
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	}

================================================
FILE: app/admin/c/ArticleController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/02
// +----------------------------------------------------------------------


namespace app\admin\c;


use frphp\extend\Page;

class ArticleController extends CommonController
{
	
	
	//内容管理
	function articlelist(){
		$page = new Page('Article');
		$this->fields_list = M('Fields')->findAll(array('molds'=>'article','islist'=>1),'listorders desc');
		$this->isshow = $this->frparam('isshow');
		$this->tid=  $this->frparam('tid');
		$this->title = $this->frparam('title',1);
		$this->molds = M('molds')->find(['biaoshi'=>'article']);
		$this->classtypes = $this->classtypetree;
		$data = $this->frparam();
		$res = molds_search('article',$data);
		$get_sql = ($res['fields_search_check']!='') ? (' and '.$res['fields_search_check']) : '';
		$this->fields_search = $res['fields_search'];
		
		if($this->frparam('ajax')){
			$sql = ' 1=1 ';
			if($this->admin['classcontrol']==1 && $this->admin['isadmin']!=1 && $this->molds['iscontrol']!=0 && $this->molds['isclasstype']==1){
				$a1 = explode(',',$this->tids);
				$a2 = array_filter($a1);
				$tids = implode(',',$a2);
				$sql.=' and tid in('.$tids.') ';


			}
			$sql .= $get_sql;
			$data = $page->where($sql)->orderby('istop desc,orders desc,id desc')->limit($this->frparam('limit',0,10))->page($this->frparam('page',0,1))->go();
			$ajaxdata = [];
			foreach($data as $k=>$v){
				
				$v['view_url'] = gourl($v,$v['htmlurl']);
				$v['edit_url'] = U('Article/editarticle',array('id'=>$v['id']));
			
				foreach($this->fields_list as $vv){
					$v[$vv['field']] = format_fields($vv,$v[$vv['field']]);
				}
				$ajaxdata[]=$v;
				
			}
			$pages = $page->pageList();
			$this->pages = $pages;
			$this->lists = $data;
			$this->sum = $page->sum;
			
			JsonReturn(['code'=>0,'data'=>$ajaxdata,'count'=>$page->sum]);
			
		}
		
		
		$this->display('article-list');
		
		
	}

	function addarticle(){
		$this->fields_biaoshi = 'article';
		if($this->frparam('go',1)==1){
			
			$data = $this->frparam();
			$data = get_fields_data($data,'article');
            check_field_must($data,'article');
			if(!$this->frparam('seo_title',1) && $this->frparam('config_seotitle')==1){
				$data['seo_title'] = $data['title'];
			}
			if(!$this->frparam('description',1) && $this->frparam('config_description')==1){
				$data['description'] = newstr(strip_tags($_POST['body']),200);
			}
			$water_models = explode(',',$this->webconf['text_molds']);
			if(in_array('article',$water_models)){
                if(!$this->frparam('litpic',1) && $this->webconf['text_waterlitpic'] && $this->webconf['text_litpic']){
                    $data['litpic'] = waterwordmark($data['title'],APP_PATH.$this->webconf['text_litpic']);
                    //存储
                    $filesize = round(filesize(APP_PATH.$data['litpic'])/1024,2);
                    $pix_arr = explode('.',$data['litpic']);
                    $pix = end($pix_arr);
                    M('pictures')->add(['litpic'=>$data['litpic'],'addtime'=>time(),'userid'=>$_SESSION['admin']['id'],'size'=>$filesize,'filetype'=>strtolower($pix),'tid'=>$this->frparam('tid'),'molds'=>'article']);
                }else if($this->frparam('litpic',1) && $this->webconf['text_waterlitpic']){
                    $data['litpic'] = waterwordmark($data['title'],APP_PATH.$this->frparam('litpic',1),0);
                }
            }
			
			if(!$data['litpic'] && $this->frparam('config_litpic')==1){
				$pattern='/<img.*?src="(.*?)".*?>/is';
				if($this->frparam('body',1)){
					$r = preg_match($pattern,stripslashes($data['body']),$matchContent);
					if($r){
						$data['litpic'] = $matchContent[1];
					}else{
						$data['litpic'] = '';
					}
					
				}else{
					$data['litpic'] = '';
				}
			}
			if(!$this->frparam('tags',1) && $this->frparam('config_tags')==1){
				$data['tags'] = str_replace(',',',',$data['keywords']);
				if($data['tags']){
					$data['tags'] = ','.$data['tags'].',';
				}
			}
			
			$data['userid'] = $_SESSION['admin']['id'];
			$data['htmlurl'] = $data['tid'] ? $this->classtypedata[$data['tid']]['htmlurl'] : null;
			
			//违禁词检测
			if($this->webconf['mingan'] && $this->frparam('config_filter',1)){
				$mingan = explode(',',$this->webconf['mingan']);
				$filter = explode(',',$this->frparam('config_filter',1));
				$fields = $this->getTableFields('article');
				foreach($mingan as $s){
					if(strpos($s,'{xxx}')!==false){
						$pattern = '/'.str_replace('{xxx}','(.*)',$s).'/';
						foreach($filter as $vv){
							if($vv && preg_match($pattern, $data[$vv])){
								JsonReturn(array('code'=>1,'msg'=>JZLANG('添加失败').',【'.$fields[$vv].'】'.JZLANG('存在敏感词').' [ '.$s.' ]'));
							}
							
						}
						

					}else{
						foreach($filter as $vv){
							if($vv && strpos($data[$vv],$s)!==false ){
								JsonReturn(array('code'=>1,'msg'=>JZLANG('添加失败').',【'.$fields[$vv].'】'.JZLANG('存在敏感词').' [ '.$s.' ]'));
							}
							
						}
						
					}
				}
			}
			//处理自定义URL
			if($data['ownurl']){
				if(M('customurl')->find(['url'=>$data['ownurl']])){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('已存在相同的自定义URL!')));
				}
				
			}
			
			if($this->admin['isadmin']==1 || ($this->admin['isadmin']!=1 && $this->admin['ischeck']==0)){
				$data['isshow'] = $this->frparam('isshow',0,1);
			}else{
				$data['isshow'] = 0;
			}
			$data['addtime'] = $data['updatetime'] =  isset($data['addtime']) ? $data['addtime'] : time();
            //检查是否重复
            if($this->webconf['hidetitleonliy']){
                $hidetitleonly = explode('|',$this->webconf['hidetitleonliy']);
                $onliyfield = '';
                foreach ($hidetitleonly as $s){
                    $d = explode('-',$s);
                    if(strtolower($d[0])=='article'){
                        $onliyfield = strtolower($d[1]);
                        break;
                    }
                }
                if($onliyfield){
                    if(M('article')->find([$onliyfield=>$data[$onliyfield]])){
                        JsonReturn(array('code'=>1,'msg'=>$onliyfield.JZLANG('重复!')));
                    }
                }
            }
            //推荐置顶热门
            if(strpos($data['jzattr'],'1')!==false){
                $data['istop'] = 1;
            }else{
                $data['istop'] = 0;
            }
            if(strpos($data['jzattr'],'2')!==false){
                $data['ishot'] = 1;
            }else{
                $data['ishot'] = 0;
            }
            if(strpos($data['jzattr'],'3')!==false){
                $data['istuijian'] = 1;
            }else{
                $data['istuijian'] = 0;
            }
			$r = M('Article')->add($data);
			if($r){
				if($data['ownurl']){
					M('customurl')->add(['molds'=>'article','url'=>$data['ownurl'],'tid'=>$data['tid'],'addtime'=>time(),'aid'=>$r]);
				}
				//tags处理
				if($data['tags']){
					$tags = explode(',',$data['tags']);
					foreach($tags as $v){
						if($v!=''){
							$r = M('tags')->find(['keywords'=>$v]);
							if(!$r){
								$w['keywords'] = $v;
								$w['newname'] = '';
								$w['url'] = '';
								$w['num'] = -1;
								$w['isshow'] = 1;
								$w['number'] = 1;
								$w['tids'] = $data['tid'] ? ','.$data['tid'].',' : '';
								$w['target'] = '_blank';
								M('tags')->add($w);
							}else{
							    $tags_tids = $r['tids'] ? $r['tids'].$data['tid'].',' : ','.$data['tid'].',';
							    $ww['tids'] = $tags_tids;
							    $ww['number'] = $r['number']+1;
								M('tags')->update(['keywords'=>$v],$ww);
							}
						}
					}
				}
				//处理配置信息
				$config = $this->webconf['article_config'];
				$configdata = json_decode($config,1);
				if($configdata['seotitle']!=$this->frparam('config_seotitle') || $configdata['litpic']!=$this->frparam('config_litpic') || $configdata['tags']!=$this->frparam('config_tags') || $configdata['filter']!=$this->frparam('config_filter',1)){
					$configdata = [
						'seotitle'=>$this->frparam('config_seotitle'),
						'litpic'=>$this->frparam('config_litpic'),
						'description'=>$this->frparam('config_description'),
						'tags'=>$this->frparam('config_tags'),
						'filter'=>$this->frparam('config_filter',1),
					];
					M('sysconfig')->update(['field'=>'article_config'],['data'=>json_encode($configdata,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)]);
					setCache('webconfig',null);
				}
				
				
				JsonReturn(array('code'=>0,'msg'=>JZLANG('添加成功,继续添加~'),'url'=>U('addarticle',array('tid'=>$data['tid']))));
				exit;
			}
			
			
			
		}
		$this->molds = M('molds')->find(['biaoshi'=>'article']);
		$this->tid = $this->frparam('tid');
		$this->classtypes = $this->classtypetree;
		
		$config = $this->webconf['article_config'];
		if(!$config){
			$configdata = [
				'seotitle'=>1,
				'litpic'=>1,
				'description'=>1,
				'tags'=>1,
				'filter'=>'title,keywords,body',
			];
			M('sysconfig')->add(['title'=>JZLANG('内容配置'),'field'=>'article_config','type'=>3,'data'=>json_encode($configdata,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),'typeid'=>0]);
			setCache('webconfig',null);
		}else{
			$configdata = json_decode($config,1);
		}
		$this->configdata = $configdata;
		
		$this->display('article-add');
	}
	
	function editarticle(){
		$this->fields_biaoshi = 'article';
		if($this->frparam('go',1)==1){
			
			$data = $this->frparam();
			$data = get_fields_data($data,'article');
            check_field_must($data,'article');
			if(!$this->frparam('seo_title',1) && $this->frparam('config_seotitle')==1){
				$data['seo_title'] = $data['title'];
			}
			if(!$this->frparam('description',1) && $this->frparam('config_description')==1){
				$data['description'] = newstr(strip_tags($_POST['body']),200);
			}
            $water_models = explode(',',$this->webconf['text_molds']);
            if(in_array('article',$water_models)){
                if(!$this->frparam('litpic',1) && $this->webconf['text_waterlitpic'] && $this->webconf['text_litpic']){
                    $data['litpic'] = waterwordmark($data['title'],APP_PATH.$this->webconf['text_litpic']);
                    //存储
                    $filesize = round(filesize(APP_PATH.$data['litpic'])/1024,2);
                    $pix_arr = explode('.',$data['litpic']);
                    $pix = end($pix_arr);
                    M('pictures')->add(['litpic'=>$data['litpic'],'addtime'=>time(),'userid'=>$_SESSION['admin']['id'],'size'=>$filesize,'filetype'=>strtolower($pix),'tid'=>$this->frparam('tid'),'molds'=>'article']);
                }
            }
			if(!$data['litpic'] && $this->frparam('config_litpic')==1){
				$pattern='/<img.*?src="(.*?)".*?>/is';
				if($this->frparam('body',1)){
					$r = preg_match($pattern,stripslashes($data['body']),$matchContent);
					if($r){
						$data['litpic'] = $matchContent[1];
					}else{
						$data['litpic'] = '';
					}
					
				}else{
					$data['litpic'] = '';
				}
			}
			if(!$this->frparam('tags',1) && $this->frparam('config_tags')==1){
				$data['tags'] = str_replace(',',',',$data['keywords']);
				if($data['tags']){
					$data['tags'] = ','.$data['tags'].',';
				}
			}
			
			$data['userid'] = $_SESSION['admin']['id'];
			$data['htmlurl'] = $data['tid'] ? $this->classtypedata[$data['tid']]['htmlurl'] : null;
			//违禁词检测
			if($this->webconf['mingan'] && $this->frparam('config_filter',1)){
				$mingan = explode(',',$this->webconf['mingan']);
				$filter = explode(',',$this->frparam('config_filter',1));
				$fields = $this->getTableFields('article');
				foreach($mingan as $s){
					if(strpos($s,'{xxx}')!==false){
						$pattern = '/'.str_replace('{xxx}','(.*)',$s).'/';
						foreach($filter as $vv){
							if($vv && preg_match($pattern, $data[$vv])){
								JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败').',【'.$fields[$vv].'】'.JZLANG('存在敏感词').' [ '.$s.' ]'));
							}
							
						}
						

					}else{
						foreach($filter as $vv){
							if($vv && strpos($data[$vv],$s)!==false ){
								JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败').',【'.$fields[$vv].'】'.JZLANG('存在敏感词').' [ '.$s.' ]'));
							}
							
						}
						
					}
				}
			}

			if($this->frparam('id')){
				$old_tags = M('Article')->getField(['id'=>$this->frparam('id')],'tags');
				//处理自定义URL
				
				if($data['ownurl']){
					$customurl = M('customurl')->find(['url'=>$data['ownurl']]);
					if($customurl){
						if($customurl['aid']!=$this->frparam('id')){
							JsonReturn(array('code'=>1,'msg'=>JZLANG('已存在相同的自定义URL!')));
						}else{
							M('customurl')->update(['id'=>$customurl['id']],['url'=>$data['ownurl'],'tid'=>$data['tid'],'molds'=>'article']);
						}
						
					}else{
						if(M('customurl')->find(['aid'=>$this->frparam('id'),'molds'=>'article'])){
							M('customurl')->update(['aid'=>$this->frparam('id'),'molds'=>'article'],['url'=>$data['ownurl'],'molds'=>'article','tid'=>$data['tid']]);
						}else{
							M('customurl')->add(['molds'=>'article','tid'=>$data['tid'],'url'=>$data['ownurl'],'addtime'=>time(),'aid'=>$this->frparam('id')]);
						}
						
					}
					
				}else{
					M('customurl')->delete(['molds'=>'article','aid'=>$this->frparam('id')]);
				}
				if($this->admin['isadmin']==1 || ($this->admin['isadmin']!=1 && $this->admin['ischeck']==0)){
					$data['isshow'] = $this->frparam('isshow',0,1);
				}else{
					$data['isshow'] = 0;
				}
                //检查是否重复
                if($this->webconf['hidetitleonliy']){
                    $hidetitleonly = explode('|',$this->webconf['hidetitleonliy']);
                    $onliyfield = '';
                    foreach ($hidetitleonly as $s){
                        $d = explode('-',$s);
                        if(strtolower($d[0])=='article'){
                            $onliyfield = strtolower($d[1]);
                            break;
                        }
                    }
                    if($onliyfield){
                        $sql = $onliyfield."='".$this->frparam($onliyfield,1)."' and id!=".$this->frparam('id');
                        if(M('article')->find($sql)){
                            JsonReturn(array('code'=>1,'msg'=>$onliyfield.JZLANG('重复!')));
                        }
                    }
                }
                $data['addtime'] = isset($data['addtime']) ? $data['addtime'] : time();
                $data['updatetime'] = time();
                //推荐置顶热门
                if(strpos($data['jzattr'],'1')!==false){
                    $data['istop'] = 1;
                }else{
                    $data['istop'] = 0;
                }
                if(strpos($data['jzattr'],'2')!==false){
                    $data['ishot'] = 1;
                }else{
                    $data['ishot'] = 0;
                }
                if(strpos($data['jzattr'],'3')!==false){
                    $data['istuijian'] = 1;
                }else{
                    $data['istuijian'] = 0;
                }
				if(M('Article')->update(array('id'=>$this->frparam('id')),$data)){
					if($old_tags!=$data['tags']){
						
						$a = $old_tags.$data['tags'];
						$new = [];
						$a = explode(',',$a);
						foreach($a as $v){
							if($v!='' && !in_array($v,$new)){
								
								$r = M('tags')->find(['keywords'=>$v]);
								if(!$r){
									$w['keywords'] = $v;
									$w['newname'] = '';
									$w['url'] = '';
									$w['num'] = -1;
									$w['isshow'] = 1;
									$w['number'] = 1;
                                    $w['tids'] = $data['tid'] ? ','.$data['tid'].',' : '';
									$w['target'] = '_blank';
									M('tags')->add($w);
								}else{

                                    if(strpos($old_tags,','.$v.',')===false){

                                        if($data['tid']){
                                            $tags_tids = $r['tids'] ? $r['tids'].$data['tid'].',' : ','.$data['tid'].',';
                                            $ww['tids'] = $tags_tids;
                                        }

                                        $ww['number'] = $r['number']+1;
                                        M('tags')->update(['keywords'=>$v],$ww);
                                    }else if(strpos($data['tags'],','.$v.',')===false && strpos($old_tags,','.$v.',')!==false){

                                        if($data['tid']){
                                            $tags_tids = str_replace(','.$data['tid'].',',',',$r['tids']);
                                            $ww['tids'] = $tags_tids==',' ? '' : $tags_tids;
                                        }

                                        $ww['number'] = $r['number']-1;
                                        M('tags')->update(['keywords'=>$v],$ww);
                                    }
									
								}
								
								$new[]=$v;
							}
						}
						
						
						
						
					}
					if($this->webconf['release_award_open']==1 && $data['isshow']==1){
						$award = round($this->webconf['release_award'],2);
						$max_award = round($this->webconf['release_max_award'],2);
						$member_id = M('Article')->getField(['id'=>$this->frparam('id')],'member_id');
						
						if($member_id!=0 && $award>0){
							$rr = M('buylog')->find(['userid'=>$member_id,'type'=>3,'molds'=>'article','aid'=>$this->frparam('id'),'msg'=>JZLANG('发布奖励')]);
							if(!$rr){
								$start = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
								$end = mktime(23, 59, 59, date('m'), date('d'), date('Y'));

								$sql = " addtime>=".$start." and addtime<".$end." and userid=".$member_id." and type=3 and msg='".JZLANG("发布奖励")."' ";
								$all = M('buylog')->findAll($sql,null,'amount');
								$all_jifen = 0;
								if($all){
									foreach($all as $v){
										$all_jifen+=$v['amount'];
									}
								}
								
								if($max_award==0 || ($all_jifen<$max_award && $max_award!=0)){
									$w['userid'] = $member_id;
		                			$w['buytype'] = 'jifen';
						   	  		$w['type'] = 3;
						   	  		$w['molds'] = 'article';
						   	  		$w['aid'] = $this->frparam('id');
						   	  		$w['msg'] = JZLANG('发布奖励');
						   	  		$w['addtime'] = time();
						   	  		$w['orderno'] = 'No'.date('YmdHis');
						   	  		$w['amount'] = $award;
						   	  		$w['money'] = $w['amount']/($this->webconf['money_exchange']);
						   	  		$r = M('buylog')->add($w);
						   	  		M('member')->goInc(['id'=>$member_id],'jifen',$award);
								}
							}
							
						}
					}

					
					$config = $this->webconf['article_config'];
					$configdata = json_decode($config,1);
					if($configdata['seotitle']!=$this->frparam('config_seotitle') || $configdata['litpic']!=$this->frparam('config_litpic') || $configdata['tags']!=$this->frparam('config_tags') || $configdata['filter']!=$this->frparam('config_filter',1)){
						$configdata = [
							'seotitle'=>$this->frparam('config_seotitle'),
							'litpic'=>$this->frparam('config_litpic'),
							'description'=>$this->frparam('config_description'),
							'tags'=>$this->frparam('config_tags'),
							'filter'=>$this->frparam('config_filter',1),
						];
						M('sysconfig')->update(['field'=>'article_config'],['data'=>json_encode($configdata,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)]);
						setCache('webconfig',null);
					}
					
					JsonReturn(array('code'=>0,'msg'=>JZLANG('修改成功!'),'url'=>U('index')));
				}else{
					JsonReturn(array('code'=>1,'msg'=>JZLANG('您未做任何修改,不能提交!')));
				}
			}
			
			
			
		}
		if($this->frparam('id')){
			$this->data = M('Article')->find(array('id'=>$this->frparam('id')));
		}
		$this->molds = M('molds')->find(['biaoshi'=>'article']);
		$this->classtypes = $this->classtypetree;
		$config = $this->webconf['article_config'];
		if(!$config){
			$configdata = [
				'seotitle'=>1,
				'litpic'=>1,
				'description'=>1,
				'tags'=>1,
				'filter'=>'title,keywords,body',
			];
			M('sysconfig')->add(['title'=>JZLANG('内容配置'),'field'=>'article_config','type'=>3,'data'=>json_encode($configdata,JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),'typeid'=>0]);
			setCache('webconfig',null);
		}else{
			$configdata = json_decode($config,1);
		}
		$this->configdata = $configdata;
		
		$this->display('article-edit');
		
	}
	
	function deletearticle(){
		$id = $this->frparam('id');
		if($id){
			$data = M('article')->find(['id'=>$id]);
			if(M('Article')->delete(['id'=>$id])){
				$customurl = M('customurl')->find(['molds'=>'article','aid'=>$id]);
				M('customurl')->delete(['molds'=>'article','aid'=>$id]);
				$w['molds'] = 'article';
				$w['title'] = '['.$data['id'].']'.$data['title'];
				$w['data'] = serialize($data);
				$w['addtime'] = time();
				$r = M('recycle')->add($w);
				if($customurl){
					$w['molds'] = 'customurl';
					$w['data'] = serialize($customurl);
                    $w['title'] = '['.$customurl['id'].']'.JZLANG('自定义链接');
					$w['addtime'] = time();
					$w['aid'] = $r;
					M('recycle')->add($w);
				}
				
				
				JsonReturn(array('code'=>0,'msg'=>JZLANG('删除成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败!')));
			}
		}
	}
	
	//复制文章
	function copyarticle(){
		$id = $this->frparam('id');
		if($id){
			$data = M('article')->find(['id'=>$id]);
			unset($data['id']);
			if(M('Article')->add($data)){
				JsonReturn(array('code'=>0,'msg'=>JZLANG('复制成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('复制失败!')));
			}
		}
		
	}
	//批量删除文章
	function deleteAll(){
		$data = $this->frparam('data',1);
		if($data!=''){
			$all = M('article')->findAll('id in('.$data.')');
			if(M('article')->delete('id in('.$data.')')){
				$customurls = M('customurl')->findAll(" aid in(".$data.") and molds='article' ");
				M('customurl')->delete(" aid in(".$data.") and molds='article' ");
				$newcustomurl = [];
				if($customurls){
					foreach($customurls as $v){
						$newcustomurl[$v['aid']] = $v;
					}
				}
				
				foreach($all as $v){
					$w['molds'] = 'article';
					$w['data'] = serialize($v);
					$w['addtime'] = time();
					$w['title'] = '['.$v['id'].']'.$v['title'];
					$x = M('recycle')->add($w);
					if($x && $newcustomurl[$v['id']]){
						$w['molds'] = 'customurl';
						$w['data'] = serialize($newcustomurl[$v['id']]);
						$w['addtime'] = time();
						$w['title'] = '['.$newcustomurl[$v['id']]['id'].']自定义链接';
						$w['aid'] = $x;
						M('recycle')->add($w);
					}
				}
				JsonReturn(array('code'=>0,'msg'=>JZLANG('批量删除成功!')));
				
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('批量操作失败!')));
			}
		}
	}
	//批量复制文章
	function copyAll(){
		$data = $this->frparam('data',1);
		if($data!=''){
			$list = M('article')->findAll('id in('.$data.')');
			$r = true;
			foreach($list as $v){
				unset($v['id']);
				M('Article')->add($v);
			}
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量复制成功!')));
				
		}
	}
	//批量修改栏目
	function changeType(){
		$data = $this->frparam('data',1);
		$tid = $this->frparam('tid');
		if($data!=''){
			$list = M('article')->findAll('id in('.$data.')');
			$r = true;
			foreach($list as $v){
				$w['tid'] = $tid;
				$type = M('classtype')->find(array('id'=>$tid));
				$w['htmlurl'] = $type['htmlurl'];
				M('Article')->update(array('id'=>$v['id']),$w);
				if($v['ownurl']){
					M('customurl')->update(['aid'=>$v['id'],'molds'=>'article'],['tid'=>$tid]);
				}
			}
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量修改成功!')));
		}
	}
	
	//修改排序
	function editArticleOrders(){
		$field = $this->frparam('field',1);
		$w[$field] = $this->frparam('value',1);
		$r = M('article')->update(array('id'=>$this->frparam('id')),$w);
		if(!$r){
			JsonReturn(array('code'=>1,'info'=>JZLANG('修改失败!')));
		}
		JsonReturn(array('code'=>0,'info'=>JZLANG('修改成功!')));
	}
	//批量修改推荐属性
	function changeAttribute(){
		$data = $this->frparam('data',1);
		$tj = $this->frparam('tj');
		if($data!=''){
			$list = M('article')->findAll('id in('.$data.')');
			
			foreach($list as $v){
				if(strpos($v['jzattr'],','.$tj.',')!==false){
					$attr = str_replace(','.$tj.',','',$v['jzattr']);
					if(!$attr){
						$w['jzattr'] = '';
					}else{
						$w['jzattr'] = ','.trim($attr,',').',';
					}
				}else{
					if($v['jzattr']){
						$w['jzattr'] = $v['jzattr'].$tj.',';
					}else{
						$w['jzattr'] = ','.$tj.',';
					}
				}

                if(strpos($w['jzattr'],'1')!==false){
                    $w['istop'] = 1;
                }else{
                    $w['istop'] = 0;
                }
                if(strpos($w['jzattr'],'2')!==false){
                    $w['ishot'] = 1;
                }else{
                    $w['ishot'] = 0;
                }
                if(strpos($w['jzattr'],'3')!==false){
                    $w['istuijian'] = 1;
                }else{
                    $w['istuijian'] = 0;
                }
				M('Article')->update(array('id'=>$v['id']),$w);
			}
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量修改成功!')));
		}
	}

	//批量审核
	function checkAll(){
		$data = $this->frparam('data',1);
		if($data!=''){
			if($this->frparam('isshow')==1){
				$isshow = 1;
			}else if($this->frparam('isshow')==2){
				$isshow = 0;
			}else{
				$isshow = 2;
			}
			if($isshow==1){
				$all = M('article')->findAll('id in('.$data.')');
				$award = round($this->webconf['release_award'],2);
				$max_award = round($this->webconf['release_max_award'],2);
				$start = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
				$end = mktime(23, 59, 59, date('m'), date('d'), date('Y'));

				foreach ($all as $k => $v) {
					if($v['isshow']!=1){
						//start
						if($this->webconf['release_award_open']==1){
							$member_id = $v['member_id'];
							if($member_id!=0 && $award>0){
								$rr = M('buylog')->find(['userid'=>$member_id,'type'=>3,'molds'=>'article','aid'=>$v['id'],'msg'=>JZLANG('发布奖励')]);
								if(!$rr){
									
									$sql = " addtime>=".$start." and addtime<".$end." and userid=".$member_id." and type=3 and msg='".JZLANG("发布奖励")."' ";
									$all = M('buylog')->findAll($sql,null,'amount');
									$all_jifen = 0;
									if($all){
										foreach($all as $vv){
											$all_jifen+=$vv['amount'];
										}
									}
									
									if($max_award==0 || ($all_jifen<$max_award && $max_award!=0)){
										$w['userid'] = $member_id;
			                			$w['buytype'] = 'jifen';
							   	  		$w['type'] = 3;
							   	  		$w['molds'] = 'article';
							   	  		$w['aid'] = $v['id'];
							   	  		$w['msg'] = JZLANG('发布奖励');
							   	  		$w['addtime'] = time();
							   	  		$w['orderno'] = 'No'.date('YmdHis');
							   	  		$w['amount'] = $award;
							   	  		$w['money'] = $w['amount']/($this->webconf['money_exchange']);
							   	  		$r = M('buylog')->add($w);
							   	  		M('member')->goInc(['id'=>$member_id],'jifen',$award);
									}
								}
								
							}
						}
						//end
					}
				}
				
			}
			
			M('article')->update('id in('.$data.')',['isshow'=>$isshow]);
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量操作成功!')));
		}else{
			JsonReturn(array('code'=>1,'msg'=>JZLANG('批量操作失败!')));
		}
	}
	
	private function getTableFields($table){
		$sql="select distinct * from information_schema.columns where table_schema = '".DB_NAME."' and  table_name = '".DB_PREFIX.$table."'";
        $list = M()->findSql($sql);
        $isgo = true;
        $fields = [];
		
        foreach($list as $v){
			$len = 0;
			$s = preg_match('/\((.*)\)/',$v['COLUMN_TYPE'],$math);
			if($s){
				$len = $math[1];
			}
			$fields[$v['COLUMN_NAME']] = $v['COLUMN_COMMENT'] ? $v['COLUMN_COMMENT'] : $v['COLUMN_NAME'];
			
            

        }
        return $fields;

    }
	
	
	
	
	
	
	
}

================================================
FILE: app/admin/c/ClasstypeController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://frphp.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/02
// +----------------------------------------------------------------------


namespace app\admin\c;


use frphp\extend\Page;

class ClasstypeController extends CommonController
{


	function index(){
		//$sql = null;
		//栏目不需要搜索
		// $data = $this->frparam();
		// $res = molds_search('classtype',$data);
		// $sql = ($res['fields_search_check']!='')?$res['fields_search_check']:null;
		// $this->fields_search = $res['fields_search'];
		$classtype = M('classtype')->findAll(NULL,'orders desc');
		$classtype = set_class_haschild($classtype);
		$classtype = getTree($classtype);
		$this->classtypes = $classtype;
		//$this->classtypes = $this->classtypetree;
		//模块
		$molds = M('Molds')->findAll(['isopen'=>1]);
		$fs = array();
		foreach($molds as $v){
			$fs[$v['biaoshi']] = $v;
		}
		$this->molds = M('molds')->find(['biaoshi'=>'classtype']);
		$this->moldslist = $fs;
		$this->display('classtype-list');
	}
	
	function addclass(){
		$this->fields_biaoshi = 'classtype';
		
		if($this->frparam('go')==1){

			$htmlurl = $this->frparam('htmlurl',1);
			if($htmlurl==''){
				$htmlurl = str_replace(' ','',pinyin($this->frparam('classname',1)));
			}
			if($this->webconf['islevelurl'] && $this->frparam('pid')!=0){
				//层级
				$classtypetree = classTypeData();
				$htmlurl = $classtypetree[$this->frparam('pid')]['htmlurl'].'/'.$htmlurl;
			}
			
			if(in_array(strtolower($htmlurl),array('message','user','comment','home','common','order','tags','wechat','login'))){
				JsonReturn(array('status'=>0,'info'=>JZLANG('URL链接命名不能是').':message,user,comment,home,common,order,tags,wechat,login,jzpay'));
			}
			if(stripos($htmlurl,'.php')!==false){
				JsonReturn(array('status'=>0,'info'=>JZLANG('非法URL')));
			}

			$w['pid'] = $this->frparam('pid');
			$w['orders'] = $this->frparam('orders');
			$w['classname'] = $this->frparam('classname',1);
			$w['seo_classname'] = $this->frparam('seo_classname',1) ? $this->frparam('seo_classname',1) : $this->frparam('classname',1);
			$w['molds'] = $this->frparam('molds',1);
			$w['description'] = $this->frparam('description',1);
			$w['keywords'] = $this->frparam('keywords',1);
			$w['litpic'] = $this->frparam('litpic',1);
            $text = remote_data_local(stripslashes($_POST['body']), 0, $w['molds']);
			$w['body'] = format_param($text,4);
			$w['htmlurl'] = $htmlurl;
			$w['iscover'] = $this->frparam('iscover');
			$w['lists_html'] = $this->frparam('lists_html',1);
			$w['details_html'] = $this->frparam('details_html',1);
			$w['gourl'] = $this->frparam('gourl',1);
			$w['lists_num'] = $this->frparam('lists_num');
            $w['gids'] = $this->frparam('gids',2) ? implode(',',$this->frparam('gids',2)) : '';

            //检查同级重名
            if(M('classtype')->find(['classname'=>$w['classname'],'pid'=>$w['pid']])){
                JsonReturn(array('status'=>0,'info'=>JZLANG('存在同级下重名!')));
            }
            
			if($w['pid']){
				$parent = M('classtype')->find(array('id'=>$w['pid']));
				if($parent['iscover']==1){
					$w['lists_html']= $w['lists_html'] ? $w['lists_html'] : ($this->frparam('lists_html_write',1) ? $this->frparam('lists_html_write',1) : $parent['lists_html']);
					$w['details_html']= $w['details_html'] ? $w['details_html'] : ($this->frparam('details_html_write',1) ? $this->frparam('details_html_write',1) : $parent['details_html']);
					$w['lists_num']=$parent['lists_num'];
				}else{
					$w['lists_html']= $w['lists_html'] ? $w['lists_html'] : $this->frparam('lists_html_write',1);
					$w['details_html']= $w['details_html'] ? $w['details_html'] : $this->frparam('details_html_write',1);
				}
			}else{
				$w['lists_html']= $w['lists_html'] ? $w['lists_html'] : $this->frparam('lists_html_write',1);
				$w['details_html']= $w['details_html'] ? $w['details_html'] : $this->frparam('details_html_write',1);
			}
			
			//$w['lists_html'] = str_ireplace('.html','',$w['lists_html']);
			//$w['details_html'] = str_ireplace('.html','',$w['details_html']);
			
			
			$data = $this->frparam();
			$data = get_fields_data($data,'classtype');
			$w = array_merge($data,$w);
            $w['addtime'] = $w['updatetime'] = isset($w['addtime']) ? $w['addtime'] : time();
			$a = M('classtype')->add($w);
			if($a){
			    if($w['pid']){
                    $sql = " tids like '%,".$w['pid'].",%' or (molds='".$w['molds']."' and (tids is null or tids='')) ";
                }else{
			        $sql = "molds='".$w['molds']."'";
                }
                $fields=M('fields')->findAll($sql);
                foreach ($fields as $v){
                    if($v['tids']){
                        M('fields')->update(array('id'=>$v['id']),array('tids'=>$v['tids'].$a.','));
                    }else{
                        M('fields')->update(array('id'=>$v['id']),array('tids'=>','.$a.','));
                    }

                }


				//这里
				setCache('jzclasstypedata',null);
				setCache('classtypetree',null);
				setCache('classtype',null);
				setCache('mobileclasstype',null);
				setCache('classtypedatamobile',null);
				setCache('classtypedatapc',null);
				JsonReturn(array('status'=>1,'info'=>JZLANG('添加栏目成功,继续添加~'),'url'=>U('addclass',array('pid'=>$w['pid'],'biaoshi'=>$w['molds']))));
			}else{
				JsonReturn(array('status'=>0,'info'=>JZLANG('新增失败!')));
			}
		}
		//模块
		$this->molds = M('Molds')->findAll(['isopen'=>1]);
		
		$this->pid = $this->frparam('pid');
		$this->biaoshi = $this->frparam('biaoshi',1);
		$this->classtypes = $this->classtypetree;
		$this->display('classtype-add');
		
	}
	function editclass(){
		$this->data = M('classtype')->find(array('id'=>$this->frparam('id')));
		$this->fields_biaoshi = 'classtype';
		if($this->frparam('go')==1){
			$htmlurl = $this->frparam('htmlurl',1);
			if($htmlurl==''){
				$htmlurl = str_replace(' ','',pinyin($this->frparam('classname',1)));
			}
			
			if(in_array(strtolower($htmlurl),array('message','user','comment','home','common','order','tags','wechat','login'))){
				JsonReturn(array('status'=>0,'info'=>JZLANG('URL链接命名不能是').':message,user,comment,home,common,order,tags,wechat,login,jzpay'));
			}
			if(stripos($htmlurl,'.php')!==false){
				JsonReturn(array('status'=>0,'info'=>'非法URL'));
			}
			$w['pid'] = $this->frparam('pid');
			$w['orders'] = $this->frparam('orders');
			$w['classname'] = $this->frparam('classname',1);
			$w['molds'] = $this->frparam('molds',1);
			if(!M('molds')->find(['biaoshi'=>$w['molds']])){
				JsonReturn(array('status'=>1,'info'=>JZLANG('模型错误!')));
			}
			$w['description'] = $this->frparam('description',1);
			$w['keywords'] = $this->frparam('keywords',1);
			$w['id'] = $this->frparam('id');
			$w['litpic'] = $this->frparam('litpic',1);
            $text = remote_data_local(stripslashes($_POST['body']), $w['id'], $w['molds']);
            $w['body'] = format_param($text,4);
			$w['htmlurl'] = $htmlurl;
			$w['iscover'] = $this->frparam('iscover');
			$w['lists_html'] = $this->frparam('lists_html',1) ? $this->frparam('lists_html',1) : $this->frparam('lists_html_write',1);
			$w['details_html'] = $this->frparam('details_html',1) ? $this->frparam('details_html',1) : $this->frparam('details_html_write',1);
			$w['lists_num'] = $this->frparam('lists_num');
			$w['gourl'] = $this->frparam('gourl',1);
			//$w['lists_html'] = str_ireplace('.html','',$w['lists_html']);
			//$w['details_html'] = str_ireplace('.html','',$w['details_html']);
            $w['gids'] = $this->frparam('gids',2) ? implode(',',$this->frparam('gids',2)) : '';
			
			$data = $this->frparam();
			$data = get_fields_data($data,'classtype');
			$w = array_merge($data,$w);
			
			//检测pid是否为该栏目下级
			if(checkClass($w['pid'],$this->data['id']) || ($w['pid']==$this->data['id'])){
				JsonReturn(array('status'=>0,'info'=>JZLANG('不能选择当前栏目及下级为顶级栏目')));
			}
			
			$w['updatetime'] = time();
			$a = M('classtype')->update(array('id'=>$w['id']),$w);
			if($a){
				if($w['iscover']==1){
					$children = M('classtype')->update(array('pid'=>$w['id']),array('lists_html'=>$w['lists_html'],'details_html'=>$w['details_html'],'lists_num'=>$w['lists_num']));
				}
				//批量修改栏目对应的模块内容htmlurl
				if($this->data['htmlurl']!=$data['htmlurl']){
					M($data['molds'])->update(array('tid'=>$data['id']),array('htmlurl'=>$data['htmlurl']));
			
				}
				//批量修改栏目url
				if($this->webconf['islevelurl']==1){
					if( ($this->data['htmlurl']!=$data['htmlurl']) || ($this->data['pid']!=$w['pid'])){
						
						//层级
						$classtypetree = classTypeData();
						$children = get_children($classtypetree[$w['id']],$classtypetree,5);
						//计算当前url
						//以前的url替换成当前的url
						$old_htmlurl = $this->data['htmlurl'];
						if(strpos($w['htmlurl'],'/')!==false){
							//获取最后一个
							$htl = explode('/',$w['htmlurl']);
							$htl_new = end($htl);//最后一个名字
							
						}else{
							$htl_new = $w['htmlurl'];
						}
						
						if($w['pid']!=0){
							$p_html = $classtypetree[$w['pid']]['htmlurl'];
							$new_htmlurl = $p_html.'/'.$htl_new;
						}else{
							$new_htmlurl = $htl_new;
						}
						//更新栏目及其内容HTML
						M('classtype')->update(['id'=>$data['id']],['htmlurl'=>$new_htmlurl]);
						M($data['molds'])->update(array('tid'=>$data['id']),array('htmlurl'=>$new_htmlurl));
						
						foreach($children as $v){
							$html = substr($v['htmlurl'],strlen($old_htmlurl));
							$htmlurl_s = $new_htmlurl.$html;
							M('classtype')->update(['id'=>$v['id']],['htmlurl'=>$htmlurl_s]);
							M($v['molds'])->update(['tid'=>$v['id']],['htmlurl'=>$htmlurl_s]);
						}

					}


				}
				
				setCache('jzclasstypedata',null);
				setCache('classtypetree',null);
				setCache('classtype',null);
				setCache('mobileclasstype',null);
				setCache('classtypedatamobile',null);
				setCache('classtypedatapc',null);
				JsonReturn(array('status'=>1));
			}else{
				JsonReturn(array('status'=>0,'info'=>JZLANG('您未做任何修改,不能提交!')));
			}
		}
		
		//模块
		$this->molds = M('Molds')->findAll(['isopen'=>1]);
		$this->classtypes = $this->classtypetree;
		$this->display('classtype-edit');
		
	}
	
	function editClassOrders(){
		$w['orders'] = $this->frparam('orders');
		
		$r = M('classtype')->update(array('id'=>$this->frparam('id')),$w);
		if(!$r){
			JsonReturn(array('code'=>1,'info'=>JZLANG('修改失败!')));
		}
		setCache('jzclasstypedata',null);
		setCache('classtypetree',null);
		setCache('classtype',null);
		setCache('mobileclasstype',null);
		setCache('classtypedatamobile',null);
		setCache('classtypedatapc',null);
		JsonReturn(array('code'=>0,'info'=>JZLANG('修改成功!')));
		
	}
	function deleteclass(){
		$id = $this->frparam('id');
		if($id){
			//检测栏目是否有下级
			if(M('classtype')->find(['pid'=>$id])){
				JsonReturn(array('status'=>0,'info'=>JZLANG('该栏目有子栏目,请先删除子栏目!')));
			}
			$data = M('classtype')->find(array('id'=>$id));
			$a = M('classtype')->delete(array('id'=>$id));
			if($a){
				$w['molds'] = 'classtype';
				$w['data'] = serialize($data);
				$w['addtime'] = time();
				$w['title'] = '['.$data['id'].']'.$data['classname'];
				M('recycle')->add($w);
				setCache('jzclasstypedata',null);
				setCache('classtypetree',null);
				setCache('classtype',null);
				setCache('mobileclasstype',null);
				setCache('classtypedatamobile',null);
				setCache('classtypedatapc',null);
				JsonReturn(array('status'=>1));
			}else{
				JsonReturn(array('status'=>0,'info'=>JZLANG('删除失败!')));
			}
		}
		
	}
	function change_status(){
		$id = $this->frparam('id',1);
		if(!$id){
			JsonReturn(array('code'=>1,'msg'=>JZLANG('非法操作!')));
		}
		
		$x = M('Classtype')->find('id='.$id);
		if($x['isshow']==1){
			$x['isshow']=0;
		}else{
			$x['isshow']=1;
		}
		M('Classtype')->update(array('id'=>$id),array('isshow'=>$x['isshow']));
		setCache('jzclasstypedata',null);
		setCache('classtypetree',null);
		setCache('classtype',null);
		setCache('mobileclasstype',null);
		setCache('classtypedatamobile',null);
		setCache('classtypedatapc',null);
	}
	
	function get_pinyin(){
		
		$classname = $this->frparam('classname',1);
		if($classname){
			$data = pinyin($classname,'first');
			JsonReturn(['code'=>0,'data'=>$data]);
		}
		
	}
    
    function addmany(){
        if($_POST){
            $type = $this->frparam('type',0,1);
            if($type==1){
                $molds = $this->frparam('molds',1);
                $pid = $this->frparam('pid',0,0);
                $classname = $this->frparam('classname',1);
                if(!trim($classname)){
                    JsonReturn(['code'=>1,'msg'=>JZLANG('栏目不能为空!')]);
                }
                $classname = explode("\n",trim($classname));
                $classtypetree = classTypeData();
                foreach($classname as $k=>$v){
                    if($v){
                        if(strpos($v,'|')!==false){
                            $d = explode('|',$v);
                        }else{
                            $d = [$v,pinyin($v,'first')];
                        }
                        $w['molds'] = $molds;
                        $w['classname'] = $d[0];
                        $w['seo_classname'] = $d[0];
                        $w['pid'] = $pid;
                        $d[1] = str_replace(' ','-',$d[1]);
                        if($this->webconf['islevelurl'] && $w['pid']!=0){
                            //层级
                            $html = $classtypetree[$w['pid']]['htmlurl'].'/'.$d[1];
                        }else{
                            $html = $d[1];
                        }
                        if(stripos($html,'.php')!==false){
                            JsonReturn(array('code'=>1,'info'=>'非法URL'));
                        }
                        $w['htmlurl'] = str_replace(' ','-',$html);
                        $w['lists_num'] = $this->frparam('lists_num',0,10);
                        $w['lists_html'] = $this->frparam('lists_html',1);
                        $w['details_html'] = $this->frparam('details_html',1);
                        $w['isshow'] =$this->frparam('isshow',0,1);
                        $w['ishome'] =$this->frparam('ishome',0,1);
                        $w['addtime'] = $w['updatetime'] = time();
                        $r = M('classtype')->add($w);
                        $sql = "molds='".$w['molds']."'";
                        $fields=M('fields')->findAll($sql);
                        foreach ($fields as $s){
                            if($s['tids']){
                                M('fields')->update(array('id'=>$s['id']),array('tids'=>$s['tids'].$r.','));
                            }else{
                                M('fields')->update(array('id'=>$s['id']),array('tids'=>','.$r.','));
                            }
                            
                        }
                        $w = [];
                    }
                    
                    
                }
            }else{
                
                $data_0 = $this->frparam('data_0',2);
                $data_1 = $this->frparam('data_1',2);
                $data_2 = $this->frparam('data_2',2);
                $data_3 = $this->frparam('data_3',2);
                $data_4 = $this->frparam('data_4',2);
                $data_5 = $this->frparam('data_5',2);
                $data_6 = $this->frparam('data_6',2);
                $data_7 = $this->frparam('data_7',2);
                $data_8 = $this->frparam('data_8',2);
                $classtypetree = classTypeData();
                foreach($data_1 as $k=>$v){
                    if($v && $v!=''){
                        
                        $w['molds'] = $data_0[$k];
                        $w['classname'] = $v;
                        $w['pid'] = $data_2[$k];
                        $data_3[$k] = $data_3[$k] ? : pinyin($data_3[$k],'first');
                        if($this->webconf['islevelurl'] && $w['pid']!=0){
                            //层级
                            $html = $classtypetree[$w['pid']]['htmlurl'].'/'.$data_3[$k];
                        }else{
                            $html = $data_3[$k];
                        }
                        
                        $w['htmlurl'] = $html;
                        $w['lists_num'] = $data_4[$k];
                        $w['lists_html'] = $data_5[$k];
                        $w['details_html'] = $data_6[$k];
                        $w['isshow'] = $data_7[$k];
                        $w['orders'] = $data_8[$k];
                        $w['addtime'] = $w['updatetime'] = time();
                        $r = M('classtype')->add($w);
                        
                        $sql = "molds='".$w['molds']."'";
                        $fields=M('fields')->findAll($sql);
                        foreach ($fields as $s){
                            if($s['tids']){
                                M('fields')->update(array('id'=>$s['id']),array('tids'=>$s['tids'].$r.','));
                            }else{
                                M('fields')->update(array('id'=>$s['id']),array('tids'=>','.$r.','));
                            }
                            
                        }
                        
                        $w = [];
                    }
                    
                    
                }
                
            }
            
            setCache('jzclasstypedata',null);
            setCache('classtypetree',null);
            setCache('classtype',null);
            setCache('mobileclasstype',null);
            setCache('classtypedatamobile',null);
            setCache('classtypedatapc',null);
            JsonReturn(['code'=>0,'msg'=>'success']);
        }
        $this->molds = M('molds')->find(['biaoshi'=>'classtype']);
        $this->moldslist = M('molds')->findAll(['isopen'=>1]);
        $this->classtypes = $this->classtypetree;;
        
        $this->display('classtype-addmany');
        
        
    }
    
    public function get_html(){
        $molds = $this->frparam('molds',1,'article');
        //获取前台template
        $dir = APP_PATH.'static/'.$this->webconf['pc_template'].'/'.strtolower($molds);
        
        $fileArray=array();
        if(is_dir($dir)){
            
            if (false != ($handle = opendir ( $dir ))) {
                $i=0;
                while ( false !== ($file = readdir ( $handle )) ) {
                    //去掉"“.”、“..”以及带“.xxx”后缀的文件
                    if ($file != "." && $file != "..") {
                        $fileArray[$i]=['html'=>$file,'value'=>$file];
                        $i++;
                        
                    }
                    
                }
                //关闭句柄
                closedir ( $handle );
            }
        }
        
        $m = M('molds')->find(['biaoshi'=>$molds]);
        if(!count($fileArray)){
            $fileArray[] = ['html'=>$m['list_html'],'value'=>$m['list_html']];
            $fileArray[] = ['html'=>$m['details_html'],'value'=>$m['details_html']];
            
        }
        JsonReturn(['code'=>0,'data'=>$fileArray,'path'=>$dir,'lists_html'=>$m['list_html'],'details_html'=>$m['details_html']]);
        
    }
	
		
	function changeClass(){
		$pid = $this->frparam('pid',0,0);
		$tids = $this->frparam('tids',1);
		$tids_arr = explode(',',$tids);
		
		foreach($tids_arr as $v){
			//检测pid是否为该栏目下级
			if(checkClass($pid,$v) || ($pid==$v)){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('不能选择当前栏目及下级为顶级栏目')));
			}
		}
		
		//批量修改栏目url
		if($this->webconf['islevelurl']==1){
				//层级
				$classtypetree = classTypeData();
			foreach($tids_arr as $v){	
				$children = get_children($classtypetree[$v],$classtypetree,5);
				//计算当前url
				//以前的url替换成当前的url
				$old_htmlurl = $classtypetree[$v]['htmlurl'];
				if(strpos($old_htmlurl,'/')!==false){
					//获取最后一个
					$htl = explode('/',$old_htmlurl);
					$htl_new = end($htl);//最后一个名字
					
				}else{
					$htl_new = $old_htmlurl;
				}
				
				if($pid!=0){
					$p_html = $classtypetree[$pid]['htmlurl'];
					$new_htmlurl = $p_html.'/'.$htl_new;
				}else{
					$new_htmlurl = $htl_new;
				}
				//更新栏目及其内容HTML
				M('classtype')->update(['id'=>$v],['htmlurl'=>$new_htmlurl,'pid'=>$pid]);
				M($classtypetree[$v]['molds'])->update(array('tid'=>$v),array('htmlurl'=>$new_htmlurl,'tid'=>$pid));
				
				foreach($children as $vv){
					$html = substr($vv['htmlurl'],strlen($old_htmlurl));
					$htmlurl_s = $new_htmlurl.$html;
					M('classtype')->update(['id'=>$vv['id']],['htmlurl'=>$htmlurl_s]);
					M($vv['molds'])->update(['tid'=>$vv['id']],['htmlurl'=>$htmlurl_s]);
				}

			}


		}else{
			M('classtype')->update(' id in('.$tids.')',['pid'=>$pid]);
			
		}
		setCache('jzclasstypedata',null);
		setCache('classtypetree',null);
		setCache('classtype',null);
		setCache('mobileclasstype',null);
		setCache('classtypedatamobile',null);
		setCache('classtypedatapc',null);
		JsonReturn(array('code'=>0,'msg'=>JZLANG('操作成功!')));
	}

    function getchildren(){
        $id  = $this->frparam('id');

        $this->lists = $this->classtypedata[$id]['children']['list'];

        $molds = M('Molds')->findAll(['isopen'=>1]);
        $fs = array();
        foreach($molds as $v){
            $fs[$v['biaoshi']] = $v;
        }
        $this->molds = M('molds')->find(['biaoshi'=>'classtype']);
        $this->moldslist = $fs;

        $this->display('getchildren');
    }
	
	
}
	

================================================
FILE: app/admin/c/CollectController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/03
// +----------------------------------------------------------------------


namespace app\admin\c;


use frphp\extend\Page;

class CollectController extends CommonController
{
	//列表
	function index(){
			$page = new Page('collect');
			$sql = '1=1';
			
			if($this->frparam('tid')){
				$sql .= ' and tid='.$this->frparam('tid');
			}
			
			$data = $this->frparam();
			$res = molds_search('collect',$data);
			$get_sql = ($res['fields_search_check']!='') ? (' and '.$res['fields_search_check']) : '';
			$sql .= $get_sql;
			
			$this->fields_search = $res['fields_search'];
			$this->fields_list = M('Fields')->findAll(array('molds'=>'collect','islist'=>1),'orders desc');
			if($this->frparam('title',1)!=''){
				$sql.=" and title like '%".$this->frparam('title',1)."%' ";
			}
			
			
			$data = $page->where($sql)->orderby('id desc')->page($this->frparam('page',0,1))->go();
			$pages = $page->pageList();
			$this->pages = $pages;
			$this->lists = $data;
			$this->sum = $page->sum;
			
			
			$this->tid=  $this->frparam('tid');
			$this->title = $this->frparam('title',1);
			$collect_type = M('collect_type')->findAll();
		
			$this->collect_type = $collect_type;
			
			
			$this->display('collect-list');
			
			
		}
		
	function addcollect(){
		$this->fields_biaoshi = 'collect';
		if($this->frparam('go',1)==1){
			$data = $this->frparam();
			$data['addtime'] = strtotime($this->frparam('addtime',1));
			$data['title'] = $this->frparam("title",1);
			$data['description'] = $this->frparam("description",1);
			$data['litpic'] = $this->frparam("litpic",1);
			$data['url'] = $this->frparam("url",1);
			$data['w'] = $this->frparam("w",1);
			$data['h'] = $this->frparam("h",1);
			$data['tid'] = $this->frparam("tid");
			$data['isshow'] = $this->frparam("isshow");
			$data['orders'] = $this->frparam("orders");
			if(!$data['tid']){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('请选择分类!')));
				exit;
			}
			$data = get_fields_data($data,'collect');
			if(M('collect')->add($data)){
				JsonReturn(array('code'=>0,'msg'=>JZLANG('添加成功!继续添加~'),'url'=>U('addcollect',array('tid'=>$data['tid']))));
				exit;
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('添加失败!')));
				exit;
			}
			
			
		}
		
		$collect_type = M('collect_type')->findAll(null);
		$this->tid = $this->frparam('tid') ? $this->frparam('tid') : 0;
		$this->collect_type = $collect_type;
		$this->display('collect-add');
	}
	
	function copycollect(){
		$id = $this->frparam('id');
		if($id){
			$data = M('collect')->find(['id'=>$id]);
			unset($data['id']);
			if(M('collect')->add($data)){
				
				JsonReturn(array('code'=>0,'msg'=>JZLANG('复制成功!')));
				exit;
			}else{
				
				JsonReturn(array('code'=>1,'msg'=>JZLANG('复制失败!')));
				exit;
			}
			
			
		}
		
	}

	function deleteAll(){
		$data = $this->frparam('data',1);
		if($data!=''){
			$all = M('collect')->findAll('id in('.$data.')');
			if(M('collect')->delete('id in('.$data.')')){
				foreach($all as $v){
					$w['molds'] = 'collect';
					$w['data'] = serialize($v);
					$w['title'] = '['.$v['id'].']'.$v['title'];
					$w['addtime'] = time();
					M('recycle')->add($w);
				}
				JsonReturn(array('code'=>0,'msg'=>JZLANG('批量删除成功!')));
				
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('批量操作失败!')));
			}
		}
	}
	
	function editcollect(){
		$this->fields_biaoshi = 'collect';
		if($this->frparam('go',1)==1){
			$data = $this->frparam();
			$data['addtime'] = strtotime($this->frparam('addtime',1));
			$data['title'] = $this->frparam("title",1);
			$data['description'] = $this->frparam("description",1);
			$data['litpic'] = $this->frparam("litpic",1);
			$data['url'] = $this->frparam("url",1);
			$data['w'] = $this->frparam("w",1);
			$data['h'] = $this->frparam("h",1);
			$data['tid'] = $this->frparam("tid");
			$data['isshow'] = $this->frparam("isshow");
			$data['orders'] = $this->frparam("orders");
			if(!$data['tid']){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('请选择分类!')));
				exit;
			}
			$data = get_fields_data($data,'collect');
			if($this->frparam('id')){
				if(M('collect')->update(array('id'=>$this->frparam('id')),$data)){
					JsonReturn(array('code'=>0,'msg'=>JZLANG('修改成功!'),'url'=>U('index')));
					exit;
				}else{
					JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败!')));
					exit;
				}
			}
			
			
		}
		if($this->frparam('id')){
			$this->data = M('collect')->find(array('id'=>$this->frparam('id')));
		}
		$collect_type = M('collect_type')->findAll(null);
		
		$this->collect_type = $collect_type;
		$this->display('collect-edit');
		
	}
	
	function deletecollect(){
		$id = $this->frparam('id');
		if($id){
			$data = M('collect')->find(['id'=>$id]);
			if(M('collect')->delete(['id'=>$id])){
				$w['molds'] = 'collect';
				$w['data'] = serialize($data);
				$w['title'] = '['.$data['id'].']'.$data['title'];
				$w['addtime'] = time();
				M('recycle')->add($w);
				JsonReturn(array('code'=>0,'msg'=>JZLANG('删除成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败!')));
			}
		}
	}
	
	function collectType(){
		$lists = M("collect_type")->findAll();
		$this->lists = $lists;
		$this->display('collecttype-list');
	}
	
	function collectTypeAdd(){
		if($this->frparam('go')==1){
			$data['name'] = $this->frparam('name',1);
				$data['addtime'] = time();
				if(M('collect_type')->add($data)){
					JsonReturn(array('code'=>0,'msg'=>JZLANG('新增成功!')));
				}else{
					JsonReturn(array('code'=>1,'msg'=>JZLANG('新增失败!')));
				}
		}
		$this->display('collecttype-add');
	}

	function collectTypeEdit(){
		$id = $this->frparam('id');
		if($id){
			if($this->frparam('go')==1){
				$data['name'] = $this->frparam('name',1);
				$data['addtime'] = time();
				if(M('collect_type')->update(array('id'=>$id),$data)){
					JsonReturn(array('code'=>0,'msg'=>JZLANG('修改成功!')));
				}else{
					JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败!')));
				}
			}
			$data =  M("collect_type")->find(array('id'=>$id));
			$this->data = $data;
			$this->display('collecttype-edit');
		}

	}

	function collectTypeDelete(){
		$id = $this->frparam('id');
		if($id){
			//检测该分类下是否存在内容
			$r = M('collect')->getCount(array('tid'=>$id));
			if($r){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('该分类下存在内容,请先删除该分类下的内容!')));
			}
            $data = M('collect_type')->find(['id'=>$id]);
			if(M('collect_type')->delete(['id'=>$id])){
                $w['molds'] = 'collect_type';
                $w['data'] = serialize($data);
                $w['title'] = '['.$data['id'].']'.$data['title'];
                $w['addtime'] = time();
                M('recycle')->add($w);
				JsonReturn(array('code'=>0,'msg'=>JZLANG('删除成功!')));
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败!')));
			}
		}
	}
	
	
	
	
	
	
	
	
	
}

================================================
FILE: app/admin/c/CommentController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/02
// +----------------------------------------------------------------------


namespace app\admin\c;


use frphp\extend\Page;

class CommentController extends CommonController
{
	

	function addcomment(){
		$this->fields_biaoshi = 'comment';
		if($this->frparam('go',1)==1){
			
			$data = $this->frparam();
			$data['addtime'] = strtotime($data['addtime']);
			$data['body'] = $this->frparam('body',4);
			$data['reply'] = $this->frparam('reply',4);
			$data['userid'] = $_SESSION['admin']['id'];
			
			
			$data = get_fields_data($data,'comment');
			
			if(M('Comment')->add($data)){
				//Success('添加成功!',U('index'));
				JsonReturn(array('code'=>0,'msg'=>JZLANG('添加成功!')));
				exit;
			}else{
				//Error('添加失败!');
				JsonReturn(array('code'=>1,'msg'=>JZLANG('添加失败!')));
				exit;
			}
			
			
			
		}
		
		//$classtype = M('classtype')->findAll(null,'orders desc');
		//$classtype = getTree($classtype);
	
		$this->classtypes = $this->classtypetree;;
		$this->display('comment-add');
	}

	//批量删除评论
	function deleteAll(){
		$data = $this->frparam('data',1);
		if($data!=''){
			$all = M('comment')->findAll('id in('.$data.')');
			if(M('comment')->delete('id in('.$data.')')){
				foreach($all as $v){
					$w['molds'] = 'comment';
					$w['data'] = serialize($v);
					$w['title'] = '['.$v['id'].']'.newstr($v['body'],40);
					$w['addtime'] = time();
					M('recycle')->add($w);
                    if($this->classtypedata[$v['tid']] && $v['aid']){
                        M($this->classtypedata[$v['tid']]['molds'])->goDec(['id'=>$v['aid']],'comment_num');
                    }
				}
				JsonReturn(array('code'=>0,'msg'=>JZLANG('批量删除成功!')));
				
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('批量操作失败!')));
			}
		}
	}
	
	//评论管理
	function commentlist(){
		
		$this->tid=  $this->frparam('tid');
		$this->aid = $this->frparam('aid');
		$this->isshow = $this->frparam('isshow');
		$this->userid = $this->frparam('userid');
		$this->body = $this->frparam('body',1);
		$this->fields_list = M('Fields')->findAll(array('molds'=>'comment','islist'=>1),'orders desc');
		$data = $this->frparam();
		$res = molds_search('comment',$data);
		$get_sql = ($res['fields_search_check']!='') ? (' and '.$res['fields_search_check']) : '';
		$this->fields_search = $res['fields_search'];
		$this->classtypes = $this->classtypetree;
		$this->molds = M('molds')->find(['biaoshi'=>'comment']);
		if($this->frparam('ajax')){
			
			$page = new Page('Comment');
			$sql = '1=1';
			if($this->isshow==1){
				$sql .= ' and isshow=1 ';
			}else if($this->isshow==2){
				$sql .= ' and isshow=0 ';
			}else if($this->isshow==3){
				$sql .= ' and isshow=2 ';
			}
			if($this->admin['classcontrol']==1 && $this->admin['isadmin']!=1 && $this->molds['iscontrol']!=0 && $this->molds['isclasstype']==1){
				$a1 = explode(',',$this->tids);
				$a2 = array_filter($a1);
				$tids = implode(',',$a2);
				$sql.=' and tid in('.$tids.') ';
			}
			
			if($this->frparam('tid')){
				$sql .= ' and tid='.$this->frparam('tid');
			}
			if($this->frparam('aid')){
				$sql.=" and aid = ".$this->frparam('aid')." ";
			}
			if($this->frparam('body',1)){
				$sql.=" and body like  '%".$this->frparam('body',1)."%' ";
			}
			if($this->frparam('userid')!=0){
				$sql.=" and userid = ".$this->frparam('userid')." ";
			}
			$sql .= $get_sql;
			$data = $page->where($sql)->orderby('addtime desc,id desc')->limit($this->frparam('limit',0,10))->page($this->frparam('page',0,1))->go();
			$ajaxdata = [];
			$classtypedata = classTypeData();
			
			foreach($data as $k=>$v){
				$v['new_username'] = $v['userid']!=0 ? get_info_table('member',array('id'=>$v['userid']),'username') : '';
				$v['new_user'] = $v['userid']!=0 ? U('Member/memberedit',['id'=>$v['userid']]) : '';
				if($v['tid']!=0 && isset($classtypedata[$v['tid']])){
					$v['new_tid'] = $classtypedata[$v['tid']]['classname'];
				}else{
					$v['new_tid'] =  '';
				}
				if($v['aid']!=0 && $v['tid']!=0 && isset($classtypedata[$v['tid']])){
					$adata = M($classtypedata[$v['tid']]['molds'])->find(['id'=>$v['aid']]);
					if($adata){
						$v['new_aid_url'] = get_domain().'/'.$adata['htmlurl'].'/'.$v['aid'];
					}else{
						$v['new_aid_url'] = '';
					}
					
				}else{
					$v['new_aid_url'] = '';
				}
				
				$v['new_zid'] = $v['zid']!=0 ? U('Comment/editcomment',array('id'=>$v['zid'])) : '';
				$v['new_pid'] = $v['pid']!=0 ? U('Comment/editcomment',array('id'=>$v['pid'])) : '';
				if($v['isshow']==1){
					$v['new_isshow'] = JZLANG('已审核');
				}else if($v['isshow']==2){
					$v['new_isshow'] = JZLANG('被删除');
				}else{
					$v['new_isshow'] = JZLANG('未审核');
				}
				
				$v['new_isread'] = $v['isread']==1 ? JZLANG('已读') : JZLANG('未读');
				$v['new_addtime'] = date('Y-m-d H:i:s',$v['addtime']);
				$v['edit_url'] = U('Comment/editcomment',array('id'=>$v['id']));
				
				foreach($this->fields_list as $vv){
					$v[$vv['field']] = format_fields($vv,$v[$vv['field']]);
				}
				$ajaxdata[]=$v;
				
			}
			
			$pages = $page->pageList();
			$this->pages = $pages;
			$this->lists = $data;
			$this->sum = $page->sum;
			JsonReturn(['code'=>0,'data'=>$ajaxdata,'count'=>$page->sum]);
			
		}
		
		
		
		
		$this->display('comment-list');
		
		
	}
	
	public function editcomment(){
		$this->fields_biaoshi = 'comment';
		if($this->frparam('go',1)==1){
			
			$data = $this->frparam();
            foreach($data as $k=>$v){
                $data[$k] = $this->frparam($k,1);
            }
			$data['addtime'] = strtotime($data['addtime']);
			$data['body'] = $this->frparam('body',4);
			$data['reply'] = $this->frparam('reply',4);
			$data = get_fields_data($data,'comment');
			if($this->frparam('id')){
				if(M('Comment')->update(array('id'=>$this->frparam('id')),$data)){
					if($this->frparam('ismsg') && $data['reply']){
						$task['aid'] = $this->frparam('id');
						$task['tid'] = $data['tid'];
						$task['userid'] = $data['userid'];
						$task['puserid'] = 0;
						$task['molds'] = $this->classtypedata[$data['tid']]['molds'];
						$task['type'] = 'comment';
						$task['addtime'] = time();
						$task['body'] = $data['reply'];
						if(!$data['aid']){
							$url = $this->classtypedata[$data['tid']]['url'];
						}else{
							//非栏目评论
							$res=M($this->classtypedata[$data['tid']]['molds'])->find(['id'=>$data['aid']]);
							$url = gourl($res,$res['htmlurl']);
						}
						$task['url'] = $url;
						M('task')->add($task);
				
					}
					JsonReturn(array('code'=>0,'msg'=>JZLANG('修改成功!'),'url'=>U('index')));
					exit;
				}else{
					//Error('修改失败!');
					JsonReturn(array('code'=>1,'msg'=>JZLANG('修改失败!')));
					exit;
				}
			
			}
			
			
			
		}
		if($this->frparam('id')){
			$this->data = M('Comment')->find(array('id'=>$this->frparam('id')));
		}
		//$classtype = M('classtype')->findAll(null,'orders desc');
		//$classtype = getTree($classtype);
	
		$this->classtypes = $this->classtypetree;;
		$this->display('comment-details');
		
	}
	function deletecomment(){
		$id = $this->frparam('id');
		if($id){
			$data = M('Comment')->find(['id'=>$id]);
			if(M('Comment')->delete(['id'=>$id])){
				$w['molds'] = 'comment';
				$w['data'] = serialize($data);
				$w['title'] = '['.$data['id'].']'.newstr($data['body'],40);
				$w['addtime'] = time();
				M('recycle')->add($w);
                //更新统计数
                if($this->classtypedata[$data['tid']] && $data['aid']){
                    M($this->classtypedata[$data['tid']]['molds'])->goDec(['id'=>$data['aid']],'comment_num');
                }
				JsonReturn(array('code'=>0,'msg'=>JZLANG('删除成功!')));
			}else{
				//Error('删除失败!');
				JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败!')));
			}
		}
	}
	
	
	//批量审核
	function checkAll(){
		$data = $this->frparam('data',1);
		if($data!=''){
			$isshow = $this->frparam('isshow')==1 ? 1 : 0;
			M('comment')->update('id in('.$data.')',['isshow'=>$isshow]);
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量审核成功!')));
		}else{
			JsonReturn(array('code'=>1,'msg'=>JZLANG('批量审核失败!')));
		}
	}
	
	
	
	
	
	
	
	
	
	
}

================================================
FILE: app/admin/c/CommonController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/02
// +----------------------------------------------------------------------

namespace app\admin\c;

use frphp\lib\Controller;
class CommonController extends Controller
{
	function _init(){
        if(class_exists('app\admin\plugins\CommonController')){
            $extCommonModel = new \app\admin\plugins\CommonController($this->frparam());
            if(method_exists($extCommonModel,APP_ACTION)){
                $action = APP_ACTION;
                $extCommonModel->$action();
                exit;
            }
            
        }
	    
      if(!isset($_SESSION['admin']) || !$_SESSION['admin']['id']){
		   $_SESSION['admin'] = null;
      	   Redirect(U('Login/index'));
        
      }
 
      if($_SESSION['admin']['isadmin']!=1){
		if(strpos($_SESSION['admin']['paction'],','.APP_CONTROLLER.',')!==false){
        
        }else{
			$action = APP_CONTROLLER.'/'.APP_ACTION;
			if(strpos($_SESSION['admin']['paction'],','.$action.',')===false){
			   $ac = M('Ruler')->find(array('fc'=>$action));
			   if($this->frparam('ajax')){
				   
				   JsonReturn(['code'=>1,'msg'=>JZLANG('您没有权限!').'【'.JZLANG($ac['name']).'】','url'=>U('Index/welcome')]);
			   }
			   Error(JZLANG('您没有权限!').'【'.$ac['name'].'】',U('Index/welcome'));
			}
		}
      
      
      }

	  
	  $this->admin = $_SESSION['admin'];
	  
	  $webconf = webConf();
	  $template = TEMPLATE;
	  $this->webconf = $webconf;
	  $this->template = $template;
	  $this->tpl = Tpl_style.$template.'/';
	  $customconf = get_custom();
	  $this->customconf = $customconf;
	  $this->classtypetree =  get_classtype_tree();
	  $m = 1;
		if(isMobile() && $webconf['iswap']==1){
			$classtypedata = classTypeDataMobile();
			$m = 1;
		}else{
			$classtypedata = classTypeData();
			$m = 0;
		}
		
		$this->classtypedata = getclasstypedata($classtypedata,$m);
	  

	  if($_SESSION['admin']['isadmin']!=1){
			$tids = $_SESSION['admin']['tids'] ?: '000';
			foreach ($this->classtypetree as $k => $v) {
				if($v['pid']==0){
					if(strpos($_SESSION['admin']['tids'],','.$v['id'].',')!==false){
						$children = get_children($v,$this->classtypetree,5);
						foreach($children as $vv){
							if(strpos($_SESSION['admin']['tids'],','.$vv['id'].',')===false){
								$tids .= ','.$vv['id'].',';
							}
						}
					}
				}
				
			}
			
		}else{
			$tids = '000';
		}
		$this->tids = $tids;
    
    }
	
	function uploads(){
		if ($_FILES["file"]["error"] > 0){
		  $data['error'] =  "Error: " . $_FILES["file"]["error"];
		  $data['code'] = 1000;
		}else{
		  // echo "Upload: " . $_FILES["file"]["name"] . "<br />";
		  // echo "Type: " . $_FILES["file"]["type"] . "<br />";
		  // echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
		  // echo "Stored in: " . $_FILES["file"]["tmp_name"];
		  $pix = explode('.',$_FILES['file']['name']);
		  $pix = end($pix);
		  
		  
		    $fileType = $this->webconf['fileType'];
			if(strpos($fileType,strtolower($pix))===false   || stripos($pix,'php')!==false || stripos($pix,'phtml')!==false || stripos($pix,'phar')!==false){
				$data['error'] =  "Error: ".JZLANG("文件类型不允许上传!");
				$data['code'] = 1002;
				JsonReturn($data);
			}
			$fileSize = (int)webConf('fileSize');
			if($fileSize!=0 && ($_FILES["file"]["size"]/1024)>$fileSize){
				$data['error'] =  "Error: ".JZLANG("文件大小超过网站内部限制!");
				$data['code'] = 1003;
				JsonReturn($data);
			}
		  if(isset($this->webconf['admin_save_path'])){
			  //替换日期事件
				$t = time();
				$d = explode('-', date("Y-y-m-d-H-i-s"));
				$format = $this->webconf['admin_save_path'];
				$format = str_replace("{yyyy}", $d[0], $format);
				$format = str_replace("{yy}", $d[1], $format);
				$format = str_replace("{mm}", $d[2], $format);
				$format = str_replace("{dd}", $d[3], $format);
				$format = str_replace("{hh}", $d[4], $format);
				$format = str_replace("{ii}", $d[5], $format);
				$format = str_replace("{ss}", $d[6], $format);
				$format = str_replace("{time}", $t, $format);
				if($format!=''){
					//检查文件是否存在
					if(strpos($format,'/')!==false && !file_exists(APP_PATH.$format)){
						$path = explode('/',$format);
						$path1 = APP_PATH;
						foreach($path as $v){
							if($path1==APP_PATH){
								if(!file_exists($path1.$v)){
									mkdir($path1.$v,0777);
								}
								$path1.=$v;
							}else{
								if(!file_exists($path1.'/'.$v)){
									mkdir($path1.'/'.$v,0777);
								}
								$path1.='/'.$v;
							}
						}
					}else if(!file_exists(APP_PATH.$format)){
						mkdir(APP_PATH.$format,0777);
					}
					$admin_save_path = $format;
					
				}else{
					$admin_save_path = 'public/Admin';
				}
				
				
		  }else{
			 $admin_save_path = 'public/Admin';
		  }
            
          if(!isset($this->webconf['upload_file_name']) || (isset($this->webconf['upload_file_name']) && $this->webconf['upload_file_name'])){
              $filename =  $admin_save_path.'/'.date('Ymd').rand(1000,9999).'.'.$pix;
              $filename_x =  $admin_save_path.'/'.date('Ymd').rand(1000,9999).'.'.$pix;
          }else{
		      $name = urldecode($_FILES['file']['name']);
		      $name = str_ireplace(["'",'"','%','&',' '],'',$name);
		      $name = format_param($name,6);
              $filename =  $admin_save_path.'/'.$name;
              $filename_x =  $admin_save_path.'/'.$name;
          }
		  
		  
			if(move_uploaded_file($_FILES["file"]['tmp_name'],$filename)){
			
				if( (strtolower($pix)=='png' && $this->webconf['ispngcompress']==1) || strtolower($pix)=='jpg' || strtolower($pix)=='jpeg'){
					$imagequlity = (int)$this->webconf['imagequlity'];
					if($imagequlity!=100){
						$image = new \compressimage($filename);
    					$image->percent = 1;
						$image->ispngcompress = $this->webconf['ispngcompress'];
    					$image->quality = $imagequlity=='' ? 75 : $imagequlity;
    					$image->openImage();
    					$image->thumpImage();
    					//$image->showImage();
    					unlink($filename);
    					$image->saveImage($filename_x);
    					$filename = $filename_x;
					}
				   
				}
				if( (strtolower($pix)=='png' || strtolower($pix)=='jpg' || strtolower($pix)=='jpeg') && $this->webconf['iswatermark']==1 ){
                    watermark($filename,APP_PATH.$this->webconf['watermark_file'],$this->webconf['watermark_t'],$this->webconf['watermark_tm'],$this->webconf['text_word']);
				}
				$data['url'] = '/'.$filename;
				$data['code'] = 0;
				$filesize = round(filesize(APP_PATH.$filename)/1024,2);
				M('pictures')->add(['litpic'=>'/'.$filename,'addtime'=>time(),'userid'=>$_SESSION['admin']['id'],'size'=>$filesize,'filetype'=>strtolower($pix),'tid'=>$this->frparam('tid',0,0),'molds'=>$this->frparam('molds',1,null)]);
				
				
			}else{
				$data['error'] =  "Error: ".JZLANG("请检查目录写入权限")."[".$admin_save_path."]";
				$data['code'] = 1001;
				  
			} 

			  
		  
		  }

		  JsonReturn($data);
		  
	}
	
	
	
	

}

================================================
FILE: app/admin/c/ErrorController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 } 
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/02
// +----------------------------------------------------------------------


namespace app\admin\c;

use frphp\lib\Controller;
class ErrorController extends Controller
{
	//错误处理示例
    function index($msg=''){
        header("HTTP/1.0 404");
        if(APP_DEBUG){
            $msg = format_param($msg,1);
            echo JZLANG('错误信息提示').':<br/>';
            echo $msg;
        }else{
            echo '<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>404</title>
<style>
	body{
		background-color:#444;
		font-size:14px;
	}
	h3{
		font-size:60px;
		color:#eee;
		text-align:center;
		padding-top:30px;
		font-weight:normal;
	}
</style>
</head>

<body>
<h3>404,您请求的文件不存在!</h3>
</body>
</html>';
        }
        
        
    }
}
	

================================================
FILE: app/admin/c/ExtmoldsController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/02
// +----------------------------------------------------------------------


namespace app\admin\c;

use frphp\lib\Controller;
use frphp\extend\Page;

class ExtmoldsController extends Controller
{
	function _init(){
		if(!isset($_SESSION['admin']) || !$_SESSION['admin']['id']){
			Redirect(U('Login/index'));
			
		}
			
		if($_SESSION['admin']['isadmin']!=1){
			if(strpos($_SESSION['admin']['paction'],','.APP_CONTROLLER.',')===false){
				$molds = $this->frparam('molds',1);
				$action = APP_CONTROLLER.'/'.APP_ACTION.'/molds/'.$molds;
				
				if(strpos($_SESSION['admin']['paction'],','.$action.',')===false){
				   $ac = M('Ruler')->find(array('fc'=>$action));
				   if($this->frparam('ajax')){
					   
					   JsonReturn(['code'=>1,'msg'=>JZLANG('您没有权限!').'【'.JZLANG($ac['name']).'】','url'=>U('Index/welcome')]);
				   }
				   Error(JZLANG('您没有权限!').'【'.$ac['name'].'】',U('Index/welcome'));
				}
			}
		   
		  
		}
		 $this->admin = $_SESSION['admin'];
		
		  $webconf = webConf();
		  $template = TEMPLATE;
		  $this->webconf = $webconf;
		  $this->template = $template;
		  $this->tpl = Tpl_style.$template.'/';
		  $customconf = get_custom();
		  $this->customconf = $customconf;
		  $this->classtypetree =  get_classtype_tree();
		  $m = 1;
			if(isMobile() && $webconf['iswap']==1){
				$classtypedata = classTypeDataMobile();
				$m = 1;
			}else{
				$classtypedata = classTypeData();
				$m = 0;
			}
			
			$this->classtypedata = getclasstypedata($classtypedata,$m);
	  
		  if($_SESSION['admin']['isadmin']!=1){
			$tids = $_SESSION['admin']['tids'] ?: '000';
			foreach ($this->classtypetree as $k => $v) {
				if($v['pid']==0){
					if(strpos($_SESSION['admin']['tids'],','.$v['id'].',')!==false){
						$children = get_children($v,$this->classtypetree,5);
						foreach($children as $vv){
							if(strpos($_SESSION['admin']['tids'],','.$vv['id'].',')===false){
								$tids .= ','.$vv['id'].',';
							}
						}
					}
				}
				
			}
			
		}else{
			$tids = '000';
		}
		$this->tids = $tids;
	}
	public function index(){
		
		$classtypedata = $this->classtypedata;
		$molds = $this->frparam('molds',1);
		if($molds==''){
			Error(JZLANG('模块为空,请选择模块!'));
		}
		$this->molds = M('Molds')->find(array('biaoshi'=>$molds));
		$data = $this->frparam();
		$res = molds_search($molds,$data);
		$this->isshow = $this->frparam('isshow');
		$this->tid = $this->frparam('tid');
		$this->fields_search = $res['fields_search'];
		$this->fields_list = M('Fields')->findAll(array('molds'=>$molds,'islist'=>1),'listorders desc');
		$this->classtypes = $this->classtypetree;
		if($this->frparam('ajax')){
			
			$sql = '1=1';
			if($this->admin['classcontrol']==1 && $this->admin['isadmin']!=1 && $this->molds['isclasstype']==1 && $this->molds['iscontrol']!=0){
				$a1 = explode(',',$this->tids);
				$a2 = array_filter($a1);
				$tids = implode(',',$a2);
				$sql.=' and tid in('.$tids.') ';
			}
			
			$get_sql = ($res['fields_search_check']!='') ? (' and '.$res['fields_search_check']) : '';
			$sql .= $get_sql;
			
			
			$page = new Page($molds);
			$data = $page->where($sql)->orderby('istop desc,orders desc,id desc')->limit($this->frparam('limit',0,10))->page($this->frparam('page',0,1))->go();
			$ajaxdata = [];
			foreach($data as $k=>$v){
				if(isset($classtypedata[$v['tid']])){
					$v['new_tid'] = $v['tid']!=0 ? $classtypedata[$v['tid']]['classname'] : '-';
				}else{
					$v['new_tid'] = '[未分类]';
				}
				
				if($molds=='tags'){
					$v['view_url'] = get_domain().'/tags/index/id/'.$v['id'];
				}else{
					$v['view_url'] = gourl($v,$v['htmlurl']);
				}
				
				$v['edit_url'] = U('Extmolds/editmolds',array('id'=>$v['id'],'molds'=>$molds));
				
				foreach($this->fields_list as $vv){
					$v[$vv['field']] = format_fields($vv,$v[$vv['field']]);
				}
				$ajaxdata[]=$v;
				
			}
			
			$pages = $page->pageList();
			$this->pages = $pages;
			$this->lists = $data;
			$this->sum = $page->sum;
			JsonReturn(['code'=>0,'data'=>$ajaxdata,'count'=>$page->sum]);
			
			
		}
		
		
		if(file_exists(APP_PATH.APP_HOME.'/'.HOME_VIEW.'/'.Tpl_template.'/'.$molds.'-list.html')){
			$this->display($molds.'-list');
		}else{
			$this->display('extmolds-list');
		}
		
		
		
	}
	
	public function addmolds(){
		$molds = $this->frparam('molds',5);
		$this->fields_biaoshi = $molds;
		if($this->frparam('go',1)==1){
			
			$data = $this->frparam();
			$data = get_fields_data($data,$molds);
            check_field_must($data,$molds);
			if($data['tid']){
				$data['htmlurl'] = $this->classtypedata[$data['tid']]['htmlurl'];
				
			}
			
			//处理自定义URL
			if(isset($data['ownurl'])){
				if(M('customurl')->find(['molds'=>$molds,'url'=>$data['ownurl']])){
					JsonReturn(array('code'=>1,'msg'=>'已存在相同的自定义URL!'));
				}
				
			}
			$data['userid'] = $this->admin['id'];
			$data['molds'] = $molds;
			if($data['tags']){
				$data['tags'] = ','.$data['tags'].',';
			}else if($this->frparam('keywords',1)){
				$data['tags'] = ','.str_replace(',',',',$this->frparam('keywords',1)).',';
			}
			if($this->admin['isadmin']==1 || ($this->admin['isadmin']!=1 && $this->admin['ischeck']==0)){
				$data['isshow'] = $this->frparam('isshow',0,1);
			}else{
				$data['isshow'] = 0;
			}
            $data['addtime'] =  isset($data['addtime']) ? $data['addtime'] : time();
            //检查是否重复
            if($this->webconf['hidetitleonliy']){
                $hidetitleonly = explode('|',$this->webconf['hidetitleonliy']);
                $onliyfield = '';
                foreach ($hidetitleonly as $s){
                    $d = explode('-',$s);
                    if(strtolower($d[0])==$molds){
                        $onliyfield = strtolower($d[1]);
                        break;
                    }
                }
                if($onliyfield){
                    if(M($molds)->find([$onliyfield=>$data[$onliyfield]])){
                        JsonReturn(array('code'=>1,'msg'=>$onliyfield.JZLANG('重复!')));
                    }
                }
            }
            
            $water_models = explode(',',$this->webconf['text_molds']);
            if(in_array($molds,$water_models)){
                if(!$this->frparam('litpic',1) && $this->webconf['text_waterlitpic'] && $this->webconf['text_litpic']){
                    $data['litpic'] = waterwordmark($data['title'],APP_PATH.$this->webconf['text_litpic']);
                    //存储
                    $filesize = round(filesize(APP_PATH.$data['litpic'])/1024,2);
                    $pix_arr = explode('.',$data['litpic']);
                    $pix = end($pix_arr);
                    M('pictures')->add(['litpic'=>$data['litpic'],'addtime'=>time(),'userid'=>$_SESSION['admin']['id'],'size'=>$filesize,'filetype'=>strtolower($pix),'tid'=>$this->frparam('tid'),'molds'=>$molds]);
                }else if($this->frparam('litpic',1) && $this->webconf['text_waterlitpic']){
                    $data['litpic'] = waterwordmark($data['title'],APP_PATH.$this->frparam('litpic',1),0);
                }
            }
            //推荐置顶热门
            if(strpos($data['jzattr'],'1')!==false){
                $data['istop'] = 1;
            }else{
                $data['istop'] = 0;
            }
            if(strpos($data['jzattr'],'2')!==false){
                $data['ishot'] = 1;
            }else{
                $data['ishot'] = 0;
            }
            if(strpos($data['jzattr'],'3')!==false){
                $data['istuijian'] = 1;
            }else{
                $data['istuijian'] = 0;
            }
			$r = M($molds)->add($data);
			if($r){
				if(isset($data['ownurl'])){
					M('customurl')->add(['molds'=>$molds,'tid'=>$data['tid'],'url'=>$data['ownurl'],'addtime'=>time(),'aid'=>$r]);
				}
				//tags处理
				if($data['tags']){
					$tags = explode(',',$data['tags']);
					foreach($tags as $v){
						if($v!=''){
							$r = M('tags')->find(['keywords'=>$v]);
							if(!$r){
								$w['keywords'] = $v;
								$w['newname'] = '';
								$w['url'] = '';
								$w['num'] = -1;
								$w['isshow'] = 1;
								$w['number'] = 1;
                                $w['tids'] = $data['tid'] ? ','.$data['tid'].',' : '';
								$w['target'] = '_blank';
								M('tags')->add($w);
							}else{
                                $tags_tids = $r['tids'] ? $r['tids'].$data['tid'].',' : ','.$data['tid'].',';
                                $ww['tids'] = $tags_tids;
                                $ww['number'] = $r['number']+1;
                                M('tags')->update(['keywords'=>$v],$ww);
							}
						}
					}
				}
				
				JsonReturn(array('code'=>0,'msg'=>JZLANG('添加成功,继续添加~'),'url'=>U('Extmolds/addmolds',['tid'=>$data['tid'],'molds'=>$molds])));
				
			}else{
				
				JsonReturn(array('code'=>1,'msg'=>JZLANG('添加失败!')));
				
			}
			
			
			
		}
		$this->classtypes = $this->classtypetree;
		$this->tid =  $this->frparam('tid',0,0);
		$this->molds = M('Molds')->find(array('biaoshi'=>$molds));
		if(file_exists(APP_PATH.APP_HOME.'/'.HOME_VIEW.'/'.Tpl_template.'/'.$molds.'-add.html')){
			$this->display($molds.'-add');
		}else{
			$this->display('extmolds-add');
		}
	}
	
	public function editmolds(){
		$molds = $this->frparam('molds',5);
		$this->fields_biaoshi = $molds;
		if($this->frparam('go',1)==1){
			
			$data = $this->frparam();
			$data = get_fields_data($data,$molds);
            check_field_must($data,$molds);
			if($data['tid']){
				$data['htmlurl'] = $this->classtypedata[$data['tid']]['htmlurl'];
			}
			
			if($this->frparam('id')){
				
				//处理自定义URL
				if($data['ownurl']){
					$customurl = M('customurl')->find(['url'=>$data['ownurl']]);
					if($customurl){
						if($customurl['aid']!=$this->frparam('id')){
							JsonReturn(array('code'=>1,'msg'=>JZLANG('已存在相同的自定义URL!')));
						}else{
							M('customurl')->update(['id'=>$customurl['id']],['url'=>$data['ownurl'],'tid'=>$data['tid'],'molds'=>$molds]);
						}
						
					}else{
						if(M('customurl')->find(['aid'=>$this->frparam('id'),'molds'=>$molds])){
							M('customurl')->update(['aid'=>$this->frparam('id'),'molds'=>$molds],['url'=>$data['ownurl'],'molds'=>$molds,'tid'=>$data['tid']]);
						}else{
							M('customurl')->add(['molds'=>$molds,'tid'=>$data['tid'],'url'=>$data['ownurl'],'addtime'=>time(),'aid'=>$this->frparam('id')]);
						}
					}
					
				}else{
					M('customurl')->delete(['molds'=>$molds,'aid'=>$this->frparam('id')]);
				}
				if($data['tags']){
					$data['tags'] = ','.$data['tags'].',';
				}else if($this->frparam('keywords',1)){
					$data['tags'] = ','.str_replace(',',',',$this->frparam('keywords',1)).',';
				}
				$old_tags = M($molds)->getField(['id'=>$this->frparam('id')],'tags');
				if($this->admin['isadmin']==1 || ($this->admin['isadmin']!=1 && $this->admin['ischeck']==0)){
					$data['isshow'] = $this->frparam('isshow',0,1);
				}else{
					$data['isshow'] = 0;
				}
                //检查是否重复
                if($this->webconf['hidetitleonliy']){
                    $hidetitleonly = explode('|',$this->webconf['hidetitleonliy']);
                    $onliyfield = '';
                    foreach ($hidetitleonly as $s){
                        $d = explode('-',$s);
                        if(strtolower($d[0])==$molds){
                            $onliyfield = strtolower($d[1]);
                            break;
                        }
                    }
                    if($onliyfield){
                        $sql = $onliyfield."='".$this->frparam($onliyfield,1)."' and id!=".$this->frparam('id');
                        if(M($molds)->find($sql)){
                            JsonReturn(array('code'=>1,'msg'=>$onliyfield.JZLANG('重复!')));
                        }
                    }
                }
                $water_models = explode(',',$this->webconf['text_molds']);
                if(in_array($molds,$water_models)){
                    if(!$this->frparam('litpic',1) && $this->webconf['text_waterlitpic'] && $this->webconf['text_litpic']){
                        $data['litpic'] = waterwordmark($data['title'],APP_PATH.$this->webconf['text_litpic']);
                        //存储
                        $filesize = round(filesize(APP_PATH.$data['litpic'])/1024,2);
                        $pix_arr = explode('.',$data['litpic']);
                        $pix = end($pix_arr);
                        M('pictures')->add(['litpic'=>$data['litpic'],'addtime'=>time(),'userid'=>$_SESSION['admin']['id'],'size'=>$filesize,'filetype'=>strtolower($pix),'tid'=>$this->frparam('tid'),'molds'=>$molds]);
                    }
                }
                $data['addtime'] = isset($data['addtime']) ? $data['addtime'] : time();
                $data['updatetime'] = time();
                //推荐置顶热门
                if(strpos($data['jzattr'],'1')!==false){
                    $data['istop'] = 1;
                }else{
                    $data['istop'] = 0;
                }
                if(strpos($data['jzattr'],'2')!==false){
                    $data['ishot'] = 1;
                }else{
                    $data['ishot'] = 0;
                }
                if(strpos($data['jzattr'],'3')!==false){
                    $data['istuijian'] = 1;
                }else{
                    $data['istuijian'] = 0;
                }
				if(M($molds)->update(array('id'=>$this->frparam('id')),$data)){
					
					if($old_tags!=$data['tags']){
						
						$a = $old_tags.$data['tags'];
						$new = [];
						$a = explode(',',$a);
						foreach($a as $v){
							if($v!='' && !in_array($v,$new)){
								
								$r = M('tags')->find(['keywords'=>$v]);
								if(!$r){
									$w['keywords'] = $v;
									$w['newname'] = '';
									$w['url'] = '';
									$w['num'] = -1;
									$w['isshow'] = 1;
									$w['number'] = 1;
                                    $w['tids'] = $data['tid'] ? ','.$data['tid'].',' : '';
									$w['target'] = '_blank';
									M('tags')->add($w);
								}else{

                                    if(strpos($old_tags,','.$v.',')===false){

                                        if($data['tid']){
                                            $tags_tids = $r['tids'] ? $r['tids'].$data['tid'].',' : ','.$data['tid'].',';
                                            $ww['tids'] = $tags_tids;
                                        }
                                        $ww['number'] = $r['number']+1;
                                        M('tags')->update(['keywords'=>$v],$ww);
                                    }else if(strpos($data['tags'],','.$v.',')===false && strpos($old_tags,','.$v.',')!==false){
                                        if($data['tid']){
                                            $tags_tids = str_replace(','.$data['tid'].',',',',$r['tids']);
                                            $ww['tids'] = $tags_tids==',' ? '' : $tags_tids;
                                        }
                                        $ww['number'] = $r['number']-1;
                                        M('tags')->update(['keywords'=>$v],$ww);
                                    }
									
									
								}
								
								$new[]=$v;
							}
						}
						
						
						
						
					}
					
					if($this->webconf['release_award_open']==1 && $data['isshow']==1){
						$award = round($this->webconf['release_award'],2);
						$max_award = round($this->webconf['release_max_award'],2);
						$member_id = M($molds)->getField(['id'=>$this->frparam('id')],'member_id');
						
						if($member_id!=0 && $award>0){
							$rr = M('buylog')->find(['userid'=>$member_id,'type'=>3,'molds'=>$molds,'aid'=>$this->frparam('id'),'msg'=>JZLANG('发布奖励')]);
							if(!$rr){
								$start = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
								$end = mktime(23, 59, 59, date('m'), date('d'), date('Y'));

								$sql = " addtime>=".$start." and addtime<".$end." and userid=".$member_id." and type=3 and msg='".JZLANG("发布奖励")."' ";
								$all = M('buylog')->findAll($sql,null,'amount');
								$all_jifen = 0;
								if($all){
									foreach($all as $v){
										$all_jifen+=$v['amount'];
									}
								}
								
								if($max_award==0 || ($all_jifen<$max_award && $max_award!=0)){
									$w['userid'] = $member_id;
		                			$w['buytype'] = 'jifen';
						   	  		$w['type'] = 3;
						   	  		$w['molds'] = $molds;
						   	  		$w['aid'] = $this->frparam('id');
						   	  		$w['msg'] = JZLANG('发布奖励');
						   	  		$w['addtime'] = time();
						   	  		$w['orderno'] = 'No'.date('YmdHis');
						   	  		$w['amount'] = $award;
						   	  		$w['money'] = $w['amount']/($this->webconf['money_exchange']);
						   	  		$r = M('buylog')->add($w);
						   	  		M('member')->goInc(['id'=>$member_id],'jifen',$award);
								}
							}
							
						}
					}
					JsonReturn(array('code'=>0,'msg'=>JZLANG('修改成功!')));
					
				}else{
					
					JsonReturn(array('code'=>1,'msg'=>JZLANG('您未做任何修改,不能提交!')));
					
				}
			
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('缺少ID')));
				
			}
			
			
			
		}
		$this->data = M($molds)->find(array('id'=>$this->frparam('id')));
		$this->molds = M('Molds')->find(array('biaoshi'=>$molds));
		$this->tid =  $this->data['tid'];
		$this->classtypetree =  get_classtype_tree();
		$this->classtypes = $this->classtypetree;
		if(file_exists(APP_PATH.APP_HOME.'/'.HOME_VIEW.'/'.Tpl_template.'/'.$molds.'-edit.html')){
			$this->display($molds.'-edit');
		}else{
			$this->display('extmolds-edit');
		}
	}
	
	public function  copymolds(){
		$id = $this->frparam('id');
		$molds = $this->frparam('molds',1);
		if($id){
			$data = M($molds)->find(['id'=>$id]);
			unset($data['id']);
			if(M($molds)->add($data)){
				
				JsonReturn(array('code'=>0,'msg'=>JZLANG('复制成功!')));
				exit;
			}else{
				
				JsonReturn(array('code'=>1,'msg'=>JZLANG('复制失败!')));
				exit;
			}
			
			
		}
	}
	
	//批量删除
	function deleteAll(){
		$data = $this->frparam('data',1);
		$molds = $this->frparam('molds',1);
		if($data!=''){
			$all = M($molds)->findAll('id in('.$data.')');
			if(M($molds)->delete('id in('.$data.')')){
				$customurls = M('customurl')->findAll(" aid in(".$data.") and molds='".$molds."' ");
				M('customurl')->delete(" aid in(".$data.") and molds='".$molds."' ");
				$newcustomurl = [];
				if($customurls){
					foreach($customurls as $v){
						$newcustomurl[$v['aid']] = $v;
					}
				}
				
				foreach($all as $v){
					$w['molds'] = $molds;
					$w['data'] = serialize($v);
					$w['title'] = '['.$v['id'].']'.$v['title'];
					$w['addtime'] = time();
					$x = M('recycle')->add($w);
					if($x && $newcustomurl[$v['id']]){
						$w['molds'] = 'customurl';
                        $w['title'] = '['.$newcustomurl['id'].']'.JZLANG('自定义链接');
						$w['data'] = serialize($newcustomurl[$v['id']]);
						$w['addtime'] = time();
						$w['aid'] = $x;
						M('recycle')->add($w);
					}
				}
				
				JsonReturn(array('code'=>0,'msg'=>JZLANG('批量删除成功!')));
				
			}else{
				JsonReturn(array('code'=>1,'msg'=>JZLANG('批量操作失败!')));
			}
		}
	}
	//单一删除
	function deletemolds(){
		$id = $this->frparam('id');
		$molds = $this->frparam('molds',1);
		if($id){
			$data = M($molds)->find(['id'=>$id]);
			if(M($molds)->delete(['id'=>$id])){
				$customurl = M('customurl')->find(['molds'=>$molds,'aid'=>$id]);
				M('customurl')->delete(['molds'=>$molds,'aid'=>$id]);
				$w['title'] = '['.$data['id'].']'.$data['title'];
				$w['molds'] = $molds;
				$w['data'] = serialize($data);
				$w['addtime'] = time();
				$r = M('recycle')->add($w);
				if($customurl){
					$w['molds'] = 'customurl';
                    $w['title'] = '['.$customurl['id'].']'.JZLANG('自定义链接');
					$w['data'] = serialize($customurl);
					$w['addtime'] = time();
					$w['aid'] = $r;
					M('recycle')->add($w);
				}
				JsonReturn(array('code'=>0,'msg'=>JZLANG('删除成功!')));
			}else{
				
				JsonReturn(array('code'=>1,'msg'=>JZLANG('删除失败!')));
			}
		}
	}
	
		//修改排序
	function editOrders(){

		$field = $this->frparam('field',1);
		$w[$field] = $this->frparam('value',1);
		$molds = $this->frparam('molds',1);
		$r = M($molds)->update(array('id'=>$this->frparam('id')),$w);
		if(!$r){
			JsonReturn(array('code'=>1,'info'=>JZLANG('修改失败!')));
		}
		JsonReturn(array('code'=>0,'info'=>JZLANG('修改成功!')));

	}
	//批量修改栏目
	function changeType(){
		$data = $this->frparam('data',1);
		$molds = $this->frparam('molds',1);
		$tid = $this->frparam('tid');
		if($data!=''){
			$list = M($molds)->findAll('id in('.$data.')');
			$r = true;
			foreach($list as $v){
				$w['tid'] = $tid;
				$type = M('classtype')->find(array('id'=>$tid));
				$w['htmlurl'] = $type['htmlurl'];
				M($molds)->update(array('id'=>$v['id']),$w);
				if($v['ownurl']){
					M('customurl')->update(['aid'=>$v['id'],'molds'=>$molds],['tid'=>$tid]);
				}
			}
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量修改成功!')));
		}
	}

    //批量修改推荐属性
    function changeAttribute(){
        $data = $this->frparam('data',1);
        $molds = $this->frparam('molds',1);
        $tj = $this->frparam('tj');
        if($data && $molds){
            $list = M($molds)->findAll('id in('.$data.')');

            foreach($list as $v){
                if(strpos($v['jzattr'],','.$tj.',')!==false){
                    $attr = str_replace(','.$tj.',','',$v['jzattr']);
                    if(!$attr){
                        $w['jzattr'] = '';
                    }else{
                        $w['jzattr'] = ','.trim($attr,',').',';
                    }
                }else{
                    if($v['jzattr']){
                        $w['jzattr'] = $v['jzattr'].$tj.',';
                    }else{
                        $w['jzattr'] = ','.$tj.',';
                    }
                }
                if(strpos($w['jzattr'],'1')!==false){
                    $w['istop'] = 1;
                }else{
                    $w['istop'] = 0;
                }
                if(strpos($w['jzattr'],'2')!==false){
                    $w['ishot'] = 1;
                }else{
                    $w['ishot'] = 0;
                }
                if(strpos($w['jzattr'],'3')!==false){
                    $w['istuijian'] = 1;
                }else{
                    $w['istuijian'] = 0;
                }
                M($molds)->update(array('id'=>$v['id']),$w);
            }
            JsonReturn(array('code'=>0,'msg'=>JZLANG('批量修改成功!')));
        }
    }

	//批量复制
	function copyAll(){
		$data = $this->frparam('data',1);
		$molds = $this->frparam('molds',1);
		if($data!=''){
			$list = M($molds)->findAll('id in('.$data.')');
			$r = true;
			foreach($list as $v){
				unset($v['id']);
				M($molds)->add($v);
			}
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量复制成功!')));
				
		}
	}

	//批量审核
	function checkAll(){
		$data = $this->frparam('data',1);
		$molds = $this->frparam('molds',1);
		if($data!=''){
			if($this->frparam('isshow')==1){
				$isshow = 1;
			}else if($this->frparam('isshow')==2){
				$isshow = 0;
			}else{
				$isshow = 2;
			}
			if($isshow==1){
				$all = M($molds)->findAll('id in('.$data.')');
				$award = round($this->webconf['release_award'],2);
				$max_award = round($this->webconf['release_max_award'],2);
				$start = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
				$end = mktime(23, 59, 59, date('m'), date('d'), date('Y'));

				foreach ($all as $k => $v) {
					if($v['isshow']!=1){
						//start
						if($this->webconf['release_award_open']==1){
							$member_id = $v['member_id'];
							if($member_id!=0 && $award>0){
								$rr = M('buylog')->find(['userid'=>$member_id,'type'=>3,'molds'=>$molds,'aid'=>$v['id'],'msg'=>JZLANG('发布奖励')]);
								if(!$rr){
									
									$sql = " addtime>=".$start." and addtime<".$end." and userid=".$member_id." and type=3 and msg='".JZLANG("发布奖励")."' ";
									$all = M('buylog')->findAll($sql,null,'amount');
									$all_jifen = 0;
									if($all){
										foreach($all as $vv){
											$all_jifen+=$vv['amount'];
										}
									}
									
									if($max_award==0 || ($all_jifen<$max_award && $max_award!=0)){
										$w['userid'] = $member_id;
			                			$w['buytype'] = 'jifen';
							   	  		$w['type'] = 3;
							   	  		$w['molds'] = $molds;
							   	  		$w['aid'] = $v['id'];
							   	  		$w['msg'] = JZLANG('发布奖励');
							   	  		$w['addtime'] = time();
							   	  		$w['orderno'] = 'No'.date('YmdHis');
							   	  		$w['amount'] = $award;
							   	  		$w['money'] = $w['amount']/($this->webconf['money_exchange']);
							   	  		$r = M('buylog')->add($w);
							   	  		M('member')->goInc(['id'=>$member_id],'jifen',$award);
									}
								}
								
							}
						}
						//end
					}
				}
				
			}
			M($molds)->update('id in('.$data.')',['isshow'=>$isshow]);
			JsonReturn(array('code'=>0,'msg'=>JZLANG('批量审核成功!')));
		}else{
			JsonReturn(array('code'=>1,'msg'=>JZLANG('批量审核失败!')));
		}
	}
}

================================================
FILE: app/admin/c/FieldsController.php
================================================
<?php

// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/01-2019/10
// +----------------------------------------------------------------------


namespace app\admin\c;


use frphp\extend\Page;

class FieldsController extends CommonController
{
	
	function index(){
		if($this->frparam('molds',1)==''){
			Error(JZLANG('请选择模块!'));
		}
		if($this->frparam('ajax')){

			$data = M('fields')->findAll(array('molds'=>$this->frparam('molds',1)),'orders desc');
			foreach($data as &$v){
				$v['isadmin'] = $v['isadmin']==1 ? JZLANG('显示') : JZLANG('隐藏');
				$v['isshow'] = $v['isshow']==1 ? JZLANG('显示') : JZLANG('隐藏');
				$v['ishome'] = $v['ishome']==1 ? JZLANG('显示') : JZLANG('隐藏');
				$v['islist'] = $v['islist']==1 ? JZLANG('显示') : JZLANG('隐藏');
				$v['issearch'] = $v['issearch']==1 ? JZLANG('显示') : JZLANG('隐藏');
				$v['ismust'] = $v['ismust']==1 ? JZLANG('是') : JZLANG('否');
				$v['isext'] = $v['isext']==1 ? JZLANG('是') : JZLANG('否');

				switch($v['fieldtype']){
					case 1:
					$v['fieldtypename'] = JZLANG('单行文本');
					break;
					case 2:
					$v['fieldtypename'] = JZLANG('多行文本');
					break;
					case 3:
					$v['fieldtypename'] = JZLANG('文本编辑器');
					break;
					case 4:
					$v['fieldtypename'] = JZLANG('数字');
					break;
					case 5:
					$v['fieldtypename'] = JZLANG('单图片');
					break;
					case 6:
					$v['fieldtypename'] = JZLANG('多图片');
					break;
					case 7:
					$v['fieldtypename'] = JZLANG('单选下拉');
					break;
					case 8:
					$v['fieldtypename'] = JZLANG('多选');
					break;
					case 9:
					$v['fieldtypename'] = JZLANG('单附件');
					break;
					case 10:
					$v['fieldtypename'] = JZLANG('多附件');
					break;
					case 11:
					$v['fieldtypename'] = JZLANG('时间戳');
					break;
					case 12:
					$v['fieldtypename'] = JZLANG('单选按钮');
					break;
					case 13:
					$v['fieldtypename'] = JZLANG('单选关联');
					break;
					case 14:
					$v['fieldtypename'] = JZLANG('小数');
					break;
					case 15:
					$v['fieldtypename'] = JZLANG('多行录入');
					break;
					case 16:
					$v['fieldtypename'] = JZLANG('多选关联');
					break;
                    case 17:
                    $v['fieldtypename'] = JZLANG('栏目');
                    break;
                    case 18:
                    $v['fieldtypename'] = JZLANG('副栏目');
                    break;
					case 19:
                    $v['fieldtypename'] = JZLANG('系统TAG');
                    break;
                    case 20:
                        $v['fieldtypename'] = JZLANG('绑定栏目单选');
                        break;
                    case 21:
                        $v['fieldtypename'] = JZLANG('绑定栏目多选');
                        break;
				}
				$v['edit_url'] = U('editFields',['id'=>$v['id']]);

			}
			JsonReturn(['code'=>0,'data'=>$data,'count'=>count($data)]);
			
			
		}
		$this->molds = M('Molds')->find(array('biaoshi'=>$this->frparam('molds',1)));
		
		$this->display('fields-list');
		
		
	}

	function addFields(){
		
		if($this->frparam('go',1)==1){
			
			$data['field'] = strtolower($this->frparam('field',1));
			$data['molds'] = strtolower($this->frparam('molds',1));
			$data['fieldname'] = $this->frparam('fieldname',1);
			$data['tips'] = $this->frparam('tips',1);
			$data['fieldtype'] = $this->frparam('fieldtype');
			$data['tids'] = $this->frparam('tids',1);
			$data['body'] = $this->frparam('body',1);
			$data['orders'] = $this->frparam('orders');
			$data['ismust'] = $this->frparam('ismust');
			$data['isshow'] = $this->frparam('isshow');
			$data['ishome'] = $this->frparam('ishome');
			$data['isadmin'] = $this->frparam('isadmin');
			$data['issearch'] = $this->frparam('issearch');
			$data['islist'] = $this->frparam('islist');
			$data['format'] = $this->frparam('format',1);
			$data['vdata'] = $this->frparam('vdata',1);
			$data['isajax'] = $this->frparam('isajax');
			$data['listorders'] = $this->frparam('listorders');
			$data['isext'] = $this->frparam('isext');
            $data['ldfield'] = $this->frparam('ldfield',1);
            $data['linkfield'] = $this->frparam('linkfield',1);
			if($data['fieldname']=='' || $data['field']==''){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('字段名和字段标识不能为空!')));
			}
			
			//检测是否存在该模块
			if(M('Fields')->find(array('field'=>$data['field'],'molds'=>$data['molds']))){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('字段标识已存在!')));
			}
			//取消保护字段,可以继续创建
			if(in_array($data['field'],['sql','jzcache','jzcachetime','table','orderby','limit','ispage','notin','in','empty','notempty','fields','like','day','as','file'])){
				JsonReturn(array('code'=>1,'msg'=>JZLANG('系统保护字段,不允许创建!')));
			}
			// $sql = "select count(*) as n from information_schema.columns where table_name = '".DB_PREFIX.$data['molds']."' and TABLE_SCHEMA='".DB_PREFIX.$data['molds']."' and column_name = '".$data['field']."'";
			// $check = M()->findSql($sql);
			// if($check[0]['n']){
				// JsonReturn(array('code'=>1,'msg'=>'字段标识已存在!'));
			// }
			
			$sql = 'SHOW COLUMNS FROM '.DB_PREFIX.$data['molds'];
			$list = M()->findSql($sql);
			$isgo = true;
			//不管存不存在,都可以创建
			foreach($list as $v){
				if($v['Field']==$data['field']){
					$isgo = false;
					//JsonReturn(array('code'=>1,'msg'=>'字段标识已存在!'));
				}
			}
			
			
			$data['tids'] = ($data['tids']!='')?(','.$data['tids'].','):$data['tids'];
			$sql = "ALTER TABLE ".DB_PREFIX.$data['molds']." ADD ".$data['field']." ";
			$data['fieldlong'] = $this->frparam('fieldlong_'.$data['fieldtype'],1);
            $data['remote'] = $this->frparam('field_remote_'.$data['fieldtype']);
			switch($data['fieldtype']){
				case 1:
				case 2:
				case 18:
				case 19:
				$sql .= "VARCHAR(".$data['fieldlong'].") default ";
				if($data['vdata'] || $data['vdata']==0){
					$sql .=  "'".$data['vdata']."'";
				}else{
					$sql .= ' NULL ';
				}
				break;
				case 3:
				case 15:
				case 6:
				case 10:
				$sql .= "TEXT  default ";
				$sql .= ' NULL ';
				
				break;
				case 4:
				case 17:
				if($data['fieldlong']>11 || $data['fieldlong']<=0){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
				}
				$sql .= "INT(".$data['fieldlong'].") DEFAULT ";
				if($data['vdata']){
					$sql .=  "'".$data['vdata']."'";
				}else{
					$sql .= " '0' NOT NULL ";
				}
				break;
				case 11:
				if($data['fieldlong']!=11){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对,时间属性必须长度为11')));
				}
				$sql .= "INT(".$data['fieldlong'].") DEFAULT ";
				if($data['vdata']){
					$sql .=  "'".$data['vdata']."'";
				}else{
					$sql .= " '0' NOT NULL ";
				}
				break;
				case 5:
				case 9:
				$sql .= "VARCHAR(".$data['fieldlong'].")  default ";
				if($data['vdata'] || $data['vdata']==0){
					$sql .=  "'".$data['vdata']."'";
				}else{
					$sql .= " NULL ";
				}
				break;
			
				case 7:
				case 8:
				case 12:
				$data['body'] = $this->frparam('body_'.$data['fieldtype'],1);
				$sql .= "VARCHAR(".$data['fieldlong'].")  default ";
				if($data['vdata'] || $data['vdata']==0){
					$sql .= "'".$data['vdata']."'";
				}else{
					$sql .= " NULL ";
				}
				break;
				case 13:
				if($data['fieldlong']>11 || $data['fieldlong']<=0){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
				}
				$sql .= "INT(".$data['fieldlong'].") DEFAULT ";
				if($data['vdata']){
					$sql .=  "'".$data['vdata']."'";
				}else{
					$sql .= " '0' NOT NULL ";
				}
				$data['body'] = $this->frparam('molds_select',1).','.$this->frparam('molds_list_field',1);
				break;
				case 14:
				if(strpos($data['fieldlong'],',')===false){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对,decimal字段长度格式[整数位数,小数位数]')));
				}
				$sql .= "DECIMAL(".$data['fieldlong'].") DEFAULT ";
				if($data['vdata']){
					$sql .=  "'".$data['vdata']."'";
				}else{
					$sql .= " '".$this->frparam('body_14',1)."' NOT NULL ";
				}
				break;
				case 16:
				$sql .= "VARCHAR(".$data['fieldlong'].") DEFAULT ";
				if($data['vdata'] || $data['vdata']==0){
					$sql .=  "'".$data['vdata']."'";
				}else{
					$sql .= " NULL ";
				}
				$data['body'] = $this->frparam('molds_select_muti',1).','.$this->frparam('molds_list_field_muti',1);
				break;
                case 20:
                    $sql .= "VARCHAR(".$data['fieldlong'].") DEFAULT ";
                    if($data['vdata'] || $data['vdata']==0){
                        $sql .=  "'".$data['vdata']."'";
                    }else{
                        $sql .= " NULL ";
                    }
                    $data['body'] = $this->frparam('molds_select_tid_muti',1).','.$this->frparam('molds_list_field_tid_muti',1);
                    break;
                case 21:
                    if($data['fieldlong']>11 || $data['fieldlong']<=0){
                        JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
                    }
                    $sql .= "INT(".$data['fieldlong'].") DEFAULT ";
                    if($data['vdata']){
                        $sql .=  "'".$data['vdata']."'";
                    }else{
                        $sql .= " '0' NOT NULL ";
                    }
                    $data['body'] = $this->frparam('molds_select_tid',1).','.$this->frparam('molds_list_field_tid',1);
                    break;
				
			}
			//由于已经存在,所以不需要再执行一遍SQL
			if($isgo){
				$x = M()->runSql($sql);
			}
			
			
			$n = M('Fields')->add($data);
			if(!$n){
				//新增字段记录失败,删除新增字段--不需要删除
				//$delsql = "ALTER TABLE ".DB_PREFIX.$data['molds']." DROP COLUMN ".$data['field'];
				//M()->runSql($delsql);
				JsonReturn(array('code'=>1,'msg'=>JZLANG('字段创建成功,但是字段表记录失败,请反馈官方解决!')));
			}
			JsonReturn(array('code'=>0,'msg'=>JZLANG('字段创建成功!')));
			
			
		}
		
		
		$this->classtypes = $this->classtypetree;
		$this->molds = $this->frparam('molds',1);
		$this->display('fields-add');
	}
	
	function editFields(){
		
		if($this->frparam('go',1)==1){

			if($this->frparam('id')){
				$data['field'] = strtolower($this->frparam('field',1));
				$data['molds'] = strtolower($this->frparam('molds',1));
				$data['fieldname'] = $this->frparam('fieldname',1);
				$data['tips'] = $this->frparam('tips',1);
				$data['fieldtype'] = $this->frparam('fieldtype');
				$data['tids'] = $this->frparam('tids',1);
				$data['body'] = $this->frparam('body',1);
				$data['orders'] = $this->frparam('orders');
				$data['ismust'] = $this->frparam('ismust');
				$data['isshow'] = $this->frparam('isshow');
				$data['ishome'] = $this->frparam('ishome');
				$data['isadmin'] = $this->frparam('isadmin');
				$data['issearch'] = $this->frparam('issearch');
				$data['islist'] = $this->frparam('islist');
				$data['format'] = $this->frparam('format',1);
				$data['vdata'] = $this->frparam('vdata',1);
				$data['isajax'] = $this->frparam('isajax');
				$data['listorders'] = $this->frparam('listorders');
				$data['isext'] = $this->frparam('isext');
                $data['ldfield'] = $this->frparam('ldfield',1);
                $data['linkfield'] = $this->frparam('linkfield',1);
				if($data['fieldname']=='' || $data['field']==''){
					JsonReturn(array('code'=>1,'msg'=>JZLANG('字段名和字段标识不能为空!')));
				}
				
				$data['tids'] = ($data['tids']!='')?(','.$data['tids'].','):$data['tids'];
				$old = M('Fields')->find(array('id'=>$this->frparam('id')));
				$data['fieldlong'] = $this->frparam('fieldlong_'.$data['fieldtype'],1);
                $data['remote'] = $this->frparam('field_remote_'.$data['fieldtype']);
				//只是更改样式,不更改字段属性
				if($old['field']==$data['field']){
					
					//判断长度是否不同
					if($data['fieldlong']!=$old['fieldlong'] || $data['vdata']!=$old['vdata']){
						$sql =  "ALTER TABLE ".DB_PREFIX.$old['molds']." modify column ".$old['field']."  ";
						switch($data['fieldtype']){
							case 1:
							case 2:
							case 5:
							case 7:
							case 8:
							case 9:
							case 12:
							case 16:
							case 18:
							case 19:
							case 20:
							$sql.=" varchar(".$data['fieldlong'].") default";
							if($data['vdata'] || $data['vdata']==0){
								$sql .=  "'".$data['vdata']."'";
							}else{
								$sql .= ' NULL ';
							}
							break;
							case 3:
							case 15:
							case 6:
							case 10:
							$sql .= "TEXT  default ";
							$sql .= ' NULL ';
							break;
							case 4:
							case 11:
							case 13:
							case 17:
							case 21:
							$sql.=" int(".$data['fieldlong'].") default ";
							if($data['vdata']){
								$sql .=  "'".$data['vdata']."'";
							}else{
								$sql .= ' 0 ';
							}
							break;
							case 14:
							$sql.=" decimal(".$data['fieldlong'].") default ";
							if($data['vdata']){
								$sql .=  "'".$data['vdata']."'";
							}else{
								$sql .= " '".$this->frparam('body_14',1)."' NOT NULL ";
							}
							break;
							
						}
						$x = M()->runSql($sql);
						
					}
					if($data['fieldtype']==7 || $data['fieldtype']==8 || $data['fieldtype']==12 || $data['fieldtype']==14){
                    	$data['body'] = $this->frparam('body_'.$data['fieldtype'],1);
                    }
					if($data['fieldtype']==13){
						$data['body'] = $this->frparam('molds_select',1).','.$this->frparam('molds_list_field',1);
					}
					if($data['fieldtype']==16){
						$data['body'] = $this->frparam('molds_select_muti',1).','.$this->frparam('molds_list_field_muti',1);
					}
                    if($data['fieldtype']==20){
                        $data['body'] = $this->frparam('molds_select_tid_muti',1).','.$this->frparam('molds_list_field_tid_muti',1);
                    }
                    if($data['fieldtype']==21){
                        $data['body'] = $this->frparam('molds_select_tid',1).','.$this->frparam('molds_list_field_tid',1);
                    }
					if(M('Fields')->update(array('id'=>$this->frparam('id')),$data)){
						JsonReturn(array('code'=>0,'msg'=>JZLANG('字段修改成功!')));
					}else{
						JsonReturn(array('code'=>1,'msg'=>JZLANG('字段修改失败!')));
					}
					
				}else{
					if(in_array($data['field'],['id','sql','jzcache','jzcachetime','table','orderby','limit','ispage','notin','in','empty','notempty','fields','like','tids','day','as','istop','istuijian','ishot','isall','file'])){
						JsonReturn(array('code'=>1,'msg'=>JZLANG('系统保护字段,不允许创建!')));
					}
				}
				
				$sql = "ALTER TABLE ".DB_PREFIX.$old['molds']." change ".$old['field']." ".$data['field']." ";
				
				switch($data['fieldtype']){
					case 1:
					case 2:
                    case 5:
                    case 9:
                    case 18:
                    case 19:

					$sql .= "VARCHAR(".$data['fieldlong'].") default ";
					if($data['vdata'] || $data['vdata']==0){
						$sql .=  "'".$data['vdata']."'";
					}else{
						$sql .= ' NULL ';
					}
					break;
					case 3:
					case 15:
					case 6:
					case 10:
					$sql .= "TEXT  default ";
					$sql .= ' NULL ';
					
					break;
					case 4:
					case 17:
					if($data['fieldlong']>11 || $data['fieldlong']<=0){
						JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
					}
					$sql .= "INT(".$data['fieldlong'].") DEFAULT ";
					if($data['vdata']){
						$sql .=  "'".$data['vdata']."'";
					}else{
						$sql .= " '0' NOT NULL ";
					}
					break;
					case 11:
					if($data['fieldlong']!=11){
						JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对,时间属性必须长度为11')));
					}
					$sql .= "INT(".$data['fieldlong'].") DEFAULT ";
					if($data['vdata']){
						$sql .=  "'".$data['vdata']."'";
					}else{
						$sql .= " '0' NOT NULL ";
					}
					break;
					case 14:
					if(strpos($data['fieldlong'],',')===false){
						JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对,decimal字段长度格式[整数位数,小数位数]')));
					}
					$sql .= "DECIMAL(".$data['fieldlong'].") DEFAULT ";
					if($data['vdata']){
						$sql .=  "'".$data['vdata']."'";
					}else{
						$sql .= " '".$this->frparam('body_14',1)."' NOT NULL ";
					}
					break;

					
					case 7:
					case 8:
					case 12:
					$sql .= "VARCHAR(".$data['fieldlong'].")  default ";
					if($data['vdata'] || $data['vdata']==0){
						$sql .=  "'".$data['vdata']."'";
					}else{
						$sql .= ' NULL ';
					}
					$data['body'] = $this->frparam('body_'.$data['fieldtype'],1);
					break;
					case 13:
					if($data['fieldlong']>11 || $data['fieldlong']<=0){
						
						JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
					}
					$sql .= "INT(".$data['fieldlong'].") DEFAULT ";
					if($data['vdata']){
						$sql .=  "'".$data['vdata']."'";
					}else{
						$sql .= " '0' NOT NULL ";
					}
					$data['body'] = $this->frparam('molds_select',1).','.$this->frparam('molds_list_field',1);
					break;
                    case 16:
                        if($data['fieldlong']>11 || $data['fieldlong']<=0){

                            JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
                        }
                        $sql .= "VARCHAR(".$data['fieldlong'].")  default ";
                        if($data['vdata'] || $data['vdata']==0){
                            $sql .=  "'".$data['vdata']."'";
                        }else{
                            $sql .= ' NULL ';
                        }
                        $data['body'] = $this->frparam('molds_select_muti',1).','.$this->frparam('molds_list_field_muti',1);
                        break;
                    case 21:
                        if($data['fieldlong']>11 || $data['fieldlong']<=0){

                            JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
                        }
                        $sql .= "INT(".$data['fieldlong'].") DEFAULT ";
                        if($data['vdata']){
                            $sql .=  "'".$data['vdata']."'";
                        }else{
                            $sql .= " '0' NOT NULL ";
                        }
                        $data['body'] = $this->frparam('molds_select_tid',1).','.$this->frparam('molds_list_field_tid',1);
                        break;
                    case 20:
                        if($data['fieldlong']>11 || $data['fieldlong']<=0){

                            JsonReturn(array('code'=>1,'msg'=>JZLANG('字段长度不对!')));
                        }
                        $sql .= "VARCHAR(".$data['fieldlong'].")  default ";
                        if($data['vdata'] || $data['vdata']==0){
                            $sql .=  "'".$data['vdata']."'";
                        }else{
                            $sql .= ' NULL ';
                        }
                        $data['body'] = $this->frparam('molds_select_tid_muti',1).','.$this->frparam('molds_list_field_tid_muti',1);
                        break;
					
				}
				$x = M()->runSql($sql);
				
				if(M('Fields')->update(array('id'=>$this->frparam('id')),$data)){
					JsonReturn(array('code'=>0,'msg'=>JZLANG('字段修改成功!')));
					exit;
				}else{
					JsonReturn(array('code'=>1,'msg'=>JZLANG('字段修改失败!')));
					exit;
				}
			}
			
			
			
		}
		if($this->frparam('id')){
			$this->data = M('Fields')->find(array('id'=>$this->frparam('id')));
		}
		
		$this->classtypes = $this->classtypetree;
		$this->display('fields-edit');
		
	}
    
    function get_fields(){
        $tid = $this->frparam('tid',0,0);
        $isext = $this->frparam('isext',0,0);
        $sql = array();
        $molds = strtolower($this->frparam('molds',5));
        $moldsdata = M('molds')->find(['biaoshi'=>$molds]);
        if($tid  && !in_array($molds,['orders','level','level_group','tags','attr','chain','collect','collect_type','links','link_type','pictures','comment'])){
            $sql[] = " (tids like '%,".$tid.",%' or tids is null) ";
        }
        $id = $this->frparam('id');
        if($id){
            $data = M($molds)->find(array('id'=>$id));
        }else{
            $data = array();
        }
        $sql[] = " isext=".$isext;
        $sql[] = " molds = '".$molds."' and isadmin=1 ";
        $sql = implode(' and ',$sql);
        $fields_list = M('Fields')->findAll($sql,'orders desc,id asc');
        $l = '';
        $isagree = 0;
        if($this->admin['isadmin']==1 || ($this->admin['isadmin']!=1 && $this->admin['ischeck']==0)){
            $isagree = 1;
        }
        foreach($fields_list as $k=>$v){
            if(($v['field']=='isshow' && $isagree==0) || $v['field']=='tid' || $v['field']=='id'){
                continue;
            }
            if(!array_key_exists($v['field'],$data)){
                //使用默认值
                $data[$v['field']] = $v['vdata'];
            }
            switch($v['fieldtype']){
                case 1:
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
                    <div class="layui-input-inline">
                        <input type="text" id="'.$v['field'].'" value="'.$data[$v['field']].'" name="'.$v['field'].'" ';
                    if($v['ismust']==1){
                        $l.=' required="" lay-verify="required" ';
                    }
                    $l .=  'autocomplete="off" class="layui-input">
                    </div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>';
                    break;
                case 2:
                    $l .= '<div class="layui-form-item  layui-form-text">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
                    <div class="layui-input-block">
                        <textarea  class="layui-textarea" id="'.$v['field'].'"  name="'.$v['field'].'" ';
                    if($v['ismust']==1){
                        $l.=' required="" lay-verify="required" ';
                    }
                    $l .=  '>'.$data[$v['field']].'</textarea>
                    </div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>';
                    break;
                case 3:
                    $l .= include(APP_PATH.APP_HOME.'/'.HOME_VIEW.'/'.Tpl_template.'/common/uediter.php');
                    break;
                case 4:
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
                    <div class="layui-input-inline">
                        <input type="number" id="'.$v['field'].'" value="'.$data[$v['field']].'" name="'.$v['field'].'" ';
                    if($v['ismust']==1){
                        $l.=' required="" lay-verify="required" ';
                    }
                    $l .=  'autocomplete="off" class="layui-input">
                    </div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>';
                    break;
                
                
                case 5:
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
					
					
					<div class="layui-input-inline">
						<input name="'.$v['field'].'" placeholder="'.JZLANG('上传图片').'" type="text" class="layui-input" id="'.$v['field'].'" ';
                    if($v['ismust']==1){
                        $l.=' required="" lay-verify="required" ';
                    }
                    $l.=' value="'.$data[$v['field']].'" />
                            <div class="layui-progress" id="'.$v['field'].'_propress" style="display:none;" lay-filter="'.$v['field'].'_propress" lay-showPercent="yes">
                          <div class="layui-progress-bar layui-bg-green" lay-percent="0%"></div>
                        </div>
					</div>
					<div class="layui-input-inline">
						<button class="layui-btn layui-btn-primary" id="LAY_'.$v['field'].'_upload" type="button" >'.JZLANG('选择图片').'</button>
					</div>
					<div class="layui-input-inline">
						<button class="layui-btn layui-btn-warm" id="LAY_'.$v['field'].'_gallery" type="button" >'.JZLANG('图库').'</button>
					</div>
					<div class="layui-input-inline">
						<img id="'.$v['field'].'_img" class="img-responsive img-thumbnail" style="max-width: 200px;" src="'.$data[$v['field']].'" onerror="javascipt:this.src=\''.Tpl_style.'/style/images/nopic.jpg\'; this.title=\''.JZLANG('图片未找到').'\';this.onerror=\'\'">
						<button type="button" onclick="deleteImage_auto(this,\''.$v['field'].'\')" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-danger " title="'.JZLANG('删除这张图片').'" >'.JZLANG('删除').'</button>
					</div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>
				<script>
				
				layui.use(["upload","layer","element"], function(){
					  var upload_'.$v['field'].' = layui.upload;
					  var layer = layui.layer;
					  var element = layui.element;
					  
					  //执行实例
					  var uploadInst = upload_'.$v['field'].'.render({
						elem: "#LAY_'.$v['field'].'_upload" //绑定元素
						,url: "'.U('Common/uploads').'" //上传接口
						,data:{tid:function(){ return $("#tid").val();},molds:"'.$molds.'"}
						,accept:"images"
						,acceptMime:"image/*"
						,before:function(){
						    $("#'.$v['field'].'_propress").show();
						}
						,done: function(res){
						 
							if(res.code==0){
								 $("#'.$v['field'].'_img").attr("src",res.url);
								 $("#'.$v['field'].'").val(res.url);
								 setTimeout(function() {
								 $("#'.$v['field'].'_propress").hide();
								 },2000)
							}else{
								 layer.alert(res.error, {icon: 5});
							}
						}
						,progress: function(n, elem, res, index){
                            var percent = n + "%" //获取进度百分比
                            element.progress("'.$v['field'].'_propress", percent);
                          }
						,error: function(){
						  //请求异常回调
						  layer.alert("'.JZLANG('上传异常!').'");
						}
					  });
					  
					  //图库按钮点击事件
					  $("#LAY_'.$v['field'].'_gallery").on("click", function(){
						  var galleryLayer = layer.open({
							  type: 1,
							  title: "'.JZLANG('选择图片').'",
							  area: ["80%", "80%"],
							  content: `<div class="gallery-container" style="padding: 15px;">
								  <div class="gallery-header" style="margin-bottom: 15px;">
									  <div class="layui-btn-group">
										  <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_prev_'.$v['field'].'">'.JZLANG('上一页').'</button>
										  <button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_next_'.$v['field'].'">'.JZLANG('下一页').'</button>
									  </div>
									  <span id="gallery_page_info_'.$v['field'].'" style="margin-left: 15px;"></span>
								  </div>
								  <div id="gallery_list_'.$v['field'].'" class="gallery-list" style="min-height: 400px; display: flex; flex-wrap: wrap; gap: 10px;"></div>
								  <div class="gallery-footer" style="margin-top: 15px; text-align: center;">
									  <button type="button" class="layui-btn" id="gallery_confirm_'.$v['field'].'">'.JZLANG('确定').'</button>
									  <button type="button" class="layui-btn layui-btn-primary" onclick="layer.closeAll();">'.JZLANG('取消').'</button>
								  </div>
							  </div>`,
							  success: function(layero, index){
								  var currentPage = 1;
								  var pageSize = 12;
								  var selectedImages = [];
								  var totalCount = 0;
								  
								  //加载图片列表
								  function loadGallery(page){
									  $.ajax({
										  url: "'.U('Sys/pictures').'",
										  type: "GET",
										  data: {ajax:1, page: page, pageSize: pageSize},
										  dataType: "json",
										  success: function(res){
											  if(res.code == 0){
												  var html = "";
												  if(res.data.length > 0){
													  $.each(res.data, function(i, item){
														  var ext = item.filetype.split('.').pop().toLowerCase();
														  var imageExts = ["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"];
														  var isImage = imageExts.includes(ext);
														  var contentHtml = "";
														  if(isImage){
															  contentHtml = `<img src="${item.litpic}" style="width: 100%; height: 100%; object-fit: cover;">`;
														  }else{
															  contentHtml = `<div style="width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f5f5f5; padding: 10px;">
																  <i class="layui-icon" style="font-size: 40px; color: #999;">&#xe61e;</i>
																  <span style="font-size: 12px; color: #666; margin-top: 8px; word-break: break-all; text-align: center;">${item.fileName}</span>
															  </div>`;
														  }
														  
														  html += `<div class="gallery-item" data-id="`+item.id+`" data-url="`+item.litpic+`" style="width: 140px; height: 140px; border: 2px solid #e6e6e6; border-radius: 4px; cursor: pointer; position: relative; overflow: hidden;">
															  `+contentHtml+`
															  <div class="gallery-item-info" style="position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.6); color: #fff; padding: 5px; font-size: 12px; display: none;">
																  ${item.fileName}<br>${item.size}kb
															  </div>
															  <div class="gallery-item-check" style="position: absolute; top: 5px; right: 5px; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #fff; background: rgba(0,0,0,0.5); display: none;">
																  <i class="layui-icon" style="color: #fff; font-size: 14px; line-height: 16px;">&#xe605;</i>
															  </div>
														  </div>`;
													  });
													  $("#gallery_list_'.$v['field'].'").html(html);
													  totalCount = res.count;
													  var totalPages = Math.ceil(totalCount / pageSize);
													  $("#gallery_page_info_'.$v['field'].'").text("第"+page+"页 / 共"+totalPages+"页");
													  
													  //图片悬停事件
													  $(".gallery-item").hover(
														  function(){
															  $(this).find(".gallery-item-info").show();
														  },
														  function(){
															  $(this).find(".gallery-item-info").hide();
														  }
													  );
													  
													  //图片点击事件
													  $(".gallery-item").on("click", function(){
														  var url = $(this).data("url");
														  var id = $(this).data("id");
														  var index = selectedImages.indexOf(url);
														  
														  if(index > -1){
															  selectedImages.splice(index, 1);
															  $(this).css("border-color", "#e6e6e6");
															  $(this).find(".gallery-item-check").hide();
														  }else{
															  selectedImages.push(url);
															  $(this).css("border-color", "#1E9FFF");
															  $(this).find(".gallery-item-check").show();
														  }
													  });
													  
													  //恢复已选中的图片
													  $(".gallery-item").each(function(){
														  var url = $(this).data("url");
														  if(selectedImages.indexOf(url) > -1){
															  $(this).css("border-color", "#1E9FFF");
															  $(this).find(".gallery-item-check").show();
														  }
													  });
												  }else{
													  $("#gallery_list_'.$v['field'].'").html(\'<div style="width: 100%; text-align: center; padding: 50px; color: #999;">'.JZLANG('暂无图片').'</div>\');
													  }
											  }else{
												  layer.alert(res.msg || "'.JZLANG('加载失败').'", {icon: 5});
											  }
										  },
										  error: function(){
											  layer.alert("'.JZLANG('请求失败').'", {icon: 5});
										  }
									  });
								  }
								  
								  //上一页
								  $("#gallery_prev_'.$v['field'].'").on("click", function(){
									  if(currentPage > 1){
										  currentPage--;
										  loadGallery(currentPage);
									  }
								  });
								  
								  //下一页
								  $("#gallery_next_'.$v['field'].'").on("click", function(){
									  var totalPages = Math.ceil(totalCount / pageSize);
									  if(currentPage < totalPages){
										  currentPage++;
										  loadGallery(currentPage);
									  }
								  });
								  
								  //确定按钮
								  $("#gallery_confirm_'.$v['field'].'").on("click", function(){
									  if(selectedImages.length > 0){
										  $("#'.$v['field'].'").val(selectedImages.join(","));
										  $("#'.$v['field'].'_img").attr("src", selectedImages[0]);
										  layer.close(index);
									  }else{
										  layer.msg("'.JZLANG('请至少选择一张图片').'", {icon: 0});
									  }
								  });
								  
								  //初始加载
								  loadGallery(currentPage);
							  }
						  });
					  });
					});
			
				
				</script>';
                    break;
                case 6:
                    //------
                    $l .= '<fieldset class="layui-elem-field">
				  <legend>'.$v['fieldname'].'</legend>
				  <div class="layui-field-box">
					  <div class="layui-input-block">
						  <div class="site-demo-upbar">
						<button type="button" class="layui-btn" id="LAY_'.$v['field'].'_upload">
						  <i class="layui-icon">&#xe67c;</i>'.JZLANG('上传图片').'
						</button>
						<button class="layui-btn layui-btn-warm" id="LAY_'.$v['field'].'_gallery" type="button" >'.JZLANG('图库').'</button>
						 '.$v['tips'].'
					  </div>
						 
					  </div>
					 
					  <div class="layui-input-block">
					  <span class="preview_'.$v['field'].'" >';
                    if($data[$v['field']]!=''){
                        foreach(explode('||',$data[$v['field']]) as $vv){
                            $pic = explode('|',$vv);
                            $l.='<div class="upload-icon-img layui-input-inline" ><div class="upload-pre-item"><img src="'.$pic[0].'" class="img" width="200px" height="200px" ><input name="'.$v['field'].'_urls[]" type="text" class="layui-input"  value="'.$pic[0].'" /><input name="'.$v['field'].'_des[]" type="text" class="layui-input" placeholder="'.JZLANG('文字描述').'"  value="'.$pic[1].'" /><a class="layui-btn layui-btn-sm layui-btn-radius layui-btn-danger delete_file">'.JZLANG('删除').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goleft(this)">'.JZLANG('左移').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goright(this)">'.JZLANG('右移').'</a></div></div>';
                            
                        }
                    }
                    $l .= '</span>
					  </div>
					  <div class="layui-progress" id="'.$v['field'].'_propress" style="display:none;" lay-filter="'.$v['field'].'_propress" lay-showPercent="yes">
                          <div class="layui-progress-bar layui-bg-green" lay-percent="0%"></div>
                        </div>
				  </div>
				</fieldset>
				<script>
				
				layui.use("upload", function(){
					  var upload_'.$v['field'].' = layui.upload;
					  
					  //执行实例
					  var uploadInst = upload_'.$v['field'].'.render({
						elem: "#LAY_'.$v['field'].'_upload" //绑定元素
						,url: "'.U('Common/uploads').'" //上传接口
						,data:{tid:function(){ return $("#tid").val();},molds:"'.$molds.'"}
						,accept:"images"
						,multiple: true
						,acceptMime:"image/*"
						,before:function(){
						    $("#'.$v['field'].'_propress").show();
						}
						,done: function(res){
							layer.closeAll("loading"); //关闭loading
							if(res.code==0){
                                $(".preview_'.$v['field'].'").append(\'<div class="upload-icon-img layui-input-inline" ><div class="upload-pre-item"><img src="\' + res.url + \'" class="img" width="200px" height="200px" ><input name="'.$v['field'].'_urls[]" type="text" class="layui-input"  value="\' + res.url + \'" /><input name="'.$v['field'].'_des[]" type="text" class="layui-input"  placeholder="'.JZLANG('文字描述').'" value="" /><a class="layui-btn layui-btn-sm layui-btn-radius layui-btn-danger delete_file">'.JZLANG('删除').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goleft(this)">'.JZLANG('左移').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goright(this)">'.JZLANG('右移').'</a></div></div>\');
                                setTimeout(function() {
								 $("#'.$v['field'].'_propress").hide();
								 },2000)
								
							}else{
								 layer.alert(res.error, {icon: 5});
							}
						}
                        ,progress: function(n, elem, res, index){
                            var percent = n + "%" //获取进度百分比
                            element.progress("'.$v['field'].'_propress", percent);
                          }
						,error: function(){
						  //请求异常回调
						  layer.alert("'.JZLANG('上传异常!').'");
						}
					  });
					  
						//图库按钮点击事件
						$("#LAY_'.$v['field'].'_gallery").on("click", function(){
							var galleryLayer = layer.open({
								type: 1,
								title: "'.JZLANG('选择图片').'",
								area: ["80%", "80%"],
								content: `<div class="gallery-container" style="padding: 15px;">
									<div class="gallery-header" style="margin-bottom: 15px;">
										<div class="layui-btn-group">
											<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_prev_'.$v['field'].'">'.JZLANG('上一页').'</button>
											<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_next_'.$v['field'].'">'.JZLANG('下一页').'</button>
										</div>
										<span id="gallery_page_info_'.$v['field'].'" style="margin-left: 15px;"></span>
									</div>
									<div id="gallery_list_'.$v['field'].'" class="gallery-list" style="min-height: 400px; display: flex; flex-wrap: wrap; gap: 10px;"></div>
									<div class="gallery-footer" style="margin-top: 15px; text-align: center;">
										<button type="button" class="layui-btn" id="gallery_confirm_'.$v['field'].'">'.JZLANG('确定').'</button>
										<button type="button" class="layui-btn layui-btn-primary" onclick="layer.closeAll();">'.JZLANG('取消').'</button>
									</div>
								</div>`,
								success: function(layero, index){
									var currentPage = 1;
									var pageSize = 12;
									var selectedImages = [];
									var totalCount = 0;
									
									//加载图片列表
									function loadGallery(page){
										$.ajax({
											url: "'.U('Sys/pictures').'",
											type: "GET",
											data: {ajax:1, page: page, pageSize: pageSize},
											dataType: "json",
											success: function(res){
												if(res.code == 0){
													var html = "";
													if(res.data.length > 0){
														$.each(res.data, function(i, item){
															var ext = item.filetype.split('.').pop().toLowerCase();
															var imageExts = ["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"];
															var isImage = imageExts.includes(ext);
															var contentHtml = "";
															if(isImage){
																contentHtml = `<img src="${item.litpic}" style="width: 100%; height: 100%; object-fit: cover;">`;
															}else{
																contentHtml = `<div style="width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f5f5f5; padding: 10px;">
																	<i class="layui-icon" style="font-size: 40px; color: #999;">&#xe61e;</i>
																	<span style="font-size: 12px; color: #666; margin-top: 8px; word-break: break-all; text-align: center;">${item.fileName}</span>
																</div>`;
															}
															
															html += `<div class="gallery-item" data-id="`+item.id+`" data-url="`+item.litpic+`" style="width: 140px; height: 140px; border: 2px solid #e6e6e6; border-radius: 4px; cursor: pointer; position: relative; overflow: hidden;">
																`+contentHtml+`
																<div class="gallery-item-info" style="position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.6); color: #fff; padding: 5px; font-size: 12px; display: none;">
																	${item.fileName}<br>${item.size}kb
																</div>
																<div class="gallery-item-check" style="position: absolute; top: 5px; right: 5px; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #fff; background: rgba(0,0,0,0.5); display: none;">
																	<i class="layui-icon" style="color: #fff; font-size: 14px; line-height: 16px;">&#xe605;</i>
																</div>
															</div>`;
														});
														$("#gallery_list_'.$v['field'].'").html(html);
														totalCount = res.count;
														var totalPages = Math.ceil(totalCount / pageSize);
														$("#gallery_page_info_'.$v['field'].'").text("第"+page+"页 / 共"+totalPages+"页");
														
														//图片悬停事件
														$(".gallery-item").hover(
															function(){
																$(this).find(".gallery-item-info").show();
															},
															function(){
																$(this).find(".gallery-item-info").hide();
															}
														);
														
														//图片点击事件
														$(".gallery-item").on("click", function(){
															var url = $(this).data("url");
															var id = $(this).data("id");
															var index = selectedImages.indexOf(url);
															
															if(index > -1){
																selectedImages.splice(index, 1);
																$(this).css("border-color", "#e6e6e6");
																$(this).find(".gallery-item-check").hide();
															}else{
																selectedImages.push(url);
																$(this).css("border-color", "#1E9FFF");
																$(this).find(".gallery-item-check").show();
															}
														});
														
														//恢复已选中的图片
														$(".gallery-item").each(function(){
															var url = $(this).data("url");
															if(selectedImages.indexOf(url) > -1){
																$(this).css("border-color", "#1E9FFF");
																$(this).find(".gallery-item-check").show();
															}
														});
													}else{
														$("#gallery_list_'.$v['field'].'").html(\'<div style="width: 100%; text-align: center; padding: 50px; color: #999;">'.JZLANG('暂无图片').'</div>\');
														}
												}else{
													layer.alert(res.msg || "'.JZLANG('加载失败').'", {icon: 5});
												}
											},
											error: function(){
												layer.alert("'.JZLANG('请求失败').'", {icon: 5});
											}
										});
									}
									
									//上一页
									$("#gallery_prev_'.$v['field'].'").on("click", function(){
										if(currentPage > 1){
											currentPage--;
											loadGallery(currentPage);
										}
									});
									
									//下一页
									$("#gallery_next_'.$v['field'].'").on("click", function(){
										var totalPages = Math.ceil(totalCount / pageSize);
										if(currentPage < totalPages){
											currentPage++;
											loadGallery(currentPage);
										}
									});
									
									//确定按钮
									$("#gallery_confirm_'.$v['field'].'").on("click", function(){
										if(selectedImages.length > 0){
											// 将选中的图片添加到预览区域
											for(var i = 0; i < selectedImages.length; i++){
												var imgHtml = `<div class="upload-icon-img layui-input-inline" ><div class="upload-pre-item"><img src="` + selectedImages[i] + `" class="img" width="200px" height="200px" ><input name="'.$v['field'].'_urls[]" type="text" class="layui-input"  value="` + selectedImages[i] + `" /><input name="'.$v['field'].'_des[]" type="text" class="layui-input" placeholder="'.JZLANG('文字描述').'"  value="" /><a class="layui-btn layui-btn-sm layui-btn-radius layui-btn-danger delete_file">'.JZLANG('删除').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goleft(this)">'.JZLANG('左移').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goright(this)">'.JZLANG('右移').'</a></div></div>`;
												$(".preview_'.$v['field'].'").append(imgHtml);
											}
											layer.close(index);
										}else{
											layer.msg("'.JZLANG('请至少选择一张图片').'", {icon: 0});
										}
									});
									
									//初始加载
									loadGallery(currentPage);
								}
							});
						});
				
					});
				</script>';
                    break;
                case 7:
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
                    <div class="layui-input-inline">
						<select name="'.$v['field'].'" lay-search="" id="'.$v['field'].'" ><option value="">'.JZLANG('请选择').'</option>';
                    foreach(explode(',',$v['body']) as $vv){
                        $s=explode('=',$vv);
                        $l.='<option value="'.$s[1].'" ';
                        if($data[$v['field']]==$s[1]){
                            $l.='selected="selected"';
                        }
                        $l.='>'.$s[0].'</option>';
                    }
                    $l.=  '</select>
                    </div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>
				<script>
							layui.use("form", function () {
								var form_'.$v['field'].' = layui.form;
								form_'.$v['field'].'.render();
							});
							
						</script>';
                    break;
                case 8:
                    $l .= '<div class="layui-form-item">
						<label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
						</label>
						<div class="layui-input-block">';
                    foreach(explode(',',$v['body']) as $vv){
                        $s=explode('=',$vv);
                        $l.='<input type="checkbox" title="'.$s[0].'" name="'.$v['field'].'[]" value="'.$s[1].'" ';
                        if(strpos($data[$v['field']],','.$s[1].',')!==false){
                            $l.='checked="checked"';};
                        $l.='>';
                    }
                    $l 	.= '</div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>
					  <script>
							layui.use("form", function () {
								var form_'.$v['field'].' = layui.form;
								form_'.$v['field'].'.render();
							});
							
						</script>';
                    
                    break;
                case 9:
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
					
                    <div class="layui-input-inline">
                      <div class="site-demo-upbar">
                      
					  <input name="'.$v['field'].'" type="text" class="layui-input" id="'.$v['field'].'" ';
                    if($v['ismust']==1){
                        $l.=' required="" lay-verify="required" ';
                    }
                    $l  .=	'value="'.$data[$v['field']].'" />
				<div class="layui-progress" id="'.$v['field'].'_propress" style="display:none;" lay-filter="'.$v['field'].'_propress" lay-showPercent="yes">
                          <div class="layui-progress-bar layui-bg-green" lay-percent="0%"></div>
                        </div>
						<button type="button" class="layui-btn" id="LAY_'.$v['field'].'_upload">
						  <i class="layui-icon">&#xe67c;</i>上传附件
						</button>
						<button class="layui-btn layui-btn-warm" id="LAY_'.$v['field'].'_gallery" type="button" >'.JZLANG('图库').'</button>

					  
                      </div>
                    </div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>
				<script>
				
				layui.use("upload", function(){
					  var upload_'.$v['field'].' = layui.upload;
					  
					  //执行实例
					  var uploadInst = upload_'.$v['field'].'.render({
						elem: "#LAY_'.$v['field'].'_upload" //绑定元素
						,url: "'.U('Common/uploads').'" //上传接口
						,data:{tid:function(){ return $("#tid").val();},molds:"'.$molds.'"}
						,accept:"file"
						,exts: "'.$this->webconf['fileType'].'"
						,before:function(){
						    $("#'.$v['field'].'_propress").show();
						}
						,done: function(res){
							if(res.code==0){
								
								 $("#'.$v['field'].'").val(res.url);
								 setTimeout(function() {
								 $("#'.$v['field'].'_propress").hide();
								 },2000)
							}else{
								 layer.alert(res.error, {icon: 5});
							}
						}
						,progress: function(n, elem, res, index){
                            var percent = n + "%" //获取进度百分比
                            element.progress("'.$v['field'].'_propress", percent);
                          }
						,error: function(){
						  //请求异常回调
						  layer.alert("'.JZLANG('上传异常!').'");
						}
					  });
					  //图库按钮点击事件
						$("#LAY_'.$v['field'].'_gallery").on("click", function(){
							var galleryLayer = layer.open({
								type: 1,
								title: "'.JZLANG('选择文件').'",
								area: ["80%", "80%"],
								content: `<div class="gallery-container" style="padding: 15px;">
									<div class="gallery-header" style="margin-bottom: 15px;">
										<div class="layui-btn-group">
											<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_prev_'.$v['field'].'">'.JZLANG('上一页').'</button>
											<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_next_'.$v['field'].'">'.JZLANG('下一页').'</button>
										</div>
										<span id="gallery_page_info_'.$v['field'].'" style="margin-left: 15px;"></span>
									</div>
									<div id="gallery_list_'.$v['field'].'" class="gallery-list" style="min-height: 400px; display: flex; flex-wrap: wrap; gap: 10px;"></div>
									<div class="gallery-footer" style="margin-top: 15px; text-align: center;">
										<button type="button" class="layui-btn" id="gallery_confirm_'.$v['field'].'">'.JZLANG('确定').'</button>
										<button type="button" class="layui-btn layui-btn-primary" onclick="layer.closeAll();">'.JZLANG('取消').'</button>
									</div>
								</div>`,
								success: function(layero, index){
									var currentPage = 1;
									var pageSize = 12;
									var selectedFiles = [];
									var totalCount = 0;
									
									//加载文件列表
									function loadGallery(page){
										$.ajax({
											url: "'.U('Sys/pictures').'",
											type: "GET",
											data: {ajax:1, page: page, pageSize: pageSize},
											dataType: "json",
											success: function(res){
												if(res.code == 0){
													var html = "";
													if(res.data.length > 0){
														$.each(res.data, function(i, item){
															var ext = item.filetype.split('.').pop().toLowerCase();
															var imageExts = ["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"];
															var isImage = imageExts.includes(ext);
															var contentHtml = "";
															if(isImage){
																contentHtml = `<img src="${item.litpic}" style="width: 100%; height: 100%; object-fit: cover;">`;
															}else{
																contentHtml = `<div style="width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f5f5f5; padding: 10px;">
																	<i class="layui-icon" style="font-size: 40px; color: #999;">&#xe61e;</i>
																	<span style="font-size: 12px; color: #666; margin-top: 8px; word-break: break-all; text-align: center;">${item.fileName}</span>
																</div>`;
															}
															
															html += `<div class="gallery-item" data-id="`+item.id+`" data-url="`+item.litpic+`" style="width: 140px; height: 140px; border: 2px solid #e6e6e6; border-radius: 4px; cursor: pointer; position: relative; overflow: hidden;">
																`+contentHtml+`
																<div class="gallery-item-info" style="position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.6); color: #fff; padding: 5px; font-size: 12px; display: none;">
																	${item.fileName}<br>${item.size}kb
																</div>
																<div class="gallery-item-check" style="position: absolute; top: 5px; right: 5px; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #fff; background: rgba(0,0,0,0.5); display: none;">
																	<i class="layui-icon" style="color: #fff; font-size: 14px; line-height: 16px;">&#xe605;</i>
																</div>
															</div>`;
														});
														$("#gallery_list_'.$v['field'].'").html(html);
														totalCount = res.count;
														var totalPages = Math.ceil(totalCount / pageSize);
														$("#gallery_page_info_'.$v['field'].'").text("第"+page+"页 / 共"+totalPages+"页");
														
														//文件悬停事件
														$(".gallery-item").hover(
															function(){
																$(this).find(".gallery-item-info").show();
															},
															function(){
																$(this).find(".gallery-item-info").hide();
															}
														);
														
														//文件点击事件(单选模式)
														$(".gallery-item").on("click", function(){
															// 清除之前的选择
															$(".gallery-item").each(function(){
																$(this).css("border-color", "#e6e6e6");
																$(this).find(".gallery-item-check").hide();
															});
															
															var url = $(this).data("url");
															var id = $(this).data("id");
															
															// 设置当前选择
															selectedFiles = [url];
															$(this).css("border-color", "#1E9FFF");
															$(this).find(".gallery-item-check").show();
														});
														
														//恢复已选中的文件
														$(".gallery-item").each(function(){
															var url = $(this).data("url");
															if(selectedFiles.indexOf(url) > -1){
																$(this).css("border-color", "#1E9FFF");
																$(this).find(".gallery-item-check").show();
															}
														});
													}else{
														$("#gallery_list_'.$v['field'].'").html(\'<div style="width: 100%; text-align: center; padding: 50px; color: #999;">'.JZLANG('暂无文件').'</div>\');
														}
												}else{
													layer.alert(res.msg || "'.JZLANG('加载失败').'", {icon: 5});
												}
											},
											error: function(){
												layer.alert("'.JZLANG('请求失败').'", {icon: 5});
											}
										});
									}
									
									//上一页
									$("#gallery_prev_'.$v['field'].'").on("click", function(){
										if(currentPage > 1){
											currentPage--;
											loadGallery(currentPage);
										}
									});
									
									//下一页
									$("#gallery_next_'.$v['field'].'").on("click", function(){
										var totalPages = Math.ceil(totalCount / pageSize);
										if(currentPage < totalPages){
											currentPage++;
											loadGallery(currentPage);
										}
									});
									
									//确定按钮(单选)
									$("#gallery_confirm_'.$v['field'].'").on("click", function(){
										if(selectedFiles.length > 0){
											$("#'.$v['field'].'").val(selectedFiles[0]);
											layer.close(index);
										}else{
											layer.msg("'.JZLANG('请选择一个文件').'", {icon: 0});
										}
									});
									
									//初始加载
									loadGallery(currentPage);
								}
							});
						});
						
					});
				</script>';
                    break;
                case 10:
                    $l .= '<fieldset class="layui-elem-field">
				  <legend>'.$v['fieldname'].'</legend>
				  <div class="layui-field-box">
					  <div class="layui-input-block">
						  <div class="site-demo-upbar">
						<button type="button" class="layui-btn" id="LAY_'.$v['field'].'_upload">
						  <i class="layui-icon">&#xe67c;</i>'.JZLANG('上传附件').'
						</button>
						<button class="layui-btn layui-btn-warm" id="LAY_'.$v['field'].'_gallery" type="button" >'.JZLANG('图库').'</button>
						 '.$v['tips'].'
					  </div>
						 
					  </div>
					 
					  <div class="layui-input-block">
					  <span class="preview_'.$v['field'].'" >';
                    if($data[$v['field']]!=''){
                        foreach(explode('||',$data[$v['field']]) as $vv){
                            $pic = explode('|',$vv);
                            $l.='<div class="upload-icon-img layui-input-inline" ><div class="upload-pre-item"><input name="'.$v['field'].'_urls[]" type="text" class="layui-input"  value="'.$pic[0].'" /><input name="'.$v['field'].'_des[]" type="text" class="layui-input" placeholder="'.JZLANG('文字描述').'"  value="'.$pic[1].'" /><a class="layui-btn layui-btn-sm layui-btn-radius layui-btn-danger delete_file">'.JZLANG('删除').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goleft(this)">'.JZLANG('左移').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goright(this)">'.JZLANG('右移').'</a></div></div>';
                            
                        }
                    }
                    $l .= '</span>
					  </div>
					  <div class="layui-progress" id="'.$v['field'].'_propress" style="display:none;" lay-filter="'.$v['field'].'_propress" lay-showPercent="yes">
                          <div class="layui-progress-bar layui-bg-green" lay-percent="0%"></div>
                        </div>
				  </div>
				</fieldset>
				<script>
				
				layui.use("upload", function(){
					  var upload_'.$v['field'].' = layui.upload;
					  
					  //执行实例
					  var uploadInst = upload_'.$v['field'].'.render({
						elem: "#LAY_'.$v['field'].'_upload" //绑定元素
						,url: "'.U('Common/uploads').'" //上传接口
						,data:{tid:function(){ return $("#tid").val();},molds:"'.$molds.'"}
						,multiple: true
						,accept:"file"
						,exts: "'.$this->webconf['fileType'].'"
						,before:function(){
						    $("#'.$v['field'].'_propress").show();
						}
						,done: function(res){
							layer.closeAll("loading"); //关闭loading
							if(res.code==0){
                                $(".preview_'.$v['field'].'").append(\'<div class="upload-icon-img layui-input-inline" ><div class="upload-pre-item"><input name="'.$v['field'].'_urls[]" type="text" class="layui-input"  value="\' + res.url + \'" /><input name="'.$v['field'].'_des[]" type="text" class="layui-input" placeholder="'.JZLANG('文字描述').'"  value="" /><a class="layui-btn layui-btn-sm layui-btn-radius layui-btn-danger delete_file">'.JZLANG('删除').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goleft(this)">'.JZLANG('左移').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goright(this)">'.JZLANG('右移').'</a></div></div>\');
							setTimeout(function() {
								 $("#'.$v['field'].'_propress").hide();
								 },2000)
							}else{
								 layer.alert(res.error, {icon: 5});
							}
						}
						,progress: function(n, elem, res, index){
                            var percent = n + "%" //获取进度百分比
                            element.progress("'.$v['field'].'_propress", percent);
                          }
						,error: function(){
						  //请求异常回调
						  layer.alert("'.JZLANG('上传异常!').'");
						}
					  });
					  
						//图库按钮点击事件
						$("#LAY_'.$v['field'].'_gallery").on("click", function(){
							var galleryLayer = layer.open({
								type: 1,
								title: "'.JZLANG('选择文件').'",
								area: ["80%", "80%"],
								content: `<div class="gallery-container" style="padding: 15px;">
									<div class="gallery-header" style="margin-bottom: 15px;">
										<div class="layui-btn-group">
											<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_prev_'.$v['field'].'">'.JZLANG('上一页').'</button>
											<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" id="gallery_next_'.$v['field'].'">'.JZLANG('下一页').'</button>
										</div>
										<span id="gallery_page_info_'.$v['field'].'" style="margin-left: 15px;"></span>
									</div>
									<div id="gallery_list_'.$v['field'].'" class="gallery-list" style="min-height: 400px; display: flex; flex-wrap: wrap; gap: 10px;"></div>
									<div class="gallery-footer" style="margin-top: 15px; text-align: center;">
										<button type="button" class="layui-btn" id="gallery_confirm_'.$v['field'].'">'.JZLANG('确定').'</button>
										<button type="button" class="layui-btn layui-btn-primary" onclick="layer.closeAll();">'.JZLANG('取消').'</button>
									</div>
								</div>`,
								success: function(layero, index){
									var currentPage = 1;
									var pageSize = 12;
									var selectedFiles = [];
									var totalCount = 0;
									
									//加载文件列表
									function loadGallery(page){
										$.ajax({
											url: "'.U('Sys/pictures').'",
											type: "GET",
											data: {ajax:1, page: page, pageSize: pageSize},
											dataType: "json",
											success: function(res){
												if(res.code == 0){
													var html = "";
													if(res.data.length > 0){
														$.each(res.data, function(i, item){
															var ext = item.filetype.split('.').pop().toLowerCase();
															var imageExts = ["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"];
															var isImage = imageExts.includes(ext);
															var contentHtml = "";
															if(isImage){
																contentHtml = `<img src="${item.litpic}" style="width: 100%; height: 100%; object-fit: cover;">`;
															}else{
																contentHtml = `<div style="width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f5f5f5; padding: 10px;">
																	<i class="layui-icon" style="font-size: 40px; color: #999;">&#xe61e;</i>
																	<span style="font-size: 12px; color: #666; margin-top: 8px; word-break: break-all; text-align: center;">${item.fileName}</span>
																</div>`;
															}
															
															html += `<div class="gallery-item" data-id="`+item.id+`" data-url="`+item.litpic+`" style="width: 140px; height: 140px; border: 2px solid #e6e6e6; border-radius: 4px; cursor: pointer; position: relative; overflow: hidden;">
																`+contentHtml+`
																<div class="gallery-item-info" style="position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.6); color: #fff; padding: 5px; font-size: 12px; display: none;">
																	${item.fileName}<br>${item.size}kb
																</div>
																<div class="gallery-item-check" style="position: absolute; top: 5px; right: 5px; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #fff; background: rgba(0,0,0,0.5); display: none;">
																	<i class="layui-icon" style="color: #fff; font-size: 14px; line-height: 16px;">&#xe605;</i>
																</div>
															</div>`;
														});
														$("#gallery_list_'.$v['field'].'").html(html);
														totalCount = res.count;
														var totalPages = Math.ceil(totalCount / pageSize);
														$("#gallery_page_info_'.$v['field'].'").text("第"+page+"页 / 共"+totalPages+"页");
														
														//文件悬停事件
														$(".gallery-item").hover(
															function(){
																$(this).find(".gallery-item-info").show();
															},
															function(){
																$(this).find(".gallery-item-info").hide();
															}
														);
														
														//文件点击事件(多选模式)
														$(".gallery-item").on("click", function(){
															var url = $(this).data("url");
															var id = $(this).data("id");
															var index = selectedFiles.indexOf(url);
															
															if(index > -1){
																selectedFiles.splice(index, 1);
																$(this).css("border-color", "#e6e6e6");
																$(this).find(".gallery-item-check").hide();
															}else{
																selectedFiles.push(url);
																$(this).css("border-color", "#1E9FFF");
																$(this).find(".gallery-item-check").show();
															}
														});
														
														//恢复已选中的文件
														$(".gallery-item").each(function(){
															var url = $(this).data("url");
															if(selectedFiles.indexOf(url) > -1){
																$(this).css("border-color", "#1E9FFF");
																$(this).find(".gallery-item-check").show();
															}
														});
													}else{
														$("#gallery_list_'.$v['field'].'").html(\'<div style="width: 100%; text-align: center; padding: 50px; color: #999;">'.JZLANG('暂无文件').'</div>\');
														}
												}else{
													layer.alert(res.msg || "'.JZLANG('加载失败').'", {icon: 5});
												}
											},
											error: function(){
												layer.alert("'.JZLANG('请求失败').'", {icon: 5});
											}
										});
									}
									
									//上一页
									$("#gallery_prev_'.$v['field'].'").on("click", function(){
										if(currentPage > 1){
											currentPage--;
											loadGallery(currentPage);
										}
									});
									
									//下一页
									$("#gallery_next_'.$v['field'].'").on("click", function(){
										var totalPages = Math.ceil(totalCount / pageSize);
										if(currentPage < totalPages){
											currentPage++;
											loadGallery(currentPage);
										}
									});
									
									//确定按钮(多选)
									$("#gallery_confirm_'.$v['field'].'").on("click", function(){
										if(selectedFiles.length > 0){
											// 将选中的文件添加到预览区域
											for(var i = 0; i < selectedFiles.length; i++){
												var fileHtml = `<div class="upload-icon-img layui-input-inline" ><div class="upload-pre-item"><input name="'.$v['field'].'_urls[]" type="text" class="layui-input"  value="` + selectedFiles[i] + `" /><input name="'.$v['field'].'_des[]" type="text" class="layui-input" placeholder="'.JZLANG('文字描述').'"  value="" /><a class="layui-btn layui-btn-sm layui-btn-radius layui-btn-danger delete_file">'.JZLANG('删除').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goleft(this)">'.JZLANG('左移').'</a><a class="layui-btn layui-btn-sm layui-btn-radius imgorder " onclick="goright(this)">'.JZLANG('右移').'</a></div></div>`;
												$(".preview_'.$v['field'].'").append(fileHtml);
											}
											layer.close(index);
										}else{
											layer.msg("'.JZLANG('请至少选择一个文件').'", {icon: 0});
										}
									});
									
									//初始加载
									loadGallery(currentPage);
								}
							});
						});
					});
				</script>';
                    break;
                case 11:
                    $laydate = ($data[$v['field']]=='' || $data[$v['field']]==0)?time():$data[$v['field']];
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
                    <div class="layui-input-inline">
                        <input id="laydate_'.$v['field'].'" value="'.date('Y-m-d H:i:s',$laydate).'" name="'.$v['field'].'" ';
                    if($v['ismust']==1){
                        $l.=' required="" lay-verify="required" ';
                    }
                    $l .=  'autocomplete="off" class="layui-input">
                    </div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $randt = getRandChar(5);
                    $l.='</div>
					<script>
					layui.use("laydate", function(){
					var laydate'.$randt.' = layui.laydate;
					laydate'.$randt.'.render({elem: "#laydate_'.$v['field'].'",type:"datetime",trigger: "click" });});</script>';
                    break;
                case 12:
                    $l .= '<div class="layui-form-item" pane>
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
                    <div class="layui-input-inline">';
                    foreach(explode(',',$v['body']) as $vv){
                        $s=explode('=',$vv);
                        $l.='<input type="radio" name="'.$v['field'].'" value="'.$s[1].'" title="'.$s[0].'" ';
                        if($data[$v['field']]==$s[1]){
                            $l.='checked="checked"';
                        }
                        $l.=' >';
                    }
                    $l.='</div>';
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>
					<script>
							layui.use("form", function () {
								var form_'.$v['field'].' = layui.form;
								form_'.$v['field'].'.render();
							});
							
						</script>';
                    break;
                
                case 13:
                case 21:
                    //tid,field
                    
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
					<div class="layui-input-inline">
					<input type="hidden" id="'.$v['field'].'" name="'.$v['field'].'" value="">
					<div id="'.$v['field'].'_xmselect"></div>
					<script>
					var '.$v['field'].'_xmselect = xmSelect.render({
							el: "#'.$v['field'].'_xmselect",
							autoRow: true,
							toolbar: { show: true },
							list: [ "ALL", "CLEAR"],
							filterable: true,
							radio:true,';
                    if($v['remote']){
                        $l.='remoteSearch: true,
                                        remoteMethod: function(val, cb, show){
            //								if(!val){
            //									return cb([]);
            //								}
                                            $.get("'.U('Fields/getSelect').'",{id:"'.$v['id'].'",key:val},function(res){
                                                if(res.code==0){
                                                    cb(res.data)
                                                }else{
                                                    layer.alert(res.msg)
                                                    
                                                }
                                                
                                            },"json")
                                            
                                        },';
                    }
                    $l.='
							on:function(r){
								if(r["arr"].length>0){
									$("#'.$v['field'].'").val(r["arr"][0].value)';
                    if($v['ldfield'] && $v['linkfield']){
                        $ldfields = explode('|',$v['ldfield']);
                        $linkfields = explode('|',$v['linkfield']);
                        foreach($ldfields as $lk=>$ld){
                            $fx = M('fields')->find(['field'=>$ld]);
                            $l.='
                                        $.get("'.U('Fields/getliandong').'",
                                        {id:"'.$fx['id'].'",key:r["arr"][0].value,field:"'.$linkfields[$lk].'"},
                                        function(res){
                                                    if(res.code==0){
                                                        '.$ld.'_xmselect.update({
                                                            data:res.data
                                                        });
                                                        '.$ld.'_xmselect.setValue(['.trim($data[$ld],',').']);
                                                         $("#'.$ld.'").val('.trim($data[$ld],',').')
                                                        
                                                    }else{
                                                        //layer.alert(res.msg)
                                                        
                                                    }
                                                    
                                        },"json")
                                        ';
                        }
                    }
                    $l.='
								}else{
									$("#'.$v['field'].'").val("")
								}
							}
						});';
                    if($v['remote']){
                        
                        $l.=' $.get("'.U('Fields/getSelect').'",{id:"'.$v['id'].'",value:"'.$data[$v['field']].'",check:1},function(res){
                                if(res.code==0){
                                    '.$v['field'].'_xmselect.setValue(res.data);
                                    $("#'.$v['field'].'").val("'.$data[$v['field']].'");
                                }else{
                                    //layer.alert(res.msg)
                                    
                                }
                                
                            },"json");';
                        
                    }else{
                        $l.=' '.$v['field'].'_xmselect.setValue(['.$data[$v['field']].']);
                            $("#'.$v['field'].'").val("'.$data[$v['field']].'");';
                    }
                    $l.='
						 
						</script>
					</div>
					';
                    
                    if($v['tips']){
                        $l.='<div class="layui-form-mid layui-word-aux">
					  <i data-info="'.$v['tips'].'" data-field="f'.$v['id'].'" class="layui-sys-icon layui-icon layui-icon-about f'.$v['id'].'"></i>
					</div>';
                    }
                    $l.='</div>
				<script>
							layui.use("form", function () {
								var form_'.$v['field'].' = layui.form;
								form_'.$v['field'].'.render();
							});
							
						</script>';
                    break;
                case 14:
                    $l .= '<div class="layui-form-item">
                    <label for="'.$v['field'].'" class="layui-form-label">';
                    if($v['ismust']==1){
                        $l .= '<span class="x-red">*</span>';
                    }
                    $l .= $v['fieldname'].'
                    </label>
                    <div class="layui-input-inline">
                        <input type="text" id="'.$v['field'].'" value="'.$data[$v['field']].'" name="'.$v['field'].'" ';
Download .txt
gitextract_8h9hwlxr/

├── .gitignore
├── .htaccess
├── 404.html
├── LICENSE
├── README.md
├── SECURITY.md
├── app/
│   ├── admin/
│   │   ├── c/
│   │   │   ├── AdminController.php
│   │   │   ├── ArticleController.php
│   │   │   ├── ClasstypeController.php
│   │   │   ├── CollectController.php
│   │   │   ├── CommentController.php
│   │   │   ├── CommonController.php
│   │   │   ├── ErrorController.php
│   │   │   ├── ExtmoldsController.php
│   │   │   ├── FieldsController.php
│   │   │   ├── IndexController.php
│   │   │   ├── JzattrController.php
│   │   │   ├── JzchainController.php
│   │   │   ├── LinksController.php
│   │   │   ├── LoginController.php
│   │   │   ├── MemberController.php
│   │   │   ├── MessageController.php
│   │   │   ├── MoldsController.php
│   │   │   ├── OrderController.php
│   │   │   ├── PluginsController.php
│   │   │   ├── ProductController.php
│   │   │   ├── RecycleController.php
│   │   │   ├── RulersController.php
│   │   │   ├── SysController.php
│   │   │   ├── TemplateController.php
│   │   │   ├── UploadsController.php
│   │   │   └── WechatController.php
│   │   ├── exts/
│   │   │   ├── .gitkeep
│   │   │   └── jizhicmsupdate/
│   │   │       ├── PluginsController.php
│   │   │       ├── config.php
│   │   │       ├── file/
│   │   │       │   ├── conf/
│   │   │       │   │   └── .gitkeep
│   │   │       │   └── mysql/
│   │   │       │       ├── admin/
│   │   │       │       │   ├── c/
│   │   │       │       │   │   └── back/
│   │   │       │       │   │       └── .gitkeep
│   │   │       │       │   └── tpl/
│   │   │       │       │       └── back/
│   │   │       │       │           └── .gitkeep
│   │   │       │       ├── frphp/
│   │   │       │       │   ├── back/
│   │   │       │       │   │   └── .gitkeep
│   │   │       │       │   ├── common/
│   │   │       │       │   │   └── back/
│   │   │       │       │   │       └── .gitkeep
│   │   │       │       │   ├── extend/
│   │   │       │       │   │   └── back/
│   │   │       │       │   │       └── .gitkeep
│   │   │       │       │   └── lib/
│   │   │       │       │       └── back/
│   │   │       │       │           └── .gitkeep
│   │   │       │       ├── home/
│   │   │       │       │   └── back/
│   │   │       │       │       └── .gitkeep
│   │   │       │       └── static/
│   │   │       │           └── .gitkeep
│   │   │       └── tpl/
│   │   │           ├── plugins-body.html
│   │   │           └── plugins-description.html
│   │   ├── lang/
│   │   │   ├── back.php
│   │   │   ├── cht.php
│   │   │   ├── common.php
│   │   │   ├── en.php
│   │   │   └── zh.php
│   │   ├── plugins/
│   │   │   └── IndexController.php
│   │   └── t/
│   │       └── tpl/
│   │           ├── addcache.html
│   │           ├── addmenu.html
│   │           ├── admin-add.html
│   │           ├── admin-edit.html
│   │           ├── admin-list.html
│   │           ├── admin.html
│   │           ├── article-add.html
│   │           ├── article-edit.html
│   │           ├── article-list.html
│   │           ├── attr-list.html
│   │           ├── beifen.html
│   │           ├── cache.html
│   │           ├── chain-list.html
│   │           ├── chongzhi-add.html
│   │           ├── chongzhi-list.html
│   │           ├── classtype-add.html
│   │           ├── classtype-addmany.html
│   │           ├── classtype-edit.html
│   │           ├── classtype-list.html
│   │           ├── collect-add.html
│   │           ├── collect-edit.html
│   │           ├── collect-list.html
│   │           ├── collecttype-add.html
│   │           ├── collecttype-edit.html
│   │           ├── collecttype-list.html
│   │           ├── comment-add.html
│   │           ├── comment-details.html
│   │           ├── comment-list.html
│   │           ├── common/
│   │           │   ├── content.html
│   │           │   ├── edit.html
│   │           │   ├── fields.html
│   │           │   ├── footer.html
│   │           │   ├── style.html
│   │           │   └── uediter.php
│   │           ├── ctype.html
│   │           ├── datacache.html
│   │           ├── desktop-add.html
│   │           ├── desktop-edit.html
│   │           ├── desktop.html
│   │           ├── editcache.html
│   │           ├── editmenu.html
│   │           ├── extmolds-add.html
│   │           ├── extmolds-edit.html
│   │           ├── extmolds-list.html
│   │           ├── fields-add.html
│   │           ├── fields-edit.html
│   │           ├── fields-list-show.html
│   │           ├── fields-list.html
│   │           ├── getchildren.html
│   │           ├── group-add.html
│   │           ├── group-edit.html
│   │           ├── group-list.html
│   │           ├── index.html
│   │           ├── links-add.html
│   │           ├── links-edit.html
│   │           ├── links-list.html
│   │           ├── linktype-add.html
│   │           ├── linktype-edit.html
│   │           ├── linktype-list.html
│   │           ├── login.html
│   │           ├── loginlog.html
│   │           ├── member-add.html
│   │           ├── member-edit.html
│   │           ├── member-list.html
│   │           ├── membergroup-add.html
│   │           ├── membergroup-edit.html
│   │           ├── membergroup-list.html
│   │           ├── menu.html
│   │           ├── message-details.html
│   │           ├── message-list.html
│   │           ├── molds-add.html
│   │           ├── molds-edit.html
│   │           ├── molds-list.html
│   │           ├── order-details.html
│   │           ├── order-list.html
│   │           ├── pictures.html
│   │           ├── plugins-list.html
│   │           ├── plugins-update.html
│   │           ├── power-add.html
│   │           ├── power-edit.html
│   │           ├── power-list.html
│   │           ├── power-tree.html
│   │           ├── product-add.html
│   │           ├── product-edit.html
│   │           ├── product-list.html
│   │           ├── recycle-list.html
│   │           ├── restrucfields.html
│   │           ├── ruler-add.html
│   │           ├── ruler-edit.html
│   │           ├── ruler-list.html
│   │           ├── showlabel.html
│   │           ├── sitemap.html
│   │           ├── style/
│   │           │   ├── css/
│   │           │   │   ├── font.css
│   │           │   │   ├── iconfont.css
│   │           │   │   ├── style.css
│   │           │   │   └── xadmin.css
│   │           │   ├── fonts/
│   │           │   │   ├── demo.css
│   │           │   │   ├── iconfont.css
│   │           │   │   ├── iconfont.js
│   │           │   │   └── iconfont.json
│   │           │   ├── js/
│   │           │   │   ├── target_page.js
│   │           │   │   ├── target_window.js
│   │           │   │   ├── xadmin.js
│   │           │   │   └── xm-select.js
│   │           │   └── tags/
│   │           │       ├── jquery.tagsinput.css
│   │           │       └── jquery.tagsinput.js
│   │           ├── sys.html
│   │           ├── systype.html
│   │           ├── template-list.html
│   │           ├── template-update.html
│   │           ├── tohtml.html
│   │           ├── unicode.html
│   │           ├── wechat-caidan.html
│   │           ├── wechat-sucai.html
│   │           └── welcome.html
│   └── home/
│       ├── c/
│       │   ├── CommentController.php
│       │   ├── CommonController.php
│       │   ├── ErrorController.php
│       │   ├── HomeController.php
│       │   ├── JzpayController.php
│       │   ├── LoginController.php
│       │   ├── MessageController.php
│       │   ├── MypayController.php
│       │   ├── OrderController.php
│       │   ├── ScreenController.php
│       │   ├── TagsController.php
│       │   ├── UploadsController.php
│       │   ├── UserController.php
│       │   └── WechatController.php
│       ├── lang/
│       │   ├── back.php
│       │   ├── cht.php
│       │   ├── common.php
│       │   └── zh.php
│       ├── plugins/
│       │   └── .gitkeep
│       └── template/
│           └── .gitkeep
├── backup/
│   └── .gitkeep
├── conf/
│   ├── Functions.php
│   ├── FunctionsExt.php
│   ├── config.php
│   └── route.php
├── frphp/
│   ├── common/
│   │   ├── Config.php
│   │   ├── Error.php
│   │   └── Functions.php
│   ├── db/
│   │   └── DBholder.php
│   ├── extend/
│   │   ├── ArrayPage.php
│   │   ├── DB_API.php
│   │   ├── DatabaseTool.php
│   │   ├── FrSession.php
│   │   ├── PHPMailer/
│   │   │   ├── LICENSE
│   │   │   ├── PHPMailerAutoload.php
│   │   │   ├── VERSION
│   │   │   ├── class.phpmailer.php
│   │   │   ├── class.phpmaileroauth.php
│   │   │   ├── class.phpmaileroauthgoogle.php
│   │   │   ├── class.pop3.php
│   │   │   ├── class.smtp.php
│   │   │   ├── extras/
│   │   │   │   ├── EasyPeasyICS.php
│   │   │   │   ├── README.md
│   │   │   │   ├── htmlfilter.php
│   │   │   │   └── ntlm_sasl_client.php
│   │   │   ├── get_oauth_token.php
│   │   │   └── testmail.php
│   │   ├── Page.php
│   │   ├── SessionRedis.php
│   │   ├── Uploader.class.php
│   │   ├── Vercode.php
│   │   ├── compressimage.php
│   │   ├── pay/
│   │   │   ├── alipay/
│   │   │   │   ├── AlipayService.php
│   │   │   │   └── AlipayServiceCheck.php
│   │   │   └── wechat/
│   │   │       ├── WxpayCheckOrder.php
│   │   │       ├── WxpayH5Service.php
│   │   │       ├── WxpayScan.php
│   │   │       ├── WxpayService.php
│   │   │       └── WxpayServiceCheck.php
│   │   ├── phpqrcode/
│   │   │   └── phpqrcode.php
│   │   └── pinyin.php
│   ├── fr.php
│   └── lib/
│       ├── Controller.php
│       ├── Model.php
│       └── View.php
├── index.php
├── install/
│   ├── db.php
│   ├── index.php
│   ├── test.php
│   └── tpl/
│       ├── css/
│       │   └── ui.progress-bar.css
│       ├── footer.tpl
│       ├── header.tpl
│       ├── index.jizhi
│       ├── js/
│       │   └── common.js
│       ├── layer/
│       │   ├── mobile/
│       │   │   ├── layer.js
│       │   │   └── need/
│       │   │       └── layer.css
│       │   └── theme/
│       │       └── default/
│       │           └── layer.css
│       ├── step1.jizhi
│       ├── step2.jizhi
│       ├── step3.jizhi
│       ├── step4.jizhi
│       └── step5.jizhi
├── readme.txt
├── robots.txt
├── static/
│   ├── cms/
│   │   ├── 404.html
│   │   ├── article/
│   │   │   ├── article-details.html
│   │   │   ├── article-list.html
│   │   │   └── faq.html
│   │   ├── backup/
│   │   │   └── .gitkeep
│   │   ├── comment.html
│   │   ├── faq.html
│   │   ├── footer.html
│   │   ├── func/
│   │   │   └── functions.php
│   │   ├── header.html
│   │   ├── index.html
│   │   ├── info.php
│   │   ├── install/
│   │   │   └── TemplateController.php
│   │   ├── js.html
│   │   ├── latestpost.html
│   │   ├── message/
│   │   │   └── contact-us.html
│   │   ├── page/
│   │   │   ├── about-us.html
│   │   │   └── page.html
│   │   ├── paytpl/
│   │   │   ├── alipay_in_weixin.html
│   │   │   ├── dmf.html
│   │   │   ├── overpay.html
│   │   │   ├── pay_form.html
│   │   │   ├── wechat_h5_pay.html
│   │   │   ├── wechat_pay.html
│   │   │   └── wechat_scan.html
│   │   ├── product/
│   │   │   ├── details.html
│   │   │   └── list.html
│   │   ├── search.html
│   │   ├── searchall.html
│   │   ├── searchform.html
│   │   ├── static/
│   │   │   ├── css/
│   │   │   │   ├── aos.css
│   │   │   │   ├── gordita-fonts.css
│   │   │   │   └── style.css
│   │   │   └── js/
│   │   │       ├── ajax.mail.js
│   │   │       ├── aos.js
│   │   │       └── main.js
│   │   ├── style.html
│   │   ├── tags-details.html
│   │   └── user/
│   │       ├── article-add.html
│   │       ├── article.html
│   │       ├── buy-list.html
│   │       ├── buy-view.html
│   │       ├── buy.html
│   │       ├── cart.html
│   │       ├── collect.html
│   │       ├── comment.html
│   │       ├── fans.html
│   │       ├── follow.html
│   │       ├── footer.html
│   │       ├── forget.html
│   │       ├── index.html
│   │       ├── left_nav.html
│   │       ├── likes.html
│   │       ├── login.html
│   │       ├── nologin.html
│   │       ├── notify.html
│   │       ├── order.html
│   │       ├── orderdetails.html
│   │       ├── password.html
│   │       ├── payment.html
│   │       ├── people.html
│   │       ├── prople.html
│   │       ├── register.html
│   │       ├── reset_password.html
│   │       ├── setmsg.html
│   │       ├── style.html
│   │       ├── tips.html
│   │       ├── top.html
│   │       ├── userinfo.html
│   │       └── wallet.html
│   ├── common/
│   │   ├── clipboard.js
│   │   ├── close.html
│   │   ├── layui/
│   │   │   ├── css/
│   │   │   │   ├── layui.css
│   │   │   │   └── modules/
│   │   │   │       ├── code.css
│   │   │   │       ├── laydate/
│   │   │   │       │   └── default/
│   │   │   │       │       └── laydate.css
│   │   │   │       └── layer/
│   │   │   │           └── default/
│   │   │   │               └── layer.css
│   │   │   └── layui.js
│   │   ├── md5.js
│   │   ├── uediter.php
│   │   ├── user/
│   │   │   ├── css/
│   │   │   │   ├── font_1546140_sw4m5ivcrg9.css
│   │   │   │   ├── reset.css
│   │   │   │   └── user.css
│   │   │   ├── js/
│   │   │   │   ├── jquery.min-1.10.2.js
│   │   │   │   └── user.js
│   │   │   └── uedit/
│   │   │       ├── dialogs/
│   │   │       │   ├── anchor/
│   │   │       │   │   └── anchor.html
│   │   │       │   ├── attachment/
│   │   │       │   │   ├── attachment.css
│   │   │       │   │   ├── attachment.html
│   │   │       │   │   └── attachment.js
│   │   │       │   ├── background/
│   │   │       │   │   ├── background.css
│   │   │       │   │   ├── background.html
│   │   │       │   │   └── background.js
│   │   │       │   ├── charts/
│   │   │       │   │   ├── chart.config.js
│   │   │       │   │   ├── charts.css
│   │   │       │   │   ├── charts.html
│   │   │       │   │   └── charts.js
│   │   │       │   ├── emotion/
│   │   │       │   │   ├── emotion.css
│   │   │       │   │   ├── emotion.html
│   │   │       │   │   └── emotion.js
│   │   │       │   ├── gmap/
│   │   │       │   │   └── gmap.html
│   │   │       │   ├── help/
│   │   │       │   │   ├── help.css
│   │   │       │   │   ├── help.html
│   │   │       │   │   └── help.js
│   │   │       │   ├── image/
│   │   │       │   │   ├── image.css
│   │   │       │   │   ├── image.html
│   │   │       │   │   └── image.js
│   │   │       │   ├── insertframe/
│   │   │       │   │   └── insertframe.html
│   │   │       │   ├── internal.js
│   │   │       │   ├── link/
│   │   │       │   │   └── link.html
│   │   │       │   ├── map/
│   │   │       │   │   ├── map.html
│   │   │       │   │   └── show.html
│   │   │       │   ├── music/
│   │   │       │   │   ├── music.css
│   │   │       │   │   ├── music.html
│   │   │       │   │   └── music.js
│   │   │       │   ├── preview/
│   │   │       │   │   └── preview.html
│   │   │       │   ├── scrawl/
│   │   │       │   │   ├── scrawl.css
│   │   │       │   │   ├── scrawl.html
│   │   │       │   │   └── scrawl.js
│   │   │       │   ├── searchreplace/
│   │   │       │   │   ├── searchreplace.html
│   │   │       │   │   └── searchreplace.js
│   │   │       │   ├── snapscreen/
│   │   │       │   │   └── snapscreen.html
│   │   │       │   ├── spechars/
│   │   │       │   │   ├── spechars.html
│   │   │       │   │   └── spechars.js
│   │   │       │   ├── table/
│   │   │       │   │   ├── edittable.css
│   │   │       │   │   ├── edittable.html
│   │   │       │   │   ├── edittable.js
│   │   │       │   │   ├── edittd.html
│   │   │       │   │   └── edittip.html
│   │   │       │   ├── template/
│   │   │       │   │   ├── config.js
│   │   │       │   │   ├── template.css
│   │   │       │   │   ├── template.html
│   │   │       │   │   └── template.js
│   │   │       │   ├── video/
│   │   │       │   │   ├── video.css
│   │   │       │   │   ├── video.html
│   │   │       │   │   └── video.js
│   │   │       │   ├── webapp/
│   │   │       │   │   └── webapp.html
│   │   │       │   └── wordimage/
│   │   │       │       ├── fClipboard_ueditor.swf
│   │   │       │       ├── imageUploader.swf
│   │   │       │       ├── tangram.js
│   │   │       │       ├── wordimage.html
│   │   │       │       └── wordimage.js
│   │   │       ├── lang/
│   │   │       │   ├── en/
│   │   │       │   │   └── en.js
│   │   │       │   └── zh-cn/
│   │   │       │       └── zh-cn.js
│   │   │       ├── themes/
│   │   │       │   ├── default/
│   │   │       │   │   ├── _css/
│   │   │       │   │   │   ├── autotypesetpicker.css
│   │   │       │   │   │   ├── button.css
│   │   │       │   │   │   ├── buttonicon.css
│   │   │       │   │   │   ├── cellalignpicker.css
│   │   │       │   │   │   ├── colorbutton.css
│   │   │       │   │   │   ├── colorpicker.css
│   │   │       │   │   │   ├── combox.css
│   │   │       │   │   │   ├── contextmenu.css
│   │   │       │   │   │   ├── dialog.css
│   │   │       │   │   │   ├── editor.css
│   │   │       │   │   │   ├── menu.css
│   │   │       │   │   │   ├── menubutton.css
│   │   │       │   │   │   ├── message.css
│   │   │       │   │   │   ├── multiMenu.css
│   │   │       │   │   │   ├── paragraphpicker.css
│   │   │       │   │   │   ├── pastepicker.css
│   │   │       │   │   │   ├── popup.css
│   │   │       │   │   │   ├── separtor.css
│   │   │       │   │   │   ├── shortcutmenu.css
│   │   │       │   │   │   ├── splitbutton.css
│   │   │       │   │   │   ├── tablepicker.css
│   │   │       │   │   │   ├── toolbar.css
│   │   │       │   │   │   ├── ueditor.css
│   │   │       │   │   │   └── uibase.css
│   │   │       │   │   ├── css/
│   │   │       │   │   │   └── ueditor.css
│   │   │       │   │   └── dialogbase.css
│   │   │       │   └── iframe.css
│   │   │       ├── third-party/
│   │   │       │   ├── SyntaxHighlighter/
│   │   │       │   │   ├── shCore.js
│   │   │       │   │   └── shCoreDefault.css
│   │   │       │   ├── codemirror/
│   │   │       │   │   ├── codemirror.css
│   │   │       │   │   └── codemirror.js
│   │   │       │   ├── highcharts/
│   │   │       │   │   ├── adapters/
│   │   │       │   │   │   ├── mootools-adapter.js
│   │   │       │   │   │   ├── mootools-adapter.src.js
│   │   │       │   │   │   ├── prototype-adapter.js
│   │   │       │   │   │   ├── prototype-adapter.src.js
│   │   │       │   │   │   ├── standalone-framework.js
│   │   │       │   │   │   └── standalone-framework.src.js
│   │   │       │   │   ├── highcharts-more.js
│   │   │       │   │   ├── highcharts-more.src.js
│   │   │       │   │   ├── highcharts.js
│   │   │       │   │   ├── highcharts.src.js
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── annotations.js
│   │   │       │   │   │   ├── annotations.src.js
│   │   │       │   │   │   ├── canvas-tools.js
│   │   │       │   │   │   ├── canvas-tools.src.js
│   │   │       │   │   │   ├── data.js
│   │   │       │   │   │   ├── data.src.js
│   │   │       │   │   │   ├── drilldown.js
│   │   │       │   │   │   ├── drilldown.src.js
│   │   │       │   │   │   ├── exporting.js
│   │   │       │   │   │   ├── exporting.src.js
│   │   │       │   │   │   ├── funnel.js
│   │   │       │   │   │   ├── funnel.src.js
│   │   │       │   │   │   ├── heatmap.js
│   │   │       │   │   │   ├── heatmap.src.js
│   │   │       │   │   │   ├── map.js
│   │   │       │   │   │   ├── map.src.js
│   │   │       │   │   │   ├── no-data-to-display.js
│   │   │       │   │   │   └── no-data-to-display.src.js
│   │   │       │   │   └── themes/
│   │   │       │   │       ├── dark-blue.js
│   │   │       │   │       ├── dark-green.js
│   │   │       │   │       ├── gray.js
│   │   │       │   │       ├── grid.js
│   │   │       │   │       └── skies.js
│   │   │       │   ├── jquery-1.10.2.js
│   │   │       │   ├── video-js/
│   │   │       │   │   ├── video-js.css
│   │   │       │   │   ├── video-js.swf
│   │   │       │   │   ├── video.dev.js
│   │   │       │   │   └── video.js
│   │   │       │   ├── webuploader/
│   │   │       │   │   ├── Uploader.swf
│   │   │       │   │   ├── webuploader.css
│   │   │       │   │   ├── webuploader.custom.js
│   │   │       │   │   ├── webuploader.flashonly.js
│   │   │       │   │   ├── webuploader.html5only.js
│   │   │       │   │   ├── webuploader.js
│   │   │       │   │   └── webuploader.withoutimage.js
│   │   │       │   └── zeroclipboard/
│   │   │       │       ├── ZeroClipboard.js
│   │   │       │       └── ZeroClipboard.swf
│   │   │       ├── ueditor.all.js
│   │   │       ├── ueditor.config.js
│   │   │       └── ueditor.parse.js
│   │   └── wangeditor/
│   │       └── wangeditor.css
│   └── default/
│       └── assets/
│           ├── css/
│           │   ├── Projects-Horizontal.css
│           │   ├── css.css
│           │   └── smoothproducts.css
│           └── js/
│               └── theme.js
└── web.config
Download .txt
SYMBOL INDEX (2395 symbols across 135 files)

FILE: app/admin/c/AdminController.php
  class AdminController (line 19) | class AdminController extends CommonController
    method group (line 24) | public function group(){
    method group_del (line 38) | function group_del(){
    method groupedit (line 67) | function groupedit(){
    method groupadd (line 110) | function groupadd(){
    method change_group_status (line 150) | public function change_group_status(){
    method adminlist (line 168) | public function adminlist(){
    method adminedit (line 239) | public function adminedit(){
    method adminadd (line 324) | public function adminadd(){
    method change_status (line 397) | public function change_status(){
    method admindelete (line 413) | public function admindelete(){
    method deleteAll (line 438) | function deleteAll(){

FILE: app/admin/c/ArticleController.php
  class ArticleController (line 19) | class ArticleController extends CommonController
    method articlelist (line 24) | function articlelist(){
    method addarticle (line 76) | function addarticle(){
    method editarticle (line 277) | function editarticle(){
    method deletearticle (line 558) | function deletearticle(){
    method copyarticle (line 588) | function copyarticle(){
    method deleteAll (line 602) | function deleteAll(){
    method copyAll (line 639) | function copyAll(){
    method changeType (line 653) | function changeType(){
    method editArticleOrders (line 673) | function editArticleOrders(){
    method changeAttribute (line 683) | function changeAttribute(){
    method checkAll (line 727) | function checkAll(){
    method getTableFields (line 793) | private function getTableFields($table){

FILE: app/admin/c/ClasstypeController.php
  class ClasstypeController (line 19) | class ClasstypeController extends CommonController
    method index (line 23) | function index(){
    method addclass (line 46) | function addclass(){
    method editclass (line 153) | function editclass(){
    method editClassOrders (line 271) | function editClassOrders(){
    method deleteclass (line 287) | function deleteclass(){
    method change_status (line 315) | function change_status(){
    method get_pinyin (line 336) | function get_pinyin(){
    method addmany (line 346) | function addmany(){
    method get_html (line 473) | public function get_html(){
    method changeClass (line 508) | function changeClass(){
    method getchildren (line 571) | function getchildren(){

FILE: app/admin/c/CollectController.php
  class CollectController (line 19) | class CollectController extends CommonController
    method index (line 22) | function index(){
    method addcollect (line 61) | function addcollect(){
    method copycollect (line 97) | function copycollect(){
    method deleteAll (line 117) | function deleteAll(){
    method editcollect (line 137) | function editcollect(){
    method deletecollect (line 178) | function deletecollect(){
    method collectType (line 195) | function collectType(){
    method collectTypeAdd (line 201) | function collectTypeAdd(){
    method collectTypeEdit (line 214) | function collectTypeEdit(){
    method collectTypeDelete (line 233) | function collectTypeDelete(){

FILE: app/admin/c/CommentController.php
  class CommentController (line 19) | class CommentController extends CommonController
    method addcomment (line 23) | function addcomment(){
    method deleteAll (line 58) | function deleteAll(){
    method commentlist (line 82) | function commentlist(){
    method editcomment (line 188) | public function editcomment(){
    method deletecomment (line 245) | function deletecomment(){
    method checkAll (line 269) | function checkAll(){

FILE: app/admin/c/CommonController.php
  class CommonController (line 16) | class CommonController extends Controller
    method _init (line 18) | function _init(){
    method uploads (line 99) | function uploads(){

FILE: app/admin/c/ErrorController.php
  class ErrorController (line 17) | class ErrorController extends Controller
    method index (line 20) | function index($msg=''){

FILE: app/admin/c/ExtmoldsController.php
  class ExtmoldsController (line 19) | class ExtmoldsController extends Controller
    method _init (line 21) | function _init(){
    method index (line 86) | public function index(){
    method addmolds (line 160) | public function addmolds(){
    method editmolds (line 292) | public function editmolds(){
    method copymolds (line 503) | public function  copymolds(){
    method deleteAll (line 524) | function deleteAll(){
    method deletemolds (line 563) | function deletemolds(){
    method editOrders (line 593) | function editOrders(){
    method changeType (line 606) | function changeType(){
    method changeAttribute (line 627) | function changeAttribute(){
    method copyAll (line 671) | function copyAll(){
    method checkAll (line 687) | function checkAll(){

FILE: app/admin/c/FieldsController.php
  class FieldsController (line 19) | class FieldsController extends CommonController
    method index (line 22) | function index(){
    method addFields (line 117) | function addFields(){
    method editFields (line 319) | function editFields(){
    method get_fields (line 586) | function get_fields(){
    method getliandong (line 2053) | function getliandong(){
    method getSelect (line 2100) | function getSelect(){
    method deleteFields (line 2239) | function deleteFields(){
    method changeOrders (line 2260) | function changeOrders(){
    method changeTid (line 2270) | function changeTid(){
    method editFieldsValue (line 2295) | function editFieldsValue(){
    method fieldsList (line 2305) | function fieldsList(){
    method changeFieldList (line 2399) | function changeFieldList(){

FILE: app/admin/c/IndexController.php
  class IndexController (line 18) | class IndexController extends CommonController
    method index (line 20) | public function index(){
    method details (line 55) | public function details(){
    method welcome (line 141) | public function welcome(){
    method beifen (line 166) | function beifen(){
    method backup (line 189) | function backup(){
    method huanyuan (line 205) | function huanyuan(){
    method shanchu (line 223) | function shanchu(){
    method desktop (line 254) | function desktop(){
    method viewPower (line 267) | function viewPower(){
    method getNav (line 283) | function getNav(){
    method desktop_add (line 314) | function desktop_add(){
    method desktop_edit (line 359) | function desktop_edit(){
    method desktop_del (line 443) | function desktop_del(){
    method unicode (line 460) | function unicode(){
    method update_session_maxlifetime (line 465) | function update_session_maxlifetime(){
    method cleanCache (line 471) | function cleanCache(){
    method showlabel (line 671) | function showlabel(){
    method sitemap (line 678) | function sitemap(){
    method murl (line 1003) | function murl($id,$htmlurl=null,$molds='article'){
    method tohtml (line 1030) | function tohtml(){
    method removeDir (line 1280) | function removeDir($dirName)
    method mhtml (line 1299) | function mhtml($url){
    method html_classtype (line 1315) | function html_classtype($sql,$limit=null){
    method html_molds (line 1412) | function html_molds($model,$sql=null,$limit=null){
    method menu (line 1503) | public function menu(){
    method addmenu (line 1510) | public function addmenu(){
    method editmenu (line 1553) | public function editmenu(){
    method delmenu (line 1606) | public function delmenu(){

FILE: app/admin/c/JzattrController.php
  class JzattrController (line 18) | class JzattrController extends CommonController
    method index (line 21) | public function index(){
    method addAttr (line 53) | public function addAttr(){
    method editAttr (line 68) | public function editAttr(){
    method delAttr (line 91) | function delAttr(){
    method changeStatus (line 107) | function changeStatus(){

FILE: app/admin/c/JzchainController.php
  class JzchainController (line 18) | class JzchainController extends CommonController
    method index (line 21) | public function index(){
    method addchain (line 68) | public function addchain(){
    method editchain (line 89) | public function editchain(){
    method delchain (line 118) | function delchain(){
    method changeStatus (line 136) | function changeStatus(){
    method delAll (line 147) | function delAll(){

FILE: app/admin/c/LinksController.php
  class LinksController (line 18) | class LinksController extends CommonController
    method index (line 21) | public function index(){
    method addlinks (line 94) | public function addlinks(){
    method editlinks (line 138) | public function editlinks(){
    method copylinks (line 234) | public function  copylinks(){
    method deleteAll (line 255) | function deleteAll(){
    method deletelinks (line 277) | function deletelinks(){
    method editOrders (line 297) | function editOrders(){
    method changeType (line 310) | function changeType(){
    method copyAll (line 325) | function copyAll(){
    method checkAll (line 341) | function checkAll(){
    method linktype (line 407) | function linktype(){
    method linktypeadd (line 413) | function linktypeadd(){
    method linktypeedit (line 426) | function linktypeedit(){
    method linktypedelete (line 445) | function linktypedelete(){

FILE: app/admin/c/LoginController.php
  class LoginController (line 18) | class LoginController extends Controller
    method _init (line 20) | public function _init(){
    method index (line 30) | public function index(){
    method vercode (line 102) | function vercode(){
    method loginout (line 114) | function loginout(){

FILE: app/admin/c/MemberController.php
  class MemberController (line 19) | class MemberController extends CommonController
    method index (line 22) | function index(){
    method memberadd (line 68) | function memberadd(){
    method memberedit (line 96) | function memberedit(){
    method member_del (line 142) | function member_del(){
    method deleteAll (line 164) | function deleteAll(){
    method change_status (line 184) | public function change_status(){
    method membergroup (line 199) | public function membergroup(){
    method editOrders (line 209) | function editOrders(){
    method groupadd (line 220) | function groupadd(){
    method groupedit (line 260) | function groupedit(){
    method change_group_status (line 303) | public function change_group_status(){
    method group_del (line 317) | function group_del(){
    method power (line 343) | public function power(){
    method addrulers (line 353) | public function addrulers(){
    method editrulers (line 384) | public function editrulers(){
    method deleterulers (line 409) | public function deleterulers(){

FILE: app/admin/c/MessageController.php
  class MessageController (line 19) | class MessageController extends CommonController
    method deleteAll (line 23) | function deleteAll(){
    method messagelist (line 44) | function messagelist(){
    method editmessage (line 92) | function editmessage(){
    method deletemessage (line 117) | function deletemessage(){
    method checkAll (line 136) | function checkAll(){

FILE: app/admin/c/MoldsController.php
  class MoldsController (line 19) | class MoldsController extends CommonController
    method index (line 22) | function index(){
    method addMolds (line 36) | function addMolds(){
    method editMolds (line 524) | function editMolds(){
    method deleteMolds (line 581) | function deleteMolds(){
    method restrucFields (line 638) | function restrucFields(){
    method getTableFields (line 1166) | private function getTableFields($table){

FILE: app/admin/c/OrderController.php
  class OrderController (line 19) | class OrderController extends CommonController
    method index (line 23) | function index(){
    method details (line 152) | function details(){
    method deleteorder (line 230) | function deleteorder(){
    method deleteAll (line 249) | function deleteAll(){
    method czlist (line 270) | function czlist(){
    method chongzhi (line 368) | function chongzhi(){
    method delbuylog (line 400) | function delbuylog(){
    method delAllbuylog (line 419) | function delAllbuylog(){

FILE: app/admin/c/PluginsController.php
  class PluginsController (line 18) | class PluginsController extends CommonController
    method index (line 21) | public function index(){
    method change_status (line 269) | function change_status(){
    method output (line 293) | function output(){
    method addFileToZip (line 339) | function addFileToZip($path, $zip) {
    method action_do (line 362) | function action_do(){
    method file2dir (line 556) | function file2dir($sourcefile, $filename){
    method recurse_copy (line 564) | function recurse_copy($src,$dst) {
    method setconf (line 583) | function setconf(){
    method desc (line 610) | function desc(){
    method update (line 629) | function update(){
    method get_zip_originalsize (line 835) | function get_zip_originalsize($filename, $path) {

FILE: app/admin/c/ProductController.php
  class ProductController (line 19) | class ProductController extends CommonController
    method productlist (line 23) | function productlist(){
    method addproduct (line 88) | function addproduct(){
    method editproduct (line 283) | function editproduct(){
    method deleteproduct (line 561) | function deleteproduct(){
    method copyproduct (line 591) | function copyproduct(){
    method deleteAll (line 611) | function deleteAll(){
    method copyAll (line 649) | function copyAll(){
    method changeType (line 669) | function changeType(){
    method editProductOrders (line 688) | function editProductOrders(){
    method changeAttribute (line 699) | function changeAttribute(){
    method checkAll (line 742) | function checkAll(){
    method getTableFields (line 809) | private function getTableFields($table){

FILE: app/admin/c/RecycleController.php
  class RecycleController (line 19) | class RecycleController extends CommonController
    method index (line 21) | public function index(){
    method restore (line 57) | public function restore(){
    method restoreAll (line 96) | public function restoreAll(){
    method del (line 134) | public function del(){
    method delAll (line 149) | public function delAll(){

FILE: app/admin/c/RulersController.php
  class RulersController (line 19) | class RulersController extends CommonController
    method index (line 21) | public function index(){
    method addrulers (line 31) | public function addrulers(){
    method editrulers (line 64) | public function editrulers(){
    method deleterulers (line 91) | public function deleterulers(){

FILE: app/admin/c/SysController.php
  class SysController (line 19) | class SysController extends CommonController
    method index (line 24) | public function index(){
    method custom_del (line 206) | public function custom_del(){
    method loginlog (line 222) | public function loginlog(){
    method pictures (line 273) | public function pictures(){
    method deletePic (line 317) | public function deletePic(){
    method deletePicAll (line 343) | public function deletePicAll(){
    method uploadcert (line 372) | public function uploadcert(){
    method datacache (line 423) | public function datacache(){
    method addcache (line 428) | public function addcache(){
    method editcache (line 481) | public function editcache(){
    method delcache (line 541) | public function delcache(){
    method viewcache (line 552) | public function viewcache(){
    method systype (line 578) | public function systype(){
    method systypestatus (line 584) | public function systypestatus(){
    method editctype (line 596) | public function editctype(){
    method addctype (line 625) | public function addctype(){
    method ctype (line 652) | public function ctype(){
    method setfield (line 665) | public function setfield(){

FILE: app/admin/c/TemplateController.php
  class TemplateController (line 18) | class TemplateController extends CommonController
    method index (line 36) | public function index(){
    method file2dir (line 261) | function file2dir($sourcefile, $filename){
    method recurse_copy (line 269) | function recurse_copy($src,$dst) {
    method desc (line 287) | function desc(){
    method update (line 308) | function update(){
    method upzip (line 464) | function upzip($filename,$path){
    method get_zip_originalsize (line 487) | function get_zip_originalsize($filename, $path) {
    method toBackup (line 536) | private function toBackup(){
    method backup (line 554) | private function backup($tables = array())
    method setTables (line 581) | private function setTables($tables = array())
    method query (line 599) | private function query($sql = '')
    method getTables (line 610) | private function getTables()
    method getDDL (line 626) | private function getDDL($table = '')
    method getData (line 637) | private function getData($table = '')
    method writeToFile (line 674) | private function writeToFile($tables = array(), $ddl = array(), $data ...

FILE: app/admin/c/UploadsController.php
  class UploadsController (line 7) | class UploadsController extends CommonController
    method index (line 9) | function index(){
    method catchimage (line 196) | function catchimage($CONFIG){
    method listfile (line 235) | function listfile($CONFIG){
    method getfiles (line 302) | function getfiles($path, $allowFiles, &$files = array())
    method array_sort (line 325) | function array_sort($array,$row,$type){
    method uploadfile (line 345) | function uploadfile($CONFIG){

FILE: app/admin/c/WechatController.php
  class WechatController (line 18) | class WechatController extends CommonController
    method wxcaidan (line 20) | public function wxcaidan(){
    method sucai (line 220) | public function sucai(){
    method getAccessToken (line 256) | public function getAccessToken(){

FILE: app/admin/exts/jizhicmsupdate/PluginsController.php
  class PluginsController (line 16) | class PluginsController extends Controller {
    method _init (line 31) | public function _init(){
    method install (line 78) | public  function install(){
    method JZ_mysql (line 87) | private function JZ_mysql(){
    method removeFile (line 100) | private function removeFile($from,$to){
    method recurse_copy (line 129) | function recurse_copy($src,$dst) {
    method file2dir (line 146) | function file2dir($sourcefile, $filename){
    method getTableFields (line 156) | private function getTableFields($table){
    method getTableData (line 183) | private function getTableData(){
    method JZ_backup (line 203) | private function JZ_backup(){
    method uninstall (line 219) | public function uninstall(){
    method desc (line 226) | public function desc(){
    method setconf (line 231) | public  function setconf($plugins){
    method setconfigdata (line 240) | public function setconfigdata($data){
    method backup (line 255) | private function backup($tables = array())
    method setTables (line 282) | private function setTables($tables = array())
    method query (line 300) | private function query($sql = '')
    method getTables (line 311) | private function getTables()
    method getDDL (line 327) | private function getDDL($table = '')
    method getData (line 338) | private function getData($table = '')
    method writeToFile (line 375) | private function writeToFile($tables = array(), $ddl = array(), $data ...

FILE: app/admin/plugins/IndexController.php
  class IndexController (line 18) | class IndexController extends CommonController
    method test (line 21) | public function test(){

FILE: app/admin/t/tpl/style/fonts/iconfont.js
  function s (line 1) | function s(){i||(i=!0,l())}
  function p (line 1) | function p(){try{o.documentElement.doScroll("left")}catch(a){return void...

FILE: app/admin/t/tpl/style/js/target_page.js
  function x_admin_show (line 11) | function x_admin_show(title,url,w,h){
  function x_top_show (line 16) | function x_top_show(title,url,w,h){

FILE: app/admin/t/tpl/style/js/target_window.js
  function x_admin_show (line 11) | function x_admin_show(title,url,w,h){
  function x_top_show (line 39) | function x_top_show(title,url,w,h){

FILE: app/admin/t/tpl/style/js/xadmin.js
  function getCateId (line 237) | function getCateId(cateId) {
  function x_all_show (line 255) | function x_all_show(title,url,w,h){
  function x_admin_close (line 283) | function x_admin_close(){
  function CustomRightClick (line 303) | function CustomRightClick () {

FILE: app/admin/t/tpl/style/js/xm-select.js
  function n (line 8) | function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{...
  function o (line 8) | function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){va...
  function r (line 8) | function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enume...
  function i (line 8) | function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||fu...
  function a (line 8) | function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Ar...
  function l (line 8) | function l(e){return e.nodeType?e:document.querySelector(e)}
  function s (line 8) | function s(){for(var e=[],t=0;t<arguments.length;t++)e.push("".concat(t+...
  function c (line 8) | function c(e){return"[object Array]"==Object.prototype.toString.call(e)}
  function u (line 8) | function u(e){return"[object Function]"==Object.prototype.toString.call(e)}
  function p (line 8) | function p(e){return e-=0,isNaN(e)&&(e=0),e}
  function f (line 8) | function f(e,t){var n;for(n in t)e[n]=e[n]&&"[object Object]"===e[n].toS...
  function d (line 8) | function d(e,t,n){for(var o=n.value,r=i(t),a=function(n){var i=e[n];t.fi...
  function h (line 8) | function h(){return-1!=navigator.userAgent.indexOf("Mac OS")?"mac":"win"}
  function m (line 8) | function m(e,t,n,o){if(e&&c(e)){var r=o.children,i=o.selected,a=o.value;...
  function b (line 8) | function b(e,t,n){if(e&&c(e))return e.map((function(e){return e=function...
  function y (line 8) | function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function d (line 8) | function d(e,t){for(var n=0;n<e.length;n++){var o=e[n],r=i[o.id];if(r){r...
  function h (line 8) | function h(e,t){for(var n=[],o={},r=0;r<e.length;r++){var i=e[r],a=t.bas...
  function m (line 8) | function m(e,t){var n=s(e.insertInto);if(!n)throw new Error("Couldn't fi...
  function b (line 8) | function b(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e...
  function y (line 8) | function y(e){var t=document.createElement("style");if(void 0===e.attrs....
  function x (line 8) | function x(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n...
  function v (line 8) | function v(e,t){var n,o,r,i;if(t.transform&&e.css){if(!(i="function"==ty...
  function w (line 8) | function w(e,t,n,o){var r=n?"":o.css;if(e.styleSheet)e.styleSheet.cssTex...
  function k (line 8) | function k(e,t){var n=t.css,o=t.media;if(o&&e.setAttribute("media",o),e....
  function O (line 8) | function O(e,t,n){var o=n.css,r=n.sourceMap,i=void 0===t.convertToAbsolu...
  function d (line 8) | function d(e,t){for(var n in t)e[n]=t[n];return e}
  function h (line 8) | function h(e){var t=e.parentNode;t&&t.removeChild(e)}
  function m (line 8) | function m(e,t,n){var o,r=arguments,i={};for(o in t)"key"!==o&&"ref"!==o...
  function b (line 8) | function b(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null...
  function y (line 8) | function y(e){return e.children}
  function x (line 8) | function x(e,t){this.props=e,this.context=t}
  function v (line 8) | function v(e,t){if(null==t)return e.__?v(e.__,e.__.__k.indexOf(e)+1):nul...
  function g (line 8) | function g(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.ba...
  function _ (line 8) | function _(e){(!e.__d&&(e.__d=!0)&&r.push(e)&&!w.__r++||a!==o.debounceRe...
  function w (line 8) | function w(){for(var e;w.__r=r.length;)e=r.sort((function(e,t){return e....
  function k (line 8) | function k(e,t,n,o,r,i,a,l,s,c){var f,d,m,x,g,_,w,k=o&&o.__k||p,C=k.leng...
  function O (line 8) | function O(e,t,n,o,r,i,a){var l,s,c;if(void 0!==t.__d)l=t.__d,t.__d=void...
  function C (line 8) | function C(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]="number"==typeof n&...
  function j (line 8) | function j(e,t,n,o,r){var i,a,l,s,c;if(r?"className"===t&&(t="class"):"c...
  function S (line 8) | function S(e){this.l[e.type](o.event?o.event(e):e)}
  function E (line 8) | function E(e,t,n){var o,r;for(o=0;o<e.__k.length;o++)(r=e.__k[o])&&(r.__...
  function A (line 8) | function A(e,t,n,r,i,a,l,s,c){var u,p,f,h,m,b,v,g,_,w,O,C=t.type;if(void...
  function R (line 8) | function R(e,t){o.__c&&o.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=...
  function P (line 8) | function P(e,t,n,o,r,i,a,l){var s,c,f,d,h,m=n.props,b=t.props;if(r="svg"...
  function I (line 8) | function I(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){o._...
  function D (line 8) | function D(e,t,n){var r,i,a;if(o.unmount&&o.unmount(e),(r=e.ref)&&(r.cur...
  function M (line 8) | function M(e,t,n){return this.constructor(e,n)}
  function T (line 8) | function T(e,t,n){var r,i,a;o.__&&o.__(e,t),i=(r=n===l)?null:n&&n.__k||t...
  function z (line 8) | function z(e){return(z="function"==typeof Symbol&&"symbol"==typeof Symbo...
  function L (line 8) | function L(e){return function(e){if(Array.isArray(e))return V(e)}(e)||fu...
  function V (line 8) | function V(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Ar...
  function F (line 8) | function F(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.en...
  function U (line 8) | function U(e,t){return(U=Object.setPrototypeOf||function(e,t){return e._...
  function N (line 8) | function N(e){var t=function(){if("undefined"==typeof Reflect||!Reflect....
  function B (line 8) | function B(e,t){return!t||"object"!==z(t)&&"function"!=typeof t?function...
  function K (line 8) | function K(e){return(K=Object.setPrototypeOf?Object.getPrototypeOf:funct...
  function i (line 8) | function i(e){return function(e,t){if(!(e instanceof t))throw new TypeEr...
  function q (line 8) | function q(e){return(q="function"==typeof Symbol&&"symbol"==typeof Symbo...
  function Y (line 8) | function Y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){va...
  function Z (line 8) | function Z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[...
  function Q (line 8) | function Q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enume...
  function J (line 8) | function J(e){return function(e){if(Array.isArray(e))return W(e)}(e)||fu...
  function W (line 8) | function W(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Ar...
  function G (line 8) | function G(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.en...
  function X (line 8) | function X(e,t){return(X=Object.setPrototypeOf||function(e,t){return e._...
  function $ (line 8) | function $(e){var t=function(){if("undefined"==typeof Reflect||!Reflect....
  function ee (line 8) | function ee(e,t){return!t||"object"!==q(t)&&"function"!=typeof t?functio...
  function te (line 8) | function te(e){return(te=Object.setPrototypeOf?Object.getPrototypeOf:fun...
  function i (line 8) | function i(e){var t;return function(e,t){if(!(e instanceof t))throw new ...
  function re (line 8) | function re(e){return(re="function"==typeof Symbol&&"symbol"==typeof Sym...
  function ie (line 8) | function ie(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.e...
  function ae (line 8) | function ae(e,t){return(ae=Object.setPrototypeOf||function(e,t){return e...
  function le (line 8) | function le(e){var t=function(){if("undefined"==typeof Reflect||!Reflect...
  function se (line 8) | function se(e,t){return!t||"object"!==re(t)&&"function"!=typeof t?functi...
  function ce (line 8) | function ce(e){return(ce=Object.setPrototypeOf?Object.getPrototypeOf:fun...
  function i (line 8) | function i(e){return function(e,t){if(!(e instanceof t))throw new TypeEr...
  function pe (line 8) | function pe(e){return(pe="function"==typeof Symbol&&"symbol"==typeof Sym...
  function fe (line 8) | function fe(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.e...
  function de (line 8) | function de(e,t){return(de=Object.setPrototypeOf||function(e,t){return e...
  function he (line 8) | function he(e){var t=function(){if("undefined"==typeof Reflect||!Reflect...
  function me (line 8) | function me(e,t){return!t||"object"!==pe(t)&&"function"!=typeof t?functi...
  function be (line 8) | function be(e){return(be=Object.setPrototypeOf?Object.getPrototypeOf:fun...
  function i (line 8) | function i(e){var t;return function(e,t){if(!(e instanceof t))throw new ...
  function E (line 8) | function E(e,t){t.forEach((function(t){t[w]?(p.strict||"hidden"===b.pare...
  function ve (line 8) | function ve(e){return(ve="function"==typeof Symbol&&"symbol"==typeof Sym...
  function ge (line 8) | function ge(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.e...
  function _e (line 8) | function _e(e,t){return(_e=Object.setPrototypeOf||function(e,t){return e...
  function we (line 8) | function we(e){var t=function(){if("undefined"==typeof Reflect||!Reflect...
  function ke (line 8) | function ke(e,t){return!t||"object"!==ve(t)&&"function"!=typeof t?functi...
  function Oe (line 8) | function Oe(e){return(Oe=Object.setPrototypeOf?Object.getPrototypeOf:fun...
  function i (line 8) | function i(e){var t;return function(e,t){if(!(e instanceof t))throw new ...
  function je (line 8) | function je(){return(je=Object.assign||function(e){for(var t=1;t<argumen...
  function Se (line 8) | function Se(e){return function(e){if(Array.isArray(e))return Ee(e)}(e)||...
  function Ee (line 8) | function Ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new A...
  function Ae (line 8) | function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){v...
  function Re (line 8) | function Re(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments...
  function Pe (line 8) | function Pe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enum...
  function Ie (line 8) | function Ie(e){return(Ie="function"==typeof Symbol&&"symbol"==typeof Sym...
  function De (line 8) | function De(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.e...
  function Me (line 8) | function Me(e,t){return(Me=Object.setPrototypeOf||function(e,t){return e...
  function Te (line 8) | function Te(e){var t=function(){if("undefined"==typeof Reflect||!Reflect...
  function ze (line 8) | function ze(e,t){return!t||"object"!==Ie(t)&&"function"!=typeof t?Le(e):t}
  function Le (line 8) | function Le(e){if(void 0===e)throw new ReferenceError("this hasn't been ...
  function Ve (line 8) | function Ve(e){return(Ve=Object.setPrototypeOf?Object.getPrototypeOf:fun...
  function i (line 8) | function i(e){var t;return function(e,t){if(!(e instanceof t))throw new ...
  function Be (line 8) | function Be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){v...
  function Ke (line 8) | function Ke(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments...
  function He (line 8) | function He(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enum...
  function qe (line 8) | function qe(){return(qe=Object.assign||function(e){for(var t=1;t<argumen...
  function Ye (line 8) | function Ye(e){return(Ye="function"==typeof Symbol&&"symbol"==typeof Sym...
  function Ze (line 8) | function Ze(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.e...
  function e (line 8) | function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("C...
  function Je (line 8) | function Je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enum...
  function We (line 8) | function We(e){return function(e){if(Array.isArray(e))return Ge(e)}(e)||...
  function Ge (line 8) | function Ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new A...

FILE: app/home/c/CommentController.php
  class CommentController (line 19) | class CommentController extends CommonController
    method index (line 22) | function index(){
    method getlist (line 281) | function getlist(){

FILE: app/home/c/CommonController.php
  class CommonController (line 17) | class CommonController extends Controller
    method _init (line 19) | function _init(){
    method close (line 117) | function close(){
    method vercode (line 127) | function vercode(){
    method checklogin (line 138) | function checklogin(){
    method multiuploads (line 148) | function multiuploads(){
    method uploads (line 280) | function uploads(){
    method qrcode (line 419) | function qrcode(){
    method get_fields (line 430) | function get_fields(){
    method jizhi (line 885) | function jizhi(){
    method error (line 890) | function error($msg){
    method updateactive (line 897) | function updateactive(){
    method gohits (line 905) | function gohits(){

FILE: app/home/c/ErrorController.php
  class ErrorController (line 17) | class ErrorController extends Controller
    method index (line 20) | function index($msg=''){

FILE: app/home/c/HomeController.php
  class HomeController (line 20) | class HomeController extends CommonController
    method index (line 24) | function index(){
    method jizhi (line 38) | function jizhi(){
    method auto_url (line 405) | function auto_url(){
    method jizhi_details (line 624) | function jizhi_details($id){
    method search (line 783) | function search(){
    method searchAll (line 915) | function searchAll(){
    method error (line 1028) | function error($msg){
    method rss (line 1053) | function rss(){

FILE: app/home/c/JzpayController.php
  class JzpayController (line 19) | class JzpayController extends CommonController
    method _init (line 27) | public function _init(){
    method checke_order (line 33) | private function checke_order($orderno=null){
    method return_pay (line 52) | function return_pay(){
    method notify_pay (line 82) | function notify_pay(){
    method overpay (line 117) | private function overpay($orderno){

FILE: app/home/c/LoginController.php
  class LoginController (line 18) | class LoginController extends CommonController
    method _init (line 20) | function _init(){
    method index (line 34) | public function index(){
    method register (line 185) | function register(){
    method forget (line 353) | function forget(){
    method mforget (line 448) | function mforget(){
    method nologin (line 594) | function nologin(){
    method loginout (line 601) | function loginout(){

FILE: app/home/c/MessageController.php
  class MessageController (line 19) | class MessageController extends CommonController
    method index (line 22) | function index(){
    method details (line 233) | function details(){

FILE: app/home/c/MypayController.php
  class MypayController (line 19) | class MypayController extends CommonController
    method _init (line 27) | public function _init(){
    method topay (line 35) | public function topay(){
    method alipay_return_pay (line 610) | function alipay_return_pay(){
    method alipay_notify_pay (line 657) | function alipay_notify_pay(){
    method alipay_check_order (line 703) | public function alipay_check_order(){
    method wechat_notify_pay (line 793) | public function wechat_notify_pay(){
    method wechat_return_pay (line 853) | public function wechat_return_pay(){
    method check_wechat_order (line 899) | public function check_wechat_order(){
    method updatejifen (line 949) | private function updatejifen($order){
    method updatemoney (line 966) | private function updatemoney($order){
    method overpay (line 983) | private function overpay($orderno){
    method wechat_scan_over (line 996) | public function wechat_scan_over(){

FILE: app/home/c/OrderController.php
  class OrderController (line 19) | class OrderController extends CommonController
    method _init (line 21) | function _init(){
    method create (line 34) | function create(){
    method pay (line 142) | function pay(){
    method wxpay (line 662) | function wxpay(){
    method wxh5pay (line 696) | function wxh5pay(){

FILE: app/home/c/ScreenController.php
  class ScreenController (line 19) | class ScreenController extends CommonController
    method index (line 21) | function index(){

FILE: app/home/c/TagsController.php
  class TagsController (line 20) | class TagsController extends CommonController
    method index (line 22) | function index(){

FILE: app/home/c/UploadsController.php
  class UploadsController (line 7) | class UploadsController extends CommonController
    method index (line 9) | function index(){
    method catchimage (line 245) | function catchimage($CONFIG){
    method listfile (line 284) | function listfile($CONFIG){
    method getfiles (line 351) | function getfiles($path, $allowFiles, &$files = array())
    method array_sort (line 374) | function array_sort($array,$row,$type){
    method uploadfile (line 394) | function uploadfile($CONFIG){

FILE: app/home/c/UserController.php
  class UserController (line 19) | class UserController extends CommonController
    method _init (line 21) | function _init(){
    method checklogin (line 34) | function checklogin(){
    method index (line 55) | function index(){
    method userinfo (line 72) | function userinfo(){
    method orders (line 199) | function orders(){
    method orderdetails (line 259) | function orderdetails(){
    method payment (line 306) | function payment(){
    method orderdel (line 370) | function orderdel(){
    method comment (line 384) | function comment(){
    method commentdel (line 423) | function commentdel(){
    method likesAction (line 437) | function likesAction(){
    method checkLikes (line 632) | function checkLikes(){
    method likes (line 644) | function likes(){
    method likesdel (line 685) | function likesdel(){
    method collectAction (line 697) | function collectAction(){
    method checkCollect (line 824) | function checkCollect(){
    method collect (line 836) | function collect(){
    method collectdel (line 877) | function collectdel(){
    method cart (line 890) | function cart(){
    method addcart (line 928) | function addcart(){
    method delcart (line 984) | function delcart(){
    method posts (line 1017) | function posts(){
    method getContent (line 1074) | function getContent(){
    method release (line 1088) | function release(){
    method del (line 1336) | function del(){
    method uploads (line 1358) | function uploads(){
    method jizhi (line 1426) | function jizhi(){
    method follow (line 1430) | function follow(){
    method nofollow (line 1520) | function nofollow(){
    method fans (line 1552) | function fans(){
    method notify (line 1583) | function notify(){
    method allread (line 1639) | function allread(){
    method notifyto (line 1646) | function notifyto(){
    method notifydel (line 1663) | function notifydel(){
    method active (line 1681) | function active(){
    method setmsg (line 1956) | function setmsg(){
    method getclass (line 1975) | function getclass(){
    method wallet (line 1986) | function wallet(){
    method buy (line 2005) | function buy(){
    method buylist (line 2041) | function buylist(){
    method buydetails (line 2097) | function buydetails(){
    method getmsg (line 2115) | function getmsg(){
    method preview (line 2120) | function preview(){

FILE: app/home/c/WechatController.php
  class WechatController (line 19) | class WechatController extends CommonController
    method _init (line 21) | public function _init(){
    method index (line 26) | public function index(){
    method login (line 35) | public function login(){
    method bindinguser (line 95) | public function bindinguser(){
    method checkWeixin (line 142) | public function checkWeixin(){
    method responseMsg (line 165) | public function responseMsg(){
    method getAccessToken (line 257) | public function getAccessToken(){
    method getopenid (line 267) | public	function getopenid(){
    method register (line 295) | public function register(){
    method sendTemplate (line 358) | function sendTemplate($data){
    method hongbao (line 372) | function hongbao($title,$money,$openid,$biaoyu='恭喜发财'){
    method create_noncestr (line 410) | function create_noncestr($length=32) {
    method arrayToXml (line 422) | function arrayToXml($arr) {
    method curl_post_ssl (line 437) | function curl_post_ssl($url, $vars, $second=30,$aHeader=array())

FILE: conf/Functions.php
  function webConf (line 22) | function webConf($str=null){
  function get_custom (line 51) | function get_custom($str = null)
  function get_template (line 58) | function get_template()
  function curl_http (line 144) | function curl_http($url, $data = null, $method = 'GET')
  function get_all_page (line 178) | function get_all_page($url, $start = 5, $end = 0, $match = '{$}')
  function adminInfo (line 198) | function adminInfo($id, $str = null)
  function checkAction (line 210) | function checkAction($action)
  function getTree (line 255) | function getTree($array, $pid = 0, $level = 0)
  function haschild (line 285) | function haschild($array, $pid)
  function show_tree (line 299) | function show_tree($array)
  function set_class_haschild (line 308) | function set_class_haschild($classtype = null)
  function get_classtype_tree (line 332) | function get_classtype_tree()
  function classTypeData (line 350) | function classTypeData()
  function classTypeDataMobile (line 384) | function classTypeDataMobile()
  function checkClass (line 418) | function checkClass($pid, $tid){
  function get_children (line 446) | function get_children($type, $classtype = null, $code = 1)
  function get_info_table (line 511) | function get_info_table($table, $where = null, $str = null)
  function get_all_info_table (line 524) | function get_all_info_table($table, $where = null, $order = null, $limit...
  function get_fields_data (line 537) | function get_fields_data($data, $molds, $isadmin = 1)
  function molds_search (line 656) | function molds_search($molds = null, $data = null)
  function get_classtype (line 1008) | function get_classtype(){
  function format_fields (line 1023) | function format_fields($fields = null, $data = null)
  function frvercode (line 1175) | function frvercode($num = 4, $str = 'frcode')
  function aCheckSubstrs (line 1225) | function aCheckSubstrs($substrs, $text)
  function isMobile (line 1236) | function isMobile()
  function isWeixin (line 1256) | function isWeixin()
  function gourl (line 1266) | function gourl($id, $htmlurl = null, $molds = 'article')
  function all_url (line 1301) | function all_url($id, $molds = 'article', $htmlurl = null){
  function incrData (line 1334) | function incrData($table = null, $id = 0, $field = 'hits', $num = 1)
  function get_key_field_select (line 1359) | function get_key_field_select($key = 0, $molds = null, $field = null)
  function get_field_select (line 1416) | function get_field_select($molds = null, $field = null)
  function get_file_byte (line 1440) | function get_file_byte($file)
  function show_comment (line 1478) | function show_comment($tid = 0, $id = 0, $str = null)
  function get_comment_user (line 1512) | function get_comment_user($id)
  function get_comment_num (line 1524) | function get_comment_num($tid, $id = 0)
  function change_parse_url (line 1535) | function change_parse_url($arr, $str)
  function get_fields_show (line 1550) | function get_fields_show($tid, $molds)
  function jz_show_fields (line 1565) | function jz_show_fields($data = array(), $fields = null)
  function send_mail (line 1695) | function send_mail($send_mail, $password, $send_name, $to_mail, $title, ...
  function checkCollect (line 1796) | function checkCollect($tid = 0, $id = 0)
  function checkLikes (line 1811) | function checkLikes($tid = 0, $id = 0)
  function has_no_read_comment (line 1840) | function has_no_read_comment()
  function has_no_read_msg (line 1852) | function has_no_read_msg()
  function html_decode (line 1884) | function html_decode($data = null)
  function str_replace_limit (line 1894) | function str_replace_limit($search, $replace, $subject, $limit = -1)
  function formatTime (line 1908) | function formatTime($sTime, $formt = 'Y-m-d')
  function htmldecode (line 1946) | function htmldecode($data)
  function jz_zan (line 1955) | function jz_zan($tid, $id)
  function jz_collect (line 1966) | function jz_collect($tid, $id)
  function memberInfo (line 1976) | function memberInfo($id, $str = null)
  function watermark (line 1988) | function watermark($img, $water, $pos = 9, $tm = 100, $word = '')
  function getImageInfo (line 2213) | function getImageInfo($path)
  function openImg (line 2224) | function openImg($path, $type)
  function isfollow (line 2252) | function isfollow($id, $other)
  function jz_fans (line 2264) | function jz_fans($id = 0)
  function jz_follow (line 2276) | function jz_follow($id = 0)
  function deldir (line 2295) | function deldir($dir)
  function jzresize (line 2330) | function jzresize($src_image, $out_width = NULL, $out_height = NULL, $mo...
  function jzcachedata (line 2442) | function jzcachedata($field)
  function getclasstypedata (line 2482) | function getclasstypedata($array, $m = 1)
  function get_all_children (line 2508) | function get_all_children($type, $classtypedata)
  function jztpldata (line 2520) | function jztpldata()
  function jztpldatafield (line 2591) | function jztpldatafield()
  function waterwordmark (line 2669) | function waterwordmark($title,$path,$isnew = 1){
  function smb_str_split (line 2880) | function smb_str_split($string, $split_length = 1, $encoding = null) {
  function check_field_must (line 2897) | function check_field_must($data,$molds){
  function remote_data_local (line 2927) | function remote_data_local($body = '', $tid=0, $molds=null)

FILE: frphp/common/Error.php
  function getsource (line 35) | function getsource($file, $line){
  function highlight_code (line 50) | function highlight_code($code){

FILE: frphp/common/Functions.php
  function M (line 27) | function M($name = null,$prefix = 1) {
  function format_param (line 52) | function format_param($value=null,$int=0,$default=false){
  function SafeFilter (line 89) | function SafeFilter($arr)
  function array_format (line 95) | function array_format(&$item, $key)
  function unicodeEncode (line 103) | function unicodeEncode($str){
  function unicodeDecode (line 115) | function unicodeDecode($unicode_str){
  function array_pathInfo (line 128) | function array_pathInfo($url){
  function U (line 148) | function U($action=null,$field=null){
  function Error_msg (line 191) | function Error_msg($msg,$url=null){
  function Success (line 215) | function Success($info, $url=null){
  function Error (line 228) | function Error($info, $url=null){
  function JsonReturn (line 248) | function JsonReturn($data){
  function GetIP (line 272) | function GetIP(){
  function get_domain (line 290) | function get_domain(){
  function current_url (line 331) | function current_url(){
  function Redirect (line 346) | function Redirect($url,$info=null,$sec=3){
  function start_session (line 363) | function start_session($expire = 0)  {
  function register_log (line 397) | function register_log($data=null,$dataname=null){
  function show_log (line 434) | function show_log($dataname=null){
  function actionLog (line 459) | function actionLog(){
  function getRandChar (line 495) | function getRandChar($length = 8){
  function newstr (line 510) | function newstr($string, $length, $dot="...") {
  function frencode (line 540) | function frencode($str)
  function frdecode (line 566) | function frdecode($str)
  function dump (line 594) | function dump($vars){
  function setCache (line 606) | function setCache($str,$data,$timeout=-1){
  function getCache (line 637) | function getCache($str=false){
  function extendFile (line 664) | function extendFile($filepath){
  function JZLANG (line 684) | function JZLANG($str=null){

FILE: frphp/db/DBholder.php
  class DBholder (line 20) | class DBholder{
    method __construct (line 27) | private function __construct(){
    method getInstance (line 41) | public static function getInstance(){
    method query (line 49) | public function query($sql){
    method getArray (line 72) | public function getArray($sql){
    method exec (line 83) | public function exec($sql)
    method lastInsertId (line 104) | public function lastInsertId(){
    method getTable (line 109) | public function getTable($table){

FILE: frphp/extend/ArrayPage.php
  class ArrayPage (line 15) | class ArrayPage {
    method __construct (line 49) | public function __construct($array){
    method query (line 60) | public function query($param){
    method pageList (line 76) | public function pageList($pv=5){
    method setPage (line 151) | public function setPage($config){
    method go (line 163) | public function go(){

FILE: frphp/extend/DB_API.php
  class DB_API (line 16) | class DB_API
    method __construct (line 37) | public function __construct($config){
    method set_table (line 52) | public function set_table($table=null,$primary='id'){
    method getData (line 62) | public function getData($sql)
    method getCount (line 74) | public function getCount($conditions){
    method getField (line 92) | public function getField($where=null,$fields=null){
    method goInc (line 102) | public function goInc($conditions,$field,$vp=1){
    method goDec (line 122) | public function goDec($conditions,$field,$vp=1){
    method update (line 126) | public function update($conditions,$row)
    method findAll (line 164) | public function findAll($conditions=null,$order=null,$fields=null,$lim...
    method find (line 194) | public function find($where=null,$order=null,$fields=null,$limit=1)
    method query (line 204) | public function query($sql){
    method findSql (line 216) | public function findSql($sql)
    method delete (line 222) | public function delete($conditions)
    method add (line 240) | public function add($row)
    method __prepera_format (line 270) | private function __prepera_format($rows)

FILE: frphp/extend/DatabaseTool.php
  class DatabaseTool (line 9) | class DatabaseTool
    method __construct (line 30) | public function __construct($config = array())
    method backup (line 58) | public function backup($tables = array())
    method setTables (line 87) | private function setTables($tables = array())
    method query (line 105) | private function query($sql = '')
    method getTables (line 116) | private function getTables()
    method getDDL (line 134) | private function getDDL($table = '')
    method safeParams (line 141) | private function safeParams($value){
    method getData (line 152) | private function getData($table = '')
    method writeToFile (line 201) | private function writeToFile($tables = array(), $ddl = array(), $data ...
    method getError (line 252) | public function getError()
    method restore (line 259) | public function restore($path = ''){
    method parseSQL (line 305) | private function parseSQL($path = '')

FILE: frphp/extend/FrSession.php
  class FrSession (line 11) | class FrSession implements SessionHandlerInterface
    method __construct (line 23) | public function __construct($config = array())
    method checkmkdirs (line 33) | function checkmkdirs($dir, $mode = 0755)
    method open (line 47) | #[\ReturnTypeWillChange]
    method close (line 62) | #[\ReturnTypeWillChange]
    method read (line 76) | #[\ReturnTypeWillChange]
    method write (line 100) | #[\ReturnTypeWillChange]
    method destroy (line 128) | #[\ReturnTypeWillChange]
    method gc (line 145) | #[\ReturnTypeWillChange]
    method sesstime (line 158) | private function sesstime($sfile){

FILE: frphp/extend/PHPMailer/PHPMailerAutoload.php
  function PHPMailerAutoload (line 24) | function PHPMailerAutoload($classname)

FILE: frphp/extend/PHPMailer/class.phpmailer.php
  class PHPMailer (line 28) | class PHPMailer
    method __construct (line 657) | public function __construct($exceptions = null)
    method __destruct (line 667) | public function __destruct()
    method mailPassthru (line 686) | private function mailPassthru($to, $subject, $body, $header, $params)
    method edebug (line 711) | protected function edebug($str)
    method isHTML (line 752) | public function isHTML($isHtml = true)
    method isSMTP (line 765) | public function isSMTP()
    method isMail (line 774) | public function isMail()
    method isSendmail (line 783) | public function isSendmail()
    method isQmail (line 799) | public function isQmail()
    method addAddress (line 817) | public function addAddress($address, $name = '')
    method addCC (line 829) | public function addCC($address, $name = '')
    method addBCC (line 841) | public function addBCC($address, $name = '')
    method addReplyTo (line 852) | public function addReplyTo($address, $name = '')
    method addOrEnqueueAnAddress (line 869) | protected function addOrEnqueueAnAddress($kind, $address, $name)
    method addAnAddress (line 913) | protected function addAnAddress($kind, $address, $name = '')
    method parseAddresses (line 958) | public function parseAddresses($addrstr, $useimap = true)
    method setFrom (line 1011) | public function setFrom($address, $name = '', $auto = true)
    method getLastMessageID (line 1044) | public function getLastMessageID()
    method validateAddress (line 1068) | public static function validateAddress($address, $patternselect = null)
    method idnSupported (line 1164) | public function idnSupported()
    method punyencodeAddress (line 1181) | public function punyencodeAddress($address)
    method send (line 1207) | public function send()
    method preSend (line 1229) | public function preSend()
    method postSend (line 1326) | public function postSend()
    method sendmailSend (line 1365) | protected function sendmailSend($header, $body)
    method isShellSafe (line 1439) | protected static function isShellSafe($string)
    method mailSend (line 1473) | protected function mailSend($header, $body)
    method getSMTPInstance (line 1517) | public function getSMTPInstance()
    method smtpSend (line 1537) | protected function smtpSend($header, $body)
    method smtpConnect (line 1600) | public function smtpConnect($options = null)
    method smtpClose (line 1722) | public function smtpClose()
    method setLanguage (line 1741) | public function setLanguage($langcode = 'en', $lang_path = '')
    method getTranslations (line 1808) | public function getTranslations()
    method addrAppend (line 1823) | public function addrAppend($type, $addr)
    method addrFormat (line 1839) | public function addrFormat($addr)
    method wrapText (line 1861) | public function wrapText($message, $length, $qp_mode = false)
    method utf8CharBoundary (line 1960) | public function utf8CharBoundary($encodedText, $maxLength)
    method setWordWrap (line 2005) | public function setWordWrap()
    method createHeader (line 2029) | public function createHeader()
    method getMailMIME (line 2124) | public function getMailMIME()
    method getSentMIMEMessage (line 2179) | public function getSentMIMEMessage()
    method generateId (line 2188) | protected function generateId() {
    method createBody (line 2199) | public function createBody()
    method getBoundary (line 2413) | protected function getBoundary($boundary, $charSet, $contentType, $enc...
    method endBoundary (line 2443) | protected function endBoundary($boundary)
    method setMessageType (line 2454) | protected function setMessageType()
    method headerLine (line 2480) | public function headerLine($name, $value)
    method textLine (line 2491) | public function textLine($value)
    method addAttachment (line 2508) | public function addAttachment($path, $name = '', $encoding = 'base64',...
    method getAttachments (line 2551) | public function getAttachments()
    method attachAll (line 2564) | protected function attachAll($disposition_type, $boundary)
    method encodeFile (line 2689) | protected function encodeFile($path, $encoding = 'base64')
    method encodeString (line 2730) | public function encodeString($str, $encoding = 'base64')
    method encodeHeader (line 2766) | public function encodeHeader($str, $position = 'text')
    method hasMultiBytes (line 2830) | public function hasMultiBytes($str)
    method has8bitChars (line 2844) | public function has8bitChars($text)
    method base64EncodeWrapMB (line 2859) | public function base64EncodeWrapMB($str, $linebreak = null)
    method encodeQP (line 2901) | public function encodeQP($string, $line_max = 76)
    method encodeQPphp (line 2926) | public function encodeQPphp(
    method encodeQ (line 2942) | public function encodeQ($str, $position = 'text')
    method addStringAttachment (line 2993) | public function addStringAttachment(
    method addEmbeddedImage (line 3034) | public function addEmbeddedImage($path, $cid, $name = '', $encoding = ...
    method addStringEmbeddedImage (line 3079) | public function addStringEmbeddedImage(
    method inlineImageExists (line 3111) | public function inlineImageExists()
    method attachmentExists (line 3125) | public function attachmentExists()
    method alternativeExists (line 3139) | public function alternativeExists()
    method clearQueuedAddresses (line 3150) | public function clearQueuedAddresses($kind)
    method clearAddresses (line 3164) | public function clearAddresses()
    method clearCCs (line 3177) | public function clearCCs()
    method clearBCCs (line 3190) | public function clearBCCs()
    method clearReplyTos (line 3203) | public function clearReplyTos()
    method clearAllRecipients (line 3213) | public function clearAllRecipients()
    method clearAttachments (line 3226) | public function clearAttachments()
    method clearCustomHeaders (line 3235) | public function clearCustomHeaders()
    method setError (line 3246) | protected function setError($msg)
    method rfcDate (line 3273) | public static function rfcDate()
    method serverHostname (line 3287) | protected function serverHostname()
    method lang (line 3308) | protected function lang($key)
    method isError (line 3333) | public function isError()
    method fixEOL (line 3345) | public function fixEOL($str)
    method addCustomHeader (line 3365) | public function addCustomHeader($name, $value = null)
    method getCustomHeaders (line 3379) | public function getCustomHeaders()
    method msgHTML (line 3400) | public function msgHTML($message, $basedir = '', $advanced = false)
    method html2text (line 3494) | public function html2text($html, $advanced = false)
    method _mime_types (line 3513) | public static function _mime_types($ext = '')
    method filenameToType (line 3628) | public static function filenameToType($filename)
    method mb_pathinfo (line 3650) | public static function mb_pathinfo($path, $options = null)
    method set (line 3700) | public function set($name, $value = '')
    method secureHeader (line 3717) | public function secureHeader($str)
    method normalizeBreaks (line 3732) | public static function normalizeBreaks($text, $breaktype = "\r\n")
    method sign (line 3745) | public function sign($cert_filename, $key_filename, $key_pass, $extrac...
    method DKIM_QP (line 3759) | public function DKIM_QP($txt)
    method DKIM_Sign (line 3780) | public function DKIM_Sign($signHeader)
    method DKIM_HeaderC (line 3826) | public function DKIM_HeaderC($signHeader)
    method DKIM_BodyC (line 3846) | public function DKIM_BodyC($body)
    method DKIM_Add (line 3869) | public function DKIM_Add($headers_line, $subject, $body)
    method hasLineLongerThanMax (line 3947) | public static function hasLineLongerThanMax($str)
    method getToAddresses (line 3959) | public function getToAddresses()
    method getCcAddresses (line 3970) | public function getCcAddresses()
    method getBccAddresses (line 3981) | public function getBccAddresses()
    method getReplyToAddresses (line 3992) | public function getReplyToAddresses()
    method getAllRecipientAddresses (line 4003) | public function getAllRecipientAddresses()
    method doCallback (line 4018) | protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body...
  class phpmailerException (line 4031) | class phpmailerException extends Exception
    method errorMessage (line 4037) | public function errorMessage()

FILE: frphp/extend/PHPMailer/class.phpmaileroauth.php
  class PHPMailerOAuth (line 26) | class PHPMailerOAuth extends PHPMailer
    method getOAUTHInstance (line 63) | public function getOAUTHInstance()
    method smtpConnect (line 85) | public function smtpConnect($options = array())

FILE: frphp/extend/PHPMailer/class.phpmaileroauthgoogle.php
  class PHPMailerOAuthGoogle (line 27) | class PHPMailerOAuthGoogle
    method __construct (line 40) | public function __construct(
    method getProvider (line 52) | private function getProvider()
    method getGrant (line 60) | private function getGrant()
    method getToken (line 65) | private function getToken()
    method getOauth64 (line 72) | public function getOauth64()

FILE: frphp/extend/PHPMailer/class.pop3.php
  class POP3 (line 30) | class POP3
    method popBeforeSmtp (line 140) | public static function popBeforeSmtp(
    method authorise (line 165) | public function authorise($host, $port = false, $timeout = false, $use...
    method connect (line 207) | public function connect($host, $port = false, $tval = 30)
    method login (line 266) | public function login($username = '', $password = '')
    method disconnect (line 296) | public function disconnect()
    method getResponse (line 315) | protected function getResponse($size = 128)
    method sendString (line 330) | protected function sendString($string)
    method checkResponse (line 348) | protected function checkResponse($string)
    method setError (line 368) | protected function setError($error)
    method getErrors (line 384) | public function getErrors()
    method catchWarning (line 397) | protected function catchWarning($errno, $errstr, $errfile, $errline)

FILE: frphp/extend/PHPMailer/class.smtp.php
  class SMTP (line 27) | class SMTP
    method edebug (line 218) | protected function edebug($str, $level = 0)
    method connect (line 262) | public function connect($host, $port = null, $timeout = 30, $options =...
    method startTLS (line 353) | public function startTLS()
    method authenticate (line 392) | public function authenticate(
    method hmac (line 561) | protected function hmac($data, $key)
    method connected (line 593) | public function connected()
    method close (line 618) | public function close()
    method data (line 643) | public function data($msg_data)
    method hello (line 733) | public function hello($host = '')
    method sendHello (line 748) | protected function sendHello($hello, $host)
    method parseHelloFields (line 766) | protected function parseHelloFields($type)
    method mail (line 813) | public function mail($from)
    method quit (line 831) | public function quit($close_on_error = true)
    method recipient (line 851) | public function recipient($address)
    method reset (line 867) | public function reset()
    method sendCommand (line 880) | protected function sendCommand($command, $commandstring, $expect)
    method sendAndMail (line 946) | public function sendAndMail($from)
    method verify (line 957) | public function verify($name)
    method noop (line 968) | public function noop()
    method turn (line 982) | public function turn()
    method client_send (line 995) | public function client_send($data)
    method getError (line 1009) | public function getError()
    method getServerExtList (line 1019) | public function getServerExtList()
    method getServerExt (line 1043) | public function getServerExt($name)
    method getLastReply (line 1070) | public function getLastReply()
    method get_lines (line 1084) | protected function get_lines()
    method setVerp (line 1133) | public function setVerp($enabled = false)
    method getVerp (line 1142) | public function getVerp()
    method setError (line 1154) | protected function setError($message, $detail = '', $smtp_code = '', $...
    method setDebugOutput (line 1168) | public function setDebugOutput($method = 'echo')
    method getDebugOutput (line 1177) | public function getDebugOutput()
    method setDebugLevel (line 1186) | public function setDebugLevel($level = 0)
    method getDebugLevel (line 1195) | public function getDebugLevel()
    method setTimeout (line 1204) | public function setTimeout($timeout = 0)
    method getTimeout (line 1213) | public function getTimeout()
    method errorHandler (line 1225) | protected function errorHandler($errno, $errmsg, $errfile = '', $errli...
    method recordLastTransactionID (line 1247) | protected function recordLastTransactionID()
    method getLastTransactionID (line 1272) | public function getLastTransactionID()

FILE: frphp/extend/PHPMailer/extras/EasyPeasyICS.php
  class EasyPeasyICS (line 20) | class EasyPeasyICS
    method __construct (line 37) | public function __construct($calendarName = "")
    method addEvent (line 52) | public function addEvent($start, $end, $summary = '', $description = '...
    method getEvents (line 72) | public function getEvents()
    method clearEvents (line 80) | public function clearEvents()
    method getName (line 89) | public function getName()
    method setName (line 98) | public function setName($name)
    method render (line 108) | public function render($output = true)

FILE: frphp/extend/PHPMailer/extras/htmlfilter.php
  function tln_tagprint (line 41) | function tln_tagprint($tagname, $attary, $tagtype)
  function tln_casenormalize (line 69) | function tln_casenormalize(&$val)
  function tln_skipspace (line 84) | function tln_skipspace($body, $offset)
  function tln_findnxstr (line 105) | function tln_findnxstr($body, $offset, $needle)
  function tln_findnxreg (line 127) | function tln_findnxreg($body, $offset, $reg)
  function tln_defang (line 465) | function tln_defang(&$attvalue)
  function tln_unspace (line 491) | function tln_unspace(&$attvalue)
  function tln_fixurl (line 598) | function tln_fixurl($attname, &$attvalue, $trans_image_path, $block_exte...
  function tln_sanitize (line 842) | function tln_sanitize(
  function HTMLFilter (line 1013) | function HTMLFilter($body, $trans_image_path, $block_external_images = f...

FILE: frphp/extend/PHPMailer/extras/ntlm_sasl_client.php
  class ntlm_sasl_client_class (line 16) | class ntlm_sasl_client_class
    method initialize (line 21) | public function initialize(&$client)
    method ASCIIToUnicode (line 37) | public function ASCIIToUnicode($ascii)
    method typeMsg1 (line 45) | public function typeMsg1($domain, $workstation)
    method NTLMResponse (line 66) | public function NTLMResponse($challenge, $password)
    method typeMsg3 (line 88) | public function typeMsg3($ntlm_response, $user, $domain, $workstation)
    method start (line 138) | public function start(&$client, &$message, &$interactions)
    method step (line 159) | public function step(&$client, $response, &$message, &$interactions)

FILE: frphp/extend/PHPMailer/get_oauth_token.php
  class Google (line 35) | class Google extends AbstractProvider
    method getBaseAuthorizationUrl (line 59) | public function getBaseAuthorizationUrl()
    method getBaseAccessTokenUrl (line 64) | public function getBaseAccessTokenUrl(array $params)
    method getResourceOwnerDetailsUrl (line 69) | public function getResourceOwnerDetailsUrl(AccessToken $token)
    method getAuthorizationParameters (line 74) | protected function getAuthorizationParameters(array $options)
    method getDefaultScopes (line 94) | protected function getDefaultScopes()
    method getScopeSeparator (line 103) | protected function getScopeSeparator()
    method checkResponse (line 108) | protected function checkResponse(ResponseInterface $response, $data)
    method createResourceOwner (line 123) | protected function createResourceOwner(array $response, AccessToken $t...

FILE: frphp/extend/Page.php
  class Page (line 16) | class Page {
    method __construct (line 58) | public function __construct($table='',$prefix = 1){
    method getUrl (line 65) | public function getUrl(){
    method pageList (line 148) | public function pageList($pv=5,$sep=false){
    method where (line 285) | public function where($sql=null){
    method orderby (line 289) | public function orderby($orders=null){
    method limit (line 293) | public function limit($limit=null){
    method fields (line 309) | public function fields($fields=null){
    method page (line 313) | public function page($p=1){
    method setPage (line 319) | public function setPage($config){
    method go (line 336) | public function go(){
    method goPage (line 360) | public function goPage($sql=null,$order=null,$fields=null,$limit=10){
    method goSql (line 393) | public function goSql(){
    method goCount (line 420) | public function goCount($sql){

FILE: frphp/extend/SessionRedis.php
  class SessionRedis (line 24) | class SessionRedis implements SessionHandlerInterface
    method __construct (line 45) | public function __construct($config = array())
    method parseConfig (line 53) | public function parseConfig()
    method redisConnect (line 77) | public function redisConnect($host = '127.0.0.1', $port = 6379, $timeo...
    method parseConnect (line 118) | private function parseConnect()
    method open (line 137) | #[\ReturnTypeWillChange]
    method close (line 155) | #[\ReturnTypeWillChange]
    method read (line 170) | #[\ReturnTypeWillChange]
    method write (line 196) | #[\ReturnTypeWillChange]
    method destroy (line 228) | #[\ReturnTypeWillChange]
    method gc (line 247) | #[\ReturnTypeWillChange]

FILE: frphp/extend/Uploader.class.php
  class Uploader (line 10) | class Uploader
    method __construct (line 53) | public function __construct($fileField, $config, $type = "upload")
    method watermarkImg (line 78) | public function watermarkImg($source, $target = '', $w_pos = '', $w_im...
    method watermark (line 226) | public function watermark($title,$path){
    method smb_str_split (line 393) | function smb_str_split($string, $split_length = 1, $encoding = null) {
    method check (line 408) | public function check($image){
    method upFile (line 415) | private function upFile()
    method upBase64 (line 499) | private function upBase64()
    method saveRemote (line 570) | private function saveRemote()
    method getStateInfo (line 678) | private function getStateInfo($errCode)
    method getFileExt (line 687) | private function getFileExt()
    method getFullName (line 697) | private function getFullName()
    method getFileName (line 731) | private function getFileName () {
    method getFilePath (line 739) | private function getFilePath()
    method checkType (line 755) | private function checkType()
    method checkSize (line 764) | private function  checkSize()
    method getFileInfo (line 773) | public function getFileInfo()
    method save_files (line 786) | public function save_files($filename){

FILE: frphp/extend/Vercode.php
  class Imagecode (line 2) | class Imagecode{
    method __construct (line 10) | function __construct($width = 120,$height = 30,$counts = 5,$code='frco...
    method imageout (line 32) | function imageout(){
    method createimagesource (line 42) | private function createimagesource(){
    method setbackgroundcolor (line 45) | private function setbackgroundcolor($im){
    method setdistrubecode (line 49) | private function setdistrubecode($im){
    method set_code (line 68) | private function set_code($im){
    method sessioncode (line 88) | public function sessioncode(){

FILE: frphp/extend/compressimage.php
  class compressimage (line 3) | class compressimage{
    method __construct (line 10) | public function __construct($src){
    method openImage (line 14) | public function openImage(){
    method thumpImage (line 26) | public function thumpImage(){
    method showImage (line 40) | public function showImage(){
    method saveImage (line 46) | public function saveImage($name){
    method __destruct (line 68) | public function __destruct(){

FILE: frphp/extend/pay/alipay/AlipayService.php
  class AlipayService (line 3) | class AlipayService
    method __construct (line 14) | public function __construct()
    method setAppid (line 18) | public function setAppid($appid)
    method setReturnUrl (line 22) | public function setReturnUrl($returnUrl)
    method setNotifyUrl (line 26) | public function setNotifyUrl($notifyUrl)
    method setRsaPrivateKey (line 30) | public function setRsaPrivateKey($saPrivateKey)
    method setTotalFee (line 34) | public function setTotalFee($payAmount)
    method setOutTradeNo (line 38) | public function setOutTradeNo($outTradeNo)
    method setOrderName (line 42) | public function setOrderName($orderName)
    method doPay (line 50) | public function doPay()
    method mPay (line 76) | public function mPay()
    method wxPay (line 102) | public function wxPay()
    method dmfPay (line 132) | public function dmfPay()
    method curlPost (line 157) | public function curlPost($url = '', $postData = '', $options = array())
    method buildRequestForm (line 183) | protected function buildRequestForm($para_temp) {
    method generateSign (line 196) | public function generateSign($params, $signType = "RSA") {
    method sign (line 199) | protected function sign($data, $signType = "RSA") {
    method checkEmpty (line 218) | protected function checkEmpty($value) {
    method getSignContent (line 227) | public function getSignContent($params) {
    method characet (line 252) | function characet($data, $targetCharset) {

FILE: frphp/extend/pay/alipay/AlipayServiceCheck.php
  class AlipayServiceCheck (line 3) | class AlipayServiceCheck
    method __construct (line 9) | public function __construct($alipayPublicKey)
    method rsaCheck (line 18) | public function rsaCheck($params) {
    method verify (line 29) | function verify($data, $sign, $signType = 'RSA') {
    method checkEmpty (line 54) | protected function checkEmpty($value) {
    method getSignContent (line 65) | public function getSignContent($params) {
    method characet (line 91) | function characet($data, $targetCharset) {

FILE: frphp/extend/pay/wechat/WxpayCheckOrder.php
  class WxpayCheckOrder (line 3) | class WxpayCheckOrder
    method __construct (line 9) | public function __construct($mchid, $appid, $key)
    method setReturnUrl (line 15) | public function setReturnUrl($returnUrl)
    method orderquery (line 19) | public function orderquery($outTradeNo)
    method getTradeSTate (line 49) | public function getTradeSTate($str)
    method curlGet (line 75) | public static function curlGet($url = '', $options = array())
    method curlPost (line 90) | public static function curlPost($url = '', $postData = '', $options = ...
    method createNonceStr (line 111) | public static function createNonceStr($length = 16)
    method arrayToXml (line 120) | public static function arrayToXml($arr)
    method getSign (line 135) | public static function getSign($params, $key)
    method formatQueryParaMap (line 142) | protected static function formatQueryParaMap($paraMap, $urlEncode = fa...

FILE: frphp/extend/pay/wechat/WxpayH5Service.php
  class WxpayH5Service (line 4) | class WxpayH5Service
    method __construct (line 18) | public function __construct($mchid, $appid, $key)
    method setTotalFee (line 25) | public function setTotalFee($totalFee)
    method setOutTradeNo (line 29) | public function setOutTradeNo($outTradeNo)
    method setOrderName (line 33) | public function setOrderName($orderName)
    method setWapUrl (line 37) | public function setWapUrl($wapUrl)
    method setWapName (line 41) | public function setWapName($wapName)
    method setNotifyUrl (line 45) | public function setNotifyUrl($notifyUrl)
    method setReturnUrl (line 49) | public function setReturnUrl($returnUrl)
    method setIp (line 53) | public function setIp($webip)
    method createJsBizPackage (line 62) | public function createJsBizPackage()
    method curlPost (line 100) | public static function curlPost($url = '', $postData = '', $options = ...
    method createNonceStr (line 121) | public static function createNonceStr($length = 16)
    method arrayToXml (line 130) | public static function arrayToXml($arr)
    method getSign (line 145) | public static function getSign($params, $key)
    method formatQueryParaMap (line 152) | protected static function formatQueryParaMap($paraMap, $urlEncode = fa...

FILE: frphp/extend/pay/wechat/WxpayScan.php
  class WxpayScan (line 3) | class WxpayScan
    method __construct (line 8) | public function __construct($mchid, $appid, $key)
    method createJsBizPackage (line 23) | public function createJsBizPackage($totalFee, $outTradeNo, $orderName,...
    method notify (line 70) | public function notify()
    method curlGet (line 102) | public static function curlGet($url = '', $options = array())
    method curlPost (line 117) | public static function curlPost($url = '', $postData = '', $options = ...
    method createNonceStr (line 138) | public static function createNonceStr($length = 16)
    method arrayToXml (line 147) | public static function arrayToXml($arr)
    method getSign (line 162) | public static function getSign($params, $key)
    method formatQueryParaMap (line 169) | protected static function formatQueryParaMap($paraMap, $urlEncode = fa...

FILE: frphp/extend/pay/wechat/WxpayService.php
  class WxpayService (line 2) | class WxpayService
    method __construct (line 9) | public function __construct($mchid, $appid, $appKey,$key)
    method GetOpenid (line 22) | public function GetOpenid()
    method GetOpenidFromMp (line 46) | public function GetOpenidFromMp($code)
    method __CreateOauthUrlForOpenid (line 61) | private function __CreateOauthUrlForOpenid($code)
    method __CreateOauthUrlForCode (line 75) | private function __CreateOauthUrlForCode($redirectUrl)
    method ToUrlParams (line 90) | private function ToUrlParams($urlObj)
    method createJsBizPackage (line 110) | public function createJsBizPackage($openid, $totalFee, $outTradeNo, $o...
    method curlGet (line 155) | public static function curlGet($url = '', $options = array())
    method curlPost (line 170) | public static function curlPost($url = '', $postData = '', $options = ...
    method createNonceStr (line 191) | public static function createNonceStr($length = 16)
    method arrayToXml (line 200) | public static function arrayToXml($arr)
    method getSign (line 212) | public static function getSign($params, $key)
    method formatQueryParaMap (line 219) | protected static function formatQueryParaMap($paraMap, $urlEncode = fa...

FILE: frphp/extend/pay/wechat/WxpayServiceCheck.php
  class WxpayServiceCheck (line 3) | class WxpayServiceCheck
    method __construct (line 8) | public function __construct($mchid, $appid, $key)
    method notify (line 14) | public function notify()
    method getSign (line 44) | public static function getSign($params, $key)
    method formatQueryParaMap (line 51) | protected static function formatQueryParaMap($paraMap, $urlEncode = fa...

FILE: frphp/extend/phpqrcode/phpqrcode.php
  class qrstr (line 98) | class qrstr {
    method set (line 99) | public static function set(&$srctab, $x, $y, $repl, $replLen = false) {
  class QRtools (line 158) | class QRtools {
    method binarize (line 161) | public static function binarize($frame)
    method tcpdfBarcodeArray (line 175) | public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdf...
    method clearCache (line 206) | public static function clearCache()
    method buildCache (line 212) | public static function buildCache()
    method log (line 234) | public static function log($outfile, $err)
    method dumpMask (line 248) | public static function dumpMask($frame)
    method markTime (line 259) | public static function markTime($markerId)
    method timeBenchmark (line 271) | public static function timeBenchmark()
  class QRspec (line 354) | class QRspec {
    method getDataLength (line 401) | public static function getDataLength($version, $level)
    method getECCLength (line 407) | public static function getECCLength($version, $level)
    method getWidth (line 413) | public static function getWidth($version)
    method getRemainder (line 419) | public static function getRemainder($version)
    method getMinimumVersion (line 425) | public static function getMinimumVersion($size, $level)
    method lengthIndicator (line 447) | public static function lengthIndicator($mode, $version)
    method maximumWords (line 464) | public static function maximumWords($mode, $version)
    method getEccSpec (line 538) | public static function getEccSpec($version, $level, array &$spec)
    method putAlignmentMarker (line 592) | public static function putAlignmentMarker(array &$frame, $ox, $oy)
    method putAlignmentPattern (line 611) | public static function putAlignmentPattern($version, &$frame, $width)
    method getVersionPattern (line 664) | public static function getVersionPattern($version)
    method getFormatInfo (line 682) | public static function getFormatInfo($mask, $level)
    method putFinderPattern (line 704) | public static function putFinderPattern(&$frame, $ox, $oy)
    method createFrame (line 722) | public static function createFrame($version)
    method debug (line 800) | public static function debug($frame, $binary_mode = false)
    method serial (line 854) | public static function serial($frame)
    method unserial (line 860) | public static function unserial($code)
    method newFrame (line 866) | public static function newFrame($version)
    method rsBlockNum (line 894) | public static function rsBlockNum($spec)     { return $spec[0] + $spec...
    method rsBlockNum1 (line 895) | public static function rsBlockNum1($spec)    { return $spec[0]; }
    method rsDataCodes1 (line 896) | public static function rsDataCodes1($spec)   { return $spec[1]; }
    method rsEccCodes1 (line 897) | public static function rsEccCodes1($spec)    { return $spec[2]; }
    method rsBlockNum2 (line 898) | public static function rsBlockNum2($spec)    { return $spec[3]; }
    method rsDataCodes2 (line 899) | public static function rsDataCodes2($spec)   { return $spec[4]; }
    method rsEccCodes2 (line 900) | public static function rsEccCodes2($spec)    { return $spec[2]; }
    method rsDataLength (line 901) | public static function rsDataLength($spec)   { return ($spec[0] * $spe...
    method rsEccLength (line 902) | public static function rsEccLength($spec)    { return ($spec[0] + $spe...
  class QRimage (line 938) | class QRimage {
    method png (line 941) | public static function png($frame, $filename = false, $pixelPerPoint =...
    method jpg (line 962) | public static function jpg($frame, $filename = false, $pixelPerPoint =...
    method image (line 977) | private static function image($frame, $pixelPerPoint = 4, $outerFrame ...
  class QRinputItem (line 1044) | class QRinputItem {
    method __construct (line 1051) | public function __construct($mode, $size, $data, $bstream = null)
    method encodeModeNum (line 1071) | public function encodeModeNum($version)
    method encodeModeAn (line 1107) | public function encodeModeAn($version)
    method encodeMode8 (line 1137) | public function encodeMode8($version)
    method encodeModeKanji (line 1158) | public function encodeModeKanji($version)
    method encodeModeStructure (line 1190) | public function encodeModeStructure()
    method estimateBitStreamSizeOfEntry (line 1209) | public function estimateBitStreamSizeOfEntry($version)
    method encodeBitStream (line 1236) | public function encodeBitStream($version)
  class QRinput (line 1287) | class QRinput {
    method __construct (line 1295) | public function __construct($version = 0, $level = QR_ECLEVEL_L)
    method getVersion (line 1307) | public function getVersion()
    method setVersion (line 1313) | public function setVersion($version)
    method getErrorCorrectionLevel (line 1326) | public function getErrorCorrectionLevel()
    method setErrorCorrectionLevel (line 1332) | public function setErrorCorrectionLevel($level)
    method appendEntry (line 1345) | public function appendEntry(QRinputItem $entry)
    method append (line 1351) | public function append($mode, $size, $data)
    method insertStructuredAppendHeader (line 1364) | public function insertStructuredAppendHeader($size, $index, $parity)
    method calcParity (line 1386) | public function calcParity()
    method checkModeNum (line 1402) | public static function checkModeNum($size, $data)
    method estimateBitsModeNum (line 1414) | public static function estimateBitsModeNum($size)
    method lookAnTable (line 1446) | public static function lookAnTable($c)
    method checkModeAn (line 1452) | public static function checkModeAn($size, $data)
    method estimateBitsModeAn (line 1464) | public static function estimateBitsModeAn($size)
    method estimateBitsMode8 (line 1477) | public static function estimateBitsMode8($size)
    method estimateBitsModeKanji (line 1483) | public function estimateBitsModeKanji($size)
    method checkModeKanji (line 1489) | public static function checkModeKanji($size, $data)
    method check (line 1510) | public static function check($mode, $size, $data)
    method estimateBitStreamSize (line 1531) | public function estimateBitStreamSize($version)
    method estimateVersion (line 1543) | public function estimateVersion()
    method lengthOfCode (line 1560) | public static function lengthOfCode($mode, $version, $bits)
    method createBitStream (line 1603) | public function createBitStream()
    method convertData (line 1620) | public function convertData()
    method appendPaddingBit (line 1648) | public function appendPaddingBit(&$bstream)
    method mergeBitStream (line 1693) | public function mergeBitStream()
    method getBitStream (line 1712) | public function getBitStream()
    method getByteStream (line 1730) | public function getByteStream()
  class QRbitstream (line 1777) | class QRbitstream {
    method size (line 1782) | public function size()
    method allocate (line 1788) | public function allocate($setLength)
    method newFromNum (line 1795) | public static function newFromNum($bits, $num)
    method newFromBytes (line 1814) | public static function newFromBytes($size, $data)
    method append (line 1837) | public function append(QRbitstream $arg)
    method appendNum (line 1858) | public function appendNum($bits, $num)
    method appendBytes (line 1875) | public function appendBytes($size, $data)
    method toByte (line 1892) | public function toByte()
  class QRsplit (line 1970) | class QRsplit {
    method __construct (line 1977) | public function __construct($dataStr, $input, $modeHint)
    method isdigitat (line 1985) | public static function isdigitat($str, $pos)
    method isalnumat (line 1994) | public static function isalnumat($str, $pos)
    method identifyMode (line 2003) | public function identifyMode($pos)
    method eatNum (line 2030) | public function eatNum()
    method eatAn (line 2067) | public function eatAn()
    method eatKanji (line 2114) | public function eatKanji()
    method eat8 (line 2130) | public function eat8()
    method splitString (line 2185) | public function splitString()
    method toUpper (line 2214) | public function toUpper()
    method splitStringToQRinput (line 2235) | public static function splitStringToQRinput($string, QRinput $input, $...
  class QRrsItem (line 2286) | class QRrsItem {
    method modnn (line 2301) | public function modnn($x)
    method init_rs_char (line 2312) | public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $n...
    method encode_rs_char (line 2398) | public function encode_rs_char($data, &$parity)
  class QRrs (line 2442) | class QRrs {
    method init_rs (line 2447) | public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots...
  class QRmask (line 2505) | class QRmask {
    method __construct (line 2510) | public function __construct()
    method writeFormatInformation (line 2516) | public function writeFormatInformation($width, &$frame, $mask, $level)
    method mask0 (line 2560) | public function mask0($x, $y) { return ($x+$y)&1;                       }
    method mask1 (line 2561) | public function mask1($x, $y) { return ($y&1);                          }
    method mask2 (line 2562) | public function mask2($x, $y) { return ($x%3);                          }
    method mask3 (line 2563) | public function mask3($x, $y) { return ($x+$y)%3;                       }
    method mask4 (line 2564) | public function mask4($x, $y) { return (((int)($y/2))+((int)($x/3)))&1; }
    method mask5 (line 2565) | public function mask5($x, $y) { return (($x*$y)&1)+($x*$y)%3;           }
    method mask6 (line 2566) | public function mask6($x, $y) { return ((($x*$y)&1)+($x*$y)%3)&1;       }
    method mask7 (line 2567) | public function mask7($x, $y) { return ((($x*$y)%3)+(($x+$y)&1))&1;     }
    method generateMaskNo (line 2570) | private function generateMaskNo($maskNo, $width, $frame)
    method serial (line 2590) | public static function serial($bitFrame)
    method unserial (line 2601) | public static function unserial($code)
    method makeMaskNo (line 2613) | public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = fa...
    method makeMask (line 2651) | public function makeMask($width, $frame, $maskNo, $level)
    method calcN1N3 (line 2661) | public function calcN1N3($length)
    method evaluateSymbol (line 2690) | public function evaluateSymbol($width, $frame)
    method mask (line 2757) | public function mask($width, $frame, $level)
  class QRrsblock (line 2836) | class QRrsblock {
    method __construct (line 2842) | public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
  class QRrawcode (line 2855) | class QRrawcode {
    method __construct (line 2867) | public function __construct(QRinput $input)
    method init (line 2895) | public function init(array $spec)
    method getCode (line 2938) | public function getCode()
  class QRcode (line 2964) | class QRcode {
    method encodeMask (line 2971) | public function encodeMask(QRinput $input, $mask)
    method encodeInput (line 3046) | public function encodeInput(QRinput $input)
    method encodeString8bit (line 3052) | public function encodeString8bit($string, $version, $level)
    method encodeString (line 3071) | public function encodeString($string, $version, $level, $hint, $casese...
    method png (line 3091) | public static function png($text, $outfile = false, $level = QR_ECLEVE...
    method text (line 3098) | public static function text($text, $outfile = false, $level = QR_ECLEV...
    method raw (line 3105) | public static function raw($text, $outfile = false, $level = QR_ECLEVE...
  class FrameFiller (line 3114) | class FrameFiller {
    method __construct (line 3124) | public function __construct($width, &$frame)
    method setFrameAt (line 3135) | public function setFrameAt($at, $val)
    method getFrameAt (line 3141) | public function getFrameAt($at)
    method next (line 3147) | public function next()
  class QRencode (line 3204) | class QRencode {
    method factory (line 3219) | public static function factory($level = QR_ECLEVEL_L, $size = 3, $marg...
    method encodeRAW (line 3254) | public function encodeRAW($intext, $outfile = false)
    method encode (line 3268) | public function encode($intext, $outfile = false)
    method encodePNG (line 3288) | public function encodePNG($intext, $outfile = false,$saveandprint=false)

FILE: frphp/extend/pinyin.php
  function pinyin (line 46) | function pinyin($str, $ret_format = 'all', $placeholder = '_', $allow_ch...

FILE: frphp/fr.php
  class frphp (line 25) | class frphp
    method __construct (line 30) | public function __construct($config)
    method run (line 87) | public function run()
    method route (line 99) | public function route()
    method stringGet (line 357) | public function stringGet($urlarray){
    method setReporting (line 372) | public function setReporting()
    method stripSlashesDeep (line 387) | public function stripSlashesDeep($value)
    method removeMagicQuotes (line 394) | public function removeMagicQuotes()
    method unregisterGlobals (line 407) | public function unregisterGlobals()
    method setDbConfig (line 422) | public function setDbConfig()
    method loadClass (line 440) | public function loadClass($className)
    method classMap (line 463) | protected function classMap()

FILE: frphp/lib/Controller.php
  class Controller (line 19) | class Controller
    method __construct (line 27) | public function __construct($param=null)
    method _init (line 47) | public function _init(){
    method __set (line 52) | public function __set($name, $value)
    method assign (line 58) | public function assign($name, $value)
    method display (line 65) | public function display($name=null)
    method frparam (line 71) | public function frparam($str=null, $int=0,$default = FALSE, $method = ...

FILE: frphp/lib/Model.php
  class Model (line 17) | class Model {
    method __construct (line 24) | public function __construct(){
    method getInstance (line 28) | public static function getInstance($table = null,$prefix = 1){
    method getCount (line 46) | public function getCount($conditions=null){
    method goInc (line 75) | public function goInc($conditions,$field,$vp=1){
    method goDec (line 104) | public function goDec($conditions,$field,$vp=1){
    method update (line 108) | public function update($conditions=null,$row=null)
    method updateMuti (line 148) | public function updateMuti($conditions=null,$rows=null){
    method findAll (line 217) | public function findAll($conditions=null,$order=null,$fields=null,$lim...
    method findPage (line 260) | public function findPage($conditions=null,$order=null,$fields=null,$li...
    method find (line 308) | public function find($where=null,$order=null,$fields=null,$limit=1)
    method getField (line 318) | public function getField($where=null,$fields=null,$orders=null){
    method query (line 329) | public function query($sql){
    method runSql (line 333) | public function runSql($sql)
    method findSql (line 339) | public function findSql($sql)
    method findSqlPage (line 344) | public function findSqlPage($sql,$orderlimit=''){
    method delete (line 353) | public function delete($conditions)
    method add (line 380) | public function add($row)
    method __prepera_format (line 407) | private function __prepera_format($rows)
    method __destruct (line 443) | public function __destruct()

FILE: frphp/lib/View.php
  class View (line 21) | class View
    method __construct (line 28) | function __construct($controller, $action)
    method assign (line 35) | public function assign($name, $value)
    method render (line 42) | public function render($name=null)
    method template (line 83) | public function template($controllerLayout){
    method template_html (line 134) | public function template_html($content){
    method template_html_include (line 209) | public function template_html_include($filename){
    method check_template_err (line 241) | public function check_template_err($a,$b,$msg){
    method template_html_screen (line 250) | public function template_html_screen($f){
    method template_html_foreach (line 322) | private function template_html_foreach($f){
    method template_html_loop (line 335) | private function template_html_loop($f){

FILE: install/index.php
  function check_disable (line 25) | function check_disable(){
  function check_chinese (line 34) | function check_chinese(){
  function check_version (line 43) | function check_version(){
  function new_is_writeable (line 56) | function new_is_writeable($file) {
  function get_admin_url (line 81) | function get_admin_url(){
  function GetIP (line 99) | function GetIP(){
  function get_domain (line 117) | function get_domain(){
  function parseSQL (line 162) | function parseSQL($path = '')
  function checktemplate (line 188) | function checktemplate(){

FILE: install/tpl/js/common.js
  function TrBgChange (line 2) | function TrBgChange(AreaId,OddClass,EvenClass){

FILE: static/cms/install/TemplateController.php
  class TemplateController (line 15) | class TemplateController extends Controller {
    method _init (line 20) | public function _init(){
    method install (line 57) | public  function install(){
    method removeFile (line 83) | private function removeFile($from,$to){
    method file2dir (line 115) | private function file2dir($sourcefile, $filename){
    method recurse_copy (line 123) | function recurse_copy($src,$dst) {
    method getTableFields (line 143) | private function getTableFields($table){
    method getTableData (line 172) | private function getTableData(){
    method toBackup (line 192) | private function toBackup(){
    method backup (line 211) | private function backup($tables = array())
    method setTables (line 238) | private function setTables($tables = array())
    method query (line 256) | private function query($sql = '')
    method getTables (line 267) | private function getTables()
    method getDDL (line 283) | private function getDDL($table = '')
    method getData (line 294) | private function getData($table = '')
    method writeToFile (line 331) | private function writeToFile($tables = array(), $ddl = array(), $data ...

FILE: static/cms/static/js/aos.js
  function t (line 1) | function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,lo...
  function o (line 1) | function o(e){return e&&e.__esModule?e:{default:e}}
  function n (line 1) | function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.ap...
  function o (line 1) | function o(e,t,o){var r=!0,a=!0;if("function"!=typeof e)throw new TypeEr...
  function i (line 1) | function i(e){var t="undefined"==typeof e?"undefined":c(e);return!!e&&("...
  function r (line 1) | function r(e){return!!e&&"object"==("undefined"==typeof e?"undefined":c(...
  function a (line 1) | function a(e){return"symbol"==("undefined"==typeof e?"undefined":c(e))||...
  function u (line 1) | function u(e){if("number"==typeof e)return e;if(a(e))return s;if(i(e)){v...
  function n (line 1) | function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.ap...
  function o (line 1) | function o(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("...
  function i (line 1) | function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(...
  function r (line 1) | function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||...
  function a (line 1) | function a(e){if("number"==typeof e)return e;if(r(e))return f;if(o(e)){v...
  function n (line 1) | function n(e,t){var n=window.document,r=window.MutationObserver||window....
  function o (line 1) | function o(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(...
  function n (line 1) | function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a ...
  function o (line 1) | function o(){return navigator.userAgent||navigator.vendor||window.opera|...
  function e (line 1) | function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.en...
  function e (line 1) | function e(){n(this,e)}
  function o (line 1) | function o(e){return e&&e.__esModule?e:{default:e}}
  function o (line 1) | function o(e){return e&&e.__esModule?e:{default:e}}

FILE: static/cms/static/js/main.js
  function k (line 24) | function k() {

FILE: static/common/clipboard.js
  function __webpack_require__ (line 22) | function __webpack_require__(moduleId) {
  function select (line 107) | function select(element) {
  function E (line 156) | function E () {
  function listener (line 175) | function listener () {
  function listen (line 241) | function listen(target, type, callback) {
  function listenNode (line 277) | function listenNode(node, type, callback) {
  function listenNodeList (line 296) | function listenNodeList(nodeList, type, callback) {
  function listenSelector (line 319) | function listenSelector(selector, type, callback) {
  function _delegate (line 397) | function _delegate(element, selector, type, callback, useCapture) {
  function delegate (line 419) | function delegate(elements, selector, type, callback, useCapture) {
  function listener (line 452) | function listener(element, selector, type, callback) {
  function closest (line 491) | function closest (element, selector) {
  function defineProperties (line 518) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _classCallCheck (line 520) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function ClipboardAction (line 533) | function ClipboardAction(options) {
  function defineProperties (line 784) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function clipboard_classCallCheck (line 786) | function clipboard_classCallCheck(instance, Constructor) { if (!(instanc...
  function _possibleConstructorReturn (line 788) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
  function _inherits (line 790) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
  function Clipboard (line 808) | function Clipboard(trigger, options) {
  function getAttributeValue (line 959) | function getAttributeValue(suffix, element) {

FILE: static/common/layui/layui.js
  function strhtml (line 1) | function strhtml(str){var s="";if(!str){return''}str=htmlstr(str);if(str...
  function htmlstr (line 1) | function htmlstr(str){var s="";if(!str){return''}if(str.length==0)return...
  function p (line 1) | function p(t,e){var r="PLaySTATION 3"===navigator.platform?/^complete$/:...
  function f (line 1) | function f(){c.push(layui[h]),r.length>1?y.use(r.slice(1),o,c,s):"functi...
  function n (line 1) | function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"func...
  function r (line 1) | function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){ret...
  function i (line 1) | function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}
  function o (line 1) | function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]...
  function a (line 1) | function a(){re.addEventListener?(re.removeEventListener("DOMContentLoad...
  function s (line 1) | function s(){(re.addEventListener||"load"===e.event.type||"complete"===r...
  function u (line 1) | function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace...
  function l (line 1) | function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&...
  function c (line 1) | function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.c...
  function f (line 1) | function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe...
  function d (line 1) | function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:functi...
  function p (line 1) | function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.crea...
  function h (line 1) | function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName...
  function g (line 1) | function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval"...
  function m (line 1) | function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}
  function y (line 1) | function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x...
  function v (line 1) | function v(){return!0}
  function x (line 1) | function x(){return!1}
  function b (line 1) | function b(){try{return re.activeElement}catch(e){}}
  function w (line 1) | function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof ...
  function T (line 1) | function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeTy...
  function C (line 1) | function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}
  function E (line 1) | function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribu...
  function N (line 1) | function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e...
  function k (line 1) | function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase...
  function S (line 1) | function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,f=e.length,d=f-...
  function A (line 1) | function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
  function D (line 1) | function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n...
  function j (line 1) | function j(e){var t=re,n=lt[e];return n||(n=D(e,t),"none"!==n&&n||(ut=(u...
  function L (line 1) | function L(e,t){return{get:function(){return e()?void delete this.get:(t...
  function H (line 1) | function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e....
  function q (line 1) | function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)r=e[a],r.style...
  function _ (line 1) | function _(e,t,n){var r=bt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2...
  function F (line 1) | function F(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t...
  function M (line 1) | function M(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=...
  function O (line 1) | function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}
  function R (line 1) | function R(){return e.setTimeout(function(){Nt=void 0}),Nt=pe.now()}
  function P (line 1) | function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=Oe[i],r[...
  function B (line 1) | function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]...
  function W (line 1) | function W(e,t,n){var r,i,o,a,s,u,l,c,f=this,d={},p=e.style,h=e.nodeType...
  function I (line 1) | function I(e,t){var n,r,i,o,a;for(n in e)if(r=pe.camelCase(n),i=t[r],o=e...
  function $ (line 1) | function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pe.Deferred().alwa...
  function z (line 1) | function z(e){return pe.attr(e,"class")||""}
  function X (line 1) | function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r...
  function U (line 1) | function U(e,t,n,r){function i(s){var u;return o[s]=!0,pe.each(e[s]||[],...
  function V (line 1) | function V(e,t){var n,r,i=pe.ajaxSettings.flatOptions||{};for(r in t)voi...
  function Y (line 1) | function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];...
  function J (line 1) | function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for...
  function G (line 1) | function G(e){return e.style&&e.style.display||pe.css(e,"display")}
  function K (line 1) | function K(e){if(!pe.contains(e.ownerDocument||re,e))return!0;for(;e&&1=...
  function Q (line 1) | function Q(e,t,n,r){var i;if(pe.isArray(t))pe.each(t,function(t,i){n||rn...
  function Z (line 1) | function Z(){try{return new e.XMLHttpRequest}catch(t){}}
  function ee (line 1) | function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(...
  function te (line 1) | function te(e){return pe.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e...
  function t (line 1) | function t(e,t,n,r){var i,o,a,s,u,l,f,p,h=t&&t.ownerDocument,g=t?t.nodeT...
  function n (line 1) | function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete ...
  function r (line 1) | function r(e){return e[P]=!0,e}
  function i (line 1) | function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){ret...
  function o (line 1) | function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]...
  function a (line 1) | function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour...
  function s (line 1) | function s(e){return function(t){var n=t.nodeName.toLowerCase();return"i...
  function u (line 1) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("...
  function l (line 1) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i...
  function c (line 1) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
  function f (line 1) | function f(){}
  function d (line 1) | function d(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
  function p (line 1) | function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first...
  function h (line 1) | function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)...
  function g (line 1) | function g(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}
  function m (line 1) | function m(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o...
  function y (line 1) | function y(e,t,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r...
  function v (line 1) | function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.re...
  function x (line 1) | function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var ...
  function t (line 1) | function t(){var t,c,f=re.documentElement;f.appendChild(u),l.style.cssTe...
  function r (line 1) | function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c...
  function e (line 1) | function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}
  function o (line 1) | function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onlo...

FILE: static/common/md5.js
  function hex_md5 (line 4) | function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * ch...
  function b64_md5 (line 5) | function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * ch...
  function hex_hmac_md5 (line 6) | function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, da...
  function b64_hmac_md5 (line 7) | function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, da...
  function calcMD5 (line 8) | function calcMD5(s){ return binl2hex(core_md5(str2binl(s), s.length * ch...
  function md5_vm_test (line 10) | function md5_vm_test()
  function core_md5 (line 15) | function core_md5(x, len)
  function md5_cmn (line 105) | function md5_cmn(q, a, b, x, s, t)
  function md5_ff (line 109) | function md5_ff(a, b, c, d, x, s, t)
  function md5_gg (line 113) | function md5_gg(a, b, c, d, x, s, t)
  function md5_hh (line 117) | function md5_hh(a, b, c, d, x, s, t)
  function md5_ii (line 121) | function md5_ii(a, b, c, d, x, s, t)
  function core_hmac_md5 (line 126) | function core_hmac_md5(key, data)
  function safe_add (line 142) | function safe_add(x, y)
  function bit_rol (line 149) | function bit_rol(num, cnt)
  function str2binl (line 154) | function str2binl(str)
  function binl2hex (line 163) | function binl2hex(binarray)
  function binl2b64 (line 175) | function binl2b64(binarray)

FILE: static/common/user/js/jquery.min-1.10.2.js
  function DOMEval (line 103) | function DOMEval( code, node, doc ) {
  function toType (line 133) | function toType( obj ) {
  function isArrayLike (line 503) | function isArrayLike( obj ) {
  function Sizzle (line 755) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 903) | function createCache() {
  function markFunction (line 923) | function markFunction( fn ) {
  function assert (line 932) | function assert( fn ) {
  function addHandle (line 956) | function addHandle( attrs, handler ) {
  function siblingCheck (line 971) | function siblingCheck( a, b ) {
  function createInputPseudo (line 997) | function createInputPseudo( type ) {
  function createButtonPseudo (line 1008) | function createButtonPseudo( type ) {
  function createDisabledPseudo (line 1019) | function createDisabledPseudo( disabled ) {
  function createPositionalPseudo (line 1075) | function createPositionalPseudo( fn ) {
  function testContext (line 1098) | function testContext( context ) {
  function setFilters (line 2309) | function setFilters() {}
  function toSelector (line 2383) | function toSelector( tokens ) {
  function addCombinator (line 2393) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2460) | function elementMatcher( matchers ) {
  function multipleContexts (line 2474) | function multipleContexts( selector, contexts, results ) {
  function condense (line 2483) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2504) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2604) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2667) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function nodeName (line 3025) | function nodeName( elem, name ) {
  function winnow (line 3035) | function winnow( elements, qualifier, not ) {
  function sibling (line 3330) | function sibling( cur, dir ) {
  function createOptions (line 3423) | function createOptions( options ) {
  function Identity (line 3648) | function Identity( v ) {
  function Thrower (line 3651) | function Thrower( ex ) {
  function adoptValue (line 3655) | function adoptValue( value, resolve, reject, noValue ) {
  function resolve (line 3748) | function resolve( depth, deferred, handler, special ) {
  function completed (line 4113) | function completed() {
  function fcamelCase (line 4208) | function fcamelCase( _all, letter ) {
  function camelCase (line 4215) | function camelCase( string ) {
  function Data (line 4232) | function Data() {
  function getData (line 4401) | function getData( data ) {
  function dataAttr (line 4426) | function dataAttr( elem, key, data ) {
  function adjustCSS (line 4738) | function adjustCSS( elem, prop, valueParts, tween ) {
  function getDefaultDisplay (line 4806) | function getDefaultDisplay( elem ) {
  function showHide (line 4829) | function showHide( elements, show ) {
  function getAll (line 4961) | function getAll( context, tag ) {
  function setGlobalEval (line 4986) | function setGlobalEval( elems, refElements ) {
  function buildFragment (line 5002) | function buildFragment( elems, context, scripts, selection, ignored ) {
  function returnTrue (line 5097) | function returnTrue() {
  function returnFalse (line 5101) | function returnFalse() {
  function expectSync (line 5111) | function expectSync( elem, type ) {
  function safeActiveElement (line 5118) | function safeActiveElement() {
  function on (line 5124) | function on( elem, types, selector, data, fn, one ) {
  function leverageNative (line 5612) | function leverageNative( el, type, expectSync ) {
  function manipulationTarget (line 5976) | function manipulationTarget( elem, content ) {
  function disableScript (line 5987) | function disableScript( elem ) {
  function restoreScript (line 5991) | function restoreScript( elem ) {
  function cloneCopyEvent (line 6001) | function cloneCopyEvent( src, dest ) {
  function fixInput (line 6034) | function fixInput( src, dest ) {
  function domManip (line 6047) | function domManip( collection, args, callback, ignored ) {
  function remove (line 6139) | function remove( elem, selector, keepData ) {
  function computeStyleTests (line 6453) | function computeStyleTests() {
  function roundPixelMeasures (line 6497) | function roundPixelMeasures( measure ) {
  function curCSS (line 6571) | function curCSS( elem, name, computed ) {
  function addGetHookIf (line 6624) | function addGetHookIf( conditionFn, hookFn ) {
  function vendorPropName (line 6649) | function vendorPropName( name ) {
  function finalPropName (line 6664) | function finalPropName( name ) {
  function setPositiveNumber (line 6690) | function setPositiveNumber( _elem, value, subtract ) {
  function boxModelAdjustment (line 6702) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
  function getWidthOrHeight (line 6770) | function getWidthOrHeight( elem, dimension, extra ) {
  function Tween (line 7146) | function Tween( elem, options, prop, end, easing ) {
  function schedule (line 7269) | function schedule() {
  function createFxNow (line 7282) | function createFxNow() {
  function genFx (line 7290) | function genFx( type, includeWidth ) {
  function createTween (line 7310) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 7324) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 7496) | function propFilter( props, specialEasing ) {
  function Animation (line 7533) | function Animation( elem, properties, options ) {
  function stripAndCollapse (line 8248) | function stripAndCollapse( value ) {
  function getClass (line 8254) | function getClass( elem ) {
  function classesToArray (line 8258) | function classesToArray( value ) {
  function buildParams (line 8885) | function buildParams( prefix, obj, traditional, add ) {
  function addToPrefiltersOrTransports (line 9039) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 9073) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 9102) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 9122) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 9180) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 9696) | function done( status, nativeStatusText, responses, headers ) {

FILE: static/common/user/uedit/dialogs/attachment/attachment.js
  function initTabs (line 19) | function initTabs() {
  function setTabFocus (line 32) | function setTabFocus(id) {
  function initButtons (line 56) | function initButtons() {
  function UploadFile (line 87) | function UploadFile(target) {
  function addFile (line 181) | function addFile(file) {
  function removeFile (line 316) | function removeFile(file) {
  function updateTotalProgress (line 323) | function updateTotalProgress() {
  function setState (line 341) | function setState(val, files) {
  function updateStatus (line 417) | function updateStatus() {
  function OnlineFile (line 568) | function OnlineFile(target) {

FILE: static/common/user/uedit/dialogs/background/background.js
  function initTabs (line 12) | function initTabs(){
  function initColorSelector (line 35) | function initColorSelector () {
  function initColorPicker (line 77) | function initColorPicker() {
  function initImagePanel (line 116) | function initImagePanel() {
  function updateFormState (line 121) | function updateFormState (radio, color, url, align, x, y) {
  function updateBackground (line 158) | function updateBackground () {
  function OnlineImage (line 184) | function OnlineImage(target) {

FILE: static/common/user/uedit/dialogs/charts/charts.js
  function initChartsTypeView (line 49) | function initChartsTypeView () {
  function renderTable (line 64) | function renderTable ( table ) {
  function initUserConfig (line 104) | function initUserConfig ( config ) {
  function initEvent (line 125) | function initEvent () {
  function renderCharts (line 201) | function renderCharts () {
  function updateViewType (line 253) | function updateViewType ( index ) {
  function collectData (line 259) | function collectData () {
  function getUserConfig (line 283) | function getUserConfig () {
  function setUserConfig (line 302) | function setUserConfig ( config ) {
  function getSeriesAndCategories (line 317) | function getSeriesAndCategories () {
  function getTableDataFormat (line 367) | function getTableDataFormat () {
  function disableNotPieConfig (line 379) | function disableNotPieConfig() {
  function enableNotPieConfig (line 388) | function enableNotPieConfig() {
  function updateConfigItem (line 394) | function updateConfigItem ( value ) {
  function getSeriesForPieChart (line 420) | function getSeriesForPieChart () {
  function getTableData (line 445) | function getTableData () {
  function getTableInputValue (line 461) | function getTableInputValue () {
  function getCellValue (line 475) | function getCellValue ( cell ) {
  function syncTableData (line 505) | function syncTableData () {

FILE: static/common/user/uedit/dialogs/emotion/emotion.js
  function initImgName (line 14) | function initImgName() {
  function initEvtHandler (line 30) | function initEvtHandler( conId ) {
  function InsertSmiley (line 47) | function InsertSmiley( url, evt ) {
  function switchTab (line 58) | function switchTab( index ) {
  function autoHeight (line 79) | function autoHeight( index ) {
  function createTab (line 117) | function createTab( tabName ) {
  function over (line 157) | function over( td, srcPath, posFlag ) {
  function out (line 164) | function out( td ) {
  function createTabList (line 171) | function createTabList( tabNum ) {
  function createArr (line 179) | function createArr( tabNum ) {

FILE: static/common/user/uedit/dialogs/help/help.js
  function clickHandler (line 14) | function clickHandler( tabHeads,tabBodys,obj ) {
  function switchTab (line 41) | function switchTab( tabParentId ) {

FILE: static/common/user/uedit/dialogs/image/image.js
  function initTabs (line 22) | function initTabs() {
  function setTabFocus (line 40) | function setTabFocus(id) {
  function initButtons (line 74) | function initButtons() {
  function initAlign (line 115) | function initAlign(){
  function setAlign (line 126) | function setAlign(align){
  function getAlign (line 139) | function getAlign(){
  function RemoteImage (line 146) | function RemoteImage(target) {
  function updatePreview (line 202) | function updatePreview(){
  function UploadImage (line 293) | function UploadImage(target) {
  function addFile (line 404) | function addFile(file) {
  function removeFile (line 534) | function removeFile(file) {
  function updateTotalProgress (line 541) | function updateTotalProgress() {
  function setState (line 559) | function setState(val, files) {
  function updateStatus (line 635) | function updateStatus() {
  function OnlineImage (line 792) | function OnlineImage(target) {
  function SearchImage (line 971) | function SearchImage() {

FILE: static/common/user/uedit/dialogs/music/music.js
  function Music (line 1) | function Music() {

FILE: static/common/user/uedit/dialogs/scrawl/scrawl.js
  function _appendStyle (line 419) | function _appendStyle() {
  function _getDom (line 441) | function _getDom() {
  function ue_callback (line 570) | function ue_callback(url, state) {
  function removeMaskLayer (line 615) | function removeMaskLayer() {
  function addMaskLayer (line 622) | function addMaskLayer(html) {
  function exec (line 629) | function exec(scrawlObj) {

FILE: static/common/user/uedit/dialogs/searchreplace/searchreplace.js
  function clickHandler (line 19) | function clickHandler( tabHeads,tabBodys,obj ) {
  function switchTab (line 43) | function switchTab( tabParentId ) {
  function getMatchCase (line 61) | function getMatchCase(id) {

FILE: static/common/user/uedit/dialogs/spechars/spechars.js
  function toArray (line 55) | function toArray(str) {

FILE: static/common/user/uedit/dialogs/video/video.js
  function initTabs (line 24) | function initTabs(){
  function initVideo (line 43) | function initVideo(){
  function addOkListener (line 73) | function addOkListener(){
  function updateAlignButton (line 98) | function updateAlignButton( align ) {
  function insertSingle (line 116) | function insertSingle(){
  function insertSearch (line 135) | function insertSearch(id){
  function findFocus (line 156) | function findFocus( id, returnProperty ) {
  function convert_url (line 167) | function convert_url(url){
  function checkNum (line 190) | function checkNum( nodes ) {
  function isNumber (line 207) | function isNumber( value ) {
  function createAlignButton (line 215) | function createAlignButton( ids ) {
  function switchSelect (line 235) | function switchSelect( selectParentId ) {
  function addUrlChangeListener (line 252) | function addUrlChangeListener(url){
  function createPreviewVideo (line 268) | function createPreviewVideo(url){
  function insertUpload (line 286) | function insertUpload(){
  function initUpload (line 312) | function initUpload(){
  function UploadFile (line 318) | function UploadFile(target) {
  function addFile (line 412) | function addFile(file) {
  function removeFile (line 547) | function removeFile(file) {
  function updateTotalProgress (line 554) | function updateTotalProgress() {
  function setState (line 572) | function setState(val, files) {
  function updateStatus (line 648) | function updateStatus() {

FILE: static/common/user/uedit/dialogs/wordimage/tangram.js
  function _createString (line 577) | function _createString(){
  function _checkReady (line 587) | function _checkReady(target){
  function _callFn (line 602) | function _callFn(callQueue, target){
  function _createFunName (line 618) | function _createFunName(fun){
  function _render (line 639) | function _render(options){
  function _check (line 728) | function _check(){
  function _call (line 743) | function _call(){
  function getCallBack (line 1197) | function getCallBack(onTimeOut){
  function encodeString (line 1354) | function encodeString(source) {
  function encodeArray (line 1376) | function encodeArray(source) {
  function pad (line 1405) | function pad(source) {
  function encodeDate (line 1413) | function encodeDate(source){

FILE: static/common/user/uedit/dialogs/wordimage/wordimage.js
  function hideFlash (line 24) | function hideFlash(){
  function addOkListener (line 28) | function addOkListener() {
  function addUploadListener (line 59) | function addUploadListener() {
  function showLocalPath (line 66) | function showLocalPath(id) {
  function createFlashUploader (line 83) | function createFlashUploader(opt, callbacks) {
  function extendProperty (line 112) | function extendProperty(fromObj, toObj) {
  function getPasteData (line 123) | function getPasteData(id) {
  function createCopyButton (line 131) | function createCopyButton(id, dataFrom) {

FILE: static/common/user/uedit/third-party/SyntaxHighlighter/shCore.js
  function clone (line 499) | function clone (regex, additionalFlags) {
  function getNativeFlags (line 513) | function getNativeFlags (regex) {
  function runTokens (line 521) | function runTokens (pattern, index, scope, context) {
  function indexOf (line 550) | function indexOf (array, item, from) {
  function defaultGetHtml (line 801) | function defaultGetHtml(highlighter, name)
  function getValue (line 839) | function getValue(name)
  function hasClass (line 1036) | function hasClass(target, className)
  function addClass (line 1046) | function addClass(target, className)
  function removeClass (line 1057) | function removeClass(target, className)
  function toArray (line 1068) | function toArray(source)
  function splitLines (line 1083) | function splitLines(block)
  function getHighlighterId (line 1093) | function getHighlighterId(id)
  function getHighlighterById (line 1104) | function getHighlighterById(id)
  function getHighlighterDivById (line 1114) | function getHighlighterDivById(id)
  function storeHighlighter (line 1124) | function storeHighlighter(highlighter)
  function findElement (line 1137) | function findElement(target, search, reverse /* optional */)
  function findParentElement (line 1170) | function findParentElement(target, className)
  function indexOf (line 1182) | function indexOf(array, searchElement, fromIndex)
  function guid (line 1196) | function guid(prefix)
  function merge (line 1208) | function merge(obj1, obj2)
  function toBoolean (line 1226) | function toBoolean(value)
  function popup (line 1241) | function popup(url, name, width, height, options)
  function attachEvent (line 1265) | function attachEvent(obj, type, func, scope)
  function alert (line 1297) | function alert(str)
  function findBrush (line 1309) | function findBrush(alias, showAlert)
  function eachLine (line 1352) | function eachLine(str, callback)
  function trimFirstAndLastLines (line 1370) | function trimFirstAndLastLines(str)
  function parseParams (line 1390) | function parseParams(str)
  function wrapLinesWithCode (line 1434) | function wrapLinesWithCode(str, css)
  function padNumber (line 1484) | function padNumber(number, length)
  function processTabs (line 1501) | function processTabs(code, tabSize)
  function processSmartTabs (line 1518) | function processSmartTabs(code, tabSize)
  function fixInputString (line 1566) | function fixInputString(str)
  function trim (line 1585) | function trim(str)
  function unindent (line 1595) | function unindent(str)
  function matchesSortCallback (line 1637) | function matchesSortCallback(m1, m2)
  function getMatches (line 1664) | function getMatches(code, regexInfo)
  function processUrls (line 1695) | function processUrls(code)
  function getSyntaxHighlighterScriptTags (line 1723) | function getSyntaxHighlighterScriptTags()
  function stripCData (line 1742) | function stripCData(original)
  function quickCodeHandler (line 1774) | function quickCodeHandler(e)
  function offsetMatches (line 1880) | function offsetMatches(matches, offset)
  function process (line 1886) | function process(match, info)
  function getBrushNameCss (line 2169) | function getBrushNameCss(match)
  function Brush (line 2388) | function Brush()
  function Brush (line 2432) | function Brush()
  function Brush (line 2491) | function Brush()
  function Brush (line 2534) | function Brush()
  function Brush (line 2618) | function Brush()
  function Brush (line 2699) | function Brush()
  function Brush (line 2748) | function Brush()
  function Brush (line 2823) | function Brush()
  function Brush (line 2862) | function Brush()
  function Brush (line 2887) | function Brush()
  function Brush (line 2923) | function Brush()
  function Brush (line 2974) | function Brush()
  function Brush (line 3015) | function Brush()
  function Brush (line 3057) | function Brush()
  function Brush (line 3093) | function Brush()
  function Brush (line 3170) | function Brush()
  function Brush (line 3242) | function Brush()
  function Brush (line 3259) | function Brush()
  function Brush (line 3318) | function Brush()
  function Brush (line 3366) | function Brush()
  function Brush (line 3405) | function Brush()
  function Brush (line 3483) | function Brush()
  function Brush (line 3518) | function Brush()
  function Brush (line 3568) | function Brush()
  function Brush (line 3608) | function Brush()

FILE: static/common/user/uedit/third-party/codemirror/codemirror.js
  function CodeMirror (line 11) | function CodeMirror(place, givenOptions) {
  function lookupKey (line 1870) | function lookupKey(name, extraMap, map) {
  function isModifierKey (line 1885) | function isModifierKey(event) {
  function save (line 1896) | function save() {textarea.value = instance.getValue();}
  function wrappedSubmit (line 1902) | function wrappedSubmit() {
  function copyState (line 1933) | function copyState(mode, state) {
  function startState (line 1945) | function startState(mode, a1, a2) {
  function StringStream (line 1951) | function StringStream(string, tabSize) {
  function cased (line 1990) | function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}
  function MarkedText (line 2006) | function MarkedText(from, to, className, set) {
  function Bookmark (line 2036) | function Bookmark(pos) {
  function Line (line 2072) | function Line(text, styles) {
  function span (line 2234) | function span(text, style) {
  function nextMark (line 2259) | function nextMark() {
  function copyStyles (line 2306) | function copyStyles(from, to, source, dest) {
  function LeafChunk (line 2322) | function LeafChunk(lines) {
  function BranchChunk (line 2356) | function BranchChunk(children) {
  function getLineAt (line 2454) | function getLineAt(chunk, n) {
  function lineNo (line 2464) | function lineNo(line) {
  function lineAtHeight (line 2475) | function lineAtHeight(chunk, h) {
  function heightAtLine (line 2493) | function heightAtLine(chunk, n) {
  function History (line 2510) | function History() {
  function stopMethod (line 2541) | function stopMethod() {e_stop(this);}
  function addStop (line 2543) | function addStop(event) {
  function e_preventDefault (line 2548) | function e_preventDefault(e) {
  function e_stopPropagation (line 2552) | function e_stopPropagation(e) {
  function e_stop (line 2556) | function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
  function e_target (line 2561) | function e_target(e) {return e.target || e.srcElement;}
  function e_button (line 2562) | function e_button(e) {
  function connect (line 2571) | function connect(node, type, handler, disconnect) {
  function Delayed (line 2584) | function Delayed() {this.id = null;}
  function countColumn (line 2610) | function countColumn(string, end, tabSize) {
  function computedStyle (line 2622) | function computedStyle(elt) {
  function eltOffset (line 2629) | function eltOffset(node, screen) {
  function eltText (line 2665) | function eltText(node) {
  function posEq (line 2670) | function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}
  function posLess (line 2671) | function posLess(a, b) {return a.line < b.line || (a.line == b.line && a...
  function copyPos (line 2672) | function copyPos(x) {return {line: x.line, ch: x.ch};}
  function htmlEscape (line 2675) | function htmlEscape(str) {
  function editEnd (line 2697) | function editEnd(from, to) {
  function indexOf (line 2705) | function indexOf(collection, elt) {
  function isWordChar (line 2711) | function isWordChar(ch) {
  function inText (line 2775) | function inText(stream, state) {
  function inTag (line 2821) | function inTag(stream, state) {
  function inAttribute (line 2842) | function inAttribute(quote) {
  function inBlock (line 2854) | function inBlock(style, terminator) {
  function doctype (line 2866) | function doctype(depth) {
  function pass (line 2888) | function pass() {
  function cont (line 2891) | function cont() {
  function pushContext (line 2896) | function pushContext(tagName, startOfLine) {
  function popContext (line 2906) | function popContext() {
  function element (line 2910) | function element(type) {
  function endtag (line 2926) | function endtag(startOfLine) {
  function endclosetag (line 2935) | function endclosetag(err) {
  function attributes (line 2944) | function attributes(type) {
  function attvalue (line 2950) | function attvalue(type) {
  function attvaluemaybe (line 2955) | function attvaluemaybe(type) {
  function kw (line 3021) | function kw(type) {return {type: type, style: "keyword"};}
  function chain (line 3037) | function chain(stream, state, f) {
  function nextUntilUnescaped (line 3042) | function nextUntilUnescaped(stream, end) {
  function ret (line 3055) | function ret(tp, style, cont) {
  function jsTokenBase (line 3060) | function jsTokenBase(stream, state) {
  function jsTokenString (line 3108) | function jsTokenString(quote) {
  function jsTokenComment (line 3116) | function jsTokenComment(stream, state) {
  function JSLexical (line 3132) | function JSLexical(indented, column, type, align, prev, info) {
  function inScope (line 3141) | function inScope(state, varname) {
  function parseJS (line 3146) | function parseJS(state, style, type, content, stream) {
  function pass (line 3170) | function pass() {
  function cont (line 3173) | function cont() {
  function register (line 3177) | function register(varname) {
  function pushcontext (line 3190) | function pushcontext() {
  function popcontext (line 3194) | function popcontext() {
  function pushlex (line 3198) | function pushlex(type, info) {
  function poplex (line 3206) | function poplex() {
  function expect (line 3216) | function expect(wanted) {
  function statement (line 3224) | function statement(type) {
  function expression (line 3242) | function expression(type) {
  function maybeexpression (line 3252) | function maybeexpression(type) {
  function maybeoperator (line 3257) | function maybeoperator(type, value) {
  function maybelabel (line 3265) | function maybelabel(type) {
  function property (line 3269) | function property(type) {
  function objprop (line 3272) | function objprop(type) {
  function commasep (line 3276) | function commasep(what, end) {
  function block (line 3287) | function block(type) {
  function vardef1 (line 3291) | function vardef1(type, value) {
  function vardef2 (line 3295) | function vardef2(type, value) {
  function forspec1 (line 3299) | function forspec1(type) {
  function formaybein (line 3305) | function formaybein(type, value) {
  function forspec2 (line 3309) | function forspec2(type, value) {
  function forspec3 (line 3314) | function forspec3(type) {
  function functiondef (line 3317) | function functiondef(type, value) {
  function funarg (line 3321) | function funarg(type, value) {
  function ret (line 3377) | function ret(style, tp) {type = tp; return style;}
  function tokenBase (line 3379) | function tokenBase(stream, state) {
  function tokenCComment (line 3420) | function tokenCComment(stream, state) {
  function tokenSGMLComment (line 3432) | function tokenSGMLComment(stream, state) {
  function tokenString (line 3444) | function tokenString(quote) {
  function html (line 3504) | function html(stream, state) {
  function maybeBackup (line 3520) | function maybeBackup(stream, pat, style) {
  function javascript (line 3526) | function javascript(stream, state) {
  function css (line 3536) | function css(stream, state) {

FILE: static/common/user/uedit/third-party/highcharts/adapters/standalone-framework.js
  function o (line 8) | function o(c){function a(a,b,d){a.removeEventListener(b,d,!1)}function d...

FILE: static/common/user/uedit/third-party/highcharts/adapters/standalone-framework.src.js
  function augment (line 29) | function augment(obj) {

FILE: static/common/user/uedit/third-party/highcharts/highcharts-more.js
  function J (line 8) | function J(a,b,c){this.init.call(this,a,b,c)}
  function K (line 8) | function K(a,b,c){a.call(this,b,c);if(this.chart.polar)this.closeSegment...
  function L (line 8) | function L(a,b){var c=this.chart,d=this.options.animation,g=this.group,f...

FILE: static/common/user/uedit/third-party/highcharts/highcharts-more.src.js
  function Pane (line 42) | function Pane(options, chart, firstAxis) {
  function initArea (line 2028) | function initArea(proceed, chart, options) {
  function polarAnimate (line 2199) | function polarAnimate(proceed, init) {

FILE: static/common/user/uedit/third-party/highcharts/highcharts.js
  function r (line 8) | function r(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}
  function x (line 8) | function x(){var a,b=arguments.length,c={},d=function(a,b){var c,h;typeo...
  function C (line 8) | function C(a,b){return parseInt(a,b||10)}
  function ea (line 8) | function ea(a){return typeof a==="string"}
  function T (line 8) | function T(a){return typeof a===
  function Ia (line 9) | function Ia(a){return Object.prototype.toString.call(a)==="[object Array]"}
  function sa (line 9) | function sa(a){return typeof a==="number"}
  function na (line 9) | function na(a){return R.log(a)/R.LN10}
  function fa (line 9) | function fa(a){return R.pow(10,a)}
  function ga (line 9) | function ga(a,b){for(var c=a.length;c--;)if(a[c]===b){a.splice(c,1);break}}
  function u (line 9) | function u(a){return a!==w&&a!==null}
  function v (line 9) | function v(a,b,c){var d,e;if(ea(b))u(c)?a.setAttribute(b,c):a&&a.getAttr...
  function ja (line 9) | function ja(a){return Ia(a)?
  function o (line 10) | function o(){var a=arguments,b,c,d=a.length;for(b=0;b<d;b++)if(c=a[b],ty...
  function K (line 10) | function K(a,b){if(ta&&b&&b.opacity!==w)b.filter="alpha(opacity="+b.opac...
  function U (line 10) | function U(a,b,c,d,e){a=y.createElement(a);b&&r(a,b);e&&K(a,{padding:0,b...
  function ha (line 10) | function ha(a,b){var c=function(){};c.prototype=new a;r(c.prototype,b);r...
  function Aa (line 10) | function Aa(a,b,c,d){var e=M.lang,a=+a||0,f=b===-1?(a.toString().split("...
  function Ba (line 11) | function Ba(a,b){return Array((b||2)+1-String(a).length).join(0)+a}
  function mb (line 11) | function mb(a,b,c){var d=a[b];a[b]=function(){var a=Array.prototype.slic...
  function Ca (line 11) | function Ca(a,b){for(var c="{",d=!1,
  function nb (line 12) | function nb(a){return R.pow(10,P(R.log(a)/R.LN10))}
  function ob (line 12) | function ob(a,b,c,d){var e,c=o(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allo...
  function Cb (line 13) | function Cb(a,b){var c=b||[[Db,[1,2,5,10,20,25,50,100,200,500]],[pb,[1,2...
  function Eb (line 14) | function Eb(a,b,c,d){var e=[],f={},g=M.global.useUTC,h,i=new Date(b),j=a...
  function Jb (line 15) | function Jb(){this.symbol=this.color=0}
  function Kb (line 15) | function Kb(a,b){var c=a.length,d,e;for(e=0;e<c;e++)a[e].ss_i=e;a.sort(f...
  function Ja (line 16) | function Ja(a){for(var b=a.length,c=a[0];b--;)a[b]<c&&(c=a[b]);return c}
  function va (line 16) | function va(a){for(var b=a.length,c=a[0];b--;)a[b]>c&&(c=a[b]);return c}
  function Ka (line 16) | function Ka(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destr...
  function Ta (line 16) | function Ta(a){cb||(cb=U(Ea));a&&cb.appendChild(a);cb.innerHTML=""}
  function ka (line 16) | function ka(a,b){var c="Highcharts error #"+a+": www.highcharts.com/erro...
  function ia (line 16) | function ia(a){return parseFloat(a.toPrecision(14))}
  function La (line 17) | function La(a,b){Fa=o(a,b.animation)}
  function Lb (line 17) | function Lb(){var a=M.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set...
  function wa (line 17) | function wa(){}
  function Ma (line 17) | function Ma(a,b,c,d){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!...
  function vb (line 17) | function vb(a,b){this.axis=a;if(b)this.options=
  function Mb (line 18) | function Mb(a,b,c,d,e,f){var g=a.chart.inverted;this.axis=a;this.isNegat...
  function db (line 18) | function db(){this.init.apply(this,arguments)}
  function wb (line 18) | function wb(){this.init.apply(this,arguments)}
  function xb (line 19) | function xb(a,b){this.init(a,b)}
  function eb (line 19) | function eb(a,b){this.init(a,b)}
  function yb (line 19) | function yb(){this.init.apply(this,arguments)}
  function j (line 72) | function j(){var a,b;a=o.element.style;L=(Oa===void 0||la===void 0||q.st...
  function k (line 73) | function k(){var a=q.styles,a=a&&a.textAlign,b=kb+da*(1-s),c;c=h?0:v;if(...
  function l (line 73) | function l(a,b){A?A.attr(a,b):lb[a]=b}
  function m (line 73) | function m(){o.add(q);q.attr({text:a,x:b,y:c});A&&u(e)&&q.attr({anchorX:...
  function a (line 93) | function a(){var a=b.length,d;for(d=0;d<a;d++)b[d]();b=[]}
  function a (line 193) | function a(a){var g=c.width||jb(d,"width"),h=c.height||jb(d,"height"),a=...
  function a (line 248) | function a(){var a={width:b.yAxis.len,height:b.xAxis.len};n(["group","ma...

FILE: static/common/user/uedit/third-party/highcharts/highcharts.src.js
  function extend (line 128) | function extend(a, b) {
  function merge (line 145) | function merge() {
  function hash (line 188) | function hash() {
  function pInt (line 204) | function pInt(s, mag) {
  function isString (line 212) | function isString(s) {
  function isObject (line 220) | function isObject(obj) {
  function isArray (line 228) | function isArray(obj) {
  function isNumber (line 236) | function isNumber(n) {
  function log2lin (line 240) | function log2lin(num) {
  function lin2log (line 243) | function lin2log(num) {
  function erase (line 252) | function erase(arr, item) {
  function defined (line 267) | function defined(obj) {
  function attr (line 279) | function attr(elem, prop, value) {
  function splat (line 308) | function splat(obj) {
  function pick (line 316) | function pick() {
  function css (line 334) | function css(el, styles) {
  function createElement (line 351) | function createElement(tag, attribs, styles, parent, nopad) {
  function extendClass (line 373) | function extendClass(parent, members) {
  function numberFormat (line 387) | function numberFormat(number, decimals, decPoint, thousandsSep) {
  function pad (line 409) | function pad(number, length) {
  function wrap (line 422) | function wrap(obj, method, func) {
  function formatSingle (line 501) | function formatSingle(format, val) {
  function format (line 525) | function format(str, ctx) {
  function getMagnitude (line 575) | function getMagnitude(num) {
  function normalizeTickInterval (line 586) | function normalizeTickInterval(interval, multiples, magnitude, options) {
  function normalizeTimeTickInterval (line 629) | function normalizeTimeTickInterval(tickInterval, unitsOption) {
  function getTimeTicks (line 710) | function getTimeTicks(normalizedInterval, min, max, startOfWeek) {
  function ChartCounters (line 822) | function ChartCounters() {
  function stableSort (line 852) | function stableSort(arr, sortFunction) {
  function arrayMin (line 878) | function arrayMin(data) {
  function arrayMax (line 895) | function arrayMax(data) {
  function destroyObjectProperties (line 914) | function destroyObjectProperties(obj, except) {
  function discardElement (line 933) | function discardElement(element) {
  function error (line 949) | function error(code, stop) {
  function correctFloat (line 962) | function correctFloat(num) {
  function setAnimation (line 974) | function setAnimation(animation, chart) {
  function setTimeMethods (line 1821) | function setTimeMethods() {
  function setOptions (line 1854) | function setOptions(options) {
  function getOptions (line 1874) | function getOptions() {
  function init (line 1891) | function init(input) {
  function get (line 1925) | function get(format) {
  function brighten (line 1954) | function brighten(alpha) {
  function setOpacity (line 1979) | function setOpacity(alpha) {
  function SVGElement (line 2000) | function SVGElement() {}
  function updateBoxSize (line 4272) | function updateBoxSize() {
  function updateTextPadding (line 4312) | function updateTextPadding() {
  function boxAttr (line 4344) | function boxAttr(key, value) {
  function getSizeAfterAdd (line 4352) | function getSizeAfterAdd() {
  function drawDeferred (line 5727) | function drawDeferred() {
  function Tick (line 5763) | function Tick(axis, pos, type, noLabel) {
  function PlotLineOrBand (line 6170) | function PlotLineOrBand(axis, options) {
  function StackItem (line 6345) | function StackItem(axis, options, isNegative, x, stackOption, stacking) {
  function Axis (line 6456) | function Axis() {
  function Tooltip (line 8560) | function Tooltip() {
  function Pointer (line 9010) | function Pointer(chart, options) {
  function Legend (line 9848) | function Legend(chart, options) {
  function Chart (line 10518) | function Chart() {
  function reflow (line 11514) | function reflow(e) {
  function setInvert (line 14818) | function setInvert() {

FILE: static/common/user/uedit/third-party/highcharts/modules/annotations.js
  function m (line 1) | function m(a){return typeof a==="number"}
  function n (line 1) | function n(a){return a!==D&&a!==null}

FILE: static/common/user/uedit/third-party/highcharts/modules/annotations.src.js
  function defaultOptions (line 26) | function defaultOptions(shapeType) {
  function isArray (line 64) | function isArray(obj) {
  function isNumber (line 68) | function isNumber(n) {
  function defined (line 72) | function defined(obj) {
  function translatePath (line 76) | function translatePath(d, xAxis, yAxis, xOffset, yOffset) {

FILE: static/common/user/uedit/third-party/highcharts/modules/canvas-tools.js
  function RGBColor (line 21) | function RGBColor(m){this.ok=!1;m.charAt(0)=="#"&&(m=m.substr(1,6));var ...
  function m (line 31) | function m(){var a={FRAMERATE:30,MAX_VIRTUAL_PIXELS:3E4};a.init=function...

FILE: static/common/user/uedit/third-party/highcharts/modules/canvas-tools.src.js
  function RGBColor (line 8) | function RGBColor(color_string)
  function build (line 382) | function build() {

FILE: static/common/user/uedit/third-party/highcharts/modules/drilldown.js
  function q (line 1) | function q(b,a,c){return"rgba("+[Math.round(b[0]+(a[0]-b[0])*c),Math.rou...

FILE: static/common/user/uedit/third-party/highcharts/modules/drilldown.src.js
  function tweenColors (line 28) | function tweenColors(startColor, endColor, pos) {

FILE: static/common/user/uedit/third-party/highcharts/modules/map.js
  function x (line 8) | function x(a,b,c){for(var d=4,e=[];d--;)e[d]=Math.round(b.rgba[d]+(a.rgb...

FILE: static/common/user/uedit/third-party/highcharts/modules/map.src.js
  function tweenColors (line 40) | function tweenColors(from, to, pos) {

FILE: static/common/user/uedit/third-party/highcharts/modules/no-data-to-display.js
  function f (line 10) | function f(){return!!this.points.length}
  function g (line 10) | function g(){this.hasData()?this.hideNoData():this.showNoData()}

FILE: static/common/user/uedit/third-party/highcharts/modules/no-data-to-display.src.js
  function hasDataPie (line 43) | function hasDataPie() {
  function handleNoData (line 111) | function handleNoData() {

FILE: static/common/user/uedit/third-party/jquery-1.10.2.js
  function isArraylike (line 983) | function isArraylike( obj ) {
  function Sizzle (line 1183) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 1298) | function createCache() {
  function markFunction (line 1316) | function markFunction( fn ) {
  function assert (line 1325) | function assert( fn ) {
  function addHandle (line 1347) | function addHandle( attrs, handler ) {
  function siblingCheck (line 1362) | function siblingCheck( a, b ) {
  function createInputPseudo (line 1389) | function createInputPseudo( type ) {
  function createButtonPseudo (line 1400) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 1411) | function createPositionalPseudo( fn ) {
  function setFilters (line 2394) | function setFilters() {}
  function tokenize (line 2398) | function tokenize( selector, parseOnly ) {
  function toSelector (line 2465) | function toSelector( tokens ) {
  function addCombinator (line 2475) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2525) | function elementMatcher( matchers ) {
  function condense (line 2539) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2560) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2653) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2708) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function multipleContexts (line 2836) | function multipleContexts( selector, contexts, results ) {
  function select (line 2845) | function select( selector, context, results, seed ) {
  function createOptions (line 2985) | function createOptions( options ) {
  function internalData (line 3568) | function internalData( elem, name, data, pvt /* Internal Use Only */ ){
  function internalRemoveData (line 3657) | function internalRemoveData( elem, name, pvt ) {
  function dataAttr (line 3854) | function dataAttr( elem, key, data ) {
  function isEmptyDataObject (line 3886) | function isEmptyDataObject( obj ) {
  function returnTrue (line 4712) | function returnTrue() {
  function returnFalse (line 4716) | function returnFalse() {
  function safeActiveElement (line 4720) | function safeActiveElement() {
  function sibling (line 5838) | function sibling( cur, dir ) {
  function winnow (line 5956) | function winnow( elements, qualifier, not ) {
  function createSafeFragment (line 5984) | function createSafeFragment( document ) {
  function manipulationTarget (line 6298) | function manipulationTarget( elem, content ) {
  function disableScript (line 6308) | function disableScript( elem ) {
  function restoreScript (line 6312) | function restoreScript( elem ) {
  function setGlobalEval (line 6323) | function setGlobalEval( elems, refElements ) {
  function cloneCopyEvent (line 6331) | function cloneCopyEvent( src, dest ) {
  function fixCloneNodeIssues (line 6359) | function fixCloneNodeIssues( src, dest ) {
  function getAll (line 6452) | function getAll( context, tag ) {
  function fixDefaultChecked (line 6475) | function fixDefaultChecked( elem ) {
  function vendorPropName (line 6817) | function vendorPropName( style, name ) {
  function isHidden (line 6839) | function isHidden( elem, el ) {
  function showHide (line 6846) | function showHide( elements, show ) {
  function setPositiveNumber (line 7175) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 7183) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 7222) | function getWidthOrHeight( elem, name, extra ) {
  function css_defaultDisplay (line 7266) | function css_defaultDisplay( nodeName ) {
  function actualDisplay (line 7298) | function actualDisplay( name, doc ) {
  function buildParams (line 7527) | function buildParams( prefix, obj, traditional, add ) {
  function addToPrefiltersOrTransports (line 7642) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 7674) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 7701) | function ajaxExtend( target, src ) {
  function done (line 8149) | function done( status, nativeStatusText, responses, headers ) {
  function ajaxHandleResponses (line 8296) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 8351) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function createStandardXHR (line 8619) | function createStandardXHR() {
  function createActiveXHR (line 8625) | function createActiveXHR() {
  function createFxNow (line 8871) | function createFxNow() {
  function createTween (line 8878) | function createTween( value, prop, animation ) {
  function Animation (line 8892) | function Animation( elem, properties, options ) {
  function propFilter (line 8996) | function propFilter( props, specialEasing ) {
  function defaultPrefilter (line 9063) | function defaultPrefilter( elem, props, opts ) {
  function Tween (line 9188) | function Tween( elem, options, prop, end, easing ) {
  function genFx (line 9412) | function genFx( type, includeWidth ) {
  function getWindow (line 9708) | function getWindow( elem ) {

FILE: static/common/user/uedit/third-party/video-js/video.dev.js
  function returnTrue (line 410) | function returnTrue() { return true; }
  function returnFalse (line 411) | function returnFalse() { return false; }
  function F (line 656) | function F() {}
  function createMethod (line 5055) | function createMethod(methodName){
  function walk (line 6995) | function walk(holder, key) {

FILE: static/common/user/uedit/third-party/video-js/video.js
  function m (line 1) | function m(){return function(){}}
  function p (line 1) | function p(a){return function(){return this[a]}}
  function s (line 1) | function s(a){return function(){return a}}
  function u (line 1) | function u(a,c,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice...
  function c (line 6) | function c(){return f}
  function d (line 6) | function d(){return l}
  function e (line 8) | function e(){u.o(a,c,e);d.apply(this,arguments)}
  function c (line 9) | function c(){}
  function e (line 10) | function e(){return c.apply(a,arguments)}
  function D (line 25) | function D(a){a.u("vjs-lock-showing")}
  function E (line 26) | function E(a,c,d,e){if(d!==b)return a.a.style[c]=-1!==(""+d).indexOf("%"...
  function F (line 32) | function F(a,c){var d,e,g,j;d=a.a;e=u.ad(d);j=g=d.offsetWidth;d=a.handle...
  function ca (line 34) | function ca(a,c){a.Z(c);c.d("click",u.bind(a,function(){D(this)}))}
  function H (line 37) | function H(a){a.pa=f;a.wa.n("vjs-lock-showing");a.a.setAttribute("aria-p...
  function G (line 38) | function G(a){a.pa=l;D(a.wa);a.a.setAttribute("aria-pressed",l)}
  function da (line 42) | function da(a){var c={sources:[],tracks:[]};u.k.B(c,u.xb(a));if(a.hasChi...
  function I (line 45) | function I(a,c,d){a.h?(a.aa=l,a.h.D(),a.Eb&&(a.Eb=l,clearInterval(a.Ra))...
  function J (line 46) | function J(a){a.Fb=l;a.za();a.o("play",a.Cc);a.o("pause",a.za)}
  function L (line 48) | function L(a,c,d){if(a.h&&!a.h.aa)a.h.L(function(){this[c](d)});else try...
  function K (line 48) | function K(a,c){if(a.h&&a.h.aa)try{return a.h[c]()}catch(d){throw a.h[c]...
  function M (line 53) | function M(a){a.cd=l;u.o(document,"keydown",a.lc);document.documentEleme...
  function ea (line 86) | function ea(){var a=u.media.Va[i];return function(){throw Error('The "'+...
  function fa (line 99) | function fa(){var a=R[T],c=a.charAt(0).toUpperCase()+a.slice(1);Q["set"+...
  function U (line 99) | function U(a){Q[a]=function(){return this.a.vjs_getProperty(a)}}
  function V (line 105) | function V(a){a.Aa=a.Aa||[];return a.Aa}
  function W (line 105) | function W(a,c,d){for(var e=a.Aa,g=0,j=e.length,k,q;g<j;g++)k=e[g],k.id(...
  function X (line 108) | function X(a){0===a.ha&&a.load();0===a.ga&&(a.b.d("timeupdate",u.bind(a,...
  function Y (line 110) | function Y(a){var c=a.split(":");a=0;var d,e,g;3==c.length?(d=c[0],e=c[1...
  function d (line 121) | function d(a,e){var k,q,n=a[e];if(n&&"object"===typeof n)for(k in n)Obje...
  function $ (line 123) | function $(a,c){var d=a.split("."),e=ga;!(d[0]in e)&&e.execScript&&e.exe...

FILE: static/common/user/uedit/third-party/webuploader/webuploader.custom.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function Blob (line 1139) | function Blob( ruid, source ) {
  function File (line 1183) | function File( ruid, file ) {
  function FilePicker (line 1223) | function FilePicker( opts ) {
  function isArrayLike (line 1358) | function isArrayLike( obj ) {
  function Widget (line 1375) | function Widget( uploader ) {
  function Image (line 1653) | function Image( opts ) {
  function gid (line 2022) | function gid() {
  function WUFile (line 2033) | function WUFile( source ) {
  function Queue (line 2210) | function Queue() {
  function Transport (line 2758) | function Transport( opts ) {
  function CuteFile (line 2971) | function CuteFile( file, chunkSize ) {
  function CompBase (line 3541) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3573) | function Html5Runtime() {
  function detectVerticalSquash (line 4559) | function detectVerticalSquash( img, iw, ih ) {
  function detectSubsampling (line 4611) | function detectSubsampling( img ) {
  function JPEGEncoder (line 4727) | function JPEGEncoder(quality) {

FILE: static/common/user/uedit/third-party/webuploader/webuploader.flashonly.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function Blob (line 1139) | function Blob( ruid, source ) {
  function File (line 1183) | function File( ruid, file ) {
  function FilePicker (line 1223) | function FilePicker( opts ) {
  function isArrayLike (line 1358) | function isArrayLike( obj ) {
  function Widget (line 1375) | function Widget( uploader ) {
  function Image (line 1653) | function Image( opts ) {
  function gid (line 2022) | function gid() {
  function WUFile (line 2033) | function WUFile( source ) {
  function Queue (line 2210) | function Queue() {
  function Transport (line 2758) | function Transport( opts ) {
  function CuteFile (line 2971) | function CuteFile( file, chunkSize ) {
  function hashString (line 3715) | function hashString( str ) {
  function CompBase (line 3761) | function CompBase( owner, runtime ) {
  function getFlashVersion (line 3795) | function getFlashVersion() {
  function FlashRuntime (line 3813) | function FlashRuntime() {

FILE: static/common/user/uedit/third-party/webuploader/webuploader.html5only.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function DragAndDrop (line 1142) | function DragAndDrop( opts ) {
  function isArrayLike (line 1193) | function isArrayLike( obj ) {
  function Widget (line 1210) | function Widget( uploader ) {
  function FilePaste (line 1419) | function FilePaste( opts ) {
  function Blob (line 1500) | function Blob( ruid, source ) {
  function File (line 1544) | function File( ruid, file ) {
  function FilePicker (line 1584) | function FilePicker( opts ) {
  function Image (line 1847) | function Image( opts ) {
  function gid (line 2216) | function gid() {
  function WUFile (line 2227) | function WUFile( source ) {
  function Queue (line 2404) | function Queue() {
  function Transport (line 2952) | function Transport( opts ) {
  function CuteFile (line 3165) | function CuteFile( file, chunkSize ) {
  function hashString (line 3909) | function hashString( str ) {
  function CompBase (line 3955) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3987) | function Html5Runtime() {
  function detectVerticalSquash (line 5233) | function detectVerticalSquash( img, iw, ih ) {
  function detectSubsampling (line 5285) | function detectSubsampling( img ) {

FILE: static/common/user/uedit/third-party/webuploader/webuploader.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function DragAndDrop (line 1142) | function DragAndDrop( opts ) {
  function isArrayLike (line 1193) | function isArrayLike( obj ) {
  function Widget (line 1210) | function Widget( uploader ) {
  function FilePaste (line 1419) | function FilePaste( opts ) {
  function Blob (line 1500) | function Blob( ruid, source ) {
  function File (line 1544) | function File( ruid, file ) {
  function FilePicker (line 1584) | function FilePicker( opts ) {
  function Image (line 1847) | function Image( opts ) {
  function gid (line 2216) | function gid() {
  function WUFile (line 2227) | function WUFile( source ) {
  function Queue (line 2404) | function Queue() {
  function Transport (line 2952) | function Transport( opts ) {
  function CuteFile (line 3165) | function CuteFile( file, chunkSize ) {
  function hashString (line 3909) | function hashString( str ) {
  function CompBase (line 3955) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3987) | function Html5Runtime() {
  function JPEGEncoder (line 5008) | function JPEGEncoder(quality) {
  function detectVerticalSquash (line 6035) | function detectVerticalSquash( img, iw, ih ) {
  function detectSubsampling (line 6087) | function detectSubsampling( img ) {
  function getFlashVersion (line 6341) | function getFlashVersion() {
  function FlashRuntime (line 6359) | function FlashRuntime() {

FILE: static/common/user/uedit/third-party/webuploader/webuploader.withoutimage.js
  function uncurryThis (line 194) | function uncurryThis( fn ) {
  function bindFn (line 200) | function bindFn( fn, context ) {
  function createObject (line 206) | function createObject( proto ) {
  function findHandlers (line 495) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 505) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 512) | function triggerHanders( events, args ) {
  function Uploader (line 721) | function Uploader( opts ) {
  function Runtime (line 903) | function Runtime( options ) {
  function RuntimeClient (line 1036) | function RuntimeClient( component, standalone ) {
  function DragAndDrop (line 1142) | function DragAndDrop( opts ) {
  function isArrayLike (line 1193) | function isArrayLike( obj ) {
  function Widget (line 1210) | function Widget( uploader ) {
  function FilePaste (line 1419) | function FilePaste( opts ) {
  function Blob (line 1500) | function Blob( ruid, source ) {
  function File (line 1544) | function File( ruid, file ) {
  function FilePicker (line 1584) | function FilePicker( opts ) {
  function gid (line 1850) | function gid() {
  function WUFile (line 1861) | function WUFile( source ) {
  function Queue (line 2038) | function Queue() {
  function Transport (line 2586) | function Transport( opts ) {
  function CuteFile (line 2799) | function CuteFile( file, chunkSize ) {
  function hashString (line 3543) | function hashString( str ) {
  function CompBase (line 3589) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 3621) | function Html5Runtime() {
  function getFlashVersion (line 4233) | function getFlashVersion() {
  function FlashRuntime (line 4251) | function FlashRuntime() {

FILE: static/common/user/uedit/third-party/zeroclipboard/ZeroClipboard.js
  function parseFlashVersion (line 521) | function parseFlashVersion(desc) {
  function isPepperFlash (line 526) | function isPepperFlash(flashPlayerFileName) {
  function inspectPlugin (line 529) | function inspectPlugin(plugin) {

FILE: static/common/user/uedit/ueditor.all.js
  function getItem (line 888) | function getItem(doc, obj) {
  function opt (line 1037) | function opt(obj, name) {
  function doReady (line 1148) | function doReady(doc) {
  function encodeString (line 1347) | function encodeString(source) {
  function encodeArray (line 1365) | function encodeArray(source) {
  function pad (line 1390) | function pad(source) {
  function encodeDate (line 1394) | function encodeDate(source){
  function getListener (line 1666) | function getListener(obj, type, force) {
  function _ (line 1685) | function _( s ) {
  function getDomNode (line 1870) | function getDomNode(node, start, ltr, startFromChild, fn, guard) {
  function clear (line 2470) | function clear(next, dir) {
  function remove (line 2965) | function remove(dir) {
  function merge (line 3156) | function merge(rtl, start, node) {
  function updateCollapse (line 4304) | function updateCollapse(range) {
  function selectOneNode (line 4311) | function selectOneNode(rng){
  function setEndPoint (line 4314) | function setEndPoint(toStart, node, offset, range) {
  function execContentsAction (line 4337) | function execContentsAction(range, action) {
  function removeFillData (line 4484) | function removeFillData(doc, excludeNode) {
  function mergeSibling (line 4510) | function mergeSibling(node, dir) {
  function check (line 5013) | function check(node){
  function adjust (line 5234) | function adjust(r, c) {
  function checkOffset (line 5735) | function checkOffset(rng){
  function getAddress (line 5889) | function getAddress(isStart){
  function getNode (line 5975) | function getNode(address,isStart){
  function getBoundaryInformation (line 6136) | function getBoundaryInformation( range, start ) {
  function transformIERangeToRange (line 6206) | function transformIERangeToRange( ieRange, range ) {
  function _getIERange (line 6225) | function _getIERange( sel ) {
  function optimze (line 6375) | function optimze( range ) {
  function setValue (line 6541) | function setValue(form, editor) {
  function loadPlugins (line 6569) | function loadPlugins(me){
  function checkCurLang (line 6576) | function checkCurLang(I18N){
  function langReadied (line 6582) | function langReadied(me){
  function isCdataDiv (line 7350) | function isCdataDiv(node){
  function clear (line 7814) | function clear() {
  function showErrorMsg (line 8110) | function showErrorMsg(msg) {
  function json2str (line 8174) | function json2str(json) {
  function doAjax (line 8194) | function doAjax(url, ajaxOptions) {
  function doJsonp (line 8251) | function doJsonp(url, opts) {
  function isWordDocument (line 8434) | function isWordDocument( str ) {
  function transUnit (line 8438) | function transUnit( v ) {
  function filterPasteWord (line 8445) | function filterPasteWord( str ) {
  function insertLine (line 8660) | function insertLine(arr, current, begin) {
  function insertIndent (line 8665) | function insertIndent(arr, current) {
  function nodeToHtml (line 8691) | function nodeToHtml(node, arr, formatter, current) {
  function isText (line 8715) | function isText(node, arr) {
  function isElement (line 8725) | function isElement(node, arr, formatter, current) {
  function isComment (line 8775) | function isComment(node, arr) {
  function getNodeById (line 8779) | function getNodeById(root, id) {
  function getNodesByTagName (line 8793) | function getNodesByTagName(node, tagName, arr) {
  function nodeTraversal (line 8803) | function nodeTraversal(root,fn){
  function exec (line 9311) | function exec(name, val) {
  function text (line 9427) | function text(parent, data) {
  function element (line 9440) | function element(parent, tagName, htmlattr) {
  function comment (line 9485) | function comment(parent, data) {
  function filterNode (line 9580) | function filterNode(node,rules){
  function getUserData (line 9858) | function getUserData() {
  function tdParent (line 9978) | function tdParent(node){
  function isLine (line 10515) | function isLine(node,notEmpty){
  function removeNotAttributeSpan (line 10533) | function removeNotAttributeSpan(node){
  function autotype (line 10541) | function autotype(type,html){
  function DBC2SB (line 10722) | function DBC2SB(str) {
  function ToDBC (line 10738) | function ToDBC(txtstring) {
  function readLocalOpts (line 10756) | function readLocalOpts() {
  function stringToObj (line 10829) | function stringToObj(str) {
  function setBackground (line 10839) | function setBackground(obj) {
  function unhtmlData (line 11124) | function unhtmlData(imgCi) {
  function mergeWithParent (line 11487) | function mergeWithParent(node){
  function mergeChild (line 11503) | function mergeChild(rng,cmdName,value){
  function mergesibling (line 11526) | function mergesibling(rng,cmdName,value) {
  function optimize (line 11891) | function optimize( range ) {
  function doLink (line 11919) | function doLink(range,opt,me){
  function deleteIframe (line 12031) | function deleteIframe(){
  function isRedundantSpan (line 12094) | function isRedundantSpan (node) {
  function doRemove (line 12113) | function doRemove( range ) {
  function getObj (line 12276) | function getObj(editor){
  function formatTime (line 13043) | function formatTime(date, format) {
  function formatDate (line 13050) | function formatDate(date, format) {
  function fillNode (line 13882) | function fillNode(node){
  function isHr (line 13899) | function isHr(node){
  function compareAddr (line 14186) | function compareAddr(indexA, indexB) {
  function compareRangeAddress (line 14196) | function compareRangeAddress(rngAddrA, rngAddrB) {
  function UndoManager (line 14206) | function UndoManager() {
  function saveScene (line 14334) | function saveScene() {
  function save (line 14403) | function save(cont){
  function initZeroClipboard (line 14453) | function initZeroClipboard() {
  function getClipboardData (line 14533) | function getClipboardData(callback) {
  function getPureHtml (line 14583) | function getPureHtml(html){
  function filter (line 14611) | function filter(div) {
  function transP (line 14840) | function transP(node){
  function removeNode (line 14844) | function removeNode(node){
  function listToArray (line 14980) | function listToArray(list){
  function getStyle (line 15083) | function getStyle(node){
  function checkListType (line 15202) | function checkListType(content,container){
  function appendLi (line 15229) | function appendLi(list,p,type){
  function adjustListStyle (line 15283) | function adjustListStyle(doc,ignore){
  function adjustList (line 15359) | function adjustList(list, tag, style,ignoreEmpty) {
  function setListStyle (line 15383) | function setListStyle(list,style){
  function clearEmptySibling (line 15391) | function clearEmptySibling(node) {
  function preventAndSave (line 15403) | function preventAndSave() {
  function findList (line 15408) | function findList(node,filterFn){
  function checkLevel (line 15712) | function checkLevel(li){
  function getLi (line 15800) | function getLi(start){
  function createSourceEditor (line 16272) | function createSourceEditor(holder){
  function Scale (line 16883) | function Scale() {
  function checkIsCludeLink (line 17303) | function checkIsCludeLink(node){
  function adjustHeight (line 17392) | function adjustHeight() {
  function checkHasUI (line 17514) | function checkHasUI(){
  function fixIE6FixedPos (line 17521) | function fixIE6FixedPos(){
  function setFloating (line 17531) | function setFloating(){
  function unsetFloating (line 17555) | function unsetFloating(){
  function updateFloating (line 17564) | function updateFloating(){
  function creatInsertStr (line 17644) | function creatInsertStr(url,width,height,id,align,classname,type){
  function switchImgAndVideo (line 17675) | function switchImgAndVideo(root,img2video){
  function checkRange (line 18274) | function checkRange(beginRowIndex, beginColIndex, endRowIndex, endColInd...
  function replaceTdToTh (line 18561) | function replaceTdToTh(colIndex, cell, tableRow) {
  function replaceTdToTh (line 18679) | function replaceTdToTh(rowIndex, cell, tableRow) {
  function showError (line 18927) | function showError(e) {
  function createTable (line 18961) | function createTable(opt, tdWidth) {
  function getAverageWidth (line 19548) | function getAverageWidth() {
  function setAverageWidth (line 19571) | function setAverageWidth(averageWidth) {
  function getAverageHeight (line 19601) | function getAverageHeight() {
  function setAverageHeight (line 19641) | function setAverageHeight(averageHeight) {
  function resetTdWidth (line 19837) | function resetTdWidth(table, editor) {
  function getTableWidth (line 19854) | function getTableWidth(editor, needIEHack, defaultValue) {
  function getSelectedArr (line 19859) | function getSelectedArr(editor) {
  function showError (line 19912) | function showError(e) {
  function removeStyleSize (line 20591) | function removeStyleSize(obj, replaceToProperty) {
  function removeStyle (line 20596) | function removeStyle(obj, styleName, replaceToProperty) {
  function getParentTdOrTh (line 20603) | function getParentTdOrTh(ele) {
  function isEmptyBlock (line 20610) | function isEmptyBlock(node) {
  function mouseCoords (line 20624) | function mouseCoords(evt) {
  function mouseMoveEvent (line 20634) | function mouseMoveEvent(evt) {
  function toggleDragButton (line 20711) | function toggleDragButton(show, table, editor) {
  function createDragButton (line 20722) | function createDragButton(table, editor) {
  function inTableSide (line 20781) | function inTableSide(table, cell, evt, top) {
  function getPermissionX (line 20799) | function getPermissionX(dragTd, evt) {
  function getPermissionY (line 20818) | function getPermissionY(dragTd, evt) {
  function toggleDraggableState (line 20831) | function toggleDraggableState(editor, draggable, dir, mousePos, cell) {
  function getResizeLineByUETable (line 20852) | function getResizeLineByUETable() {
  function updateResizeLine (line 20890) | function updateResizeLine( cell, uetable ) {
  function showResizeLine (line 20908) | function showResizeLine( cell ) {
  function getRelation (line 20921) | function getRelation(ele, mousePos) {
  function mouseDownEvent (line 20943) | function mouseDownEvent(type, evt) {
  function clearTableTimer (line 20984) | function clearTableTimer() {
  function tableDbclickHandler (line 20990) | function tableDbclickHandler(evt) {
  function tableClickHander (line 21078) | function tableClickHander( evt ) {
  function borderActionHandler (line 21106) | function borderActionHandler( evt ) {
  function extractArray (line 21123) | function extractArray( originArr, key ) {
  function clearTableDragTimer (line 21142) | function clearTableDragTimer() {
  function reconstruct (line 21147) | function reconstruct( obj ) {
  function tableBorderDrag (line 21166) | function tableBorderDrag( evt ) {
  function mouseUpEvent (line 21187) | function mouseUpEvent(type, evt) {
  function mouseOverEvent (line 21305) | function mouseOverEvent(type, evt) {
  function setCellHeight (line 21333) | function setCellHeight(cell, height, backHeight) {
  function getWidth (line 21341) | function getWidth(cell) {
  function changeColWidth (line 21346) | function changeColWidth(cell, changeValue) {
  function isEditorDisabled (line 21383) | function isEditorDisabled() {
  function changeRowHeight (line 21387) | function changeRowHeight(td, changeValue) {
  function getCellsByMoveBorder (line 21405) | function getCellsByMoveBorder( cell, table, isContainMergeCell ) {
  function getMinWidthByTableCells (line 21476) | function getMinWidthByTableCells( cells ) {
  function correctChangeValue (line 21490) | function correctChangeValue( changeValue, relatedCell, cells ) {
  function getTableCellWidth (line 21527) | function getTableCellWidth( cell ) {
  function getTableCellOffset (line 21555) | function getTableCellOffset( cell ) {
  function getTabcellSpace (line 21578) | function getTabcellSpace() {
  function getDragLine (line 21624) | function getDragLine(editor, doc) {
  function hideDragLine (line 21639) | function hideDragLine(editor) {
  function showDragLineAt (line 21652) | function showDragLineAt(state, cell) {
  function switchBorderColor (line 21679) | function switchBorderColor(editor, flag) {
  function getTableWidth (line 21696) | function getTableWidth(editor, needIEHack, defaultValue) {
  function getTargetTd (line 21704) | function getTargetTd(editor, evt) {
  function getLabel (line 22325) | function getLabel(){
  function addList (line 22728) | function addList(type,evt){
  function findTextInString (line 22853) | function findTextInString(textContent,opt,currentIndex){
  function findTextBlockElm (line 22870) | function findTextBlockElm(node,currentIndex,opt){
  function findNTextInBlockElm (line 22896) | function findNTextInBlockElm(node,index,str){
  function searchReplace (line 22926) | function searchReplace(me,opt){
  function replaceText (line 22975) | function replaceText(rng,str){
  function htmlspecialchars_decode (line 23269) | function htmlspecialchars_decode(str){
  function catchremoteimage (line 23277) | function catchremoteimage(imgs, callbacks) {
  function getLocation (line 23306) | function getLocation(url){
  function onSuccess (line 23359) | function onSuccess(rs){
  function createInsertStr (line 23522) | function createInsertStr(obj,toEmbed){
  function creatInsertStr (line 23664) | function creatInsertStr(url,width,height,align,cssfloat,toEmbed){
  function sendAndInsertFile (line 23748) | function sendAndInsertFile(file, editor) {
  function getPasteImage (line 23851) | function getPasteImage(e){
  function getDropImage (line 23854) | function getDropImage(e){
  function save (line 23930) | function save ( editor ) {
  function validData (line 24134) | function validData ( table ) {
  function Section (line 24202) | function Section(option){
  function getSection (line 24213) | function getSection(option) {
  function getNodeFromAddress (line 24217) | function getNodeFromAddress(startAddress, root) {
  function getSectionLevel (line 24281) | function getSectionLevel(node) {
  function traversal (line 24292) | function traversal(node, Directory) {
  function isContainsAddress (line 24373) | function isContainsAddress(startAddress, endAddress, addressTarget){
  function getNodeFromAddress (line 24404) | function getNodeFromAddress(startAddress) {
  function initUploadBtn (line 24477) | function initUploadBtn(){
  function getFileIcon (line 24757) | function getFileIcon(url){
  function filter (line 24833) | function filter(node) {
  function handleMouseMove (line 25069) | function handleMouseMove(evt){
  function handleMouseUp (line 25080) | function handleMouseUp(evt){
  function releaseCaptrue (line 25094) | function releaseCaptrue(){
  function updateFixedOffset (line 25149) | function updateFixedOffset(){
  function bindFixedLayer (line 25161) | function bindFixedLayer(adjOffset){
  function closeAllPopup (line 25346) | function closeAllPopup( evt,el ){
  function genColorPicker (line 25640) | function genColorPicker(noColorText,editor){
  function getPara (line 26215) | function getPara(me){
  function setPos (line 27568) | function setPos (offset) {
  function setPosByCxtMenu (line 27578) | function setPosByCxtMenu (menu) {
  function hideAllMenu (line 27652) | function hideAllMenu (e) {
  function EditorUI (line 28647) | function EditorUI(options) {
  function countFn (line 28680) | function countFn() {
  function setCount (line 28771) | function setCount(editor,ui) {
  function down (line 29202) | function down() {
  function move (line 29233) | function move(event) {
  function up (line 29251) | function up() {
  function clearSelection (line 29268) | function clearSelection() {
  function renderUI (line 29360) | function renderUI() {
  function updateHolderPos (line 29545) | function updateHolderPos(){

FILE: static/common/user/uedit/ueditor.config.js
  function getUEBasePath (line 435) | function getUEBasePath(docUrl, confUrl) {
  function getConfigFilePath (line 441) | function getConfigFilePath() {
  function getBasePath (line 449) | function getBasePath(docUrl, confUrl) {
  function optimizationPath (line 470) | function optimizationPath(path) {

FILE: static/common/user/uedit/ueditor.parse.js
  function getItem (line 232) | function getItem(doc,obj){
  function findParentByTagName (line 433) | function findParentByTagName(target, tagNames) {
  function sortTable (line 445) | function sortTable(table, sortByCellIndex, compareFn) {
  function sort (line 515) | function sort(array, compareFn){
  function updateTable (line 529) | function updateTable(table) {
  function parseSources (line 559) | function parseSources () {
  function extractChartData (line 572) | function extractChartData ( rootNode ) {
  function formatData (line 591) | function formatData ( tableNode ) {
  function loadResources (line 632) | function loadResources () {
  function loadJQuery (line 638) | function loadJQuery () {
  function loadHighcharts (line 662) | function loadHighcharts () {
  function loadTypeConfig (line 687) | function loadTypeConfig () {
  function render (line 703) | function render () {
  function renderChart (line 730) | function renderChart ( container, typeConfig, config ) {
  function createContainer (line 785) | function createContainer ( tableNode ) {
  function analysisConfig (line 797) | function analysisConfig ( config ) {
  function applyStyle (line 932) | function applyStyle(nodes){
Copy disabled (too large) Download .json
Condensed preview — 480 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,663K chars).
[
  {
    "path": ".gitignore",
    "chars": 13,
    "preview": "/.idea\n/cache"
  },
  {
    "path": ".htaccess",
    "chars": 425,
    "preview": "<IfModule mod_rewrite.c>\n RewriteEngine on\n RewriteBase /\n #RewriteCond %{REQUEST_URI} !((.*).jpg|.jpeg|.bmp|.gif|.png|."
  },
  {
    "path": "404.html",
    "chars": 459,
    "preview": "<!doctype html>\n<html>\n<head>\n<meta charset=\"utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"v"
  },
  {
    "path": "LICENSE",
    "chars": 1081,
    "preview": "MIT License\r\n\r\nCopyright (c) 2021 如沐春\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\no"
  },
  {
    "path": "README.md",
    "chars": 2971,
    "preview": "[![极致CMS建站系统](https://www.jizhicms.cn/header_1920x700.png)](http://down.jizhicms.cn/jizhicms.zip)\r\n\r\n<h1 align=\"center\">"
  },
  {
    "path": "SECURITY.md",
    "chars": 718,
    "preview": "## Security Policy 安全策略\n\n### Supported Versions 支持的版本\n| Version | Supported          |\n| ------- | ------------------ |\n"
  },
  {
    "path": "app/admin/c/AdminController.php",
    "chars": 13132,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/ArticleController.php",
    "chars": 27916,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/ClasstypeController.php",
    "chars": 21725,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/CollectController.php",
    "chars": 7209,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/CommentController.php",
    "chars": 8508,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/CommonController.php",
    "chars": 7340,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/ErrorController.php",
    "chars": 1382,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 } \n// "
  },
  {
    "path": "app/admin/c/ExtmoldsController.php",
    "chars": 25348,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/FieldsController.php",
    "chars": 101705,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }\r\n"
  },
  {
    "path": "app/admin/c/IndexController.php",
    "chars": 49355,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/JzattrController.php",
    "chars": 2850,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/JzchainController.php",
    "chars": 4698,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/LinksController.php",
    "chars": 13663,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/LoginController.php",
    "chars": 3588,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/admin/c/MemberController.php",
    "chars": 12126,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/MessageController.php",
    "chars": 4832,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/MoldsController.php",
    "chars": 37512,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/OrderController.php",
    "chars": 14509,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/PluginsController.php",
    "chars": 28210,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/admin/c/ProductController.php",
    "chars": 28615,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/RecycleController.php",
    "chars": 4020,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/RulersController.php",
    "chars": 3254,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/SysController.php",
    "chars": 22399,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }\n// +"
  },
  {
    "path": "app/admin/c/TemplateController.php",
    "chars": 22654,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/c/UploadsController.php",
    "chars": 15793,
    "preview": "<?php\n\n\nnamespace app\\admin\\c;\n\n\nclass UploadsController extends CommonController\n{\n    function index(){\n        \n     "
  },
  {
    "path": "app/admin/c/WechatController.php",
    "chars": 11516,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/admin/exts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/PluginsController.php",
    "chars": 10623,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/config.php",
    "chars": 314,
    "preview": "<?php\n\nreturn [\n\t'name'=>'在线升级插件',//插件名,必须与插件文件夹名字相同\n\t'desc'=>'实现极致CMS后台在线升级',//插件介绍\n\t'author'=>'留恋风2581047041@qq.com',/"
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/conf/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/admin/c/back/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/admin/tpl/back/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/frphp/back/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/frphp/common/back/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/frphp/extend/back/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/frphp/lib/back/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/home/back/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/file/mysql/static/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/tpl/plugins-body.html",
    "chars": 1119,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  {include=\"style\"}\n\n</head>\n<body >\n\n  <div class=\"lay"
  },
  {
    "path": "app/admin/exts/jizhicmsupdate/tpl/plugins-description.html",
    "chars": 2058,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\t<style>\n\tblockquote.layui-elem-quote"
  },
  {
    "path": "app/admin/lang/back.php",
    "chars": 32832,
    "preview": "<?php return array (\n  '该角色下存在用户,请先移除用户再删除!' => '',\n  '删除失败,该分组不允许删除!' => '',\n  '删除成功!' => '',\n  '删除失败,请重试!' => '',\n  '非"
  },
  {
    "path": "app/admin/lang/cht.php",
    "chars": 45905,
    "preview": "<?php return array (\n  '该角色下存在用户,请先移除用户再删除!' => '該角色下存在用戶,請先移除用戶再刪除!',\n  '删除失败,该分组不允许删除!' => '刪除失敗,該分組不允許刪除!',\n  '删除成功!'"
  },
  {
    "path": "app/admin/lang/common.php",
    "chars": 674,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "app/admin/lang/en.php",
    "chars": 77487,
    "preview": "<?php\nreturn array(\n    '该角色下存在用户,请先移除用户再删除!' =>'There are users under this role,please remove the users before deleting"
  },
  {
    "path": "app/admin/lang/zh.php",
    "chars": 45906,
    "preview": "<?php return array (\n  '该角色下存在用户,请先移除用户再删除!' => '该角色下存在用户,请先移除用户再删除!',\n  '删除失败,该分组不允许删除!' => '删除失败,该分组不允许删除!',\n  '删除成功!'"
  },
  {
    "path": "app/admin/plugins/IndexController.php",
    "chars": 745,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/admin/t/tpl/addcache.html",
    "chars": 7611,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/addmenu.html",
    "chars": 9119,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t<sty"
  },
  {
    "path": "app/admin/t/tpl/admin-add.html",
    "chars": 5915,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n   {include=\"edit\"}\n  </head>\n  \n  <b"
  },
  {
    "path": "app/admin/t/tpl/admin-edit.html",
    "chars": 6236,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n   {include=\"edit\"}\n  </head>\n  \n  <b"
  },
  {
    "path": "app/admin/t/tpl/admin-list.html",
    "chars": 8266,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/admin.html",
    "chars": 6174,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n   {include=\"edit\"}\n  </head>\n  \n  <b"
  },
  {
    "path": "app/admin/t/tpl/article-add.html",
    "chars": 7197,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\n\t\t{include=\"edit\"}\n    <"
  },
  {
    "path": "app/admin/t/tpl/article-edit.html",
    "chars": 7537,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<link rel=\"stylesheet\" "
  },
  {
    "path": "app/admin/t/tpl/article-list.html",
    "chars": 14271,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/attr-list.html",
    "chars": 4842,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/beifen.html",
    "chars": 4698,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n    <head>\r\n      \r\n      <meta charset=\"UTF-8\">\r\n        {include=\"style\"}\r\n    </head>\r\n    <"
  },
  {
    "path": "app/admin/t/tpl/cache.html",
    "chars": 4232,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\">\n       {include=\"style\"}\n\t   <style>\n\t   .cache-s{\n\t   "
  },
  {
    "path": "app/admin/t/tpl/chain-list.html",
    "chars": 8698,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<style>\n\t\t.m-form{\n\t\t    padding: "
  },
  {
    "path": "app/admin/t/tpl/chongzhi-add.html",
    "chars": 4444,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n\t  {include=\"style\"}\n\t  \n  </head>\n  \n  <body>\n    <div cl"
  },
  {
    "path": "app/admin/t/tpl/chongzhi-list.html",
    "chars": 8764,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/classtype-add.html",
    "chars": 23570,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\t{include=\"edit\"}\n  </head>\n  \n  <body>"
  },
  {
    "path": "app/admin/t/tpl/classtype-addmany.html",
    "chars": 18492,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n\r\n<head>\r\n\t<meta charset=\"UTF-8\">\r\n\t{include=\"style\"}\r\n\r\n</head>\r\n\r\n<body>\r\n<div class=\"x-nav\">"
  },
  {
    "path": "app/admin/t/tpl/classtype-edit.html",
    "chars": 23979,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n\t{include=\"style\"}\n    {include=\"edit\"}\n  </head>\n  \n  <bo"
  },
  {
    "path": "app/admin/t/tpl/classtype-list.html",
    "chars": 9624,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\n</head>\n\n<body>\n<div class=\"x-nav\">\n      <sp"
  },
  {
    "path": "app/admin/t/tpl/collect-add.html",
    "chars": 9157,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/collect-edit.html",
    "chars": 9196,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/collect-list.html",
    "chars": 8679,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/collecttype-add.html",
    "chars": 2303,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n\t  {include=\"style\"}\n\t  \n  </head>\n  \n  <body>\n    <div cl"
  },
  {
    "path": "app/admin/t/tpl/collecttype-edit.html",
    "chars": 2401,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n\t  {include=\"style\"}\n\t  \n  </head>\n  \n  <body>\n    <div cl"
  },
  {
    "path": "app/admin/t/tpl/collecttype-list.html",
    "chars": 2956,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n\n  </head>\n  \n  <body>\n    <div class"
  },
  {
    "path": "app/admin/t/tpl/comment-add.html",
    "chars": 9236,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t<sty"
  },
  {
    "path": "app/admin/t/tpl/comment-details.html",
    "chars": 9709,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t<sty"
  },
  {
    "path": "app/admin/t/tpl/comment-list.html",
    "chars": 10232,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/common/content.html",
    "chars": 13613,
    "preview": "<div class=\"layui-input-block\" style=\"width:100%;\">\n\t\t\n    <div style=\"border: 1px solid #ccc;\">\n       <div id=\"editor-"
  },
  {
    "path": "app/admin/t/tpl/common/edit.html",
    "chars": 181,
    "preview": "<script type=\"text/javascript\" charset=\"utf-8\" src=\"/static/common/wangeditor/wangeditor.min.js\"></script>\r\n<link rel=\"s"
  },
  {
    "path": "app/admin/t/tpl/common/fields.html",
    "chars": 1720,
    "preview": "$(function(){\n\t$(document).on('click','.delete_file',function(){\n\t\t//删除页面信息\n\t\t\n\t\t$(this).parent().remove();\n\t})\n\t\n\t\n\t$(d"
  },
  {
    "path": "app/admin/t/tpl/common/footer.html",
    "chars": 490,
    "preview": "\n\t\n\t\t <script>\n $(function(){\n/*\n\tvar interval =  setInterval(function(){\n\t$.ajax({\n\t\t url:\"{fun U('Index/update_session"
  },
  {
    "path": "app/admin/t/tpl/common/style.html",
    "chars": 1776,
    "preview": "\t<title>{fun webConf('web_name')}</title>\n\t<meta name=\"renderer\" content=\"webkit|ie-comp|ie-stand\">\n    <meta http-equiv"
  },
  {
    "path": "app/admin/t/tpl/common/uediter.php",
    "chars": 30900,
    "preview": "<?php\r\n\r\n$rd = getRandChar(6);\r\nif(APP_CONTROLLER=='Sys'){\r\n    return '<div class=\"layui-collapse\">\r\n\t\t  <div class=\"la"
  },
  {
    "path": "app/admin/t/tpl/ctype.html",
    "chars": 28820,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n    <meta charset=\"UTF-8\">\n    {include=\"style\"}\n\t{include=\"edit\"}\n\t<style>\n\tbody .lay"
  },
  {
    "path": "app/admin/t/tpl/datacache.html",
    "chars": 3517,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n\n  </head>\n  \n  <body>\n    <div class"
  },
  {
    "path": "app/admin/t/tpl/desktop-add.html",
    "chars": 14436,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<style>\n\t\t.nav li {\n   "
  },
  {
    "path": "app/admin/t/tpl/desktop-edit.html",
    "chars": 16845,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<style>\n\t\t.nav li {\n   "
  },
  {
    "path": "app/admin/t/tpl/desktop.html",
    "chars": 5046,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/editcache.html",
    "chars": 7827,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/editmenu.html",
    "chars": 11102,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/extmolds-add.html",
    "chars": 4978,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n        {include=\"edit\"}\n"
  },
  {
    "path": "app/admin/t/tpl/extmolds-edit.html",
    "chars": 5083,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/extmolds-list.html",
    "chars": 14232,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/fields-add.html",
    "chars": 22224,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\t<style>\n\t\t.layui-form-item .layui-input-inlin"
  },
  {
    "path": "app/admin/t/tpl/fields-edit.html",
    "chars": 27332,
    "preview": "<!DOCTYPE html>\n<html>\n\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\t<style>\n\t\t.layui-form-item .layui-input-inlin"
  },
  {
    "path": "app/admin/t/tpl/fields-list-show.html",
    "chars": 6726,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/fields-list.html",
    "chars": 8860,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/getchildren.html",
    "chars": 3659,
    "preview": "{foreach $lists as $v}\n<tr cate-id=\"{$v['id']}\" fid=\"{$v['pid']}\" >\n  <td>\n    <div class=\"layui-unselect layui-form-che"
  },
  {
    "path": "app/admin/t/tpl/group-add.html",
    "chars": 8781,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n  \r\n  <head>\r\n    <meta charset=\"UTF-8\">\r\n    {include=\"style\"}\r\n  </head>\r\n  \r\n  <body>\r\n\t<div"
  },
  {
    "path": "app/admin/t/tpl/group-edit.html",
    "chars": 9537,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n  \r\n  <head>\r\n    <meta charset=\"UTF-8\">\r\n    {include=\"style\"}\r\n  </head>\r\n  \r\n  <body>\r\n\t<div"
  },
  {
    "path": "app/admin/t/tpl/group-list.html",
    "chars": 3383,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n  </head>\n  \n  <body>\n    <div class="
  },
  {
    "path": "app/admin/t/tpl/index.html",
    "chars": 5804,
    "preview": "<!doctype html>\r\n<html >\r\n<head>\r\n\t<meta charset=\"UTF-8\">\r\n\t{include=\"style\"}\r\n  <style type=\"text/css\">\r\n  html{ overfl"
  },
  {
    "path": "app/admin/t/tpl/links-add.html",
    "chars": 4058,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n        {include=\"edit\"}\n"
  },
  {
    "path": "app/admin/t/tpl/links-edit.html",
    "chars": 4197,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/links-list.html",
    "chars": 12908,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/linktype-add.html",
    "chars": 2293,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n\t  {include=\"style\"}\n\t  \n  </head>\n  \n  <body>\n    <div cl"
  },
  {
    "path": "app/admin/t/tpl/linktype-edit.html",
    "chars": 2391,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n\t  {include=\"style\"}\n\t  \n  </head>\n  \n  <body>\n    <div cl"
  },
  {
    "path": "app/admin/t/tpl/linktype-list.html",
    "chars": 2775,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n\n  </head>\n  \n  <body>\n    <div class"
  },
  {
    "path": "app/admin/t/tpl/login.html",
    "chars": 2893,
    "preview": "<!doctype html>\r\n<html>\r\n<head>\r\n\t<meta charset=\"UTF-8\">\r\n\t{include=\"style\"}\r\n\t<script src=\"/static/common/md5.js\" chars"
  },
  {
    "path": "app/admin/t/tpl/loginlog.html",
    "chars": 1530,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\">\n       {include=\"style\"}\n\t   <style>\n\t   \n\t   </style>\n"
  },
  {
    "path": "app/admin/t/tpl/member-add.html",
    "chars": 3482,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n    {include=\"style\"}\n    {include=\"edit\"}\n  </head>\n  \n  "
  },
  {
    "path": "app/admin/t/tpl/member-edit.html",
    "chars": 3895,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n    {include=\"style\"}\n    {include=\"edit\"}\n  </head>\n  \n  "
  },
  {
    "path": "app/admin/t/tpl/member-list.html",
    "chars": 7052,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/membergroup-add.html",
    "chars": 6382,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n    {include=\"style\"}\n  </head>\n  \n  <body>\n\t<div class=\"x"
  },
  {
    "path": "app/admin/t/tpl/membergroup-edit.html",
    "chars": 6800,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n    {include=\"style\"}\n  </head>\n  \n  <body>\n\t<div class=\"x"
  },
  {
    "path": "app/admin/t/tpl/membergroup-list.html",
    "chars": 4386,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n  </head>\n  \n  <body>\n    <div class="
  },
  {
    "path": "app/admin/t/tpl/menu.html",
    "chars": 3511,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n\n  </head>\n  \n  <body>\n    <div class"
  },
  {
    "path": "app/admin/t/tpl/message-details.html",
    "chars": 4638,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t{include=\"edit\"}\n\t\t\n   "
  },
  {
    "path": "app/admin/t/tpl/message-list.html",
    "chars": 7795,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/molds-add.html",
    "chars": 9748,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<style>\n\t\t.layui-form-p"
  },
  {
    "path": "app/admin/t/tpl/molds-edit.html",
    "chars": 9730,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<style>\n\t\t.layui-form-p"
  },
  {
    "path": "app/admin/t/tpl/molds-list.html",
    "chars": 5747,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/order-details.html",
    "chars": 12625,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n  </head>\n  \n  <body>\n\t<div class=\"x-"
  },
  {
    "path": "app/admin/t/tpl/order-list.html",
    "chars": 10654,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n</head>\n<body>\n<div class=\"x-nav\">\n            "
  },
  {
    "path": "app/admin/t/tpl/pictures.html",
    "chars": 7791,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/plugins-list.html",
    "chars": 9445,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n   <style>\n\t.btn-jz{\n\t\tmargin-left:0p"
  },
  {
    "path": "app/admin/t/tpl/plugins-update.html",
    "chars": 4662,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\n</head>\n<body >\n  <div class=\"layui-"
  },
  {
    "path": "app/admin/t/tpl/power-add.html",
    "chars": 3496,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n  {include=\"style\"}\n  \n  </head>\n  \n  <body>\n    <div clas"
  },
  {
    "path": "app/admin/t/tpl/power-edit.html",
    "chars": 3561,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n  {include=\"style\"}\n    \n  </head>\n  \n  <body>\n    <div cl"
  },
  {
    "path": "app/admin/t/tpl/power-list.html",
    "chars": 4993,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/power-tree.html",
    "chars": 4783,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n\n  </head>\n  \n  <body>\n    <div class"
  },
  {
    "path": "app/admin/t/tpl/product-add.html",
    "chars": 7393,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<link rel=\"stylesheet\" "
  },
  {
    "path": "app/admin/t/tpl/product-edit.html",
    "chars": 7510,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<link rel=\"stylesheet\" "
  },
  {
    "path": "app/admin/t/tpl/product-list.html",
    "chars": 14159,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/recycle-list.html",
    "chars": 7323,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/restrucfields.html",
    "chars": 5656,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/ruler-add.html",
    "chars": 4407,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n  {include=\"style\"}\n \n  </head>\n  \n  <body>\n    <div class"
  },
  {
    "path": "app/admin/t/tpl/ruler-edit.html",
    "chars": 4676,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n  {include=\"style\"}\n    \n  </head>\n  \n  <body>\n    <div cl"
  },
  {
    "path": "app/admin/t/tpl/ruler-list.html",
    "chars": 5079,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n\t<meta charset=\"UTF-8\">\n        {include=\"style\"}\n    </head>\n    <body>\n        <div "
  },
  {
    "path": "app/admin/t/tpl/showlabel.html",
    "chars": 35763,
    "preview": "<!DOCTYPE html>\n<html>\n    \n    <head>\n       <meta charset=\"UTF-8\">\n        {include=\"style\"}\n\t\t<style>\n\t\t.layui-code-v"
  },
  {
    "path": "app/admin/t/tpl/sitemap.html",
    "chars": 8179,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\t<style>\n\t\t.cache-s{\n\t\t\twidth:6rem !important;\n"
  },
  {
    "path": "app/admin/t/tpl/style/css/font.css",
    "chars": 1052,
    "preview": "/*\n@font-face {\n  font-family: 'iconfont';\n  src: url('../fonts/iconfont.eot');\n  src: url('../fonts/iconfont.eot?#iefix"
  },
  {
    "path": "app/admin/t/tpl/style/css/iconfont.css",
    "chars": 30254,
    "preview": "@font-face {\n  font-family: \"iconfont\"; /* Project id 1357552 */\n  src: url('iconfont.woff2?t=1638967197290') format('wo"
  },
  {
    "path": "app/admin/t/tpl/style/css/style.css",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/admin/t/tpl/style/css/xadmin.css",
    "chars": 17933,
    "preview": "@charset \"utf-8\";\n@import url(/static/common/layui/css/layui.css);\n*{\n    margin: 0px;\n    padding: 0px;\n    font-family"
  },
  {
    "path": "app/admin/t/tpl/style/fonts/demo.css",
    "chars": 8305,
    "preview": "/* Logo 字体 */\n@font-face {\n  font-family: \"iconfont logo\";\n  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.e"
  },
  {
    "path": "app/admin/t/tpl/style/fonts/iconfont.css",
    "chars": 30254,
    "preview": "@font-face {\n  font-family: \"iconfont\"; /* Project id 1357552 */\n  src: url('iconfont.woff2?t=1638967197290') format('wo"
  },
  {
    "path": "app/admin/t/tpl/style/fonts/iconfont.js",
    "chars": 643073,
    "preview": "!function(a){var h,c,l,o,i,v='<svg><symbol id=\"icon-xiangshangshouqi\" viewBox=\"0 0 1024 1024\"><path d=\"M852 660L557.6 36"
  },
  {
    "path": "app/admin/t/tpl/style/fonts/iconfont.json",
    "chars": 93512,
    "preview": "{\n  \"id\": \"1357552\",\n  \"name\": \"极致CMS图标库\",\n  \"font_family\": \"iconfont\",\n  \"css_prefix_text\": \"icon-\",\n  \"description\": \""
  },
  {
    "path": "app/admin/t/tpl/style/js/target_page.js",
    "chars": 278,
    "preview": "\n/*弹出层*/\n/*\n    参数解释:\n    title   标题\n    url     请求的url\n    id      需要操作的数据id\n    w       弹出层宽度(缺省调默认值)\n    h       弹出层高"
  },
  {
    "path": "app/admin/t/tpl/style/js/target_window.js",
    "chars": 1295,
    "preview": "\n/*弹出层*/\n/*\n    参数解释:\n    title   标题\n    url     请求的url\n    id      需要操作的数据id\n    w       弹出层宽度(缺省调默认值)\n    h       弹出层高"
  },
  {
    "path": "app/admin/t/tpl/style/js/xadmin.js",
    "chars": 10195,
    "preview": "$(function () {\r\n    //加载弹出层\r\n    layui.use(['form','element'],\r\n    function() {\r\n        layer = layui.layer;\r\n       "
  },
  {
    "path": "app/admin/t/tpl/style/js/xm-select.js",
    "chars": 100178,
    "preview": "/*!\n * @Title: xm-select\n * @Version: 1.2.4\n * @Description:基于layui的多选解决方案\n * @Site: https://gitee.com/maplemei/xm-selec"
  },
  {
    "path": "app/admin/t/tpl/style/tags/jquery.tagsinput.css",
    "chars": 903,
    "preview": "div.tagsinput { border:1px solid #CCC; background: #FFF; padding:5px; width:300px; height:100px; overflow-y: auto;}\ndiv."
  },
  {
    "path": "app/admin/t/tpl/style/tags/jquery.tagsinput.js",
    "chars": 11328,
    "preview": "/*\n\n\tjQuery Tags Input Plugin 1.3.3\n\n\tCopyright (c) 2011 XOXCO, Inc\n\n\tDocumentation for this plugin lives here:\n\thttp://"
  },
  {
    "path": "app/admin/t/tpl/sys.html",
    "chars": 21139,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\t<meta charset=\"UTF-8\">\r\n\t{include=\"style\"}\r\n\t{include=\"edit\"}\r\n\t<style>\r\n\t\tbody .layui"
  },
  {
    "path": "app/admin/t/tpl/systype.html",
    "chars": 5966,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n\t<style>\n\t\t.m-form{\n\t\t    padding: 25"
  },
  {
    "path": "app/admin/t/tpl/template-list.html",
    "chars": 9254,
    "preview": "<!DOCTYPE html>\n<html>\n  \n  <head>\n    <meta charset=\"UTF-8\">\n   {include=\"style\"}\n   <style>\n\t.btn-jz{\n\t\tmargin-left:0p"
  },
  {
    "path": "app/admin/t/tpl/template-update.html",
    "chars": 4690,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t{include=\"style\"}\n\n</head>\n<body >\n  <div class=\"layui-"
  },
  {
    "path": "app/admin/t/tpl/tohtml.html",
    "chars": 14184,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n    <head>\r\n        <meta charset=\"UTF-8\">\r\n       {include=\"style\"}\r\n\t   <style>\r\n\t   .cache-s"
  },
  {
    "path": "app/admin/t/tpl/unicode.html",
    "chars": 135254,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\"/>\n  <title>IconFont Demo</title>\n   <link rel=\"shortcut icon\" href"
  },
  {
    "path": "app/admin/t/tpl/wechat-caidan.html",
    "chars": 7569,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\t<meta charset=\"UTF-8\">\r\n\t{include=\"style\"}\r\n</head>\r\n<body>\r\n<div class=\"x-nav\">\r\n    "
  },
  {
    "path": "app/admin/t/tpl/wechat-sucai.html",
    "chars": 6912,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n    <head>\r\n\t\t<meta charset=\"UTF-8\">\r\n\t\t<meta name=\"referrer\" content=\"never\">\r\n   {include=\"st"
  },
  {
    "path": "app/admin/t/tpl/welcome.html",
    "chars": 9666,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\">\n       {include=\"style\"}\n    </head>\n    <body>\n    <di"
  },
  {
    "path": "app/home/c/CommentController.php",
    "chars": 10668,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/home/c/CommonController.php",
    "chars": 34328,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/home/c/ErrorController.php",
    "chars": 1358,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 } \n// "
  },
  {
    "path": "app/home/c/HomeController.php",
    "chars": 34600,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/home/c/JzpayController.php",
    "chars": 3058,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/home/c/LoginController.php",
    "chars": 21796,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/home/c/MessageController.php",
    "chars": 10151,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/home/c/MypayController.php",
    "chars": 36013,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/home/c/OrderController.php",
    "chars": 25770,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/home/c/ScreenController.php",
    "chars": 7785,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/home/c/TagsController.php",
    "chars": 3931,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  "
  },
  {
    "path": "app/home/c/UploadsController.php",
    "chars": 17666,
    "preview": "<?php\n\n\nnamespace app\\home\\c;\n\n\nclass UploadsController extends CommonController\n{\n    function index(){\n    \n        //"
  },
  {
    "path": "app/home/c/UserController.php",
    "chars": 69258,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "app/home/c/WechatController.php",
    "chars": 12397,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "app/home/lang/back.php",
    "chars": 32832,
    "preview": "<?php return array (\n  '该角色下存在用户,请先移除用户再删除!' => '',\n  '删除失败,该分组不允许删除!' => '',\n  '删除成功!' => '',\n  '删除失败,请重试!' => '',\n  '非"
  },
  {
    "path": "app/home/lang/cht.php",
    "chars": 47466,
    "preview": "<?php return array (\r\n  '该角色下存在用户,请先移除用户再删除!' => '該角色下存在用戶,請先移除用戶再刪除!',\r\n  '删除失败,该分组不允许删除!' => '刪除失敗,該分組不允許刪除!',\r\n  '删除成"
  },
  {
    "path": "app/home/lang/common.php",
    "chars": 693,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "app/home/lang/zh.php",
    "chars": 47469,
    "preview": "<?php return array (\r\n  '该角色下存在用户,请先移除用户再删除!' => '该角色下存在用户,请先移除用户再删除!',\r\n  '删除失败,该分组不允许删除!' => '删除失败,该分组不允许删除!',\r\n  '删除成"
  },
  {
    "path": "app/home/plugins/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/home/template/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "backup/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "conf/Functions.php",
    "chars": 109320,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "conf/FunctionsExt.php",
    "chars": 668,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "conf/config.php",
    "chars": 477,
    "preview": "<?php return array (\n  'db' => \n  array (\n    'host' => '',\n    'dbname' => '',\n    'username' => '',\n    'password' => "
  },
  {
    "path": "conf/route.php",
    "chars": 1156,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | JiZhiCMS { 极致CMS,给您极致的建站体验 }  \n//"
  },
  {
    "path": "frphp/common/Config.php",
    "chars": 1601,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "frphp/common/Error.php",
    "chars": 2789,
    "preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\""
  },
  {
    "path": "frphp/common/Functions.php",
    "chars": 18148,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "frphp/db/DBholder.php",
    "chars": 3457,
    "preview": "<?php\r\n\r\n// +----------------------------------------------------------------------\r\n// | FrPHP { a friendly PHP Framewo"
  },
  {
    "path": "frphp/extend/ArrayPage.php",
    "chars": 4829,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "frphp/extend/DB_API.php",
    "chars": 8586,
    "preview": "<?php\n\n// +----------------------------------------------------------------------\n// | FrPHP { a friendly PHP Framework "
  },
  {
    "path": "frphp/extend/DatabaseTool.php",
    "chars": 9731,
    "preview": "<?php\r\n\r\n/**\r\n * Class DatabaseTool\r\n * 最新工具类\r\n * @author tofo <2581047041@qq.com>\r\n * @time 2022/7/19 19:00\r\n */\r\nclass"
  },
  {
    "path": "frphp/extend/FrSession.php",
    "chars": 3688,
    "preview": "<?php\n\n/**\n * ************\n * FrSession类  重写session机制\n * 将session存到redis数据库中\n * ************\n */\n \n\nclass FrSession impl"
  }
]

// ... and 280 more files (download for full content)

About this extraction

This page contains the full source code of the Cherry-toto/jizhicms GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 480 files (9.8 MB), approximately 2.6M tokens, and a symbol index with 2395 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!