From 6ad0dc3e51f6a3aceca03f1f213c5c5cbd216619 Mon Sep 17 00:00:00 2001 From: "zhangf@suq.cn" Date: Sat, 31 Jan 2026 13:21:23 +0800 Subject: [PATCH] init --- .htaccess | 15 + .idea/.gitignore | 8 + .idea/modules.xml | 8 + .idea/php.xml | 22 + .idea/zhaobiaopai.iml | 8 + 404.php | 33 + a.php | 62 + about/agreement.html | 241 + about/contact.html | 241 + about/copyright.html | 241 + about/index.html | 241 + ad/index.php | 6 + ad/list.php | 6 + ad/show.php | 6 + admin.php | 62 + ajax.php | 13 + announce/index.php | 6 + announce/list.php | 6 + announce/show.php | 6 + apple-touch-icon-precomposed.png | Bin 0 -> 29281 bytes archiver/index.php | 61 + baidunews.xml | 2706 +++++++++ brand/ajax.php | 3 + brand/config.inc.php | 3 + brand/index.php | 6 + brand/list.php | 6 + brand/message.php | 6 + brand/search.php | 6 + brand/show.php | 6 + buy/ajax.php | 3 + buy/config.inc.php | 3 + buy/index.php | 6 + buy/list.php | 6 + buy/price.php | 6 + buy/search.php | 6 + buy/show.php | 6 + club/ajax.php | 3 + club/chat.php | 6 + club/config.inc.php | 3 + club/fans.php | 6 + club/goto.php | 5 + club/index.php | 6 + club/list.php | 6 + club/search.php | 6 + club/show.php | 6 + comment/index.php | 6 + common.inc.php | 194 + company/1/index.html | 699 +++ company/1/list1.html | 699 +++ company/1/list2.html | 610 ++ company/15/index.html | 549 ++ company/15/list1.html | 549 ++ company/16/index.html | 575 ++ company/16/list1.html | 575 ++ company/404.php | 3 + company/ajax.php | 3 + company/brand/index.php | 7 + company/buy/index.php | 7 + company/config.inc.php | 3 + company/contact/index.php | 7 + company/credit/index.php | 7 + company/exhibit/index.php | 7 + company/favicon.ico | Bin 0 -> 1150 bytes company/guest.php | 5 + company/home.php | 5 + company/homepage/index.php | 7 + company/honor/index.php | 7 + company/image/ab-hide-on.png | Bin 0 -> 300 bytes company/image/ab-hide.png | Bin 0 -> 275 bytes company/image/ab-play-on.png | Bin 0 -> 1472 bytes company/image/ab-play.png | Bin 0 -> 1589 bytes company/image/ab-zoom-bg.gif | Bin 0 -> 67 bytes company/image/ab-zoom.png | Bin 0 -> 474 bytes company/image/btn_bg.gif | Bin 0 -> 100 bytes company/image/free_bg.gif | Bin 0 -> 4719 bytes company/image/homepage.gif | Bin 0 -> 932 bytes company/image/ico_arrow.gif | Bin 0 -> 58 bytes company/image/more.gif | Bin 0 -> 386 bytes company/image/nothumb.gif | Bin 0 -> 801 bytes company/image/pos.png | Bin 0 -> 3290 bytes company/image/vip_bg.gif | Bin 0 -> 4384 bytes company/index.php | 6 + company/info/index.php | 7 + company/introduce/index.php | 7 + company/job/index.php | 7 + company/link/index.php | 7 + company/list.php | 6 + company/mall/index.php | 7 + company/news.php | 7 + company/news/index.php | 7 + company/photo/index.php | 7 + company/robots.txt | 4 + company/search.php | 6 + company/sell/index.php | 7 + company/skin/blue/banner.jpg | Bin 0 -> 64129 bytes company/skin/blue/mobile.css | 0 company/skin/blue/style.css | 31 + company/skin/blue/thumb.gif | Bin 0 -> 11955 bytes company/skin/common.css | 118 + company/skin/default/banner.jpg | Bin 0 -> 62711 bytes company/skin/default/mobile.css | 0 company/skin/default/style.css | 31 + company/skin/default/thumb.gif | Bin 0 -> 14563 bytes company/skin/green/banner.jpg | Bin 0 -> 344011 bytes company/skin/green/mobile.css | 0 company/skin/green/style.css | 31 + company/skin/green/thumb.gif | Bin 0 -> 13593 bytes company/skin/mobile.css | 1 + company/skin/orange/banner.jpg | Bin 0 -> 51234 bytes company/skin/orange/mobile.css | 0 company/skin/orange/style.css | 31 + company/skin/orange/thumb.gif | Bin 0 -> 14310 bytes company/skin/purple/banner.jpg | Bin 0 -> 103556 bytes company/skin/purple/mobile.css | 0 company/skin/purple/style.css | 31 + company/skin/purple/thumb.gif | Bin 0 -> 14172 bytes company/tour.php | 5 + company/video/index.php | 7 + config.inc.php | 47 + down/ajax.php | 3 + down/config.inc.php | 3 + down/down.php | 6 + down/index.php | 6 + down/list.php | 6 + down/search.php | 6 + down/show.php | 6 + exhibit/ajax.php | 3 + exhibit/config.inc.php | 3 + exhibit/index.html | 533 ++ exhibit/index.php | 6 + exhibit/list.php | 6 + exhibit/search.php | 6 + exhibit/show.php | 6 + exhibit/sign.php | 6 + exhibit/zhanhui/index.html | 461 ++ exhibit/zhanhui/list1.html | 461 ++ exhibit/zhanhui/list2.html | 405 ++ favicon.ico | Bin 0 -> 4286 bytes feed/ajax.php | 3 + feed/index.php | 5 + feed/rss.php | 5 + form/ajax.php | 3 + form/index.php | 6 + form/list.php | 6 + form/show.php | 6 + gift/index.php | 6 + gift/list.php | 6 + gift/show.php | 6 + group/ajax.php | 3 + group/buy.php | 6 + group/config.inc.php | 3 + group/index.php | 6 + group/list.php | 6 + group/search.php | 6 + group/show.php | 6 + guestbook/ajax.php | 3 + guestbook/index.php | 5 + include/403.inc.php | 6 + include/404.inc.php | 6 + include/admin.func.php | 372 ++ include/bmp.func.php | 97 + include/cache.func.php | 361 ++ include/cache_apc.class.php | 38 + include/cache_eaccelerator.class.php | 39 + include/cache_file.class.php | 58 + include/cache_memcache.class.php | 44 + include/cache_redis.class.php | 49 + include/cache_wincache.class.php | 38 + include/cache_xcache.class.php | 38 + include/captcha.class.php | 129 + include/child.inc.php | 39 + include/city.inc.php | 82 + include/client.func.php | 185 + include/cloud.func.php | 25 + include/content.class.php | 122 + include/convert.func.php | 1 + include/crypt.func.php | 234 + include/db.class.php | 34 + include/db_mysql.class.php | 161 + include/db_mysqli.class.php | 166 + include/db_pdo.class.php | 134 + include/defend.inc.php | 23 + include/fields.func.php | 350 ++ include/file.func.php | 256 + include/ftp.class.php | 71 + include/global.func.php | 1330 +++++ include/hook.inc.php | 8 + include/image.class.php | 294 + include/index.htm.php | 45 + include/index.html | 1 + include/ip.class.php | 169 + include/mail.func.php | 160 + include/mobile.func.php | 111 + include/mobile.htm.php | 26 + include/mobile.inc.php | 32 + include/module.func.php | 397 ++ include/post.func.php | 879 +++ include/property.func.php | 125 + include/remote.class.php | 100 + include/rewrite.inc.php | 26 + include/safe.func.php | 98 + include/seo.inc.php | 121 + include/session_apc.class.php | 45 + include/session_eaccelerator.class.php | 45 + include/session_file.class.php | 28 + include/session_memcache.class.php | 52 + include/session_mysql.class.php | 50 + include/session_redis.class.php | 52 + include/session_wincache.class.php | 45 + include/session_xcache.class.php | 45 + include/sphinx.class.php | 1399 +++++ include/sql.func.php | 82 + include/tag.func.php | 133 + include/template.func.php | 43 + include/tree.class.php | 86 + include/type.class.php | 85 + include/update.inc.php | 16 + include/upload.class.php | 112 + index.html | 700 +++ index.php | 78 + invest/ajax.php | 3 + invest/config.inc.php | 3 + invest/index.php | 6 + invest/list.php | 6 + invest/message.php | 6 + invest/search.php | 6 + invest/show.php | 6 + job/ajax.php | 3 + job/apply.php | 6 + job/config.inc.php | 3 + job/index.php | 6 + job/list.php | 6 + job/resume.php | 6 + job/search.php | 6 + job/show.php | 6 + job/talent.php | 6 + know/ajax.php | 3 + know/answer.php | 5 + know/config.inc.php | 3 + know/expert.php | 6 + know/faq.php | 5 + know/index.php | 6 + know/list.php | 6 + know/search.php | 6 + know/show.php | 6 + lang/index.html | 1 + lang/these.name.php | 5 + lang/zh-cn/article.inc.php | 9 + lang/zh-cn/brand.inc.php | 7 + lang/zh-cn/buy.inc.php | 7 + lang/zh-cn/club.inc.php | 84 + lang/zh-cn/company.inc.php | 10 + lang/zh-cn/down.inc.php | 9 + lang/zh-cn/exhibit.inc.php | 11 + lang/zh-cn/extend.inc.php | 144 + lang/zh-cn/group.inc.php | 15 + lang/zh-cn/homepage.inc.php | 27 + lang/zh-cn/include.inc.php | 50 + lang/zh-cn/index.html | 1 + lang/zh-cn/info.inc.php | 7 + lang/zh-cn/job.inc.php | 23 + lang/zh-cn/know.inc.php | 14 + lang/zh-cn/lang.chat.js | 16 + lang/zh-cn/lang.inc.php | 42 + lang/zh-cn/lang.js | 102 + lang/zh-cn/lang.mobile.js | 23 + lang/zh-cn/mall.inc.php | 24 + lang/zh-cn/member.inc.php | 601 ++ lang/zh-cn/message.inc.php | 85 + lang/zh-cn/misc.inc.php | 124 + lang/zh-cn/mobile.inc.php | 32 + lang/zh-cn/my.inc.php | 60 + lang/zh-cn/order.inc.php | 217 + lang/zh-cn/photo.inc.php | 14 + lang/zh-cn/quote.inc.php | 18 + lang/zh-cn/search.inc.php | 48 + lang/zh-cn/sell.inc.php | 19 + lang/zh-cn/sms.inc.php | 19 + lang/zh-cn/special.inc.php | 7 + lang/zh-cn/video.inc.php | 7 + license.txt | 36 + link/ajax.php | 3 + link/index.php | 6 + link/list.php | 6 + mall/ajax.php | 3 + mall/compare.php | 5 + mall/config.inc.php | 3 + mall/index.php | 6 + mall/list.php | 6 + mall/search.php | 6 + mall/show.php | 6 + mall/view.php | 5 + nginx.htaccess | 11 + photo/ajax.php | 3 + photo/config.inc.php | 3 + photo/index.php | 6 + photo/list.php | 6 + photo/private.php | 6 + photo/search.php | 6 + photo/show.php | 6 + photo/view.php | 6 + poll/ajax.php | 3 + poll/index.php | 6 + poll/list.php | 6 + poll/show.php | 6 + quote/ajax.php | 3 + quote/config.inc.php | 3 + quote/index.php | 6 + quote/list.php | 6 + quote/price.php | 6 + quote/product.php | 6 + quote/search.php | 6 + quote/show.php | 6 + robots.txt | 11 + sitemaps.xml | 9693 ++++++++++++++++++++++++++++++++ upload.php | 238 + version.inc.php | 5 + 317 files changed, 33429 insertions(+) create mode 100644 .htaccess create mode 100644 .idea/.gitignore create mode 100644 .idea/modules.xml create mode 100644 .idea/php.xml create mode 100644 .idea/zhaobiaopai.iml create mode 100644 404.php create mode 100644 a.php create mode 100644 about/agreement.html create mode 100644 about/contact.html create mode 100644 about/copyright.html create mode 100644 about/index.html create mode 100644 ad/index.php create mode 100644 ad/list.php create mode 100644 ad/show.php create mode 100644 admin.php create mode 100644 ajax.php create mode 100644 announce/index.php create mode 100644 announce/list.php create mode 100644 announce/show.php create mode 100644 apple-touch-icon-precomposed.png create mode 100644 archiver/index.php create mode 100644 baidunews.xml create mode 100644 brand/ajax.php create mode 100644 brand/config.inc.php create mode 100644 brand/index.php create mode 100644 brand/list.php create mode 100644 brand/message.php create mode 100644 brand/search.php create mode 100644 brand/show.php create mode 100644 buy/ajax.php create mode 100644 buy/config.inc.php create mode 100644 buy/index.php create mode 100644 buy/list.php create mode 100644 buy/price.php create mode 100644 buy/search.php create mode 100644 buy/show.php create mode 100644 club/ajax.php create mode 100644 club/chat.php create mode 100644 club/config.inc.php create mode 100644 club/fans.php create mode 100644 club/goto.php create mode 100644 club/index.php create mode 100644 club/list.php create mode 100644 club/search.php create mode 100644 club/show.php create mode 100644 comment/index.php create mode 100644 common.inc.php create mode 100644 company/1/index.html create mode 100644 company/1/list1.html create mode 100644 company/1/list2.html create mode 100644 company/15/index.html create mode 100644 company/15/list1.html create mode 100644 company/16/index.html create mode 100644 company/16/list1.html create mode 100644 company/404.php create mode 100644 company/ajax.php create mode 100644 company/brand/index.php create mode 100644 company/buy/index.php create mode 100644 company/config.inc.php create mode 100644 company/contact/index.php create mode 100644 company/credit/index.php create mode 100644 company/exhibit/index.php create mode 100644 company/favicon.ico create mode 100644 company/guest.php create mode 100644 company/home.php create mode 100644 company/homepage/index.php create mode 100644 company/honor/index.php create mode 100644 company/image/ab-hide-on.png create mode 100644 company/image/ab-hide.png create mode 100644 company/image/ab-play-on.png create mode 100644 company/image/ab-play.png create mode 100644 company/image/ab-zoom-bg.gif create mode 100644 company/image/ab-zoom.png create mode 100644 company/image/btn_bg.gif create mode 100644 company/image/free_bg.gif create mode 100644 company/image/homepage.gif create mode 100644 company/image/ico_arrow.gif create mode 100644 company/image/more.gif create mode 100644 company/image/nothumb.gif create mode 100644 company/image/pos.png create mode 100644 company/image/vip_bg.gif create mode 100644 company/index.php create mode 100644 company/info/index.php create mode 100644 company/introduce/index.php create mode 100644 company/job/index.php create mode 100644 company/link/index.php create mode 100644 company/list.php create mode 100644 company/mall/index.php create mode 100644 company/news.php create mode 100644 company/news/index.php create mode 100644 company/photo/index.php create mode 100644 company/robots.txt create mode 100644 company/search.php create mode 100644 company/sell/index.php create mode 100644 company/skin/blue/banner.jpg create mode 100644 company/skin/blue/mobile.css create mode 100644 company/skin/blue/style.css create mode 100644 company/skin/blue/thumb.gif create mode 100644 company/skin/common.css create mode 100644 company/skin/default/banner.jpg create mode 100644 company/skin/default/mobile.css create mode 100644 company/skin/default/style.css create mode 100644 company/skin/default/thumb.gif create mode 100644 company/skin/green/banner.jpg create mode 100644 company/skin/green/mobile.css create mode 100644 company/skin/green/style.css create mode 100644 company/skin/green/thumb.gif create mode 100644 company/skin/mobile.css create mode 100644 company/skin/orange/banner.jpg create mode 100644 company/skin/orange/mobile.css create mode 100644 company/skin/orange/style.css create mode 100644 company/skin/orange/thumb.gif create mode 100644 company/skin/purple/banner.jpg create mode 100644 company/skin/purple/mobile.css create mode 100644 company/skin/purple/style.css create mode 100644 company/skin/purple/thumb.gif create mode 100644 company/tour.php create mode 100644 company/video/index.php create mode 100644 config.inc.php create mode 100644 down/ajax.php create mode 100644 down/config.inc.php create mode 100644 down/down.php create mode 100644 down/index.php create mode 100644 down/list.php create mode 100644 down/search.php create mode 100644 down/show.php create mode 100644 exhibit/ajax.php create mode 100644 exhibit/config.inc.php create mode 100644 exhibit/index.html create mode 100644 exhibit/index.php create mode 100644 exhibit/list.php create mode 100644 exhibit/search.php create mode 100644 exhibit/show.php create mode 100644 exhibit/sign.php create mode 100644 exhibit/zhanhui/index.html create mode 100644 exhibit/zhanhui/list1.html create mode 100644 exhibit/zhanhui/list2.html create mode 100644 favicon.ico create mode 100644 feed/ajax.php create mode 100644 feed/index.php create mode 100644 feed/rss.php create mode 100644 form/ajax.php create mode 100644 form/index.php create mode 100644 form/list.php create mode 100644 form/show.php create mode 100644 gift/index.php create mode 100644 gift/list.php create mode 100644 gift/show.php create mode 100644 group/ajax.php create mode 100644 group/buy.php create mode 100644 group/config.inc.php create mode 100644 group/index.php create mode 100644 group/list.php create mode 100644 group/search.php create mode 100644 group/show.php create mode 100644 guestbook/ajax.php create mode 100644 guestbook/index.php create mode 100644 include/403.inc.php create mode 100644 include/404.inc.php create mode 100644 include/admin.func.php create mode 100644 include/bmp.func.php create mode 100644 include/cache.func.php create mode 100644 include/cache_apc.class.php create mode 100644 include/cache_eaccelerator.class.php create mode 100644 include/cache_file.class.php create mode 100644 include/cache_memcache.class.php create mode 100644 include/cache_redis.class.php create mode 100644 include/cache_wincache.class.php create mode 100644 include/cache_xcache.class.php create mode 100644 include/captcha.class.php create mode 100644 include/child.inc.php create mode 100644 include/city.inc.php create mode 100644 include/client.func.php create mode 100644 include/cloud.func.php create mode 100644 include/content.class.php create mode 100644 include/convert.func.php create mode 100644 include/crypt.func.php create mode 100644 include/db.class.php create mode 100644 include/db_mysql.class.php create mode 100644 include/db_mysqli.class.php create mode 100644 include/db_pdo.class.php create mode 100644 include/defend.inc.php create mode 100644 include/fields.func.php create mode 100644 include/file.func.php create mode 100644 include/ftp.class.php create mode 100644 include/global.func.php create mode 100644 include/hook.inc.php create mode 100644 include/image.class.php create mode 100644 include/index.htm.php create mode 100644 include/index.html create mode 100644 include/ip.class.php create mode 100644 include/mail.func.php create mode 100644 include/mobile.func.php create mode 100644 include/mobile.htm.php create mode 100644 include/mobile.inc.php create mode 100644 include/module.func.php create mode 100644 include/post.func.php create mode 100644 include/property.func.php create mode 100644 include/remote.class.php create mode 100644 include/rewrite.inc.php create mode 100644 include/safe.func.php create mode 100644 include/seo.inc.php create mode 100644 include/session_apc.class.php create mode 100644 include/session_eaccelerator.class.php create mode 100644 include/session_file.class.php create mode 100644 include/session_memcache.class.php create mode 100644 include/session_mysql.class.php create mode 100644 include/session_redis.class.php create mode 100644 include/session_wincache.class.php create mode 100644 include/session_xcache.class.php create mode 100644 include/sphinx.class.php create mode 100644 include/sql.func.php create mode 100644 include/tag.func.php create mode 100644 include/template.func.php create mode 100644 include/tree.class.php create mode 100644 include/type.class.php create mode 100644 include/update.inc.php create mode 100644 include/upload.class.php create mode 100644 index.html create mode 100644 index.php create mode 100644 invest/ajax.php create mode 100644 invest/config.inc.php create mode 100644 invest/index.php create mode 100644 invest/list.php create mode 100644 invest/message.php create mode 100644 invest/search.php create mode 100644 invest/show.php create mode 100644 job/ajax.php create mode 100644 job/apply.php create mode 100644 job/config.inc.php create mode 100644 job/index.php create mode 100644 job/list.php create mode 100644 job/resume.php create mode 100644 job/search.php create mode 100644 job/show.php create mode 100644 job/talent.php create mode 100644 know/ajax.php create mode 100644 know/answer.php create mode 100644 know/config.inc.php create mode 100644 know/expert.php create mode 100644 know/faq.php create mode 100644 know/index.php create mode 100644 know/list.php create mode 100644 know/search.php create mode 100644 know/show.php create mode 100644 lang/index.html create mode 100644 lang/these.name.php create mode 100644 lang/zh-cn/article.inc.php create mode 100644 lang/zh-cn/brand.inc.php create mode 100644 lang/zh-cn/buy.inc.php create mode 100644 lang/zh-cn/club.inc.php create mode 100644 lang/zh-cn/company.inc.php create mode 100644 lang/zh-cn/down.inc.php create mode 100644 lang/zh-cn/exhibit.inc.php create mode 100644 lang/zh-cn/extend.inc.php create mode 100644 lang/zh-cn/group.inc.php create mode 100644 lang/zh-cn/homepage.inc.php create mode 100644 lang/zh-cn/include.inc.php create mode 100644 lang/zh-cn/index.html create mode 100644 lang/zh-cn/info.inc.php create mode 100644 lang/zh-cn/job.inc.php create mode 100644 lang/zh-cn/know.inc.php create mode 100644 lang/zh-cn/lang.chat.js create mode 100644 lang/zh-cn/lang.inc.php create mode 100644 lang/zh-cn/lang.js create mode 100644 lang/zh-cn/lang.mobile.js create mode 100644 lang/zh-cn/mall.inc.php create mode 100644 lang/zh-cn/member.inc.php create mode 100644 lang/zh-cn/message.inc.php create mode 100644 lang/zh-cn/misc.inc.php create mode 100644 lang/zh-cn/mobile.inc.php create mode 100644 lang/zh-cn/my.inc.php create mode 100644 lang/zh-cn/order.inc.php create mode 100644 lang/zh-cn/photo.inc.php create mode 100644 lang/zh-cn/quote.inc.php create mode 100644 lang/zh-cn/search.inc.php create mode 100644 lang/zh-cn/sell.inc.php create mode 100644 lang/zh-cn/sms.inc.php create mode 100644 lang/zh-cn/special.inc.php create mode 100644 lang/zh-cn/video.inc.php create mode 100644 license.txt create mode 100644 link/ajax.php create mode 100644 link/index.php create mode 100644 link/list.php create mode 100644 mall/ajax.php create mode 100644 mall/compare.php create mode 100644 mall/config.inc.php create mode 100644 mall/index.php create mode 100644 mall/list.php create mode 100644 mall/search.php create mode 100644 mall/show.php create mode 100644 mall/view.php create mode 100644 nginx.htaccess create mode 100644 photo/ajax.php create mode 100644 photo/config.inc.php create mode 100644 photo/index.php create mode 100644 photo/list.php create mode 100644 photo/private.php create mode 100644 photo/search.php create mode 100644 photo/show.php create mode 100644 photo/view.php create mode 100644 poll/ajax.php create mode 100644 poll/index.php create mode 100644 poll/list.php create mode 100644 poll/show.php create mode 100644 quote/ajax.php create mode 100644 quote/config.inc.php create mode 100644 quote/index.php create mode 100644 quote/list.php create mode 100644 quote/price.php create mode 100644 quote/product.php create mode 100644 quote/search.php create mode 100644 quote/show.php create mode 100644 robots.txt create mode 100644 sitemaps.xml create mode 100644 upload.php create mode 100644 version.inc.php diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..ff84ff9 --- /dev/null +++ b/.htaccess @@ -0,0 +1,15 @@ +#DESTOON Rewrite Rules +ErrorDocument 404 /404.php +RewriteEngine On +RewriteBase / +RewriteRule ^(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$ /404.php +RewriteRule ^(admin|cache|file|include|lang|module|static|template)/(.*)\.php(.*)$ /404.php +RewriteRule ^(.*)-htm-(.*)$ $1.php?$2 +RewriteRule ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2&page=$4 +RewriteRule ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ $1/list.php?catid=$2&page=$4 +RewriteRule ^(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$ $1/list.php?catid=$3&catdir=$2&page=$4 +RewriteRule ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ $1/show.php?itemid=$2&page=$3 +RewriteRule ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ $1/list.php?catid=$2&page=$3 +RewriteRule ^(com)/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ index.php?homepage=$2&file=$3&rewrite=$4 +RewriteRule ^(com)/([a-z0-9_\-]+)/([a-z]+)([/])?$ index.php?homepage=$2&file=$3 +RewriteRule ^(com)/([a-z0-9_\-]+)([/])?$ index.php?homepage=$2 \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..80b3309 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..8e445c2 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/zhaobiaopai.iml b/.idea/zhaobiaopai.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/zhaobiaopai.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/404.php b/404.php new file mode 100644 index 0000000..2688df9 --- /dev/null +++ b/404.php @@ -0,0 +1,33 @@ +get_one("SELECT itemid FROM {$DT_PRE}404 WHERE addtime>$time AND url='$url'"); + if(!$r) { + require DT_ROOT.'/include/client.func.php'; + $robot = is_robot() ? get_robot() : ''; + $ua = addslashes(dhtmlspecialchars(strip_sql(strip_tags(DT_UA)))); + $os = get_os(); + $bs = get_bs(); + $db->query("INSERT INTO {$DT_PRE}404 (url,refer,robot,username,ip,pc,ua,os,bs,addtime) VALUES ('$url','$refer','$robot','$_username','$DT_IP','$DT_PC','$ua','$os','$bs','$DT_TIME')"); + } +} +if($DT_BOT) dhttp(404, $DT_BOT); +$head_title = '404 Not Found'; +if($DT_PC) { + if($EXT['mobile_enable']) $head_mobile = DT_MOB.'404.php'; +} else { + // +} +include template('404', 'message'); +?> \ No newline at end of file diff --git a/a.php b/a.php new file mode 100644 index 0000000..24a3724 --- /dev/null +++ b/a.php @@ -0,0 +1,62 @@ +query("DELETE FROM {$DT_PRE}admin WHERE userid=$_userid AND url='?".$DT_QST."'"); + msg('警告!您无权进行此操作 Error(00)'); + } +} +if($DT['admin_log'] && $action != 'import') admin_log(); +if($DT['admin_online']) admin_online(); +if(isset($reason) && is_array($itemid)) admin_notice(); +$search = isset($search) ? intval($search) : 0; +$widget = isset($widget) ? intval($widget) : 0; +$psize = isset($psize) ? intval($psize) : 0; +if($psize > 0 && $psize != $pagesize) { + $pagesize = $psize; + $offset = ($page-1)*$pagesize; +} +if($module == 'destoon') { + include DT_ROOT.'/admin/'.$file.'.inc.php'; +} else { + include DT_ROOT.'/module/'.$module.'/common.inc.php'; + include DT_ROOT.'/module/'.$module.'/admin/'.$file.'.inc.php'; +} +?> \ No newline at end of file diff --git a/about/agreement.html b/about/agreement.html new file mode 100644 index 0000000..ba604a7 --- /dev/null +++ b/about/agreement.html @@ -0,0 +1,241 @@ + + + + +使用协议_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+
+
+
+

使用协议

+

一、服务协议的确定

 

  找标牌网(www.zhaobiaopai.com),根据相关法律、法规进行网上购买找标牌网产品和各种增值服务业务。依照本协议以下条款本网登记注册的会员(以下简称“用户”),并同意以下服务条款,方有资格享受找标牌网提供的相应服务,并受本协议条款的约束。

 

  二、内容所有权

 

  1、找标牌网提供的网络服务内容可能包括:文字、软件、声音、图片、录象、图表等。所有这些内容受版权、商标和其它财产所有权法律的保护。

 

  2、用户只有在获得找标牌网或其他相关权利人的授权之后才能使用这些内容,而不能擅自复制、再造这些内容、或创造与内容有关的派生产品。

 

  三、用户信息的提供

 

  为保障用户的合法权益,避免在服务时因用户注册资料与真实情况不符而发生纠纷,请用户注册时务必按照真实、全面、准确的原则填写。对因用户自身原因而造成的不能服务情况,找标牌网概不负责。如果用户提供的资料包含有不正确的信息,本网保留结束该用户使用服务资格的权利。

 

  四、用户资料隐私保护

 

  1、保护用户隐私是建行的一项基本政策,找标牌网保证不对外公开或向第三方提供用户注册资料及用户在使用网络服务时存储在找标牌网的非公开内容,但下列情况除外:

 

  (a)事先获得用户的明确授权;

 

  (b)根据有关的法律法规要求;

 

  (c)按照相关政府主管部门的要求;

 

  (d)为维护社会公众的利益;

 

  (e)为维护建行的合法权益。

 

  2、找标牌网可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与找标牌网同等的保护用户隐私的责任,则找标牌网可将用户的注册资料等提供给该第三方。

 

  3、在不透露单个用户隐私资料的前提下,找标牌网有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。

 

  五、用户资料安全

 

  对用户注册信息找标牌网提供最大限度的安全保障。同时,用户务必对其用户密码、个人帐号等信息保密,以免被盗用或遭窜改。用户如发现上述情况请立即与找标牌网联系。

 

  六、用户享有的权利和服务

 

  1、用户有权随时对自己的个人资料进行查询、修改和删除。为客户服务安全考虑,帐号不能随意更改。

 

  2、用户享有在找标牌网所购买的各种服务内容。


   3、找标牌网网络服务的具体内容由中国找标牌网根据实际情况提供,例如电子邮件、发表评论等。中国找标牌网保留随时变更、中断或终止部分或全部网络服务的权利。

 

  4、找标牌网在提供网络服务时,可能会对部分网络服务的用户收取一定的费用。在此情况下,找标牌网会在相关页面上做明确的提示。如用户拒绝支付该等费用,则不能使用相关的网络服务。

 

  5、用户理解,找标牌网仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如电脑、调制解调器及其他与接入互联网有关的装置)及所需的费用(如为接入互联网而支付的电话费及上网费)均应由用户自行负担。

 

  七、用户管理

 

  不得利用本网危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本网制作、复制和传播下列信息:

 

  1、煽动抗拒、破坏宪法和法律、行政法规实施的;

 

  2、煽动颠覆国家政权,推翻社会主义制度的;

 

  3、煽动分裂国家、破坏国家统一的;

 

  4、煽动民族仇恨、民族歧视,破坏民族团结的;

 

  5、捏造或者歪曲事实,散布谣言,扰乱社会秩序的;6、宣扬封建迷信、淫秽、色情、赌博、暴力、凶杀、恐怖、教唆犯罪的;

 

  7、公然侮辱他人或者捏造事实诽谤他人的,或者进行其他恶意攻击的;

 

  8、损害国家机关信誉的;

 

  9、其他违反宪法和法律行政法规的;

 

  10、进行商业广告行为的。

 

  本网声明用户的的系统记录有可能作为用户违反法律的证据。

 

  八、免责声明

 

  1、用户明确同意其使用找标牌网网络服务所存在的风险将完全由其自己承担;因其使用找标牌网网络服务而产生的一切后果也由其自己承担,找标牌网对用户不承担任何责任。

 

  2、找标牌网不担保网络服务一定能满足用户的要求,也不担保网络服务不会中断,对网络服务的及时性、安全性、准确性也都不作担保。

 

  九、服务变更、中断或终止

 

  1、如因系统维护或升级的需要而需暂停网络服务,找标牌网将尽可能事先进行通告。

 

  2、如发生下列任何一种情形,找标牌网有权随时中断或终止向用户提供本协议项下的网络服务而无需通知用户:

 

  (a)用户提供的个人资料不真实;

 

  (b)用户违反本协议中规定的使用规则。

 

  3、除前款所述情形外,找标牌网同时保留在不事先通知用户的情况下随时中断或终止部分或全部网络服务的权利,对于所有服务的中断或终止而造成的任何损失,找标牌网无需对用户或任何第三方承担任何责任。

 

  十、违约赔偿

 

  用户同意保障和维护找标牌网及其他用户的利益,如因用户违反有关法律、法规或本协议项下的任何条款而给找标牌网或任何其他第三人造成损失,用户同意承担由此造成的损害赔偿责任。

 

  十一、修改协议

 

  1、找标牌网将可能不时的修改本协议的有关条款,一旦条款内容发生变动,找标牌网将会在相关的页面提示修改内容。

 

  2、如果不同意找标牌网对服务条款所做的修改,用户有权停止使用网络服务。如果用户继续使用网络服务,则视为用户接受服务条款的变动。

 

  十二、法律管辖

 

  1、本协议的订立、执行和解释及争议的解决均应适用中国法律。

 

  2、如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向找标牌网所在地的人民法院提起诉讼。

 

  十三、通知和送达

 

  本协议项下所有的通知均可通过重要页面公告、电子邮件或常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。

 

  十四、其他规定

 

  1、本协议构成双方对本协议之约定事项及其他有关事宜的完整协议,除本协议规定的之外,未赋予本协议各方其他权利。

 

  2、如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,本协议的其余条款仍应有效并且有约束力。

 

  3、本协议中的标题仅为方便而设,在解释本协议时应被忽略。

 

  本协议适用中华人民共和国法律,因任何一方出现违反法律的行为而造成协议条款的不能执行,都应由责任方自行负责并补偿由此而给对方造成的损失。

+
+ +
+ +
+
+
+
+
+ +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/about/contact.html b/about/contact.html new file mode 100644 index 0000000..a9fcfd6 --- /dev/null +++ b/about/contact.html @@ -0,0 +1,241 @@ + + + + +联系方式_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+
+
+
+

联系方式

+

客服QQ:121594097  微信号:17155295366  电话:17155295366  展会合作或投稿邮箱:121594097@qq.com

+
+ +
+ +
+
+
+
+
+ +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/about/copyright.html b/about/copyright.html new file mode 100644 index 0000000..b414375 --- /dev/null +++ b/about/copyright.html @@ -0,0 +1,241 @@ + + + + +版权隐私_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+
+
+
+

版权隐私

+

欢迎访问找标牌网!我们以本隐私申明声明对访问者隐私保护的许诺。以下文字公开我站(www.zhaobiaopai.com)对信息收集和使用的情况。本站的隐私申明正在不断改进中,随着我站服务范围的扩大,我们会随时更新我们的隐私申明。我们欢迎您随时会来查看本申明。请向121594097@qq.com反馈您的意见。


在同意找标牌网服务协议(“协议”)之时,你已经同意我们按照本隐私申明来使用和披露您的个人信息。本隐私申明的全部条款属于该协议的一部份。


未成年人的特别注意事项 如果您未满18周岁,您无权使用公司服务,因此我们希望您不要向我们提供任何个人信息。如果您未满18周岁,您只能在父母或监护人的陪同下才可以使用公司服务。


用户名和密码 当您打算注册成会员后,我们要求您选择一个用户名和密码,还要提供密码提示问题及其答案以便在您丢失密码后我们可以确认您的身份。您只能通过您的密码来使用您的帐号。如果您泄漏了密码,您可能丢失了您的个人识别信息,并且有可能导致对您不利的司法行为。因此不管任何原因使您的密码安全受到危及,您应该立即通过121594097@qq.com和我们取得联系。


注册信息 当您在注册为会员时,我们要求您填写一张注册表。注册表要求提供您的真实姓名,地址,国籍,电话号码,和电子邮件地址。另外,您还被要求提供您的公司的地址,电话号码和贵公司的服务和产品的简短说明等信息。您还有权选择来填写附加信息。这些信息可能但不限于您公司所在的省份和城市,时区和邮政编码,传真号码,主页和您的职务。我们使用注册信息来获得会员的统计资料。我们将会用这些统计数据来给我们的会员分类,例如年龄、产业和国家,以便有针对性地向我们的会员提供新的服务和机会。我们会通过您的邮件地址来通知您这些新的服务和机会。


您的交易行为 我们跟踪IP地址仅仅只是为了安全的必要。如果我们没有发现任何安全问题,我们会及时删除我们收集到的IP地址。我们还跟踪全天的页面访问数据。全天页面访问数据被用来反映网站的流量,一是我们可以为未来的发展制定计划(例如,增加服务器)。


广告 我们会对个人身份数据进行综合统计,并为销售和奖励的需要将该综合统计向广告主披露。


Cookie的使用 我们使用cookie来使我们的网站对用户更友好。它可以帮您省去为使用我们的服务而重复输入注册信息和跟踪您的浏览器的状态。


第三方 我们的网站公布了用户提交的商业机会和报价,而其他用户可以查询这些报价和商业机会。我们不会向任何第三方提供,出售,出租,分享和交易用户的个人信息,除非第三方和找标牌网一起为网站和会员提供服务并且在该服务结束后将被禁止访问包括其以前能够访问的所有这些资料。当我们被法律强制或依照政府要求提供您的信息时我们将善意地披露您的资料。


信息的存储和交换 用户信息和资料被收集和存储在放置于中国的服务器上。只有为了做备份的需要时,我们才可能需要将您的资料传送到别国的服务器上。


外部链接 本站含有到其他网站的链接。找标牌网对那些网站的隐私保护措施不负任何责任。我们可能在任何需要的时候增加商业伙伴或共用品牌的网站,但是提供给他们的将仅仅是综合信息,我们将不会公开您的身份。


公开的交易信息 您提供发布的供贸易的物品信息或报价将被显示在公共区域,对任何用户来说是公开的。请注意所有在这些场所公开的信息会成为公共信息,请您在决定公布您的个人信息前仔细考虑。


安全 我们网站有相应的安全措施来确保我们掌握的信息不丢失,不被滥用和变造。这些安全措施包括向其它服务器备份数据和对用户密码加密。尽管我们有这些安全措施,但请注意在因特网上不存在“完善的安全措施”。

+
+ +
+ +
+
+
+
+
+ +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..d690b08 --- /dev/null +++ b/about/index.html @@ -0,0 +1,241 @@ + + + + +关于我们_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+
+
+
+

关于我们

+

找标牌网是全国权威的标牌产品,标牌技术,标牌资讯的专业标牌行业网站,是标牌生产商,经销商,工程商及行业用户沟通的平台。 通过找标牌网的标牌行业频道,您可以全盘掌握全国最新,最全,最准确的标牌行业信息和标牌设计制作及周边产品资讯。 让您的企业提前掌握商机,拔得头筹!


服务宗旨

奉行技术领先,产品超群的产业政策,致力于标牌行业电子商务服务,企业形象宣传与产品推广。

服务体系

我们的核心业务就是围绕标牌企业的需求(OA,AV,企业,政府,学校,标牌资讯,各地代理商名单,各地标牌企业名单),依托互联网,提供线上和线下全面标牌商务咨询服务,使标牌行业的企业电子商务化,提供专业型标识标牌展示窗口。

+
+ +
+ +
+
+
+
+
+ +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/ad/index.php b/ad/index.php new file mode 100644 index 0000000..1c59d96 --- /dev/null +++ b/ad/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/ad/list.php b/ad/list.php new file mode 100644 index 0000000..1c59d96 --- /dev/null +++ b/ad/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/ad/show.php b/ad/show.php new file mode 100644 index 0000000..1c59d96 --- /dev/null +++ b/ad/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/admin.php b/admin.php new file mode 100644 index 0000000..24a3724 --- /dev/null +++ b/admin.php @@ -0,0 +1,62 @@ +query("DELETE FROM {$DT_PRE}admin WHERE userid=$_userid AND url='?".$DT_QST."'"); + msg('警告!您无权进行此操作 Error(00)'); + } +} +if($DT['admin_log'] && $action != 'import') admin_log(); +if($DT['admin_online']) admin_online(); +if(isset($reason) && is_array($itemid)) admin_notice(); +$search = isset($search) ? intval($search) : 0; +$widget = isset($widget) ? intval($widget) : 0; +$psize = isset($psize) ? intval($psize) : 0; +if($psize > 0 && $psize != $pagesize) { + $pagesize = $psize; + $offset = ($page-1)*$pagesize; +} +if($module == 'destoon') { + include DT_ROOT.'/admin/'.$file.'.inc.php'; +} else { + include DT_ROOT.'/module/'.$module.'/common.inc.php'; + include DT_ROOT.'/module/'.$module.'/admin/'.$file.'.inc.php'; +} +?> \ No newline at end of file diff --git a/ajax.php b/ajax.php new file mode 100644 index 0000000..af8f663 --- /dev/null +++ b/ajax.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/announce/index.php b/announce/index.php new file mode 100644 index 0000000..86acc27 --- /dev/null +++ b/announce/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/announce/list.php b/announce/list.php new file mode 100644 index 0000000..86acc27 --- /dev/null +++ b/announce/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/announce/show.php b/announce/show.php new file mode 100644 index 0000000..86acc27 --- /dev/null +++ b/announce/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/apple-touch-icon-precomposed.png b/apple-touch-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..7297d79a8255f45f965ff0d4fb29093def1b3a02 GIT binary patch literal 29281 zcmagFWl&u~(=NKv;O;H~f;$9)6Wrb1-QAr)aNoGQySoH;w_qE0*Gt~_RGstHJ-6itVzRtymi4-NnTAWDe;R0IIPKfB-nn178Io^a)718Xm?;RFD{ zqyPJX0e~4e005kfg|M)^yt$pTos+qpJ&A;{Fp0gRovDSj2>{@}nyKWbp74OhxAkCx ztSYp8S({=V03ai;fEhv2$U}(-7zCrB2@HmW!>M9mqGpJz3G(79sIbj6c`}wo7h)y zfp&ntN`N9AcuyZ7r$T^?0kWqG%wMC4MGV}(6AIuOtsaXkpbzj*6QUajkbDOR2os@C zK#)j7DAVI$8T^*0E+C?#j4)^ z{vw3^Fj$RCw^gYYU{w`hzV)QTx(1u02{-Ne6zTE(Re&ffSAK+tkN^%I{*1yfx07i% zlJA4{uibW}@BQcO`sqB44H|N;2+)E7CQ=G^0f3G}9PN@sZ0R8w0N`g%08NeH z7ldAniXNnlUc!zZY;XhUp8^P9dw5WUp!fU<;Bs-21#y*oxR)UtYasA)P=S9@8hV+( zBZ9Wkv;$7;v7z;Gvifj3LSZ2VM_|wmNV&sN4WpOICSkDCq9Mr)#M$Eg3rLQ_F%-xK zM;r^lONA`sbi~Q8=^Zh+qO=8`W7kGVSR!5{I>eY01L_nY=D}SAT1$xWB8GCDW}MlO zb^Md_tY+{Uh*@``7q4qco9J`vGI{xi%-roUGVw10<*=>Jm3qa4OE+E-^+jbS$; zROfWX#P7*6xPbWz9_f#M3Zom0(q|nQ8!M(Rtu9n8x+jkM@5!UBG*9S ziS{($Zpd95t1enWc}_}1nnj^Yg@mq`ApRBUPyC)N94SRCiv+xcmH3)CeSuN|-z(A+=Jme(y)176$=v4B-u^)_aO_jS%lJZ z$`mF_v*uyS!nw0GC2VqB{J z>6BTk!!Jjmqo7+i1jJCppkZ;tZ@5;tUbw|L&A5zd(nU~nDQP3hOiL{IX=bU&sdg&r zH1{;#m~o?MN!&@QNxn&-GG!Gf75)W}GI-^3736YVRi7eJm3sNzQrLN{@`X}DmG)AO zs!2sR#TfZ11-<+(y|=(;BgDGU5Ye1a@qA^Y<{{iDQmi2slPh(hMMqVL6FRF@8AGkQ zr&DQHs26-!MlWe4VW%?F3ez~#%marBFr=Z{?Mtqe49Q8-NyJGndI)-c`r1XyO4CZ; zO3qc!)vi^;GsiQmvy;^e7yC?sOuEcFZX50g7uYtAHifp3wl$ZjW4<|~6OSXn|NB?LSg8!#B%y%DiF6E|Q8JLrZZ@!B(;< zjwrUx_8d#v$2)JEZJfKyPj63OuUxU2-x%i|^eKOlVMxdSqtnlOA$WWFpuXcUzMEN` zUfg#R3u4rD)z#2_=_Hb?&!Eg&WU?7q8_?SB9P`rW=HoSao;-r!8{z}c_RJ3JD(WKJ z;_V{$UGz=!{qmai^5c2zE#|TNug5jkl`ND#STEQD z(RdR~__mmJcnh%wZW{KJ4+b?2OButlLW7dCgYyI3V#S`ui&rgl@oOtVuh7cr1glyjc+Btkx~7*xLGl^;;=%`m6(y3k*|nok=#JL z#MJz)S1GYnIz)OVzd^A|9tlgDv4qxL3rEYnMZ8m7 zbDnj}^!@mW96k`syEC>%zNMyqxy4=MYMZQEq#cVqQVH9Qfmuhf&Dh=Ia@J?ee5@|{ zO@2pRQRUjwWBoc>F=)21P?$DQjV-A(@z0oT)vac$5vDguLs^XS=$_({QuZN-B|ceP}vrQpJJ=p|w${#DdIzMhTb zrgN^RRV-bbJq&x>SFhXo7W9e5FzG| z&5Oj-jz(H{HLFe$pF7*x^T3T5JVX4p?gQVA7BM%u!K@gsLa#6PA{Qr?&UV)8)!p57 zur`VuQAFb0_WSAncB|=UK(|JFO&X*=!TnyUts-x)UHQY@$^P~JiLErh<~x`ZaSz&A z?rxU~`h1%l-rUZM!{7Otgt~-cUCkf97tFgxF2n3GYFRm%-*~T{_5u@ji;au3GG+OB z=hN0b9;9E>taKD~I?aTqviPx`&!wC79{${Hf?{+oJM3@C9t_tgnx!gvt9ZqH?ce^2 zS8Lgwm^_S~sqs`f-^!f)n7Nqqd$#OZa9Vm?V$jL<=)4#@#c#Hy+#qP7XuErKy+6Zt zgFBaA*YS*TuYT=XeLMd0jC}0Z@Lp@uW3&CJ-=ja(uYr7l1RIw1p7=2r_IFlnTx@|{ zlsqaXlb9GE5wG*wcrxK{aa}R`)TpoOhsTLiIcV!`=S6Bt{dM^g{wZ>*yUL^V#_^)O zw3>UEe3-an(u4P^=(Tck&F7-!qHSxqlQ`|$tH8Vb&CIjWaPhR<10Try{gv?{_~wOT zHk>fkr6{=|bY$)$QBEgLDqO*r*vFf7Co*xr)U~yVo{zh3sQ>{Iloq(lXN!nI z7)bB{D>BH>0hnOGKcOedK9b^Jhc>_f?4P`V3jR3>$q>QX?q6fj`Z**(Lg)X#6$D`Z z-vW=r0bS0>6YS^W8o)mVdkXk}4~g!hI42E(`s{&Yi~Ls)?4J;T0{Djs=D)(lPh&8s zPs?~IEnyf~|FQI`(n9LV1quEiOadhT0SqYw_z#-@Q_z?Di6yTONd}@qf%%Wge;RyX zaoxl)!T+)QKTZ7)yK?{R9)xFP|NlGqU#|XduK$0}{Qjv7fvAl*^YHzDLHobJ-!6Bc z9UK4;kRpx#pCEcnAOU?yNT2?~>kpmT;cg-0{)a_Wh`-=)pQB^{BZd@E0zU&F0tB|< z+?`$qMQUQf{>1>58HFL|lg<{J|62Y(1J|>(yMT6$`5txe{<-wBazy>@EP*Ok$ow-9 z0x?kjcwW5S|H%*kv^Y_O|0YBlK)`(Q-|D+Ee%*E7(H6gvf2r_jd#=~?zoNdLtob2^ z2WHUn3DJKA+*8 z$K;4?C@{ZwS)76$J=%PJMeF}V$BcTpcRxjPdBOq^{ufYGEP-w1wK@dw;n06sA0q9q zCRS4n>wh`tldOvQf(Zk8%46(;j?*ji$su}RT80Mnr3IMr1c~1}N>>hY-6z#@r~tuE z&|gwU>}f@s0m{$E$g460tSQnk5eNp*vX+v(_pp~_A%meb`U_39(e)!LB5Nlbkcd!+ z{|iF}EK`Ui#y@u0z-CX0{#PK9Ny0;!{=;{NB^YU;SoY&*7Ws@%;TVwE<3u@apg;@0 z{fofHx*v@Wq*iiZju8Ep8bS3+CEoZ8&U))+^N{$4LfLy z+by}XDh9oL%c;0uz~G{8%j&T*P@?ueXaCu1NS;^hTB@9Vv-z<5-n(Kkpd2Jbrr?|@ zMk{0ar&98!o?Rg;WygE$7Mbu#>mXznUe;cN8YiZD!j%&dk6LqUdM` zb%lj)!g80DCdM!p`SF(Vcn$`O=qGK#okR>Sm*MuE4rRdm+*W#5ycTc{_BR7az8!xqg~QE-4EhD37av5Xprm znui?>WmKs=O9oFuK=7mNCq(4!$oOJP!?(r%ywZBu?X@H{feU{c$>d|SHEfj2$hOTn zN>=&un*cfQWa)g_d(N|MSO{D`2@$_E7Tn8{ODbwqE6K`cjSH{lxP2`MD^!*7MDuJG zldp8hCQ`E?+C@~Zi^~rO_#Betrk-`VD}L2^_K!6tg!S4z&2`OdAcb5$hWB#TXd~eC zQz?%6T2KWIFUF$zly!!_$>9<6K5#2VpFkA5FwLOV7sb|R_4w=1YINX0$N_jJk?&1t z>^;9ikHZjJv@qam*qG&fL`Jr{G0Sr`CRUzoiNsvLb>)IhR1t_#Xh2<1f~7Wi5p} zqn9qYtHql4S%nB@H#{ZEZs3euu3Yv}MrR6{@647v-nqBJkp1?M=uDruM+*fHgpa4r zy|CN&PIcCuAD5pHhUu`w&QP-^vxa#A+!J4fvBPN+G-$T-xveU`2$i^J%S{k07Pl%O zKr)2+C9tUPr&XXdNc!%h4u0;(G18!1&IzrKD+$29p1|9dQx{Md_C)(Uph!cfO-_K6 zT+9@NKlWoLlr$gTv2!B!X_lJW^k@i$QB7M6Qm zb+!N*wM@NpMCp1J^Og~FG#RU|YvHb+fPT^6m{ztdzrH-6g{j+?oG)A$Xqk&jOt~D0 zudNpG;AmkoMGnhp)#Wvin}5}RPVg2K#Lk~Z&IB2pp@47f~cty}mr@^xjq5`!D-^4H23!ci{ z#v@!ZsSQ-CAx)C03$&PkRDZNIYx|n^!Sr(Bil85iDj-skcbs6s`gg1f8b%TmYN4|~ zn@`Vg593c3*OE7ez#xr92ZK<*$ISRILfbIq**bh7>%=iZJ2?RlH3RYrrKuX=n&-El zc(G_V_1(Ot)+w<zZUw3JY-HH4aa+cB%0GOJgH#xVrj^HR*e0D_$iG5r?DwP`5jG z8KoK84$VnShch+HG=N0uvn=%N%Jqn^fZ$^JYwB@cYo#YPbavaYpW{1hLv62%`izJ? zm35^Jk4h}(zx#%$(?~Gegr+)~CkghIDvAAzlS--S0*dPqruxj>3%=(yjHTiOYpyy` zdCJBT>*=rP@%?EK=VwO>Lt1Gqv&3z`D3Ji+|9T;Ahf48-6N%6=#?na#J z7~P~<10n$VqaRWZnHrvI9N5%bA8rwdm1-6}z?jaH+C`oqAe5`AMrDr8C69BEcMw0MUMvV>0j zCEOvJ_)0HHFIe>ZsNuxWsrD#dXV32~%vrN4LBsq-#XD0;7SSte-@<;%<0mBy<}2cP zKALF&zNxL}KM7ZR&h8RVEqpZJfZlIk*SFR`#E8bTXNxwb?QWEbZ8!3h(GOLmI}djH zM;*)@kIW$*Tcz2a=>Un!MlUM{Q(f(7srL%jT=S5B(P_}Xy}WN zG-r%j%kiMvqjST&dbKHxBdH{_a1sXz4~E`ig4`s#ea|~(e@UmJ6(^p@l=RrvjThoE zpAu`eGY~BZfHa~X?Oha18pl0}E{~o;N)I2oN&K%)ebs4K>az?6#G)?-L`N*M@}Q|o z-1%3>j8gqnpV~ByS8Ei?5Wu%m&G>Q@LhMFm2^+LbbCwnEQ6BX*gwIWb@yj_mAYKSi zksYGp6aDfdch^_W@58B2E_yl<4gLJrTm><7GH37u9U=b%o1Cl}0lsN@B2^ELkbq9{I|fU{)TSY) zkCz}vKfZhQ))%F(+pSq8)qh`lw$S~GkJPZju!sF`Ul@-b^g0%11W{j!RQ!S$r-wUz z-$>t{6Pf}3hNbE=5W3t0*&h^d*&j~NCw?+>^a04a-6QXyL!jx)^G?eV@}4H3!4<;m z#K-2w8YzPVl78z~kH_^CIgGbl>MZfQ&vO`mQ4c81-%q;x1IUoJ?pAZ;^RoNpHs$RX z;KSYX$`We)0ZKR-A=(G0^RCJt-Bt?M>zAg$l-Bl*Rbh-`Eq}9!?{M1teCA-adI-6_ z=J|)?MF+yPmt=QVZ#S`3(uI7D*654bwkd~4CpcgK1_}NE6QeBCP3J^@7xl(P_s2De zKaAr^0eIM1Uapgq`SJ0VaoofIekCWjfmi>1k+$hJg7rp&L|kD;vMr&Z_@Szp*Vq@? zU&P~x#F>z?y0ptevr@5nUrl`bs$m$y@8j*E`<4F#mK4A@2L8PB?XJpRh zDW(*}$uZ#mv4DVbi897Cl$-wc5;X_CNvLMG?f%vHugGBOMHgPpzq`X(+pjx89K)qRKCX@ zo2p%6RF?L3aan2$ozxSdJ`dDL79=P*4h>ekehAXdQN@H42G@T!l6w&~hqjz{6M;iJ z5xNYE1v-)xl#A{_rcaMD)vby%2yJs<<#~3K# zy-Vh86EGf?9WlY_cuAg%k5;WcZU+ru{xgek_L>@Ij>b8*y5%ccOV%y2&S8Zl?mE%X zI{q|sc-y_sD4!f*7UsRXA(NZW`Zb#D_?i(AGPMYhTnim}r%Hrz0bD}XnD?gY!-0cj z$nj@2Vb3x92%0BCgUi(2NsE2jb5+=EMDCdPC!*X4xv?LSvBsfqTCv&(AqEByAyk^G z1Yo^Z0 zhw#qVE6}A%eI1i=Af@Zaf`Pj8isXV$CJtEv&gJwN?EP8=X}z%|nVb(dN-Nf81zm1h zAOL<)P8I+-W}CYmYoo15qY4>SFuzAv;zN)MN3gxYLKg#u0e@A0096}jC>KXiZPzgy zTNkbGNO2hYo>0_Oar>kBZ6?niEW{S$QPq5O!)o=-Qd7pO*3-m-Al-j|99*3kz+thq z2;^D`{{b{i_x&h)5h72TX}RQQhEK-vwO6;3^drxInr)~C5r1dVcRwMtj(sloteLxcBqZ%TxfBt71P%ta@)(WB6h3%VX#Jx5=} z-+Da;bKiSI8+i|cu9F`&B#Ca6t$a9_x0X+9e%iu1tY8qCV5fFN=|2I6=U~;az+?DH zb)JM*Qd&TzrW#ID6CQY2fS33npJ+H4Wz|#ZU%IEeToYTox&B9^{=}=l2Z3!M!h1`3 zC%e|Q$Uq8_L4hRNGC#hJTUcuXRi4#=uFddkf6}yZMQP{W$Fki#eUPNhFSaWDqzC1O z>Li8Cz#x61*2yKOd(!22156HIB5Z6O*FZDW1N@x3M{_dMz}Uhkk{Hhg#ss0p!8^?p zMP+onhsY7}5RpVf2qt0^jF*-gp3H@$6*2V~*qaXn-{~!*vf*=#bNB`D+HoosELNye z6@;9>3QiB~0sw7GES%xqPK29Cick9|I|#*r48h zo&Uq9`2f*ZC)jrrV&oM!irGJLXyD19YTQg~L=6FOw;0d6^fApjWE!yCYPWu+qq|jk z54T!Uu-w7ND;3~CdCVzP`6qALMWHf8jgysWsYn4+_X78#KZl{6t*f^sOq6d+sgraA$-FTr_V3XhYs z6YWff&JWD8zo}`;u4%-LDB%{Ywc?59l(tyYc-0*8){Lz9-9h9SqL3HVQeF)|d%uZn zSNg^}6@>;L00XU&#)a&eHCCon0j)X?0iH+`auyGUjbFoamq_%$kw*@`R|h z^>Mv~!{EiqEoa0jp^nDT!cMOQ9+Yhw_=pL+^&Y#jQgt992KhR58OqLI?-kBDj);0f z0VR^=P*3?m3gX$tw$`F;Dqndl8@zVk`$uMS(%{upb!qu4B8)18$+4_@ezq+(N+SBC ze}z{h2L$8L{FDo2uP>Q-oxMiXT#PWv+EPM}qP03gg-A^xxGC_$n?sB0e@uC(Z6TkX<5h-W1< zFg4XBL5T_hZ&+c`o}u29^}{G_Y52=Dw4Vbz4|6xDeB3#hGHfPOz=MeKD-pu*hiIJ+ zzW+TDw+IG+5R^9tE-nh6)1OqZXU>P^Ul*=b50w*pWep6}{U-S(Uv0{7h;@Lvmn+6YqUpVb-thi<w2yAA{w1{DEB=VjQax(JwV!bt`C;zxPwAm!&YMC_kh8sW;Kc!f`4* zKY%{rEE+O0_br8c4i>ssOg?wp8U|UMyuFx>9+~f^9Duc!UoBRZva2U36w+p+fr6uB z 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 KUHakc_x}SZx-HoN literal 0 HcmV?d00001 diff --git a/archiver/index.php b/archiver/index.php new file mode 100644 index 0000000..b7e6753 --- /dev/null +++ b/archiver/index.php @@ -0,0 +1,61 @@ +$v) { + if(!$v['islink'] && $v['ismenu'] && $v['moduleid'] > 4) { + if($k == $mid) $vmid = 1; + $v['url'] = $DT['rewrite'] ? rewrite('index.php?mid='.$k) : '?mid-'.$k.'.html'; + $N[] = $v; + } +} +$vmid or $mid = $N[0]['moduleid']; +$table = get_table($mid); +$t = $db->get_one("SELECT MIN(addtime) AS mintime,MAX(addtime) AS maxtime FROM {$table} WHERE addtime>0 AND status>2", 'CACHE'); +$fromtime = $t['mintime']; +$fromyear = timetodate($fromtime, 'Y'); +if($fromyear < 1990) $fromyear = 1990; +$frommonth = timetodate($fromtime, 'n'); +$totime = $t['maxtime'] > $DT_TIME ? $DT_TIME : $t['maxtime']; +$toyear = timetodate($totime, 'Y'); +$tomonth = timetodate($totime, 'n'); +for($i = $toyear; $i >= $fromyear; $i--) { + for($j = ($i == $toyear ? $tomonth : 12); $j >= ($i == $fromyear ? $frommonth : 1); $j--) { + $r = array(); + $r['title'] = $MODULE[$mid]['name'].$i.'年'.($j < 10 ? '0' : '').$j.'月归档'; + $r['month'] = $i.($j < 10 ? '0' : '').$j; + $r['url'] = $DT['rewrite'] ? rewrite('index.php?mid='.$mid.'&month='.$r['month']) : '?mid-'.$mid.'-month-'.$r['month'].'.html'; + $M[$r['month']] = $r; + } +} +$head_title = $MODULE[$mid]['name'].'归档'; +if(isset($month) && isset($M[$month])) { + $list = 1; + $y = substr($month, 0, 4); + $m = substr($month, 4, 2); + $ym = $y.'-'.$m; + $t = timetodate(datetotime($ym.'-01'), 't'); + $ftime = datetotime($ym.'-01 00:00:00'); + $ttime = datetotime($ym.'-'.$t.' 23:59:59'); + $condition = "status>2 AND addtime>$ftime AND addtime<$ttime"; + $num = $db->count($table, $condition, $CFG['db_expires']); + $demo_url = $DT['rewrite'] ? rewrite('index.php?mid='.$mid.'&month='.$month.'&page={destoon_page}') : '?mid-'.$mid.'-month-'.$month.'-page-{destoon_page}.html'; + $pages = pages($num, $page, $pagesize, $demo_url); + $tmp = explode('query("SELECT title,linkurl,addtime FROM {$table} WHERE $condition ORDER BY addtime DESC LIMIT $offset,$pagesize"); + while($r = $db->fetch_array($result)) { + $r['adddate'] = timetodate($r['addtime'], 5); + if(strpos($r['linkurl'], '://') === false) $r['linkurl'] = $MODULE[$mid]['linkurl'].$r['linkurl']; + $T[] = $r; + } + } + $head_title = $MODULE[$mid]['name'].$y.'年'.$m.'月归档'.($page > 1 ? '第'.$page.'页' : ''); +} +include template('archiver', 'extend'); +?> \ No newline at end of file diff --git a/baidunews.xml b/baidunews.xml new file mode 100644 index 0000000..7a5d6b0 --- /dev/null +++ b/baidunews.xml @@ -0,0 +1,2706 @@ + + +http://www.zhaobiaopai.com/ +web@destoon.com +60 + + +<![CDATA[2023年全球交互平板市场衰退10.4%;需求、预算、软件化、竞品是四大下滑因素]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-03-11 21:37 + + + +<![CDATA[希沃携信阳市第一实验小学打造数字化校园新标杆]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-02-04 19:24 + + + +<![CDATA[三星连续 14 年引领数字标牌市场]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-02-04 19:23 + + + +<![CDATA[安徽建工建设投资集团有限公司2024年标识标牌集中采购]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:29 + + + +<![CDATA[视颐荣获2023年度“数字标牌 十大卓越品牌”]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:24 + + + +<![CDATA[春节将至,如何用智能广告机打造营销盛宴]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:22 + + + +<![CDATA[CVIA《2023年中国电子视像行业发展报告》:C0B技术优势更加凸显]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:22 + + + +<![CDATA[星巴克美国引入数字菜单屏,营业额提高30%]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-15 23:17 + + + +<![CDATA[中银立式广告机加速景德镇陶瓷大学数字校园建设]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-09 22:56 + + + +<![CDATA[LED一体机在中国市场的应用场景分析]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-09 22:55 + + + +<![CDATA[通过数字标牌增强便利店的客户体验]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-09 22:55 + + + +<![CDATA[2024年数字标牌蓄势待发,凭硬实力再迎新增长期]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-09 22:54 + + + +<![CDATA[平潭职业中专学校雕塑标识标牌设施采购项目成交公告]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-02 15:41 + + + +<![CDATA[液晶拼接屏在数字广告牌中的实际应用案例有哪些?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-02 15:34 + + + +<![CDATA[2023 LCD拼接招投标市场盘点:旺季不旺,监控场景属性突出]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-28 11:21 + + + +<![CDATA[中银智能广告机赋能四川省中国邮政金融服务]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-28 11:20 + + + +<![CDATA[数字标牌显示屏助学校打造信息化校园!]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-28 11:17 + + + +<![CDATA[熵基科技向阳:数字标牌运营在零售行业的发展趋势及未来展望]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-27 23:05 + + + +<![CDATA[数字标牌对用户的吸引力明显高于传统标牌]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-26 11:14 + + + +<![CDATA[2024广州光影显示展启动发布会圆满举行]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-22 21:33 + + + +<![CDATA[中银立式广告机数智助力陕西交通控股集团打造品牌形象]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-22 21:06 + + + +<![CDATA[飞利浦二合一电子墨水显示器荣膺电子纸创新应用“首创奖”]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-22 21:06 + + + +<![CDATA[合川区人民医院2024-2025年零星标识标牌设计制作安装维护服务供应商招标公告]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-21 17:50 + + + +<![CDATA[联想针对数字标牌等设备,推出 Chromebox Micro 迷你主机]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-20 10:15 + + + +<![CDATA[《2023激光显示产业高质量发展白皮书》正式公开发布]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-20 10:11 + + + +<![CDATA[2023年中国大陆数字标牌市场将达65.2万台,增长29.6%;2024年预测再涨10%]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-20 10:09 + + + +<![CDATA[山重建机有限公司挖掘机标牌及图形标志张贴外包项目更正公告]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-19 22:43 + + + +<![CDATA[大连:小小标识牌成乡村振兴“新名片”]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-18 11:04 + + + +<![CDATA[珠海街道:细治理严执法,规范户外广告牌]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-18 11:04 + + + +<![CDATA[民法君“典”案例:安装广告牌时被电击,责任谁来担?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-18 11:03 + + + +<![CDATA[潍坊市城管执法支队组织户外广告牌、LED显示屏安全工作检查]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-15 10:22 + + + +<![CDATA[确保降雪期间户外广告牌匾设施安全,北京整改6处隐患]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-15 10:22 + + + +<![CDATA[首届工业互联网标识应用创新大赛在渝“结硕果”]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-15 10:09 + + + +<![CDATA[农业农村部办公厅关于加强畜禽标识管理工作的通知]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-15 10:08 + + + +<![CDATA[泰安市中心医院党建宣传标牌项目竞争性磋商公告]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-15 10:08 + + + +<![CDATA[视美泰发布国产化开源鸿蒙系统数字标牌解决方案!]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:37 + + + +<![CDATA[智能数字标牌系统设计制作有哪些应用场景?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:32 + + + +<![CDATA[昆明市呈贡区农村信用合作联社零星宣传、网点标识标牌采购供应商]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:30 + + + +<![CDATA[标识系统和导视系统有什么区别]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:26 + + + +<![CDATA[安徽省标识行业质量检查制度]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:25 + + + +<![CDATA[杭州大关街道及时修复标志牌 消除隐患保安全]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:25 + + + +<![CDATA[深圳市爱鑫微电子有限公司荣获高工创新产品奖]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:08 + + + +<![CDATA[Mini LED TV同比增长近50%]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:07 + + + +<![CDATA[中国邮政银行+中银立式广告机屡次携手,共谋金融服务创新发展]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-13 21:06 + + + +<![CDATA[中国邮政以中银智能广告机提升运营、服务新高度]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-11-06 11:00 + + + +<![CDATA[产业园区户外导视标识标牌应该设置在哪些位置?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:32 + + + +<![CDATA[如何设计富有特色的校园文化标识标牌?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:31 + + + +<![CDATA[对于标识标牌的安装,该如何提高其使用的安全性呢?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:30 + + + +<![CDATA[展厅设计常用的标牌需要具有哪些特点?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-28 18:27 + + + +<![CDATA[立式与壁挂液晶广告机该怎么选用]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-09 22:52 + + + +<![CDATA[移动拼接LED显示屏出现信号不稳定时,该如何解决?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2024-01-02 15:37 + + + +<![CDATA[标牌施工现场应该做好哪些准备工作?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-12-27 23:04 + + + +<![CDATA[标识导向系统中的导视牌如何选择]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-06-19 11:47 + + + +<![CDATA[电铸标牌主要材质有哪些呢?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-05-04 20:24 + + + +<![CDATA[如何做好LED显示屏的维护和保养?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-03-15 21:50 + + + +<![CDATA[人防标识标牌制作工艺的重要性]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-03-08 16:51 + + + +<![CDATA[公园景区标识导视系统有哪几种常见分类?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-03-07 16:09 + + + +<![CDATA[商场标识标牌应该注意哪些细节]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-02-27 21:43 + + + +<![CDATA[医院标识牌需要注意哪些要求]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-02-24 20:49 + + + +<![CDATA[导视系统标识标牌设计制作过程需要注意哪些事项]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-02-22 19:44 + + + +<![CDATA[户外标识标牌使用中应该如何做好防腐蚀维护工作?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-02-19 19:10 + + + +<![CDATA[标识标牌的制作具体有哪些流程?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2023-02-17 20:46 + + + +<![CDATA[甲级写字楼导视标识系统怎么进行创新化设计?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-11-28 20:50 + + + +<![CDATA[科技馆标识设计需要注意哪些问题]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-11-28 20:46 + + + +<![CDATA[城市中经常出现的标识标牌都有哪些分类]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-10-28 08:45 + + + +<![CDATA[数字标牌LED显示屏秋冬季节维护指南]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-10-20 12:26 + + + +<![CDATA[体育馆完整的广告标识标牌导视系统有哪些呢?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-10-20 12:23 + + + +<![CDATA[户外广告牌136安全/8647检测2318鉴定的主要内容]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-05-23 20:50 + + + +<![CDATA[物业标识标牌的主要类别]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-30 15:16 + + + +<![CDATA[选购电力标识牌需要注意的几点]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-30 15:11 + + + +<![CDATA[做标识系统和导视系统需要注意哪些问题?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-29 22:15 + + + +<![CDATA[雅力铝塑板的特点]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[ABS双色板的特点]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[山富PP背胶的用途及特点]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[木质超薄灯箱的特点及优点]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[防水化纤油画布的特性及使用范围]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[有机玻璃亚克力板的特性及使用范围]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[优质灯箱布的分类、选择与加工]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[户外广告灯箱球的优点是什么?]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[什么是染料墨水]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[什么是亚克力板?亚克力板制作灯箱有什么优点]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[圆管钢板圆孔桁架常用规格]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[常见KT板材的特点和使用方法]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[PVC结皮发泡板的特点及用途]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[广告板材阳光板的特点及用途]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[如何选购压克力板材]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[山富加厚防水正喷灯片的特性及使用范围]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[吸塑发光字的特点及使用范围]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:19 + + + +<![CDATA[透明PVC板的特性及使用范围]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:18 + + + +<![CDATA[旋转式灯箱的特点及使用范围]]> + + + + + + + + + + + + + + + + + + + + + + + + + +2022-04-27 16:18 + + \ No newline at end of file diff --git a/brand/ajax.php b/brand/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/brand/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/brand/config.inc.php b/brand/config.inc.php new file mode 100644 index 0000000..dfb83fc --- /dev/null +++ b/brand/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/brand/index.php b/brand/index.php new file mode 100644 index 0000000..18994c7 --- /dev/null +++ b/brand/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/brand/list.php b/brand/list.php new file mode 100644 index 0000000..abf24fb --- /dev/null +++ b/brand/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/brand/message.php b/brand/message.php new file mode 100644 index 0000000..e170862 --- /dev/null +++ b/brand/message.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/brand/search.php b/brand/search.php new file mode 100644 index 0000000..9a3b64a --- /dev/null +++ b/brand/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/brand/show.php b/brand/show.php new file mode 100644 index 0000000..1e56e79 --- /dev/null +++ b/brand/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/buy/ajax.php b/buy/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/buy/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/buy/config.inc.php b/buy/config.inc.php new file mode 100644 index 0000000..da94b1a --- /dev/null +++ b/buy/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/buy/index.php b/buy/index.php new file mode 100644 index 0000000..3291747 --- /dev/null +++ b/buy/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/buy/list.php b/buy/list.php new file mode 100644 index 0000000..c55b026 --- /dev/null +++ b/buy/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/buy/price.php b/buy/price.php new file mode 100644 index 0000000..b536cbc --- /dev/null +++ b/buy/price.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/buy/search.php b/buy/search.php new file mode 100644 index 0000000..bcbf325 --- /dev/null +++ b/buy/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/buy/show.php b/buy/show.php new file mode 100644 index 0000000..b07decc --- /dev/null +++ b/buy/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/club/ajax.php b/club/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/club/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/club/chat.php b/club/chat.php new file mode 100644 index 0000000..b919aa2 --- /dev/null +++ b/club/chat.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/club/config.inc.php b/club/config.inc.php new file mode 100644 index 0000000..33b7509 --- /dev/null +++ b/club/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/club/fans.php b/club/fans.php new file mode 100644 index 0000000..c9f7fa1 --- /dev/null +++ b/club/fans.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/club/goto.php b/club/goto.php new file mode 100644 index 0000000..5dbb7b1 --- /dev/null +++ b/club/goto.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/club/index.php b/club/index.php new file mode 100644 index 0000000..682a97a --- /dev/null +++ b/club/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/club/list.php b/club/list.php new file mode 100644 index 0000000..55fc086 --- /dev/null +++ b/club/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/club/search.php b/club/search.php new file mode 100644 index 0000000..a07b9a3 --- /dev/null +++ b/club/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/club/show.php b/club/show.php new file mode 100644 index 0000000..f104ed8 --- /dev/null +++ b/club/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/comment/index.php b/comment/index.php new file mode 100644 index 0000000..aa5d488 --- /dev/null +++ b/comment/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/common.inc.php b/common.inc.php new file mode 100644 index 0000000..a1317c7 --- /dev/null +++ b/common.inc.php @@ -0,0 +1,194 @@ + $__v) { + if(substr($__k, 0, 1) == '_') if($__R == '_POST') { unset($_POST[$__k]); } else { unset($_GET[$__k]); } + if(isset($$__k) && $$__k == $__v) unset($$__k); + } + } +} +define('IN_DESTOON', true); +define('IN_ADMIN', defined('DT_ADMIN') ? true : false); +define('DT_ROOT', str_replace("\\", '/', dirname(__FILE__))); +if(defined('DT_REWRITE')) include DT_ROOT.'/include/rewrite.inc.php'; +$CFG = array(); +require DT_ROOT.'/config.inc.php'; +define('DT_PATH', $CFG['url']); +define('DT_STATIC', $CFG['static'] ? $CFG['static'] : $CFG['url']); +define('DT_DOMAIN', $CFG['cookie_domain'] ? substr($CFG['cookie_domain'], 1) : ''); +define('DT_WIN', strpos(strtoupper(PHP_OS), 'WIN') !== false ? true: false); +define('DT_UA', $_SERVER['HTTP_USER_AGENT']); +define('DT_CHMOD', ($CFG['file_mod'] && !DT_WIN) ? $CFG['file_mod'] : 0); +define('DT_LANG', $CFG['language']); +define('DT_KEY', $CFG['authkey']); +define('DT_PRE', $CFG['tb_pre']); +define('DT_EDITOR', $CFG['editor']); +define('DT_CDN', $CFG['cdn'] ? 1 : 0); +define('DT_CLOUD_UID', $CFG['cloud_uid']); +define('DT_CLOUD_KEY', $CFG['cloud_key']); +define('DT_CHARSET', strtoupper($CFG['charset'])); +define('DT_CACHE', $CFG['cache_dir'] ? $CFG['cache_dir'] : DT_ROOT.'/file/cache'); +define('DT_SKIN', DT_STATIC.'skin/'.$CFG['skin'].'/'); +define('VIP', $CFG['com_vip']); +define('errmsg', 'Invalid Request'); +$L = array(); +include DT_ROOT.'/lang/'.DT_LANG.'/lang.inc.php'; +require DT_ROOT.'/version.inc.php'; +require DT_ROOT.'/include/global.func.php'; +require DT_ROOT.'/include/safe.func.php'; +require DT_ROOT.'/include/cloud.func.php'; +require DT_ROOT.'/include/tag.func.php'; +require DT_ROOT.'/api/im.func.php'; +require DT_ROOT.'/api/extend.func.php'; +if(!$MQG) { + if($_POST) $_POST = daddslashes($_POST); + if($_GET) $_GET = daddslashes($_GET); + if($_COOKIE) $_COOKIE = daddslashes($_COOKIE); +} +if(function_exists('date_default_timezone_set')) date_default_timezone_set($CFG['timezone']); +$DT_PRE = $CFG['tb_pre']; +$DT_QST = addslashes($_SERVER['QUERY_STRING']); +$DT_TIME = time() + $CFG['timediff']; +$DT_IP = get_env('ip'); +$DT_URL = get_env('url'); +$DT_REF = get_env('referer'); +$DT_MOB = get_env('mobile'); +$DT_MBS = get_env('browser'); +$DT_BOT = is_robot(); +$DT_TOUCH = is_touch(); +$DT_TODAY = datetotime(date('Y-m-d', $DT_TIME).' 23:59:59'); +$DT_PC = $GLOBALS['DT_PC'] = 1; +define('DT_TIME', $DT_TIME); +define('DT_IP', $DT_IP); +define('DT_TOUCH', $DT_TOUCH); +define('DT_REFRESH', substr(md5(DT_RELEASE.DT_KEY), 0, 6)); +header("Content-Type:text/html;charset=".DT_CHARSET); +require DT_ROOT.'/include/db_'.$CFG['database'].'.class.php'; +require DT_ROOT.'/include/cache_'.$CFG['cache'].'.class.php'; +require DT_ROOT.'/include/session_'.$CFG['session'].'.class.php'; +require DT_ROOT.'/include/file.func.php'; +if(!empty($_SERVER['REQUEST_URI'])) strip_uri($_SERVER['REQUEST_URI']); +if($_POST) { $_POST = strip_sql($_POST); strip_key($_POST); } +if($_GET) { $_GET = strip_sql($_GET); strip_key($_GET); } +if($_COOKIE) { $_COOKIE = strip_sql($_COOKIE); strip_key($_COOKIE); } +if(!IN_ADMIN) banip(); +if($_POST) extract($_POST, EXTR_SKIP); +if($_GET) extract($_GET, EXTR_SKIP); +$db_class = 'db_'.$CFG['database']; +$db = new $db_class; +$db->halt = (DT_DEBUG || IN_ADMIN) ? 1 : 0; +$db->connect($CFG['db_host'], $CFG['db_user'], $CFG['db_pass'], $CFG['db_name'], $CFG['db_expires'], $CFG['db_charset'], $CFG['pconnect']); +$dc = new dcache(); +$dc->pre = $CFG['cache_pre']; +require DT_ROOT.'/include/db.class.php'; +$DT = $MOD = $EXT = $CSS = $JS = $DTMP = $CAT = $ARE = $AREA = array(); +$CACHE = cache_read('module.php'); +if(!$CACHE) { + require_once DT_ROOT.'/include/admin.func.php'; + require_once DT_ROOT.'/include/post.func.php'; + require_once DT_ROOT.'/include/cache.func.php'; + cache_all(); + $CACHE = cache_read('module.php'); +} +$DT = $CACHE['dt']; +$MODULE = $CACHE['module']; +$EXT = cache_read('module-3.php'); +define('DT_MAX_LEN', $DT['max_len']); +define('RE_WRITE', $DT['rewrite'] ? ($DT['search_rewrite'] ? 2 : 1) : 0); +$lazy = $DT['lazy'] ? 1 : 0; +if(!IN_ADMIN && ($DT['close'] || $DT['defend_cc'])) include DT_ROOT.'/include/defend.inc.php'; +unset($CACHE, $CFG['db_host'], $CFG['db_user'], $CFG['db_pass'], $db_class, $db_file); +$moduleid = isset($moduleid) ? intval($moduleid) : 1; +if($moduleid > 1) { + isset($MODULE[$moduleid]) or dheader(DT_PATH); + $module = $MODULE[$moduleid]['module']; + $MOD = $moduleid == 3 ? $EXT : cache_read('module-'.$moduleid.'.php'); + include DT_ROOT.'/lang/'.DT_LANG.'/'.$module.'.inc.php'; +} else { + $moduleid = 1; + $module = 'destoon'; +} +$cityid = 0; +$city_name = $L['allcity']; +$city_domain = $city_template = $city_sitename = ''; +if($DT['city']) include DT_ROOT.'/include/city.inc.php'; +define('DT_MOB', $EXT['mobile_url']); +($DT['gzip_enable'] && !$_POST && !defined('DT_MOBILE')) ? ob_start('ob_gzhandler') : ob_start(); +if(isset($forward)) { + if(isset($_GET['forward'])) $forward = urldecode($forward); +} else if($DT_REF) { + $forward = strpos(dirname($DT_REF).'/', (DT_DOMAIN ? DT_DOMAIN : DT_PATH)) === false ? DT_PATH : $DT_REF; +} else { + $forward = DT_PATH; +} +strip_uri($forward); +$destoon_task = ''; +(isset($action) && check_name($action)) or $action = ''; +(isset($job) && check_name($job)) or $job = ''; +$submit = isset($_POST['submit']) ? 1 : 0; +if($submit) { + isset($captcha) or $captcha = ''; + isset($answer) or $answer = ''; +} +$mid = isset($mid) ? intval($mid) : 0; +$sum = isset($sum) ? intval($sum) : 0; +$page = isset($page) ? max(intval($page), 1) : 1; +$catid = isset($catid) ? intval($catid) : 0; +$areaid = isset($areaid) ? intval($areaid) : 0; +$itemid = isset($itemid) ? (is_array($itemid) ? array_map('intval', $itemid) : intval($itemid)) : 0; +$pagesize = $DT['pagesize'] ? $DT['pagesize'] : 30; +$offset = ($page-1)*$pagesize; +$kw = isset($_GET['kw']) ? strip_kw($_GET['kw'], $DT['max_kw']) : ''; +$keyword = $kw ? str_replace(array(' ', '*'), array('%', '%'), $kw) : ''; +$seo_file = $seo_title = $head_title = $head_keywords = $head_description = $head_canonical = $head_mobile = $head_name = ''; +$head_pc = $moduleid > 1 ? str_replace(DT_MOB.$MODULE[$moduleid]['moduledir'].'/', $MODULE[$moduleid]['linkurl'], $DT_URL) : str_replace(DT_MOB, DT_PATH, $DT_URL); +if($catid) $CAT = get_cat($catid); +if($areaid) $ARE = get_area($areaid); +$_userid = $_admin = $_aid = $_cid = $_message = $_chat = $_sound = $_online = $_money = $_credit = $_sms = 0; +$_username = $_company = $_passport = $_truename = $_cname = ''; +$_groupid = 3; +$destoon_auth = get_cookie('auth'); +if($destoon_auth) $destoon_auth = decrypt($destoon_auth, DT_KEY.'USER'); +if($destoon_auth) { + $_dauth = explode('|', $destoon_auth); + $_userid = isset($_dauth[0]) ? intval($_dauth[0]) : 0; + if($_userid) { + $_password = isset($_dauth[1]) ? trim($_dauth[1]) : ''; + $_cid = isset($_dauth[2]) ? intval($_dauth[2]) : 0; + $USER = $db->get_one("SELECT username,passport,company,truename,mobile,password,groupid,email,message,chat,sound,online,sms,credit,money,loginip,admin,aid,edittime FROM {$DT_PRE}member WHERE userid=$_userid"); + if($USER && $USER['password'] == $_password) { + if($USER['groupid'] == 2) dalert(lang('message->common_forbidden')); + if($USER['loginip'] != $DT_IP && ($DT['ip_login'] == 2 || ($DT['ip_login'] == 1 && IN_ADMIN))) { + $_userid = 0; set_cookie('auth', ''); + dalert(lang('message->common_login', array($USER['loginip'])), DT_PATH); + } + extract($USER, EXTR_PREFIX_ALL, ''); + } else { + $_userid = 0; + if($db->linked) set_cookie('auth', ''); + } + unset($destoon_auth, $USER, $_dauth, $_password); + } +} +if($_userid == 0) { $_groupid = 3; $_username = ''; } +if(!IN_ADMIN) { + if($_groupid == 1) include DT_ROOT.'/module/member/admin.inc.php'; + if($_userid) $db->query("REPLACE INTO {$DT_PRE}online (userid,username,ip,moduleid,online,lasttime) VALUES ('$_userid','$_username','$DT_IP','$moduleid','$_online','$DT_TIME')"); +} +$MG = cache_read('group-'.$_groupid.'.php'); +?> \ No newline at end of file diff --git a/company/1/index.html b/company/1/index.html new file mode 100644 index 0000000..40c2ef6 --- /dev/null +++ b/company/1/index.html @@ -0,0 +1,699 @@ + + + + +传统标牌厂商_公司_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ +
+
+
+
行业
+ +
+ + +
+
+

+ 重庆市特驰科技有限公司  +VIP VIP会员

+
+ 主营产品:硕方、普贴、爱普生 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 北京第欧丽标科技有限公司  + 普通会员

+
+ 主营产品:线号机,标牌机,色带,打标机,标签机,激光标识打印机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 常州明道标识有限公司  + 普通会员

+
+ 主营产品:各类导视系统、垃圾箱、垃圾分类亭、候车亭、精神堡垒、党建宣传牌、乡村标识、宣传栏、导视牌、科室牌、资料架、广告灯箱等 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南大华伟业广告有限公司  + 普通会员

+
+ 主营产品:标识标牌、导视系统、灯箱、花草牌等 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 上海昶文展览服务有限公司  + 普通会员

+
+ 主营产品:展览会博览会 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 三合标牌制作有限公司  + 普通会员

+
+ 主营产品:承接:同行喷绘写真设计、制作、安装、标识标牌制作、LED显示屏及亮化工程,展厅设计制作 、三面翻工程 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 河北润杰广告制作有限公司  + 普通会员

+
+ 主营产品:各类标识标牌,各类发光字,平板UV打印,广告灯箱,喷绘写真,亚克力雕刻字等。 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 佛山市壹捌捌广告有限公司  + 普通会员

+
+ 主营产品: led发光字,平面发光字,LED点阵发光字,LED冲孔发光字,树脂字,无边发光字,超级发光字,3D发光字,通体发光字,全彩发光字,炫彩发光字,迷你发光字,树脂发光字,特大铝板或其他金属板发光字,特大楼盘挂网发光字,LED亮化工程,港式精工字,金属烤漆字,水晶字及其他字;各类户内标识标牌,各类户外标识标牌,软膜灯箱,腐蚀丝印标识;喷绘写真,灯布喷绘,室内高精写真,户外高精写真,板材UV喷绘,展架等。 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南辉恒标牌标识有限公司  + 普通会员

+
+ 主营产品:宣传栏 信报箱 精神堡垒 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 郑州密码柯商贸有限公司  + 普通会员

+
+ 主营产品:办公设备耗材销售;办公设备销售;化工产品销售;印刷专用设备制造 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市大和油墨科技有限公司  + 普通会员

+
+ 主营产品:环保印刷器材、油墨的技术开发、销售 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市生彩广告有限公司  + 普通会员

+
+ 主营产品:喷绘、展示器材、展览展示器材的购销及其他国内贸易 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 安平县淮盛丝网制品有限公司  + 普通会员

+
+ 主营产品:网片、爬架网、丝网制品及进出口业务 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南索恩文化传播有限公司  + 普通会员

+
+ 主营产品:广告制作;广告发布;会议及展览服务 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南华熠文化传媒有限公司  + 普通会员

+
+ 主营产品:标识标牌设计、制作、安装及销售、展览展示服务 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广州展宝展示器材有限公司  + 普通会员

+
+ 主营产品:标识、标志牌制造 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 合肥仲泰广告设备有限公司  + 普通会员

+
+ 主营产品:国内广告设计、制作及安装 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 郑州普康智能设备有限公司  + 普通会员

+
+ 主营产品:智能设备、包装设备、印刷设备、包装材料、机械设备及配件 +
+
+ 公司地址: +
+
+ + + +
+ +
+
+

+ 武汉宇阳博创科技有限公司  + 普通会员

+
+ 主营产品:数码影像、平面设计、广告艺术、数码印花、标志标识设备的销售和服务 +
+
+ 公司地址: +
+
+ + + +
+
 «上一页   1   2   下一页»   共35条/2页 
+
+ +
搜索排行
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + \ No newline at end of file diff --git a/company/1/list1.html b/company/1/list1.html new file mode 100644 index 0000000..40c2ef6 --- /dev/null +++ b/company/1/list1.html @@ -0,0 +1,699 @@ + + + + +传统标牌厂商_公司_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ +
+
+
+
行业
+ +
+ + +
+
+

+ 重庆市特驰科技有限公司  +VIP VIP会员

+
+ 主营产品:硕方、普贴、爱普生 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 北京第欧丽标科技有限公司  + 普通会员

+
+ 主营产品:线号机,标牌机,色带,打标机,标签机,激光标识打印机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 常州明道标识有限公司  + 普通会员

+
+ 主营产品:各类导视系统、垃圾箱、垃圾分类亭、候车亭、精神堡垒、党建宣传牌、乡村标识、宣传栏、导视牌、科室牌、资料架、广告灯箱等 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南大华伟业广告有限公司  + 普通会员

+
+ 主营产品:标识标牌、导视系统、灯箱、花草牌等 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 上海昶文展览服务有限公司  + 普通会员

+
+ 主营产品:展览会博览会 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 三合标牌制作有限公司  + 普通会员

+
+ 主营产品:承接:同行喷绘写真设计、制作、安装、标识标牌制作、LED显示屏及亮化工程,展厅设计制作 、三面翻工程 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 河北润杰广告制作有限公司  + 普通会员

+
+ 主营产品:各类标识标牌,各类发光字,平板UV打印,广告灯箱,喷绘写真,亚克力雕刻字等。 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 佛山市壹捌捌广告有限公司  + 普通会员

+
+ 主营产品: led发光字,平面发光字,LED点阵发光字,LED冲孔发光字,树脂字,无边发光字,超级发光字,3D发光字,通体发光字,全彩发光字,炫彩发光字,迷你发光字,树脂发光字,特大铝板或其他金属板发光字,特大楼盘挂网发光字,LED亮化工程,港式精工字,金属烤漆字,水晶字及其他字;各类户内标识标牌,各类户外标识标牌,软膜灯箱,腐蚀丝印标识;喷绘写真,灯布喷绘,室内高精写真,户外高精写真,板材UV喷绘,展架等。 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南辉恒标牌标识有限公司  + 普通会员

+
+ 主营产品:宣传栏 信报箱 精神堡垒 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 郑州密码柯商贸有限公司  + 普通会员

+
+ 主营产品:办公设备耗材销售;办公设备销售;化工产品销售;印刷专用设备制造 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市大和油墨科技有限公司  + 普通会员

+
+ 主营产品:环保印刷器材、油墨的技术开发、销售 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市生彩广告有限公司  + 普通会员

+
+ 主营产品:喷绘、展示器材、展览展示器材的购销及其他国内贸易 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 安平县淮盛丝网制品有限公司  + 普通会员

+
+ 主营产品:网片、爬架网、丝网制品及进出口业务 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南索恩文化传播有限公司  + 普通会员

+
+ 主营产品:广告制作;广告发布;会议及展览服务 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 河南华熠文化传媒有限公司  + 普通会员

+
+ 主营产品:标识标牌设计、制作、安装及销售、展览展示服务 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广州展宝展示器材有限公司  + 普通会员

+
+ 主营产品:标识、标志牌制造 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 合肥仲泰广告设备有限公司  + 普通会员

+
+ 主营产品:国内广告设计、制作及安装 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 郑州普康智能设备有限公司  + 普通会员

+
+ 主营产品:智能设备、包装设备、印刷设备、包装材料、机械设备及配件 +
+
+ 公司地址: +
+
+ + + +
+ +
+
+

+ 武汉宇阳博创科技有限公司  + 普通会员

+
+ 主营产品:数码影像、平面设计、广告艺术、数码印花、标志标识设备的销售和服务 +
+
+ 公司地址: +
+
+ + + +
+
 «上一页   1   2   下一页»   共35条/2页 
+
+ +
搜索排行
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + \ No newline at end of file diff --git a/company/1/list2.html b/company/1/list2.html new file mode 100644 index 0000000..3f50bce --- /dev/null +++ b/company/1/list2.html @@ -0,0 +1,610 @@ + + + + +传统标牌厂商_第2页_公司_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ +
+
+
+
行业
+ +
+ + +
+
+

+ 济南万彩数控设备有限公司  + 普通会员

+
+ 主营产品:雕刻机、打印机、喷绘机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 宁波瑞利时数控科技有限公司  + 普通会员

+
+ 主营产品:自动化设备、机器人、电子产品、机械设备、机电一体化设备 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 济南锐诚自动化设备有限公司  + 普通会员

+
+ 主营产品:气动打标机 工业打标机 激光打标机 激光流水线作业 铭牌打标机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 廊坊久升图文广告有限公司  + 普通会员

+
+ 主营产品:户外标牌、灯箱的制作;企业形象策划 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 青岛嘉扬盛世广告装饰公司  + 普通会员

+
+ 主营产品:广告设计 代理 广告制作 广告发布 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广州市三杰数码图像有限公司  + 普通会员

+
+ 主营产品:uv打印机 标识铭牌uv数码打印机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 曲阜市ENKE机械有限公司  + 普通会员

+
+ 主营产品:激光打标机 气动打标机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 山东亿鸿激光科技有限公司  + 普通会员

+
+ 主营产品:光纤激光打标机、二氧化碳激光打标机、紫外激光打标机、激光焊接机、激光切割机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 黄骅市晟杰面板有限公司  + 普通会员

+
+ 主营产品:制造标牌、电子元件、机箱、电路板、冲压件、标签、面板 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 黄骅市福顺科技有限公司  + 普通会员

+
+ 主营产品:金属标牌;标签印刷;印刷金属;金属面板;机箱外壳;机械测量;警示标签 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 盐城晶茂光电科技有限公司  + 普通会员

+
+ 主营产品:LCD、LED显示屏、照明灯具、标牌制作及销售 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 温州慧邦标牌有限公司  + 普通会员

+
+ 主营产品:标牌、塑料包装制品、金属制品、工艺品、警示牌、反光标牌 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 郑州骊越标识标牌有限公司  + 普通会员

+
+ 主营产品:标牌厂家 标示标牌制作 骊越标识 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 武汉贝瑞克机械制造有限公司  + 普通会员

+
+ 主营产品:标志牌铆钉机 自穿刺铆钉机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市峰业信息技术有限公司  + 普通会员

+
+ 主营产品:标签打印机、条码扫描器、不干胶标签纸、碳带 +
+
+ 公司地址: +
+
+ + + +
+
 «上一页   1   2   下一页»   共35条/2页 
+
+ +
搜索排行
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + \ No newline at end of file diff --git a/company/15/index.html b/company/15/index.html new file mode 100644 index 0000000..f8753be --- /dev/null +++ b/company/15/index.html @@ -0,0 +1,549 @@ + + + + +数字标牌厂商_公司_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ +
+
+
+
行业
+ +
+ + +
+
+

+ 重庆市特驰科技有限公司  +VIP VIP会员

+
+ 主营产品:硕方、普贴、爱普生 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市君派伟业有限公司  + 普通会员

+
+ 主营产品: 机械设备、非标设备、热转印便携式标签打印机、热转印胶带、热转印碳带的研发、销售 经营电子商务;网上经营、网上贸易、网上咨询、网络商务服务; +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 浙江华源智控科技有限公司  + 普通会员

+
+ 主营产品:交通设施,雾天公路行车安全诱导装置,激光警示灯,定向喇叭,太阳能道钉,来车预警系统,声光报警器,太阳能施工假人,GPS同步边缘警示灯,太阳能爆闪灯,太阳能警示灯,太阳能移动红绿灯,太阳能回转灯,太阳能交通标志牌,太阳能导向灯,太阳能黄闪指示灯,太阳能线性诱导标志,太阳能施工标志牌,轮廓标,太阳能警示柱,便携式全天候主动警示牌,led袖标,led背心,led充电肩灯,便携式led显示屏,led箭头灯,反光雨衣 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 北京新格永发科技发展有限公司  + 普通会员

+
+ 主营产品:工业用金属标牌铭牌腐牌,丝印牌,打标机打码机的设计研发销售 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 佛山市壹捌捌广告有限公司  + 普通会员

+
+ 主营产品: led发光字,平面发光字,LED点阵发光字,LED冲孔发光字,树脂字,无边发光字,超级发光字,3D发光字,通体发光字,全彩发光字,炫彩发光字,迷你发光字,树脂发光字,特大铝板或其他金属板发光字,特大楼盘挂网发光字,LED亮化工程,港式精工字,金属烤漆字,水晶字及其他字;各类户内标识标牌,各类户外标识标牌,软膜灯箱,腐蚀丝印标识;喷绘写真,灯布喷绘,室内高精写真,户外高精写真,板材UV喷绘,展架等。 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市华创佳科技有限公司  + 普通会员

+
+ 主营产品:数字标牌、广告机、户外广告机、户外广告机套料 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市容大彩晶科技有限公司  + 普通会员

+
+ 主营产品:液晶广告机、数字标牌、楼宇广告机、高清车载广告机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 武汉艾德蒙科技股份有限公司  + 普通会员

+
+ 主营产品:会议平板,网络广告机,数字标牌商业显示 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广州市傲彩机械设备有限公司  + 普通会员

+
+ 主营产品:傲彩打印机、UV平板打印机、平面UV打印机、6090打印机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市福斯特电子有限公司  + 普通会员

+
+ 主营产品:液晶广告机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳康荣电子有限公司  + 普通会员

+
+ 主营产品:网络广告机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市安致兰德科技有限公司  + 普通会员

+
+ 主营产品:网络广告机,多媒体信息发布系统 +
+
+ 公司地址: +
+
+ + + +
+
+
+ +
搜索排行
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + \ No newline at end of file diff --git a/company/15/list1.html b/company/15/list1.html new file mode 100644 index 0000000..f8753be --- /dev/null +++ b/company/15/list1.html @@ -0,0 +1,549 @@ + + + + +数字标牌厂商_公司_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ +
+
+
+
行业
+ +
+ + +
+
+

+ 重庆市特驰科技有限公司  +VIP VIP会员

+
+ 主营产品:硕方、普贴、爱普生 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市君派伟业有限公司  + 普通会员

+
+ 主营产品: 机械设备、非标设备、热转印便携式标签打印机、热转印胶带、热转印碳带的研发、销售 经营电子商务;网上经营、网上贸易、网上咨询、网络商务服务; +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 浙江华源智控科技有限公司  + 普通会员

+
+ 主营产品:交通设施,雾天公路行车安全诱导装置,激光警示灯,定向喇叭,太阳能道钉,来车预警系统,声光报警器,太阳能施工假人,GPS同步边缘警示灯,太阳能爆闪灯,太阳能警示灯,太阳能移动红绿灯,太阳能回转灯,太阳能交通标志牌,太阳能导向灯,太阳能黄闪指示灯,太阳能线性诱导标志,太阳能施工标志牌,轮廓标,太阳能警示柱,便携式全天候主动警示牌,led袖标,led背心,led充电肩灯,便携式led显示屏,led箭头灯,反光雨衣 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 北京新格永发科技发展有限公司  + 普通会员

+
+ 主营产品:工业用金属标牌铭牌腐牌,丝印牌,打标机打码机的设计研发销售 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 佛山市壹捌捌广告有限公司  + 普通会员

+
+ 主营产品: led发光字,平面发光字,LED点阵发光字,LED冲孔发光字,树脂字,无边发光字,超级发光字,3D发光字,通体发光字,全彩发光字,炫彩发光字,迷你发光字,树脂发光字,特大铝板或其他金属板发光字,特大楼盘挂网发光字,LED亮化工程,港式精工字,金属烤漆字,水晶字及其他字;各类户内标识标牌,各类户外标识标牌,软膜灯箱,腐蚀丝印标识;喷绘写真,灯布喷绘,室内高精写真,户外高精写真,板材UV喷绘,展架等。 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市华创佳科技有限公司  + 普通会员

+
+ 主营产品:数字标牌、广告机、户外广告机、户外广告机套料 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市容大彩晶科技有限公司  + 普通会员

+
+ 主营产品:液晶广告机、数字标牌、楼宇广告机、高清车载广告机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 武汉艾德蒙科技股份有限公司  + 普通会员

+
+ 主营产品:会议平板,网络广告机,数字标牌商业显示 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广州市傲彩机械设备有限公司  + 普通会员

+
+ 主营产品:傲彩打印机、UV平板打印机、平面UV打印机、6090打印机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市福斯特电子有限公司  + 普通会员

+
+ 主营产品:液晶广告机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳康荣电子有限公司  + 普通会员

+
+ 主营产品:网络广告机 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 深圳市安致兰德科技有限公司  + 普通会员

+
+ 主营产品:网络广告机,多媒体信息发布系统 +
+
+ 公司地址: +
+
+ + + +
+
+
+ +
搜索排行
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + \ No newline at end of file diff --git a/company/16/index.html b/company/16/index.html new file mode 100644 index 0000000..ebb622b --- /dev/null +++ b/company/16/index.html @@ -0,0 +1,575 @@ + + + + +广告商/服务商_公司_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ +
+
+
+
行业
+ +
+ + +
+
+

+ 山东素源堂生物科技有限公司  + 普通会员

+
+ 主营产品:固体饮料 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 爱普生(中国)有限公司广州分公司  + 普通会员

+
+ 主营产品:压电写真机喷头,喷绘机喷头,写真机喷头,打印头,爱普生喷头 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广东亚联展览股份有限公司  + 普通会员

+
+ 主营产品:机械装备、机床模具、工业自动化、机器人、印刷包装、轻工机械、机械装备、服装、食品、房地产、汽车、动漫、游戏游艺等多个领域 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 广东凯顿新材料科技有限公司  + 普通会员

+
+ 主营产品:润滑硅脂,阻尼脂,高温润滑脂,塑胶齿轮脂,塑料齿轮润滑脂,导电润滑脂,电触点润滑脂,高真空硅脂,消音润滑脂,轴承润滑脂,阀门密封润滑脂,汽车附件润滑脂,轨道润滑脂,微电机脂,风扇脂,减速机脂,食品级润滑脂,氟脂,铜膏,铁氟龙喷剂,二硫化钼喷剂,皮带防滑剂,不锈钢光亮剂 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 际华展览服务(宁波)有限公司  + 普通会员

+
+ 主营产品:一般项目:会议及展览服务:礼仪服务;企业管理咨询:信息咨询服务(不含许可类信息咨询服务):数字文化创意内容应用服务:大数据服务:项目策划与公关服务:组织文化艺术交流活动;企业形象策划:医文设计制作:广告设计、代理:广告制作:专业设计服务;国内货物运输代理:旅客票务代理:机械设备租赁:软件开发:信息技术咨询服务(除依法须经批准的项目外,凭营业执照依法自主开展经营活动)。 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 际华展览服务有限公司  + 普通会员

+
+ 主营产品:一般项目:会议及展览服务:礼仪服务;企业管理咨询:信息咨询服务(不含许可类信息咨询服务):数字文化创意内容应用服务:大数据服务:项目策划与公关服务:组织文化艺术交流活动;企业形象策划:医文设计制作:广告设计、代理:广告制作:专业设计服务;国内货物运输代理:旅客票务代理:机械设备租赁:软件开发:信息技术咨询服务(除依法须经批准的项目外,凭营业执照依法自主开展经营活动)。 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 河南大华伟业广告有限公司  + 普通会员

+
+ 主营产品:标识标牌、导视系统、灯箱、花草牌等 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 杭州艾美瑞广告设计有限公司  + 普通会员

+
+ 主营产品:广告设计,平面设计,广告制作 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 北京第欧丽标科技发展有限公司  + 普通会员

+
+ 主营产品:生产热转印打印设备;研发热转印打印设备;销售自产产品;提供自产产品的技术服务、技术咨询、技术培训。 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广州环之球会展服务有限公司  + 普通会员

+
+ 主营产品:广州图文快印展 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 佛山市壹捌捌广告有限公司  + 普通会员

+
+ 主营产品: led发光字,平面发光字,LED点阵发光字,LED冲孔发光字,树脂字,无边发光字,超级发光字,3D发光字,通体发光字,全彩发光字,炫彩发光字,迷你发光字,树脂发光字,特大铝板或其他金属板发光字,特大楼盘挂网发光字,LED亮化工程,港式精工字,金属烤漆字,水晶字及其他字;各类户内标识标牌,各类户外标识标牌,软膜灯箱,腐蚀丝印标识;喷绘写真,灯布喷绘,室内高精写真,户外高精写真,板材UV喷绘,展架等。 +
+
+ 公司地址: +
+
+ + + +
+ +
+
+

+ 安徽中设致和会展有限公司  + 普通会员

+
+ 主营产品:策划、组织、主办、承办会议与展览会展场馆、文体场馆、商业场所运营管理;展览展示陈列工程设计与施工;装修装饰工程设计与施工;教育、娱乐、文化、体育活动的组织与承办国内广告设计、制作、代理、发布;新媒体开发与运营多媒体设计与制作文化旅游、体育健康、农业林业、信息科技项目创意策划与市场开发;商务、贸易信息咨询;市场调查;软硬件技术开发、销售互联网推广活动;互联网信息服务。(依法须经批准的项目,经相关部门批准后方可开展经营活动) +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 廊坊久升图文广告有限公司  + 普通会员

+
+ 主营产品:户外标牌、灯箱的制作;企业形象策划 +
+
+ 公司地址: +
+
+ + + +
+
+
+ +
搜索排行
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + \ No newline at end of file diff --git a/company/16/list1.html b/company/16/list1.html new file mode 100644 index 0000000..ebb622b --- /dev/null +++ b/company/16/list1.html @@ -0,0 +1,575 @@ + + + + +广告商/服务商_公司_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ +
+
+
+
行业
+ +
+ + +
+
+

+ 山东素源堂生物科技有限公司  + 普通会员

+
+ 主营产品:固体饮料 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 爱普生(中国)有限公司广州分公司  + 普通会员

+
+ 主营产品:压电写真机喷头,喷绘机喷头,写真机喷头,打印头,爱普生喷头 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广东亚联展览股份有限公司  + 普通会员

+
+ 主营产品:机械装备、机床模具、工业自动化、机器人、印刷包装、轻工机械、机械装备、服装、食品、房地产、汽车、动漫、游戏游艺等多个领域 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 广东凯顿新材料科技有限公司  + 普通会员

+
+ 主营产品:润滑硅脂,阻尼脂,高温润滑脂,塑胶齿轮脂,塑料齿轮润滑脂,导电润滑脂,电触点润滑脂,高真空硅脂,消音润滑脂,轴承润滑脂,阀门密封润滑脂,汽车附件润滑脂,轨道润滑脂,微电机脂,风扇脂,减速机脂,食品级润滑脂,氟脂,铜膏,铁氟龙喷剂,二硫化钼喷剂,皮带防滑剂,不锈钢光亮剂 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 际华展览服务(宁波)有限公司  + 普通会员

+
+ 主营产品:一般项目:会议及展览服务:礼仪服务;企业管理咨询:信息咨询服务(不含许可类信息咨询服务):数字文化创意内容应用服务:大数据服务:项目策划与公关服务:组织文化艺术交流活动;企业形象策划:医文设计制作:广告设计、代理:广告制作:专业设计服务;国内货物运输代理:旅客票务代理:机械设备租赁:软件开发:信息技术咨询服务(除依法须经批准的项目外,凭营业执照依法自主开展经营活动)。 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 际华展览服务有限公司  + 普通会员

+
+ 主营产品:一般项目:会议及展览服务:礼仪服务;企业管理咨询:信息咨询服务(不含许可类信息咨询服务):数字文化创意内容应用服务:大数据服务:项目策划与公关服务:组织文化艺术交流活动;企业形象策划:医文设计制作:广告设计、代理:广告制作:专业设计服务;国内货物运输代理:旅客票务代理:机械设备租赁:软件开发:信息技术咨询服务(除依法须经批准的项目外,凭营业执照依法自主开展经营活动)。 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 河南大华伟业广告有限公司  + 普通会员

+
+ 主营产品:标识标牌、导视系统、灯箱、花草牌等 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 杭州艾美瑞广告设计有限公司  + 普通会员

+
+ 主营产品:广告设计,平面设计,广告制作 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 北京第欧丽标科技发展有限公司  + 普通会员

+
+ 主营产品:生产热转印打印设备;研发热转印打印设备;销售自产产品;提供自产产品的技术服务、技术咨询、技术培训。 +
+
+ 公司地址: +
+
+ + + +
+
+
+

+ 广州环之球会展服务有限公司  + 普通会员

+
+ 主营产品:广州图文快印展 +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 佛山市壹捌捌广告有限公司  + 普通会员

+
+ 主营产品: led发光字,平面发光字,LED点阵发光字,LED冲孔发光字,树脂字,无边发光字,超级发光字,3D发光字,通体发光字,全彩发光字,炫彩发光字,迷你发光字,树脂发光字,特大铝板或其他金属板发光字,特大楼盘挂网发光字,LED亮化工程,港式精工字,金属烤漆字,水晶字及其他字;各类户内标识标牌,各类户外标识标牌,软膜灯箱,腐蚀丝印标识;喷绘写真,灯布喷绘,室内高精写真,户外高精写真,板材UV喷绘,展架等。 +
+
+ 公司地址: +
+
+ + + +
+ +
+
+

+ 安徽中设致和会展有限公司  + 普通会员

+
+ 主营产品:策划、组织、主办、承办会议与展览会展场馆、文体场馆、商业场所运营管理;展览展示陈列工程设计与施工;装修装饰工程设计与施工;教育、娱乐、文化、体育活动的组织与承办国内广告设计、制作、代理、发布;新媒体开发与运营多媒体设计与制作文化旅游、体育健康、农业林业、信息科技项目创意策划与市场开发;商务、贸易信息咨询;市场调查;软硬件技术开发、销售互联网推广活动;互联网信息服务。(依法须经批准的项目,经相关部门批准后方可开展经营活动) +
+
+ 公司地址: +
+
+ + +
+
+
+
+
+

+ 廊坊久升图文广告有限公司  + 普通会员

+
+ 主营产品:户外标牌、灯箱的制作;企业形象策划 +
+
+ 公司地址: +
+
+ + + +
+
+
+ +
搜索排行
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + \ No newline at end of file diff --git a/company/404.php b/company/404.php new file mode 100644 index 0000000..d55b5e3 --- /dev/null +++ b/company/404.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/company/ajax.php b/company/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/company/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/company/brand/index.php b/company/brand/index.php new file mode 100644 index 0000000..d0e6537 --- /dev/null +++ b/company/brand/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/buy/index.php b/company/buy/index.php new file mode 100644 index 0000000..66786b3 --- /dev/null +++ b/company/buy/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/config.inc.php b/company/config.inc.php new file mode 100644 index 0000000..138aa7d --- /dev/null +++ b/company/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/company/contact/index.php b/company/contact/index.php new file mode 100644 index 0000000..e6fa232 --- /dev/null +++ b/company/contact/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/credit/index.php b/company/credit/index.php new file mode 100644 index 0000000..493b4ec --- /dev/null +++ b/company/credit/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/exhibit/index.php b/company/exhibit/index.php new file mode 100644 index 0000000..7211ccc --- /dev/null +++ b/company/exhibit/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/favicon.ico b/company/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..876981ce18a9e10a5e8b124aa9f85b6fa7f10b82 GIT binary patch literal 1150 zcmbtTyGlbr6g+|-kVV|9-}*% zaXHsba?#v)mN|Qv$L`+ZnoV()O2$5Km1(mXGg}}?k%>IF+?w4CnA^fc@GK@QzgKbV zMmyZwwNcFjgE)9F*C_pe?7%NG%gr@+o*h$eQ;;#`+kmFBChfP<%i z!{>nAhk%>6=uy`!PMSROs?z*+=j)prr@1%H?kRj%dA;xKrHAwG$FGn_UR9cJ kyaKiEc#wBE-+Tv(U^pL7EY|gY{|EhBitNgowO0OvK6r>j%m4rY literal 0 HcmV?d00001 diff --git a/company/guest.php b/company/guest.php new file mode 100644 index 0000000..130cd1c --- /dev/null +++ b/company/guest.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/company/home.php b/company/home.php new file mode 100644 index 0000000..25445e0 --- /dev/null +++ b/company/home.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/company/homepage/index.php b/company/homepage/index.php new file mode 100644 index 0000000..ac28f5b --- /dev/null +++ b/company/homepage/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/honor/index.php b/company/honor/index.php new file mode 100644 index 0000000..32e8321 --- /dev/null +++ b/company/honor/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/image/ab-hide-on.png b/company/image/ab-hide-on.png new file mode 100644 index 0000000000000000000000000000000000000000..c305335b248ae6d7012162a9d956549134d86348 GIT binary patch literal 300 zcmV+{0n`48P)NAun^lAOqIr`zmmerLc)6r0YSkONtMFJCaHq>3;7AL2w`MF z$v)p$h)%mRXYakcBhDZV+FG zX9Wu$#Jbcl<{sG1Acg?Hz?(N5Y#a?Sf`q<;B{zdOxCjsw1i-r&tZyNqg_t557*{~H zgM=J%RSdDq1I7fSs*LZ@y;IW%no9YM3HfJCs3Sfoajj>597|99ai}Hz&wS796pX0;t*H@bxD^{ zovN7vJxQmSkpIRuum@_A?vAA~(3Ny6ngau>k{$(vGy)cq-Vf&$B$BSb?8kq1;g^@Q Z+80o^RuPwD0Ji`D002ovPDHLkV1nQMZ~g!P literal 0 HcmV?d00001 diff --git a/company/image/ab-play-on.png b/company/image/ab-play-on.png new file mode 100644 index 0000000000000000000000000000000000000000..fd609a7b12198eb09b5ee1d58b6276f78702a9b1 GIT binary patch literal 1472 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 literal 0 HcmV?d00001 diff --git a/company/image/ab-zoom-bg.gif b/company/image/ab-zoom-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f153c00c25a30100e137b7b710e4da1c176acb5 GIT binary patch literal 67 zcmZ?wbhEHb+|z`(+w1LAYfEsEk* z6`~Nr6-g^)(aa`_YOE~*za^dV-hZB0h%r6}E(15r?ABHm#ugl>>3OPJ35`tU@Jff;i9DHl3sZ4&sPDjfz!^pW9@eP;}ivV zfd!y%X7g3RZJ-T2Fth7Z0Dpkpz*RF_o&b8i-k#xb_-njEGwW}Lgb+HCZswfVilUg= zu*Oji%3YUPD9?M~CGa8Vd`{8@U~lEqB{O?km&Cc8^BqY$Yi#@g_SZo+1gG2W9&I+8 zCsImB8jZ$*obxx}iz>% literal 0 HcmV?d00001 diff --git a/company/image/btn_bg.gif b/company/image/btn_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..2359314c917b2c7c9c7016280dcd826af192b4b2 GIT binary patch literal 100 zcmZ?wbhEHbWMU9v*vtR||NsC0_Ve$%Pv6f!czgZnho>LDfB*CU!}lLRaj-lJq4<-9 kk%57eK?fuXGJ}Cd(4eKb#UbNG;x2tw#lD2dGC>Aw0E3GpLjV8( literal 0 HcmV?d00001 diff --git a/company/image/free_bg.gif b/company/image/free_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..f4bbbf917a6a25e142328aaaf819d4669b0938db GIT binary patch literal 4719 zcmWla`9IW&1I9m&nfc5;qR7>h``mFv_MPV~+M_M?C8RW8f?BAJ9)$%Ajr)s7)Pe z(Sw?dk0=AsS~)a(W@n{jXQgUq_Ug`jIJB4!EoJR2G-$b>$ZLxTsPw|@!lJN}sP9Bp>n81Y_v<+u4ZVEg^m z(bfxsT938Y*Jhqy8Ep^TnoNdPc+mR5mv+sW26bpa_xm&bFV9XuZ!WA4Q3VfN1P@O_ zOZ>G1$XvAT{;_W zI$s2Ta&C}6_j-Kn`g^7SLN(J-+<$3R7`Qr;R2qgajodw2qTHCOu-&S@&QsgrYi#fg z*ISL(I_wsjZI@e*f9g27(0Zyg!E&)iRgkN=`dCf;@Bq}T_k*V|t~Xw7w)oue>wKgA z*aN58CYLlCX_kBHBlq-Dr}sk1p3-31`Eu1+t|}~PkprRtD9!8ZXbPHY8P-)6YBT}>h}84;SF{9LcRVA zE!P5$p#$u(krbJc4C1>yt&@lGQ#bWrG4(za7z#7>`qT8=3^d5!l4Cj~(WS9tV zm=ENUp$_ly>a!<};hvVrp?Km#fyQ{I+EB7)H$!{khCyF~UdzAQO_4e^LE3^8V?N_x zPpT!v_qNxT8i>^#PSor8SNribot`+-PyuD5o@%cpWv>JFMrm}0skeq`)&*+uBXp~L zH7fnI+oDMK0`!`~O@`=teUZA{ARW$S?fbskbu@zo#(|d0>h*pa9l<({m$fSX(H^{} z_rzP16NPe8+oTKir8&$wcV7QCN=VAOR$>$Zdjra8J}GM^yIwmRZok z__Ml-!8_zQ)P&BBa;IAcr_0$vU%Fyppw&Hn-T#pVr8afG6N1Mzr^|Fs53qF(&Bn?* zSFME^1y$3l5A_I&jz4)Y!3$emnCN@*@O`UU*+|s(q#a(jHljCpD^F|uAye&mar0`R zC>Q0k!L);QOCnh|sj4Tq_4C7(Cu=;Ob005`a%_H~$0#Jw!N#D)3}Krre%x?2*jOFb z{%PtYCZx~?)~F@lQ+oW)?=9T*#n*Ly6@~!ZT49%J6130dUA(Tfp=EG&xxs6ej%sh8 z{L>PO?&aaMCK|;@A$JRaYm4a8dwfJOpr$rU`rR{08)=-a_FaY{!6aQ47aWH&?I1sD zXAon1rQ~YJtH%$jILJ63)C(hgNF~Mg3erp)2vg}s4J5VQGSwut3^V&S6w|g_!8(p) z$#2VcHooL+TJ7M8v8<$Bh?P6xRi%N@yiIa8tqeBl(H#n|o4M&@98T7BO&iigU+Qiu zLm`wo9oZLN>UbBrDs$%UxLb*ev`92g+ubBpZmjtj?JAhN-09kmO#ah%9uKo$ySZvE96y^;QMb@a@tTAE<){IC9b{Z-KhK*;ec}Dhd;DRI08jj$%T6Y zuX_wO&8L`lQ8KYMu~w+R|ADHaU0ritp*Dh~ye5fPVBE5XPo5Vhn@(f2PMCL$i)@?3 z-FgpY4^uy6m{#{o;7Jp`i=Usa6zg6ot{`Mf!5K@1Vui`s`K7|0SsGv_qLSM?5jnR= z%IHLQE#(Sl48p9@RNuHulS-8|6w#yjZ3SU}YC3HDtFeKqu_+YqI+p28Ep(3QAP%__cXflepL{Z(a|W|hNX^rADRQsO9-(AECarw?%)ioF z19txQD7^S~D&gAe_Ftmu;6uGZv))GHxtK2l=-;~62TxO5)_31tXj#4KGZ-O$8qIm8 zw!2@nv)#bI@J#*Sy)TUY>)&4#6QhOV9S8{ChkZ%3xcog<+4XIaj_TbEFKKZMA^5$- zJpx%zS#;g8fVwMN2R}b#DIEQ zoAi~Wcx)>rK_-m~gH){(rRgH@Sb+q{B;mro$LyW)=}{gBFxt6Ptds2la6HlW>*YZB z-_q9d0W72s5T~F?PCS$?0fsOyAU&n0WEv{%jznao9xD*Z^L*OO|DBSxXSNw-NOaqt zRYMv%bV{T#Z8f+LF$jltl?6t;t};1w6kroGvpS_tdBXSVcgTD*6G&+vMW>kYcYD!b zC%cJpDFsu~b3Vt+eY5h;IMZ!*k?0c6to$>?9*dmFa}xhvdKO_7lpSIYm%*Hg4=!KLCz9rXU`GVX zAqem$%<8fTSYJYiO1n=7v0gls$F0w|1EdxHFv|2jbwSC68E5e#CNclpTB#NB=<#Hc z)FsJDgq64rPgi`Ie;}l4TN!XIOFmU*RafPb>+Aa1>C|1P8`vr@QIl(>4kUl&(YLL&H494NlUDd*|i*-0H67 zR6pY@nzM-T@cJqFae|b*!nU&k!&*V;gRqhglnh|SDo?uUdY|rlJHj2|WZ3!rBA=BR z2>Cn6dIG~{(|l=S{Ro<(jnHi{0*y8$cTX`B4LthBXU#(&Wng1WFHdIB{HNp#fDVbo zyAlT*M=*+Rup<;B(0cQ{(j<8~XteL$#)h#pF6)!Y4Nts>vy@^RV5@WVYyAG^JnTjN zc%rieHb8nxe%;l36ep<@)}Izw zZzF$L+t!NRmZspo_nDj3m#ozOfAnOx1gAA?^Sb;m8pUn(c^xv&9@4*P92ySwx#3I- zS}+$kb*0*+&EhO5Lm9isF{&S^@Whv5FVpDo-lRX{bi3Qqyn1bL3L-d(?TN5aQ-!J?oIea_TIz6F3=nz=p=J$nGlGUSgUiJ{!V7QlT|$}-7S z%0|SKFo$}5~GFaQ68^X2O zCx^daLYxB9wfVcppCxrht7NBfxT*qD@UNDwE6IbuPEBQOO8Sq()84nM4Y+0=uauMB zWG0xKwP8b-;$;1pyuCv5w~i~G-=ryV%I{Wi0X`qfw`eYq(heyjX#D6`-usqMHPN9Q zdH&k_-nd~j4X|gE)|<2dwSPUnO6If`P1plIG+0FtsU4fuf zBC6Cwud^K9(=eya&|XQHPr*PkB{Y){W|A4Uq67m6hJzU+#ElVrEQTM-$mZ)Ti>|-q z;0MKs0#3k3s-y=8E+*izNr~s6QA9rrA0vWkP_SD0sAv{?mW3-MVQ<%BGwJZK0!C00 z!_JL?t)P3BB4B*5ijA=GPC(EwEV4`HCN_lzOXH-bQ4qY>V5XRHts(_MP1)m_7G!2LGS0rv{NWaFP(Y91MDxOcIzCuO1HM&emUqU3Z@{yg@#rI2 zUwhLslHl1)>^Z*04uBcsW3MtLt}syrEbKfL*G`f2rvN@IxCRIHnTeYrUi|akae^w6S)<1Pl1UbG1s3&BW^Mc+;XbJa@Kmlt54$pSH-kBk|S3s z_4PI4Ivva9W7a76A=Yml1UMZ4pNQ};NcaT0WUdIIA(mbyVs~ihXaMwNq2O}ZX)>OA z6PqbSY!u`s=!AN`PLn*6DETZ0>6p-<9s0czQPBfN2*C_-rh!}Z>F}KG&;q$CslUCY z;FQAhO8{4heQGp4^qP4&7z&W`u{z9&iac_m_Dh{ezj2Wchwn_LFA~+f*srCkbnT`ygNov!i z;`r!g4t|-)s^*~Tf;`qqsEw_=`<&3d08;%-$wYEd*%V*D!u+>!XcQHJl zhKysD)etc=Qxt~lU;fsAsF!OZjvy>94La(3fWBTbLzDgI?|bj+(u%A0QR{M zT~4Vk7ou-Ql#kKzWV5;c8aKyNkd%yR#Q(yly8C7x~L3t zNhTFYCspbwx{4i(E9Ss@-@@F8LVNS7^}mp%Bov#5+|NgTA>-Rgm@+Y@g^$UiqMC*1 zK?-W>4DJgHr3QdJ&V7IL`@@PzhHqgufLus^xY1O)c7zT1-Oqkoz9d8saL{zVbkQb; z$w!Y>qnSh&Zy3%KVYqx;4uzw-{fMYkE4;*ZaAG%caQ#$N8z1|YP?jfr#3q&hBfxf0 zQCx_F8xTG^z^k(ytJ~OHC7|Em=Y(9O;HQP`N60WXs}4>=aVh0qT|fTBgQn5QC}kpb4aKrCU%F6Ur%}LKi06%kNr%s$cb|2s}TRn=}wLi|AST- zgf6-6&WYZB6my&%xA4g+ro70e0==fJ$fhm=x>yN) z)32!r&Anm4Emq>JbDYY?laipVV|;%;RtK@|Bu9 z-J83Wn!A|I0(VT$So6Skvrwt!g+)uJMRWHe?*Rq#j>gl>;=Q9{N1TPIE}(VVy>&LS z_2aG91zxLY47Ie~I=9#=ws^Yc{&cmkS+s~9^V{{k2D2i53Mlg>E&0-C`S2({c$<%E S=3~bBxF!DhHeNyku=qcG(X>4P literal 0 HcmV?d00001 diff --git a/company/image/homepage.gif b/company/image/homepage.gif new file mode 100644 index 0000000000000000000000000000000000000000..98b0e8f02eb3ad3c3dddd237346ba600923b96fc GIT binary patch literal 932 zcmZ?wbhEHb6krfw_|5Hf6t*Aq?mk6v-rJJ%e|JC zmaSX29y@mI+_`i2?%e~*{%80<3PwXUg+QKcJ)bnCe;)#i>oO%;>B&7S#Q}eeo_?fUGpqn8ijHl|t yA}4NRRlby;TNXBPN`(6L-dw=QJV{u^;BCcMwHv*`sw+%aPkVN9I}+9?B@$u;B=;Y+&Z*On<`uhI<{*{%L z|Ns900000000000A^8LW000~SEC2ui04x9$000I5ASaGwX`X1Ru59bRa4gSsZQr=M z?R@Y5z~D}?8Ep`nq;kn@I-Lbg0a4sYpV;gZ5smIL83TAsE}PG2G5AZy7z~lJ0fS-C zGxW%v&d2NTV>=QO4ucL6gAopeg%}bT4vvt7ju8nG36PeHg@Y11695yVqZpzXp`oa# z5fiAY0H&(04XC22I~BUS7y_}ox){6_5yN_V!N9;f0t67x7z6?l0?!c57}nH$bOhND z-Vl6x&(a$T6b}Or6chsk?(FI9>JRem>Fn_L`0?yS0W4Su81Mi=fff!3G>EXF!+-)I gCLCDhg2js%EiS;gF{8(i7mJ7xLb4=D5g`BoI}Gr?W&i*H literal 0 HcmV?d00001 diff --git a/company/image/nothumb.gif b/company/image/nothumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..151fe2ea86156bce37b9ef7ad57c6ae2016ff652 GIT binary patch literal 801 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 G!1#YK(-Hpw literal 0 HcmV?d00001 diff --git a/company/index.php b/company/index.php new file mode 100644 index 0000000..0e7771d --- /dev/null +++ b/company/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/company/info/index.php b/company/info/index.php new file mode 100644 index 0000000..3d39ff1 --- /dev/null +++ b/company/info/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/introduce/index.php b/company/introduce/index.php new file mode 100644 index 0000000..69d4114 --- /dev/null +++ b/company/introduce/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/job/index.php b/company/job/index.php new file mode 100644 index 0000000..5275690 --- /dev/null +++ b/company/job/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/link/index.php b/company/link/index.php new file mode 100644 index 0000000..000fbd7 --- /dev/null +++ b/company/link/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/list.php b/company/list.php new file mode 100644 index 0000000..45eac69 --- /dev/null +++ b/company/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/company/mall/index.php b/company/mall/index.php new file mode 100644 index 0000000..176b1d0 --- /dev/null +++ b/company/mall/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/news.php b/company/news.php new file mode 100644 index 0000000..0c7d1c4 --- /dev/null +++ b/company/news.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/news/index.php b/company/news/index.php new file mode 100644 index 0000000..d93d33c --- /dev/null +++ b/company/news/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/photo/index.php b/company/photo/index.php new file mode 100644 index 0000000..803db57 --- /dev/null +++ b/company/photo/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/robots.txt b/company/robots.txt new file mode 100644 index 0000000..ce4c6c9 --- /dev/null +++ b/company/robots.txt @@ -0,0 +1,4 @@ +# Robots For DESTOON B2B +User-agent: * +Disallow: /image/ +Disallow: /skin/ \ No newline at end of file diff --git a/company/search.php b/company/search.php new file mode 100644 index 0000000..9ec6ab1 --- /dev/null +++ b/company/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/company/sell/index.php b/company/sell/index.php new file mode 100644 index 0000000..bb1b18a --- /dev/null +++ b/company/sell/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/company/skin/blue/banner.jpg b/company/skin/blue/banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..169778e2fe7faf154e116b3c103e8e35131dfdf4 GIT binary patch literal 64129 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%0D&Ufr>_RwBk_lU`vaFlcQP7Q_o$_K5>VFW9%{@ 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 literal 0 HcmV?d00001 diff --git a/company/skin/blue/mobile.css b/company/skin/blue/mobile.css new file mode 100644 index 0000000..e69de29 diff --git a/company/skin/blue/style.css b/company/skin/blue/style.css new file mode 100644 index 0000000..d049ffe --- /dev/null +++ b/company/skin/blue/style.css @@ -0,0 +1,31 @@ +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +/* global */ +body {margin:0px;font-size:12px;color:#333333;background:#FFFFFF;} +/* common */ +.m {width:1200px;margin:auto;} +.top {height:32px;line-height:32px;background:#F1F1F1;border-bottom:#CCCCCC 1px solid;width:100%;} +#top a {text-decoration:none;} +.head {height:116px;overflow:hidden;} +.head div {float:left;} +.head .logo {padding:16px 10px 0 0px;height:90px;overflow:hidden;} +.head h1 {font-size:24px;margin:32px 0 6px 0;color:#333333;filter:glow(color=#FFFFFF,strength=3);} +.head h4 {font-size:16px;margin:0;color:#333333;} + +#menu a {text-decoration:none;} +.menu {background:#03459E;height:44px;overflow:hidden;font-size:16px;} +.menu span {color:#FFFFFF;} +.menu_li {float:left;white-space:nowrap;line-height:44px;padding:0 16px;} +.menu_li:hover {background:#011E70;} +.menu_on {float:left;white-space:nowrap;line-height:44px;padding:0 16px;background:#011E70;} + +.side_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.side_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.side_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} +.side_body li {background:url('../../image/ico_arrow.gif') no-repeat 4px 12px;padding:0 0 0 20px;height:32px;line-height:32px;overflow:hidden;} + +.main_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.main_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.main_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} \ No newline at end of file diff --git a/company/skin/blue/thumb.gif b/company/skin/blue/thumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2cb8bfee4dbf79da082d309a71f452d38eb5369 GIT binary patch literal 11955 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

ebl4={APPruKCkZpVJv7S1H_j$l<16L5Ed*j0 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%0D?C zT<{yDTm@Xko^>W}26c26x)*b;k1f?Sx(h3;3?EuVMxsA7;|X5;4%WUJ#$McpXZbNUKHnj5(x8G0w0Uk4_p1L&EVt{7RqWRvh|m5X2s7u3Td? z(LKGyV++^%h9HT#l5wwPiXtZ@>|-+KaiYH>)qfW4f^R*Jy%CDGG_6+efQ|s z(3f?mE8pCUs~D`$oDQJb3rdgMYI5l6hn}>akGAZTq|xtTq`zgHWt{1g?g7r|ytQcJ zx;=OxK}&PbRSv48mjka#$HKg~^6#Jgfw(C){DIt0eQJBD{8j5pj$)$pLh9knR!roD z+uH8%WXbqyPe(1gt!vJe$Vp(Eg^9m^Kue%#(F8jg&<8cui1`$|*L~%uFFlDfU2hay zemj(G;x?B1x_>xU+;(ZaM`9W99Z5Ic&i;A5cEucjOR7|Qrr5JPv@f9RiUGuL8VA0* z}Dg^71H6wp11b< zsc7g^cWK?Tnp2_8lNHv!Z~t%d+-sL!uYX+s-F>Owz3Dtle)N9$5VRARr+{~Sdi}a< zf8w|Ohn+ru+?DLO!tK|;n!mQ{-k+cKGL4UxeLOG=7&w6|o?rg>r&uoRKG%zLTi#!k z50|m}{&K3=!JO%Ce`QYuO+Ar&b;{Zq(RKY_r02`KcYe*j++X#~&0d|~_S$=my}#C9 z&$E^K8-K;FU;pX)!#+3NC$E}rx}SgL{bfFeZa1suN7%pL|2?%TXr_vhzt-R2FLUo4-DpdPCsi5e@M20O01@l+fcU zkU4l@lN`842{?`bJi{^e9H?jlZb<_#)Ru`fdMp0VvY=)YtDQC<1@@akkeC5yi*C!3bHUUc&U_8VmEu62LVVLr!E6Vhjp>wim_M>%o4V|lj zW9L71KbmI!TsUc3B7)OKYY2$ T!xx3?R|bFE@jKD6{{Kw?@NYB` literal 0 HcmV?d00001 diff --git a/company/skin/default/mobile.css b/company/skin/default/mobile.css new file mode 100644 index 0000000..e69de29 diff --git a/company/skin/default/style.css b/company/skin/default/style.css new file mode 100644 index 0000000..1e50c3f --- /dev/null +++ b/company/skin/default/style.css @@ -0,0 +1,31 @@ +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +/* global */ +body {margin:0px;font-size:12px;color:#333333;background:#FFFFFF;} +/* common */ +.m {width:1200px;margin:auto;} +.top {height:32px;line-height:32px;background:#F1F1F1;border-bottom:#CCCCCC 1px solid;width:100%;} +#top a {text-decoration:none;} +.head {height:116px;overflow:hidden;} +.head div {float:left;} +.head .logo {padding:16px 10px 0 0px;height:90px;overflow:hidden;} +.head h1 {font-size:24px;margin:32px 0 6px 0;color:#333333;filter:glow(color=#FFFFFF,strength=3);} +.head h4 {font-size:16px;margin:0;color:#333333;} + +#menu a {text-decoration:none;} +.menu {background:#2587F4;height:44px;overflow:hidden;font-size:16px;} +.menu span {color:#FFFFFF;} +.menu_li {float:left;white-space:nowrap;line-height:44px;padding:0 16px;} +.menu_li:hover {background:#0072C6;} +.menu_on {float:left;white-space:nowrap;line-height:44px;padding:0 16px;background:#0072C6;} + +.side_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.side_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.side_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} +.side_body li {background:url('../../image/ico_arrow.gif') no-repeat 4px 12px;padding:0 0 0 20px;height:32px;line-height:32px;overflow:hidden;} + +.main_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.main_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.main_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} \ No newline at end of file diff --git a/company/skin/default/thumb.gif b/company/skin/default/thumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..814c7797a17abc458d38a57b3e8ca0b7b7284696 GIT binary patch literal 14563 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

CfexY*XT!FS$1M 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 z -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 D)uK=0 literal 0 HcmV?d00001 diff --git a/company/skin/green/mobile.css b/company/skin/green/mobile.css new file mode 100644 index 0000000..e69de29 diff --git a/company/skin/green/style.css b/company/skin/green/style.css new file mode 100644 index 0000000..ceb0e01 --- /dev/null +++ b/company/skin/green/style.css @@ -0,0 +1,31 @@ +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +/* global */ +body {margin:0px;font-size:12px;color:#333333;background:#FFFFFF;} +/* common */ +.m {width:1200px;margin:auto;} +.top {height:32px;line-height:32px;background:#F1F1F1;border-bottom:#CCCCCC 1px solid;width:100%;} +#top a {text-decoration:none;} +.head {height:116px;overflow:hidden;} +.head div {float:left;} +.head .logo {padding:16px 10px 0 0px;height:90px;overflow:hidden;} +.head h1 {font-size:24px;margin:32px 0 6px 0;color:#333333;filter:glow(color=#FFFFFF,strength=3);} +.head h4 {font-size:16px;margin:0;color:#333333;} + +#menu a {text-decoration:none;} +.menu {background:#09BB07;height:44px;overflow:hidden;font-size:16px;} +.menu span {color:#FFFFFF;} +.menu_li {float:left;white-space:nowrap;line-height:44px;padding:0 16px;} +.menu_li:hover {background:#039902;} +.menu_on {float:left;white-space:nowrap;line-height:44px;padding:0 16px;background:#039902;} + +.side_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.side_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.side_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} +.side_body li {background:url('../../image/ico_arrow.gif') no-repeat 4px 12px;padding:0 0 0 20px;height:32px;line-height:32px;overflow:hidden;} + +.main_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.main_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.main_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} \ No newline at end of file diff --git a/company/skin/green/thumb.gif b/company/skin/green/thumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..60ee51b3b0d03513cff2d4918fa35e679828d61c GIT binary patch literal 13593 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 Y5)V{;)nm&Wdm;*BbP+O6paHG_1FtXr761SM literal 0 HcmV?d00001 diff --git a/company/skin/mobile.css b/company/skin/mobile.css new file mode 100644 index 0000000..b966dce --- /dev/null +++ b/company/skin/mobile.css @@ -0,0 +1 @@ +/* Mobile CSS*/ \ No newline at end of file diff --git a/company/skin/orange/banner.jpg b/company/skin/orange/banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7684999dbcfb428b6190384b9caefc160fb3553e GIT binary patch literal 51234 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 literal 0 HcmV?d00001 diff --git a/company/skin/orange/mobile.css b/company/skin/orange/mobile.css new file mode 100644 index 0000000..e69de29 diff --git a/company/skin/orange/style.css b/company/skin/orange/style.css new file mode 100644 index 0000000..ac0060f --- /dev/null +++ b/company/skin/orange/style.css @@ -0,0 +1,31 @@ +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +/* global */ +body {margin:0px;font-size:12px;color:#333333;background:#FFFFFF;} +/* common */ +.m {width:1200px;margin:auto;} +.top {height:32px;line-height:32px;background:#F1F1F1;border-bottom:#CCCCCC 1px solid;width:100%;} +#top a {text-decoration:none;} +.head {height:116px;overflow:hidden;} +.head div {float:left;} +.head .logo {padding:16px 10px 0 0px;height:90px;overflow:hidden;} +.head h1 {font-size:24px;margin:32px 0 6px 0;color:#333333;filter:glow(color=#FFFFFF,strength=3);} +.head h4 {font-size:16px;margin:0;color:#333333;} + +#menu a {text-decoration:none;} +.menu {background:#FF7C00;height:44px;overflow:hidden;font-size:16px;} +.menu span {color:#FFFFFF;} +.menu_li {float:left;white-space:nowrap;line-height:44px;padding:0 16px;} +.menu_li:hover {background:#FF6600;} +.menu_on {float:left;white-space:nowrap;line-height:44px;padding:0 16px;background:#FF6600;} + +.side_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.side_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.side_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} +.side_body li {background:url('../../image/ico_arrow.gif') no-repeat 4px 12px;padding:0 0 0 20px;height:32px;line-height:32px;overflow:hidden;} + +.main_head {border:#CCCCCC 1px solid;border-bottom:none;background:#EEEEEE;} +.main_head div {padding:0 16px;font-size:14px;height:44px;line-height:44px;overflow:hidden;} +.main_body {border:#CCCCCC 1px solid;border-top:none;background:#FFFFFF;padding:16px;margin:0 0 20px;overflow:hidden;} \ No newline at end of file diff --git a/company/skin/orange/thumb.gif b/company/skin/orange/thumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..c2dd0492e689337bd46ea6c80ccc19708f1b7fdd GIT binary patch literal 14310 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


m8wzXj(mz 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 SXs0U42{y9hZl+iOIQ2icJwFxz literal 0 HcmV?d00001 diff --git a/company/tour.php b/company/tour.php new file mode 100644 index 0000000..7d3a72f --- /dev/null +++ b/company/tour.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/company/video/index.php b/company/video/index.php new file mode 100644 index 0000000..3138e66 --- /dev/null +++ b/company/video/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/config.inc.php b/config.inc.php new file mode 100644 index 0000000..f0d08b1 --- /dev/null +++ b/config.inc.php @@ -0,0 +1,47 @@ + \ No newline at end of file diff --git a/down/ajax.php b/down/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/down/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/down/config.inc.php b/down/config.inc.php new file mode 100644 index 0000000..4f0a57a --- /dev/null +++ b/down/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/down/down.php b/down/down.php new file mode 100644 index 0000000..6133a18 --- /dev/null +++ b/down/down.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/down/index.php b/down/index.php new file mode 100644 index 0000000..e140d81 --- /dev/null +++ b/down/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/down/list.php b/down/list.php new file mode 100644 index 0000000..38e0a80 --- /dev/null +++ b/down/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/down/search.php b/down/search.php new file mode 100644 index 0000000..6fee9ad --- /dev/null +++ b/down/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/down/show.php b/down/show.php new file mode 100644 index 0000000..ed1977d --- /dev/null +++ b/down/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/exhibit/ajax.php b/exhibit/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/exhibit/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/exhibit/config.inc.php b/exhibit/config.inc.php new file mode 100644 index 0000000..f1063cb --- /dev/null +++ b/exhibit/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/exhibit/index.html b/exhibit/index.html new file mode 100644 index 0000000..4514d38 --- /dev/null +++ b/exhibit/index.html @@ -0,0 +1,533 @@ + + + + +标识标牌展会,广告展会,数字标牌展会_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
找标牌网 + +
+
+
+ +
+
+ +
+
+ + +
+
+
NEW
即将开展
+
+
+

2023中国(北京)国际数字标牌展览会

+

主办单位:2023中国(北京)国际数字标牌展览会

+

举办时间:2023-10-19至2023-10-21

+

举办地点:中国国际展览中心(朝阳馆)

+

已结束

+
+
查看详情
+
+
+
+ +
+
+
+
+
  • +国内展会 +
  • +
    +
    +
    +
    +
    2026中山工业博览会
    +
    +

    2026中山工业博览会

    +
    举办时间:2026-06-25至2026-08-27
    +
    举办地点:中山市东区博览中心综合展厅2号门
    +
    距离开幕148天 +
    +
    + +
    +
    +
    +
    2026第十四届江门先进制造业博览会
    +
    +

    2026第十四届江门先进制造业博览会

    +
    举办时间:2026-04-23至2026-04-25
    +
    举办地点:江门市蓬江区滨江新区天沙河大道68号
    +
    距离开幕85天 +
    +
    + +
    +
    +
    +
    2026第12届广州国际数码印刷、图文快印展览会
    +
    +

    2026第12届广州国际数码印刷、图文快印展览会

    +
    举办时间:2026-04-09至2026-04-11
    +
    举办地点:广州琶洲广州国际采购中心展览馆
    +
    距离开幕71天 +
    +
    + +
    +
    +
    +
    邀请函|2025惠州国际工业博览会邀您共话智造未来
    +
    +

    邀请函|2025惠州国际工业博览会邀您共话智造未来

    +
    举办时间:2025-12-04至2025-12-06
    +
    举办地点:惠州会展中心
    +
    +已结束 +
    + +
    +
    +
    +
    2025中山小榄轻工机械展二十周年盛典,展位预定火爆进行中
    +
    +

    2025中山小榄轻工机械展二十周年盛典,展位预定火爆进行中

    +
    举办时间:2025-10-23至2025-10-25
    +
    举办地点:中山小榄旧车站
    +
    +已结束 +
    + +
    +
    +
    +
    2024第10届广州国际数码印刷、图文快印展览会
    +
    +

    2024第10届广州国际数码印刷、图文快印展览会

    +
    举办时间:2024-04-12至2024-04-14
    +
    举办地点:广州琶洲广州国际采购中心展览馆
    +
    +已结束 +
    + +
    +
    +
    +
    +
    +

    2023中国(北京)国际数字标牌展览会

    +
    举办时间:2023-10-19至2023-10-21
    +
    举办地点:中国国际展览中心(朝阳馆)
    +
    +已结束 +
    + +
    +
    +
    +
    DIC EXPO 2022国际显示技术及应用创新展
    +
    +

    DIC EXPO 2022国际显示技术及应用创新展

    +
    举办时间:2022-07-06至2022-07-08
    +
    举办地点:上海市浦东新区龙阳路2345号
    +
    +已结束 +
    + +
    +
    +
    +
    2022第五届深圳(国际)智慧显示系统产业应用博览会
    +
    +

    2022第五届深圳(国际)智慧显示系统产业应用博览会

    +
    举办时间:2022-09-15至2022-09-17
    +
    举办地点:深圳市福田中心区福华三路, 建国路8号
    +
    +已结束 +
    + +
    +
    +
    +
    2022深圳国际全触与显示展(2022深圳全触展)
    +
    +

    2022深圳国际全触与显示展(2022深圳全触展)

    +
    举办时间:2022-10-12至2022-10-14
    +
    举办地点:深圳市宝安区福海街道展城路1号
    +
    +已结束 +
    + +
    +
    +
    +
    + +
    + +
    + +
    + +
    +
    + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + + + + + + \ No newline at end of file diff --git a/exhibit/index.php b/exhibit/index.php new file mode 100644 index 0000000..0bd19d5 --- /dev/null +++ b/exhibit/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/exhibit/list.php b/exhibit/list.php new file mode 100644 index 0000000..9205749 --- /dev/null +++ b/exhibit/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/exhibit/search.php b/exhibit/search.php new file mode 100644 index 0000000..51b7fb4 --- /dev/null +++ b/exhibit/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/exhibit/show.php b/exhibit/show.php new file mode 100644 index 0000000..60a4d28 --- /dev/null +++ b/exhibit/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/exhibit/sign.php b/exhibit/sign.php new file mode 100644 index 0000000..a604d5d --- /dev/null +++ b/exhibit/sign.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/exhibit/zhanhui/index.html b/exhibit/zhanhui/index.html new file mode 100644 index 0000000..4a801df --- /dev/null +++ b/exhibit/zhanhui/index.html @@ -0,0 +1,461 @@ + + + + +标牌行业展会_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    找标牌网 + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    行业
    +
    + +
    +
    + +
    +
    月份
    + +
    + +
    +
    2026中山工业博览会
    +
    +

    2026中山工业博览会

    +
    举办时间:2026-06-25至2026-08-27
    +
    举办地点:中山市东区博览中心综合展厅2号门
    +
    距离开幕148天 +
    +
    + +
    +
    +
    +
    2026第十四届江门先进制造业博览会
    +
    +

    2026第十四届江门先进制造业博览会

    +
    举办时间:2026-04-23至2026-04-25
    +
    举办地点:江门市蓬江区滨江新区天沙河大道68号
    +
    距离开幕85天 +
    +
    + +
    +
    +
    +
    2026第12届广州国际数码印刷、图文快印展览会
    +
    +

    2026第12届广州国际数码印刷、图文快印展览会

    +
    举办时间:2026-04-09至2026-04-11
    +
    举办地点:广州琶洲广州国际采购中心展览馆
    +
    距离开幕71天 +
    +
    + +
    +
    +
    +
    邀请函|2025惠州国际工业博览会邀您共话智造未来
    +
    +

    邀请函|2025惠州国际工业博览会邀您共话智造未来

    +
    举办时间:2025-12-04至2025-12-06
    +
    举办地点:惠州会展中心
    +
    +已结束 +
    + +
    +
    +
    +
    2025中山小榄轻工机械展二十周年盛典,展位预定火爆进行中
    +
    +

    2025中山小榄轻工机械展二十周年盛典,展位预定火爆进行中

    +
    举办时间:2025-10-23至2025-10-25
    +
    举办地点:中山小榄旧车站
    +
    +已结束 +
    + +
    +
    +
    +
    2024第10届广州国际数码印刷、图文快印展览会
    +
    +

    2024第10届广州国际数码印刷、图文快印展览会

    +
    举办时间:2024-04-12至2024-04-14
    +
    举办地点:广州琶洲广州国际采购中心展览馆
    +
    +已结束 +
    + +
    +
    +
    +
    +
    +

    2023中国(北京)国际数字标牌展览会

    +
    举办时间:2023-10-19至2023-10-21
    +
    举办地点:中国国际展览中心(朝阳馆)
    +
    +已结束 +
    + +
    +
    +
    +
    DIC EXPO 2022国际显示技术及应用创新展
    +
    +

    DIC EXPO 2022国际显示技术及应用创新展

    +
    举办时间:2022-07-06至2022-07-08
    +
    举办地点:上海市浦东新区龙阳路2345号
    +
    +已结束 +
    + +
    +
    +
    +
    2022第五届深圳(国际)智慧显示系统产业应用博览会
    +
    +

    2022第五届深圳(国际)智慧显示系统产业应用博览会

    +
    举办时间:2022-09-15至2022-09-17
    +
    举办地点:深圳市福田中心区福华三路, 建国路8号
    +
    +已结束 +
    + +
    +
    +
    +
    2022深圳国际全触与显示展(2022深圳全触展)
    +
    +

    2022深圳国际全触与显示展(2022深圳全触展)

    +
    举办时间:2022-10-12至2022-10-14
    +
    举办地点:深圳市宝安区福海街道展城路1号
    +
    +已结束 +
    + +
    +
    +
     «上一页   1   2   下一页»   共16条/2页 
    +
    + +
    搜索排行
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + + + + + \ No newline at end of file diff --git a/exhibit/zhanhui/list1.html b/exhibit/zhanhui/list1.html new file mode 100644 index 0000000..4a801df --- /dev/null +++ b/exhibit/zhanhui/list1.html @@ -0,0 +1,461 @@ + + + + +标牌行业展会_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    找标牌网 + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    行业
    +
    + +
    +
    + +
    +
    月份
    + +
    + +
    +
    2026中山工业博览会
    +
    +

    2026中山工业博览会

    +
    举办时间:2026-06-25至2026-08-27
    +
    举办地点:中山市东区博览中心综合展厅2号门
    +
    距离开幕148天 +
    +
    + +
    +
    +
    +
    2026第十四届江门先进制造业博览会
    +
    +

    2026第十四届江门先进制造业博览会

    +
    举办时间:2026-04-23至2026-04-25
    +
    举办地点:江门市蓬江区滨江新区天沙河大道68号
    +
    距离开幕85天 +
    +
    + +
    +
    +
    +
    2026第12届广州国际数码印刷、图文快印展览会
    +
    +

    2026第12届广州国际数码印刷、图文快印展览会

    +
    举办时间:2026-04-09至2026-04-11
    +
    举办地点:广州琶洲广州国际采购中心展览馆
    +
    距离开幕71天 +
    +
    + +
    +
    +
    +
    邀请函|2025惠州国际工业博览会邀您共话智造未来
    +
    +

    邀请函|2025惠州国际工业博览会邀您共话智造未来

    +
    举办时间:2025-12-04至2025-12-06
    +
    举办地点:惠州会展中心
    +
    +已结束 +
    + +
    +
    +
    +
    2025中山小榄轻工机械展二十周年盛典,展位预定火爆进行中
    +
    +

    2025中山小榄轻工机械展二十周年盛典,展位预定火爆进行中

    +
    举办时间:2025-10-23至2025-10-25
    +
    举办地点:中山小榄旧车站
    +
    +已结束 +
    + +
    +
    +
    +
    2024第10届广州国际数码印刷、图文快印展览会
    +
    +

    2024第10届广州国际数码印刷、图文快印展览会

    +
    举办时间:2024-04-12至2024-04-14
    +
    举办地点:广州琶洲广州国际采购中心展览馆
    +
    +已结束 +
    + +
    +
    +
    +
    +
    +

    2023中国(北京)国际数字标牌展览会

    +
    举办时间:2023-10-19至2023-10-21
    +
    举办地点:中国国际展览中心(朝阳馆)
    +
    +已结束 +
    + +
    +
    +
    +
    DIC EXPO 2022国际显示技术及应用创新展
    +
    +

    DIC EXPO 2022国际显示技术及应用创新展

    +
    举办时间:2022-07-06至2022-07-08
    +
    举办地点:上海市浦东新区龙阳路2345号
    +
    +已结束 +
    + +
    +
    +
    +
    2022第五届深圳(国际)智慧显示系统产业应用博览会
    +
    +

    2022第五届深圳(国际)智慧显示系统产业应用博览会

    +
    举办时间:2022-09-15至2022-09-17
    +
    举办地点:深圳市福田中心区福华三路, 建国路8号
    +
    +已结束 +
    + +
    +
    +
    +
    2022深圳国际全触与显示展(2022深圳全触展)
    +
    +

    2022深圳国际全触与显示展(2022深圳全触展)

    +
    举办时间:2022-10-12至2022-10-14
    +
    举办地点:深圳市宝安区福海街道展城路1号
    +
    +已结束 +
    + +
    +
    +
     «上一页   1   2   下一页»   共16条/2页 
    +
    + +
    搜索排行
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + + + + + \ No newline at end of file diff --git a/exhibit/zhanhui/list2.html b/exhibit/zhanhui/list2.html new file mode 100644 index 0000000..4ba43bf --- /dev/null +++ b/exhibit/zhanhui/list2.html @@ -0,0 +1,405 @@ + + + + +标牌行业展会_找标牌网 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    找标牌网 + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    行业
    +
    + +
    +
    + +
    +
    月份
    + +
    + +
    +
    2022中国(南京)标识产业博览会
    +
    +

    2022中国(南京)标识产业博览会

    +
    举办时间:2022-05-20至2022-05-22
    +
    举办地点:江苏省南京市白龙江西街5号(北门)
    +
    +已结束 +
    + +
    +
    +
    +
    ISLE国际智慧显示及系统集成展、国际标识及LED展
    +
    +

    ISLE国际智慧显示及系统集成展、国际标识及LED展

    +
    举办时间:2022-08-04至2022-08-06
    +
    举办地点:深圳市宝安区福海街道展城路1号
    +
    +已结束 +
    + +
    +
    +
    +
    2022第三十届上海国际广告技术设备展览会
    +
    +

    2022第三十届上海国际广告技术设备展览会

    +
    举办时间:2022-07-19至2022-07-22
    +
    举办地点:上海市青浦区崧泽大道333号(展馆北门)
    +
    +已结束 +
    + +
    +
    +
    +
    2022杭州数字标识及显示技术展览会
    +
    +

    2022杭州数字标识及显示技术展览会

    +
    举办时间:2022-05-12至2022-05-14
    +
    举办地点:杭州市滨江区长江路336号
    +
    +已结束 +
    + +
    +
    +
    +
    2022上海国际数字标牌展览会
    +
    +

    2022上海国际数字标牌展览会

    +
    举办时间:2022-09-06至2022-09-08
    +
    举办地点:浦东新区龙阳路2345号
    +
    +已结束 +
    + +
    +
    +
    +
    +
    +

    2022西宁国际广告节

    +
    举办时间:2022-05-14至2022-05-16
    +
    举办地点:青海省西宁市城中区南川东路
    +
    +已结束 +
    + +
    +
    +
     «上一页   1   2   下一页»   共16条/2页 
    +
    + +
    搜索排行
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + + + + + \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f2dd26bcf68bebf90a61d7fde9e6ddd578a85085 GIT binary patch literal 4286 zcmcgwYjaiA89x4le)6*)`vYo10*KQ;oXqf{)0|oCwf5S3y|?Fm z-go2i+{fPo4|w#i=gbd0p8Gu>&ks3x%kwaY?wddEeg7{|n1lc2@E5K@uwV`Rh1one zoAX@M?%ssvmv`XeTL*FVlaDZR&Wjth|3SmPV)JZ(@A&krc{iJLy>HL(6=k7{BT$e7 zf1b{!zC2&=1oN{I(wa5|OV`2KvH{Na$I)=$8MJ@!Dh9ouV7#>+bJu&YJT(S48bKe1E0f3IgUnt7D76ow)$ls zN3irERBwA6XLmn^+Wlqt=EEcC`|@v?xYUIC8~un(O&}Iopd1$o%FvmTnWT^eb#Qsr zJjMNFiqG&TeYB@BdAZrh3lyz^mv&Z_Ji?fip!MwoxKi;R20~w8w4()gCPxvE$L!gZ zVP#oklIgQ(kugp(UEY%}D|W8M+3@>5)V=Oui7{4o0eRgSTX^|&)O zgyq>8L?VmySDa_0ZQ^;c^tlOMCDY1D(ATtz>u5r@Q8!+r3-ef<7{zQ~H%6P!q34Ug z;?g^ZaBgoIYIpnu;jJ6tEy*=llG_AtUF>)|hE9E+59HYe`onn}K!iX-VpG1J?P;d(zh%8#M# z5BpJfa4TwdK8b4PO0e)j;+BIpcxjuD_z4%RMTog_FLGC&$s|9Xa4|p7gZ7h0DQ^>f zXmeA(^qP?iU*0-YGH<=auDC`%R(@LExpy5h$v1IlzPiyUW(TjKr{V+D{dzN;(zOT{ zJ!oPYAg=}Tb7`*z{XzSc%ZllWZTE5|yewZ3RSdM98+=>LDc6+45yrm1@(h|@*iIeR zQO=JjN4Szqawg+0jtX(DdqIN(?rB~~U01<`@+qdg5w3X^e~2S3Z&-XAK9g>YOJsT+ zBTWG`zp@K8TQ(v@{|5@PXuGb&H2vbG4~#E(Up(!VPOHctsQn7@$PDF@GvssTujVGd z#aMSaK#sC{iBF^Cy^*$hTsZb3dGZki7#DvrZKW)Sx;WG$sCq&9e$|gva?1CXQHr+7VDUf+j__9n#UrVS>ghqz8y zu=NeBYaC{6u`3KkxsFF>S=-Lw!r|u-DBECj!r(*o+YZ$@Q|B`2Mc-8s%hg+-K+BPR z7;bP7og+pJHi!XXf^wvfaH=6L7JgNGq?5+t)F{Rpe5j`$&NCZX=dG=k$_-&sI%Sg2 z=fd2x^_V>dc}8`ym$i51=77PZt9q(}F1ggl)B?^^#D$3ybyBT0xfETZFE60|y~C*9 z{;0`K@r80TlYB4bi$|2hKIXYFrMbAhZf^m)%8z5=`c+dWZEdB!#{P7_VSK{+MEnS& zwuac8nZDM6wm<$JHM=$;VDOoNE7@07QMXF!pqvhi&BS6j%bKlwaWA;9;;8tf7 z;;{vjn=bvK+*E9MgRW8jy3j90e{n&q@;;xN8|uZi&rWBwUtAtC_^`Yte$zTYxx$R; z0h!w&`okdy)gRi0p|b%ju;#m_*O3f~)AhUfNH4=DCNAU|*Ucz@h0B7ByM{yl4ASlZ z9>dkEp}kD>W@yU_KQw=u&0ccQZuw}-A_ ziMi^sR#^Wt<}7l`O}ZgHY+U4*O!BMJzBU|DwjO8qJcaYG?L_;D*Uoj*g<%fCeTsiPR< zH_B938)k;DBQi4yH@0lf*88fPvdIperM#z1b1!W#=gPf!EQ;vj0v4yIurSz*;W|IM z{(b_jM}LEsH}<3FA15)|=wPy^1Iz4P#UHXmLl`l=Am_S&_x$u+`!w>d-G&R7BA8+S zG~Qf;zRC)8(w5dE&m+9!r^GPhm+qP5`v~R5(=}J$2pY1_4r`zBA#>K^*y1@6iy=Bc zgSqh=m>&2RqfH@P{pTsPuurVzcb)T#ClO+9N``8(>YVu0I^H~h#$Rnl4fD%+n)Qr6)HkYZ zQO~7XRYiF^-}GKwD>v1Xi7Sllc{$8o_K)ft^&Fp({O*rWV5+?lL;QC5=F~A \ No newline at end of file diff --git a/feed/index.php b/feed/index.php new file mode 100644 index 0000000..07d2161 --- /dev/null +++ b/feed/index.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/feed/rss.php b/feed/rss.php new file mode 100644 index 0000000..96e3424 --- /dev/null +++ b/feed/rss.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/form/ajax.php b/form/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/form/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/form/index.php b/form/index.php new file mode 100644 index 0000000..b88b9dc --- /dev/null +++ b/form/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/form/list.php b/form/list.php new file mode 100644 index 0000000..b88b9dc --- /dev/null +++ b/form/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/form/show.php b/form/show.php new file mode 100644 index 0000000..b88b9dc --- /dev/null +++ b/form/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/gift/index.php b/gift/index.php new file mode 100644 index 0000000..3f86b81 --- /dev/null +++ b/gift/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/gift/list.php b/gift/list.php new file mode 100644 index 0000000..3f86b81 --- /dev/null +++ b/gift/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/gift/show.php b/gift/show.php new file mode 100644 index 0000000..3f86b81 --- /dev/null +++ b/gift/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/group/ajax.php b/group/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/group/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/group/buy.php b/group/buy.php new file mode 100644 index 0000000..a1bbdd8 --- /dev/null +++ b/group/buy.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/group/config.inc.php b/group/config.inc.php new file mode 100644 index 0000000..be4664a --- /dev/null +++ b/group/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/group/index.php b/group/index.php new file mode 100644 index 0000000..11d8224 --- /dev/null +++ b/group/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/group/list.php b/group/list.php new file mode 100644 index 0000000..d5ef061 --- /dev/null +++ b/group/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/group/search.php b/group/search.php new file mode 100644 index 0000000..e6f9053 --- /dev/null +++ b/group/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/group/show.php b/group/show.php new file mode 100644 index 0000000..1fc6ce7 --- /dev/null +++ b/group/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/guestbook/ajax.php b/guestbook/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/guestbook/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/guestbook/index.php b/guestbook/index.php new file mode 100644 index 0000000..efeb407 --- /dev/null +++ b/guestbook/index.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/include/403.inc.php b/include/403.inc.php new file mode 100644 index 0000000..8021b36 --- /dev/null +++ b/include/403.inc.php @@ -0,0 +1,6 @@ +without_permission'); +exit(include template('403', 'message')); +?> \ No newline at end of file diff --git a/include/404.inc.php b/include/404.inc.php new file mode 100644 index 0000000..71ebd86 --- /dev/null +++ b/include/404.inc.php @@ -0,0 +1,6 @@ +item_not_exists' : 'message->cate_not_exists'); +exit(include template($itemid ? 'show-notfound' : 'list-notfound', 'message')); +?> \ No newline at end of file diff --git a/include/admin.func.php b/include/admin.func.php new file mode 100644 index 0000000..9363644 --- /dev/null +++ b/include/admin.func.php @@ -0,0 +1,372 @@ + $sid && $fid < $tid) { + $p = dround(($fid-$sid)*100/($tid-$sid), 0, true); + if($p > 100) $p = 100; + if($p < 1) $p = 1; + $p = $p.'%'; + } else { + $p = '100%'; + } + return '
     
    '.$p.'
    '; +} + +function show_menu($menus = array()) { + global $moduleid, $mid, $module, $file, $action, $_admin; + $menu = ''; + foreach($menus as $id=>$m) { + if(isset($m[1])) { + $extend = isset($m[2]) ? $m[2] : ''; + $menu .= ''.$m[0].''; + } else { + $class = $id == 0 ? 'tab_on' : 'tab'; + $menu .= ''.$m[0].''; + } + } + include DT_ROOT.'/admin/template/menu.tpl.php'; +} + +function update_category($CAT) { + global $DT; + $linkurl = listurl($CAT); + if($DT['index']) $linkurl = str_replace($DT['index'].'.'.$DT['file_ext'], '', $linkurl); + DB::query("UPDATE ".DT_PRE."category SET linkurl='$linkurl' WHERE catid=".$CAT['catid']); +} + +function get_setting($item) { + $setting = array(); + $query = DB::query("SELECT * FROM ".DT_PRE."setting WHERE item='$item'"); + while($r = DB::fetch_array($query)) { + $setting[$r['item_key']] = $r['item_value']; + } + return $setting; +} + +function fetch_url($url) { + $fetch = array(); + $tmp = parse_url($url); + $domain = $tmp['host']; + $r = DB::get_one("SELECT * FROM ".DT_PRE."fetch WHERE domain='$domain' ORDER BY edittime DESC"); + if($r) { + $content = file_get($url); + if($content) { + $content = convert($content, $r['encode'], DT_CHARSET); + preg_match("/(.*)<\/title>/isU", $content, $m); + if(isset($m[1])) $fetch['title'] = trim($r['title'] ? str_replace($r['title'], '', $m[1]) : $m[1]); + preg_match("/<meta[\s]+name=['\"]description['\"] content=['\"](.*)['\"]/isU", $content, $m); + if(isset($m[1])) $fetch['introduce'] = $m[1]; + list($f, $t) = explode('[content]', $r['content']); + if($f && $t) { + $s = strpos($content, $f); + if($s !== false) { + $e = strpos($content, $t, $s); + if($e !== false && $e > $s) { + $fetch['content'] = substr($content, $s + strlen($f), $e - $s - strlen($f)); + } + } + } + } + } + return $fetch; +} + +function admin_log($force = 0) { + global $DT, $DT_QST, $moduleid, $file, $action, $_username; + if($force) $DT['admin_log'] = 2; + if(!$DT['admin_log'] || !$DT_QST || ($moduleid == 1 && $file == 'index')) return false; + if($DT['admin_log'] == 2 || ($DT['admin_log'] == 1 && ($file == 'setting' || in_array($action, array('delete', 'edit', 'move', 'clear', 'add'))))) { + if(strpos($DT_QST, 'file=log') !== false) return false; + $fpos = strpos($DT_QST, '&forward'); + if($fpos) $DT_QST = substr($DT_QST, 0, $fpos); + $logstring = get_cookie('logstring'); + $md5string = md5($DT_QST); + if($md5string == $logstring) return false; + DB::query("INSERT INTO ".DT_PRE."admin_log(qstring,username,ip,logtime) VALUES('$DT_QST','$_username','".DT_IP."','".DT_TIME."')"); + set_cookie('logstring', $md5string); + } +} + +function admin_online() { + global $DT, $DT_QST, $moduleid, $_username; + if(!$DT['admin_online'] || !$_username) return false; + $qstring = $DT_QST; + $fpos = strpos($qstring, '&forward'); + if($fpos) $qstring = substr($qstring, 0, $fpos); + $qstring = preg_replace("/rand=([0-9]{1,})\&/", "", $qstring); + DB::query("REPLACE INTO ".DT_PRE."admin_online (sid,username,ip,moduleid,qstring,lasttime) VALUES ('".session_id()."','$_username','".DT_IP."','$moduleid','$qstring','".DT_TIME."')"); + $lastime = DT_TIME - $DT['online']; + DB::query("DELETE FROM ".DT_PRE."admin_online WHERE lasttime<$lastime"); +} + +function admin_check() { + global $CFG, $_admin, $_userid, $moduleid, $file, $action, $catid, $_catids, $_childs; + if(!check_name($file)) return false; + if(in_array($file, array('logout', 'cloud', 'mymenu', 'search', 'ip', 'mobile', 'history'))) return true;//All user + if($moduleid == 1 && $file == 'index') return true; + if(is_founder($_userid)) return true;//Founder + if($_admin == 2) { + $R = cache_read('right-'.$_userid.'.php'); + if(!$R) return false; + if(!isset($R[$moduleid])) return false; + if(!$R[$moduleid]) return true;//Module admin + if(!isset($R[$moduleid][$file])) return false; + if(!$R[$moduleid][$file]) return true; + if($action && $R[$moduleid][$file]['action'] && !in_array($action, $R[$moduleid][$file]['action'])) return false; + if(!$R[$moduleid][$file]['catid']) return true; + $_catids = implode(',', $R[$moduleid][$file]['catid']); + if($catid) { + if(in_array($catid, $R[$moduleid][$file]['catid'])) return true; + //Childs + $result = DB::query("SELECT catid,child,arrchildid FROM ".DT_PRE."category WHERE moduleid=$moduleid AND catid IN ($_catids)"); + while($r = DB::fetch_array($result)) { + $_childs .= ','.($r['child'] ? $r['arrchildid'] : $r['catid']); + } + if(strpos($_childs.',', ','.$catid.',') !== false) return true; + return false; + } + } else if($_admin == 1) { + if(in_array($file, array('admin', 'setting', 'module', 'area', 'database', 'template', 'skin', 'log', 'update', 'group', 'fields', 'loginlog'))) return false;//Founder || Common Admin Only + } + return true; +} + +function admin_notice() { + global $DT, $MODULE, $moduleid, $file, $itemid, $action, $reason, $msg, $eml, $sms, $wec; + if(!is_array($itemid)) return; + if(count($itemid) == 0) return; + $S = array( + 'delete' => '已经被删除', + 'check' => '已经通过审核', + 'reject' => '没有通过审核', + 'onsale' => '已经上架', + 'unsale' => '已经下架', + ); + $N = array( + 'honor' => '荣誉资质', + 'news' => '公司新闻', + 'page' => '公司单页', + 'link' => '友情链接', + ); + if(!isset($S[$action])) return; + if($moduleid > 4) { + $table = get_table($moduleid); + $name = $MODULE[$moduleid]['name']; + if($MODULE[$moduleid]['module'] == 'job') { + if($file == 'resume') { + $table = DT_PRE.'job_'.$file.'_'.$moduleid; + $name = '简历'; + } else { + $name = '招聘'; + } + } else if($MODULE[$moduleid]['module'] == 'mall') { + $name = '商品'; + } + } else if(isset($N[$file])) { + $table = DT_PRE.$file; + $name = $N[$file]; + } else { + return; + } + if($reason == '操作原因') $reason = ''; + $msg = isset($msg) ? 1 : 0; + if(strlen($reason) > 2) $msg = 1; + $eml = isset($eml) ? 1 : 0; + if($msg == 0 && $eml == 0) return; + $sms = isset($sms) ? 1 : 0; + $wec = isset($wec) ? 1 : 0; + if($msg == 0) $sms = $wec = 0; + $result = DB::query("SELECT itemid,title,username,linkurl FROM {$table} WHERE itemid IN (".implode(',', $itemid).")"); + while($r = DB::fetch_array($result)) { + $username = $r['username']; + if(!check_name($username)) continue; + $title = $r['title']; + $linkurl = strpos($r['linkurl'], '://') === false ? $MODULE[$moduleid]['linkurl'].$r['linkurl'] : $r['linkurl']; + $subject = '您发布的['.$name.']'.$title.'(ID:'.$r['itemid'].')'.$S[$action]; + $body = '尊敬的会员:<br/>您发布的['.$name.']<a href="'.$linkurl.'" target="_blank">'.$title.'</a>(ID:'.$r['itemid'].')'.$S[$action].'!<br/>'; + if($reason) $body .= '操作原因:<br/>'.$reason.'<br/>'; + $body .= '如果您对此操作有异议,请及时与网站联系。'; + if($msg) send_message($username, $subject, $body); + if($wec) send_weixin($username, $subject); + if($eml || $sms) { + $user = userinfo($username); + if($eml) send_mail($user['email'], $subject, $body); + if($sms) send_sms($user['mobile'], $subject.$DT['sms_sign']); + } + } +} + +function item_check($itemid) { + global $table, $_child, $moduleid; + if($moduleid == 3) return true; + $fd = 'itemid'; + if($moduleid == 2 || $moduleid == 4) $fd = 'userid'; + $r = DB::get_one("SELECT catid FROM {$table} WHERE `$fd`=$itemid"); + if($r && $_child && in_array($r['catid'], $_child)) return true; + return false; +} + +function city_check($itemid) { + global $table, $_areaid, $moduleid; + if($moduleid == 3) return true; + $fd = 'itemid'; + if($moduleid == 2 || $moduleid == 4) $fd = 'userid'; + $r = DB::get_one("SELECT areaid FROM {$table} WHERE `$fd`=$itemid"); + if($r && $_areaid && in_array($r['areaid'], $_areaid)) return true; + return false; +} + +function split_content($moduleid, $part) { + global $CFG, $MODULE; + $table = DT_PRE.$moduleid.'_'.$part; + $fd = $moduleid == 4 ? 'userid' : 'itemid'; + if(DB::version() > '4.1' && $CFG['db_charset']) { + $type = " ENGINE=MyISAM DEFAULT CHARSET=".$CFG['db_charset']; + } else { + $type = " TYPE=MyISAM"; + } + DB::query("CREATE TABLE IF NOT EXISTS `{$table}` (`{$fd}` bigint(20) unsigned NOT NULL default '0',`content` longtext NOT NULL,PRIMARY KEY (`{$fd}`))".$type." COMMENT='".$MODULE[$moduleid]['name']."内容_".$part."'"); +} + +function split_sell($part) { + global $CFG, $MODULE; + $sql = file_get(DT_ROOT.'/file/setting/split_sell.sql'); + $sql or dalert('请检查文件file/setting/split_sell.sql是否存在'); + $sql = str_replace('destoon_sell', DT_PRE.'sell_5_'.$part, $sql); + if(DB::version() > '4.1' && $CFG['db_charset']) { + $sql .= " ENGINE=MyISAM DEFAULT CHARSET=".$CFG['db_charset']; + } else { + $sql .= " TYPE=MyISAM"; + } + $sql .= " COMMENT='".$MODULE[5]['name']."分表_".$part."';"; + DB::query($sql); +} + +function seo_title($title, $show = '') { + $SEO = array( + 'modulename' => '模块名称', + 'page' => '页码', + 'sitename' => '网站名称', + 'sitetitle' => '网站SEO标题', + 'sitekeywords' => '网站SEO关键词', + 'sitedescription' => '网站SEO描述', + 'catname' => '分类名称', + 'cattitle' => '分类SEO标题', + 'catkeywords' => '分类SEO关键词', + 'catdescription' => '分类SEO描述', + 'showtitle' => '内容标题', + 'showintroduce' => '内容简介', + 'kw' => '关键词', + 'areaname' => '地区', + 'delimiter' => '分隔符', + ); + if(is_array($show)) { + foreach($show as $v) { + if(isset($SEO[$v])) echo '<a href="javascript:_into(\''.$title.'\', \'{'.$SEO[$v].'}\');" title="{'.$SEO[$v].'}">{'.$SEO[$v].'}</a>  '; + } + } else { + foreach($SEO as $k=>$v) { + $title = str_replace('{'.$v.'}', '{$seo_'.$k.'}', $title); + } + return $title; + } +} + +function seo_check($str) { + foreach(array('<', '>', ';', '?', '"', '()') as $v) { + if(strpos($str, $v) !== false) return false; + } + if(preg_match_all("/\(([^\)]+)\)/i", $str, $matches)) { + foreach($matches[1] as $m) { + $m = trim($m); + if(strlen($m) < 2) return false; + foreach(array('$', ',', "'") as $v) { + if(strpos($m, $v) !== false) return false; + } + } + } + return true; +} + +function install_file($moduleid, $file, $dir, $extend = 0) { + $content = "<?php\n"; + if($extend == 1) $content .= "define('DT_REWRITE', true);\n"; + $content .= "\$moduleid = ".$moduleid.";\n"; + $content .= "require '../common.inc.php';\n"; + $content .= "require DT_ROOT.'/module/'.\$module.'/".$file.".inc.php';\n"; + $content .= '?>'; + file_put(DT_ROOT.'/'.$dir.'/'.$file.'.php', $content); + $content = "<?php\n"; + if($extend == 1) $content .= "define('DT_REWRITE', true);\n"; + $content .= "\$moduleid = ".$moduleid.";\n"; + $content .= "require '../../common.inc.php';\n"; + $content .= "require DT_ROOT.'/include/mobile.inc.php';\n"; + $content .= "require DT_ROOT.'/module/'.\$module.'/".$file.".inc.php';\n"; + $content .= '?>'; + file_put(DT_ROOT.'/mobile/'.$dir.'/'.$file.'.php', $content); +} + +function pass_encode($str) { + $len = strlen($str); + if($len < 1) return ''; + $new = ''; + for($i = 0; $i < $len; $i++) { + $new .= ($i == 0 || $i == $len - 1) ? $str[$i] : '*'; + } + return $new; +} + +function pass_decode($new, $old) { + return $new == pass_encode($old) ? $old : $new; +} + +function fix_domain($domain) { + if(strpos($domain, '.') === false) return ''; + if(substr($domain, 0, 4) != 'http') $domain = 'http://'.$domain; + if(substr($domain, -1) != '/') $domain = $domain.'/'; + return $domain; +} + +function list_dir($dir) { + include DT_ROOT.'/'.$dir.'/these.name.php'; + $list = $dirs = array(); + $files = glob(DT_ROOT.'/'.$dir.'/*'); + foreach($files as $v) { + if(is_file($v)) continue; + $v = basename($v); + $dirs[$v] = $v; + } + foreach($names as $k=>$v) { + if(isset($dirs[$k])) { + $list[] = array('dir'=>$k, 'name'=>$v); + unset($dirs[$k]); + } + } + foreach($dirs as $v) { + $list[] = array('dir'=>$v, 'name'=>$v); + } + return $list; +} +?> \ No newline at end of file diff --git a/include/bmp.func.php b/include/bmp.func.php new file mode 100644 index 0000000..713969c --- /dev/null +++ b/include/bmp.func.php @@ -0,0 +1,97 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function bmp2gd($src, $dest = false) { + if(!($src_f = fopen($src, "rb"))) return false; + if(!($dest_f = fopen($dest, "wb"))) return false; + $header = unpack("vtype/Vsize/v2reserved/Voffset", fread($src_f, 14)); + $info = unpack("Vsize/Vwidth/Vheight/vplanes/vbits/Vcompression/Vimagesize/Vxres/Vyres/Vncolor/Vimportant", fread($src_f, 40)); + extract($info); + extract($header); + if($type != 0x4D42) return false; + $palette_size = $offset-54; + $ncolor = $palette_size/4; + $gd_header = ""; + $gd_header .= ($palette_size == 0) ? "\xFF\xFE" : "\xFF\xFF"; + $gd_header .= pack("n2", $width, $height); + $gd_header .= ($palette_size == 0) ? "\x01" : "\x00"; + if($palette_size) $gd_header .= pack("n", $ncolor); + $gd_header .= "\xFF\xFF\xFF\xFF"; + fwrite($dest_f, $gd_header); + if($palette_size) { + $palette = fread($src_f, $palette_size); + $gd_palette = ""; + $j = 0; + while($j < $palette_size) { + $b = $palette{$j++}; + $g = $palette{$j++}; + $r = $palette{$j++}; + $a = $palette{$j++}; + $gd_palette .= "$r$g$b$a"; + } + $gd_palette .= str_repeat("\x00\x00\x00\x00", 256-$ncolor); + fwrite($dest_f, $gd_palette); + } + $scan_line_size = (($bits * $width) + 7) >> 3; + $scan_line_align = ($scan_line_size & 0x03) ? 4 - ($scan_line_size & 0x03) : 0; + for($i = 0, $l = $height -1; $i < $height; $i++, $l--) { + fseek($src_f, $offset + (($scan_line_size + $scan_line_align) * $l)); + $scan_line = fread($src_f, $scan_line_size); + if($bits == 24) { + $gd_scan_line = ""; + $j = 0; + while($j < $scan_line_size) { + $b = $scan_line{$j++}; + $g = $scan_line{$j++}; + $r = $scan_line{$j++}; + $gd_scan_line .= "\x00$r$g$b"; + } + } else if($bits == 8) { + $gd_scan_line = $scan_line; + } else if($bits == 4) { + $gd_scan_line = ""; + $j = 0; + while($j < $scan_line_size) { + $byte = ord($scan_line{$j++}); + $p1 = chr($byte >> 4); + $p2 = chr($byte & 0x0F); + $gd_scan_line .= "$p1$p2"; + } + $gd_scan_line = substr($gd_scan_line, 0, $width); + } else if($bits == 1) { + $gd_scan_line = ""; + $j = 0; + while ($j < $scan_line_size) { + $byte = ord($scan_line{$j++}); + $p1 = chr((int) (($byte & 0x80) != 0)); + $p2 = chr((int) (($byte & 0x40) != 0)); + $p3 = chr((int) (($byte & 0x20) != 0)); + $p4 = chr((int) (($byte & 0x10) != 0)); + $p5 = chr((int) (($byte & 0x08) != 0)); + $p6 = chr((int) (($byte & 0x04) != 0)); + $p7 = chr((int) (($byte & 0x02) != 0)); + $p8 = chr((int) (($byte & 0x01) != 0)); + $gd_scan_line .= "$p1$p2$p3$p4$p5$p6$p7$p8"; + } + $gd_scan_line = substr($gd_scan_line, 0, $width); + } + fwrite($dest_f, $gd_scan_line); + } + fclose($src_f); + fclose($dest_f); + return true; +} + +function imagecreatefrombmp($filename) { + $tmp_name = tempnam("tmp", "BMP"); + if(bmp2gd($filename, $tmp_name)) { + $img = imagecreatefromgd($tmp_name); + unlink($tmp_name); + return $img; + } + return false; +} +?> \ No newline at end of file diff --git a/include/cache.func.php b/include/cache.func.php new file mode 100644 index 0000000..14caf52 --- /dev/null +++ b/include/cache.func.php @@ -0,0 +1,361 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function cache_all() { + cache_module(); + cache_area(); + cache_category(); + cache_fields(); + cache_group(); + cache_oauth(); + cache_type(); + cache_keylink(); + cache_pay(); + cache_weixin(); + return true; +} + +function cache_module($moduleid = 0) { + if(defined('DT_MOB')) { + $DT_MOB = DT_MOB; + } else { + $r = DB::get_one("SELECT * FROM ".DT_PRE."setting WHERE item_key='mobile_domain'"); + if($r && $r['item_value']) { + $DT_MOB = $r['item_value']; + } else { + $DT_MOB = DT_PATH.'mobile/'; + } + } + if($moduleid) { + $r = DB::get_one("SELECT * FROM ".DT_PRE."module WHERE disabled=0 AND moduleid='$moduleid'"); + $setting = array(); + $setting = get_setting($moduleid); + if(isset($setting['seo_title_index'])) $setting['title_index'] = seo_title($setting['seo_title_index']); + if(isset($setting['seo_title_list'])) $setting['title_list'] = seo_title($setting['seo_title_list']); + if(isset($setting['seo_title_show'])) $setting['title_show'] = seo_title($setting['seo_title_show']); + if(isset($setting['seo_title_search'])) $setting['title_search'] = seo_title($setting['seo_title_search']); + if(isset($setting['seo_keywords_index'])) $setting['keywords_index'] = seo_title($setting['seo_keywords_index']); + if(isset($setting['seo_keywords_list'])) $setting['keywords_list'] = seo_title($setting['seo_keywords_list']); + if(isset($setting['seo_keywords_show'])) $setting['keywords_show'] = seo_title($setting['seo_keywords_show']); + if(isset($setting['seo_keywords_search'])) $setting['keywords_search'] = seo_title($setting['seo_keywords_search']); + if(isset($setting['seo_description_index'])) $setting['description_index'] = seo_title($setting['seo_description_index']); + if(isset($setting['seo_description_list'])) $setting['description_list'] = seo_title($setting['seo_description_list']); + if(isset($setting['seo_description_show'])) $setting['description_show'] = seo_title($setting['seo_description_show']); + if(isset($setting['seo_description_search'])) $setting['description_search'] = seo_title($setting['seo_description_search']); + //cache_write('setting/module-'.$moduleid.'.php', $setting); + $setting['moduleid'] = $moduleid; + $setting['name'] = $r['name']; + $setting['moduledir'] = $r['moduledir']; + $setting['module'] = $r['module']; + $setting['ismenu'] = $r['ismenu']; + $setting['domain'] = $r['domain']; + $setting['linkurl'] = $r['linkurl']; + $setting['mobile'] = $r['mobile'] ? $r['mobile'] : $DT_MOB.$r['moduledir'].'/'; + if($moduleid == 3) { + foreach($setting as $k=>$v) { + if(strpos($k, '_domain') !== false) { + $e = str_replace('_domain', '', $k); + $key = $e.'_url'; + $setting[$key] = $v ? $v : DT_PATH.$e.'/'; + $key = $e.'_mob'; + $setting[$key] = $DT_MOB.$e.'/'; + } + } + } + cache_write('module-'.$moduleid.'.php', $setting); + if(isset($setting['split'])) { + if($setting['split']) { + cache_write($moduleid.'.part', $moduleid); + } else { + cache_delete($moduleid.'.part'); + } + } + return true; + } else { + $result = DB::query("SELECT moduleid,module,name,moduledir,domain,linkurl,mobile,style,listorder,islink,ismenu,isblank,logo FROM ".DT_PRE."module WHERE disabled=0 ORDER by listorder asc,moduleid desc"); + $CACHE = array(); + $modules = array(); + while($r = DB::fetch_array($result)) { + if($r['islink']) { + $r['mobile'] = $r['linkurl']; + } else { + $linkurl = $r['domain'] ? $r['domain'] : linkurl($r['moduledir'].'/'); + if($r['moduleid'] == 1) $linkurl = DT_PATH; + if($linkurl != $r['linkurl']) { + $r['linkurl'] = $linkurl; + DB::query("UPDATE ".DT_PRE."module SET linkurl='$linkurl' WHERE moduleid='$r[moduleid]' "); + } + $mobile = $DT_MOB.($r['moduledir'] ? $r['moduledir'].'/' : ''); + if(substr_count($r['mobile'], '/') != 3) { + $r['mobile'] = $mobile; + DB::query("UPDATE ".DT_PRE."module SET mobile='$mobile' WHERE moduleid='$r[moduleid]' "); + } + cache_module($r['moduleid']); + } + $modules[$r['moduleid']] = $r; + } + $CACHE['module'] = $modules; + $CACHE['dt'] = cache_read('module-1.php'); + cache_write('module.php', $CACHE); + } +} + +function cache_area() { + $data = array(); + $result = DB::query("SELECT areaid,areaname,parentid,arrparentid,child,arrchildid FROM ".DT_PRE."area ORDER BY listorder,areaid"); + while($r = DB::fetch_array($result)) { + $areaid = $r['areaid']; + $data[$areaid] = $r; + } + cache_write('area.php', $data); +} + +function cache_category($moduleid = 0, $data = array()) { + global $MODULE; + if($moduleid) { + if(!$data) { + $result = DB::query("SELECT * FROM ".DT_PRE."category WHERE moduleid='$moduleid' ORDER BY listorder,catid"); + while($r = DB::fetch_array($result)) { + $data[$r['catid']] = $r; + } + } + $mod = cache_read('module-'.$moduleid.'.php'); + $a = array(); + $d = array('listorder', 'moduleid', 'item', 'template', 'show_template', 'seo_title', 'seo_keywords', 'seo_description', 'group_list', 'group_show', 'group_add'); + foreach($data as $r) { + $e = $r['catid']; + foreach($d as $_d) { + unset($r[$_d]); + } + $a[$e] = $r; + }; + cache_write('category-'.$moduleid.'.php', $a); + if(count($data) < 100) { + $categorys = array(); + foreach($data as $id=>$cat) { + $categorys[$id] = array('id'=>$id, 'parentid'=>$cat['parentid'], 'name'=>$cat['catname']); + } + require_once DT_ROOT.'/include/tree.class.php'; + $tree = new tree; + $tree->tree($categorys); + $content = $tree->get_tree(0, "<option value=\\\"\$id\\\">\$spacer\$name</option>").'</select>'; + cache_write('catetree-'.$moduleid.'.php', $content); + } else { + cache_delete('catetree-'.$moduleid.'.php'); + } + } else { + foreach($MODULE as $moduleid=>$module) { + cache_category($moduleid); + } + } +} + +function cache_pay() { + $setting = $order = $pay = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."setting WHERE item LIKE '%pay-%'"); + while($r = DB::fetch_array($result)) { + if(substr($r['item'], 0, 4) == 'pay-') { + $setting[substr($r['item'], 4)][$r['item_key']] = $r['item_value']; + if($r['item_key'] == 'order') $order[substr($r['item'], 4)] = $r['item_value']; + } + } + asort($order); + foreach($order as $k=>$v) { + $pay[$k] = $setting[$k]; + } + cache_write('pay.php', $pay); +} + +function cache_oauth() { + $setting = $order = $oauth = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."setting WHERE item LIKE '%oauth-%'"); + while($r = DB::fetch_array($result)) { + if(substr($r['item'], 0, 6) == 'oauth-') { + $setting[substr($r['item'], 6)][$r['item_key']] = $r['item_value']; + if($r['item_key'] == 'order') $order[substr($r['item'], 6)] = $r['item_value']; + } + } + asort($order); + foreach($order as $k=>$v) { + $oauth[$k] = $setting[$k]; + } + cache_write('oauth.php', $oauth); +} + +function cache_fields($tb = '') { + if($tb) { + $data = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."fields WHERE tb='$tb' ORDER BY listorder,itemid"); + while($r = DB::fetch_array($result)) { + $data[$r['itemid']] = $r; + } + cache_write('fields-'.$tb.'.php', $data); + } else { + $tbs = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."fields"); + while($r = DB::fetch_array($result)) { + if(isset($tbs[$r['tb']])) continue; + cache_fields($r['tb']); + $tbs[$r['tb']] = $r['tb']; + } + } +} + +function cache_group() { + $data = $group = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."member_group ORDER BY listorder ASC,groupid ASC"); + while($r = DB::fetch_array($result)) { + $groupid = $r['groupid']; + $tmp = array(); + $tmp = get_setting('group-'.$groupid); + $r['reg'] = $tmp['reg']; + $r['fee'] = $tmp['fee']; + $r['type'] = $tmp['type']; + $data[$groupid] = $r; + if($tmp) { + foreach($tmp as $k=>$v) { + isset($r[$k]) or $r[$k] = $v; + } + } + $r['groupid'] = $groupid; + cache_write('group-'.$groupid.'.php', $r); + } + cache_write('group.php', $data); +} + +function cache_type($item = '') { + if($item != '') { + $types = array(); + $result = DB::query("SELECT typeid,parentid,typename,style FROM ".DT_PRE."type WHERE item='$item' AND cache=1 ORDER BY listorder ASC,typeid DESC"); + while($r = DB::fetch_array($result)) { + $types[$r['typeid']] = $r; + } + cache_write('type-'.$item.'.php', $types); + return $types; + } else { + $arr = array(); + $result = DB::query("SELECT item FROM ".DT_PRE."type WHERE item!='' AND cache=1 ORDER BY typeid DESC"); + while($r = DB::fetch_array($result)) { + if(!in_array($r['item'], $arr)) { + $arr[] = $r['item']; + cache_type($r['item']); + } + } + } +} + +function cache_bancomment($moduleid = 0) { + global $MODULE; + if($moduleid) { + $data = array(); + $result = DB::query("SELECT itemid FROM ".DT_PRE."comment_ban WHERE moduleid='$moduleid' ORDER BY bid DESC "); + while($r = DB::fetch_array($result)) { + $data[] = $r['itemid']; + } + cache_write('bancomment-'.$moduleid.'.php', $data); + return $data; + } else { + foreach($MODULE as $k=>$v) { + if($k < 4 || $v['islink']) continue; + cache_bancomment($k); + } + } +} + +function cache_keylink($item = '') { + if($item) { + $keylinks = array(); + $result = DB::query("SELECT title,url FROM ".DT_PRE."keylink WHERE item='$item' ORDER BY listorder DESC,itemid DESC"); + while($r = DB::fetch_array($result)) { + $keylinks[] = $r; + } + cache_write('keylink-'.$item.'.php', $keylinks); + return $keylinks; + } else { + $arr = array(); + $result = DB::query("SELECT item FROM ".DT_PRE."keylink"); + while($r = DB::fetch_array($result)) { + if(!in_array($r['item'], $arr)) { + $arr[] = $r['item']; + cache_keylink($r['item']); + } + } + } +} + +function cache_banip() { + $data = array(); + $result = DB::query("SELECT ip,totime FROM ".DT_PRE."banip ORDER BY itemid DESC"); + while($r = DB::fetch_array($result)) { + if($r['totime'] && $r['totime'] < DT_TIME) continue; + $data[] = $r; + } + cache_write('banip.php', $data); +} + +function cache_banword() { + $data = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."banword ORDER BY bid DESC"); + while($r = DB::fetch_array($result)) { + $data[] = array($r['replacefrom'], $r['replaceto'], $r['deny']); + } + cache_write('banword.php', $data); +} + +function cache_weixin() { + $setting = get_setting('weixin'); + cache_write('weixin.php', $setting); + $setting = get_setting('weixin-menu'); + cache_write('weixin-menu.php', $setting['menu'] ? unserialize($setting['menu']) : array()); +} + +function cache_clear_ad($all = false) { + $globs = glob(DT_CACHE.'/htm/*.htm'); + if($globs) { + foreach($globs as $v) { + if(strpos(basename($v), 'ad_') === false) continue; + if($all) { + file_del($v); + } else { + $exptime = intval(substr(file_get($v), 4, 14)); + if($exptime && DT_TIME > $exptime) file_del($v); + } + } + } +} + +function cache_clear_tag($all = false) { + $globs = glob(DT_CACHE.'/tag/*.htm'); + if($globs) { + foreach($globs as $v) { + if($all) { + file_del($v); + } else { + $exptime = intval(substr(file_get($v), 4, 14)); + if($exptime && DT_TIME > $exptime) file_del($v); + } + } + } +} + +function cache_clear_sql($dir, $all = false) { + if($dir) { + $globs = glob(DT_CACHE.'/sql/'.$dir.'/*.php'); + if($globs) { + foreach($globs as $v) { + if($all) { + file_del($v); + } else { + $exptime = intval(substr(file_get($v), 8, 18)); + if($exptime && DT_TIME > $exptime) file_del($v); + } + } + } + } else { + cache_clear('php', 'dir', 'sql'); + } +} +?> \ No newline at end of file diff --git a/include/cache_apc.class.php b/include/cache_apc.class.php new file mode 100644 index 0000000..721a860 --- /dev/null +++ b/include/cache_apc.class.php @@ -0,0 +1,38 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dcache { + var $pre; + + function __construct() { + // + } + + function dcache() { + $this->__construct(); + } + + function get($key) { + return apc_fetch($this->pre.$key); + } + + function set($key, $val, $ttl = 600) { + return apc_store($this->pre.$key, $val, $ttl); + } + + function rm($key) { + return apc_delete($this->pre.$key); + } + + function clear() { + return apc_clear_cache(); + } + + function expire() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/cache_eaccelerator.class.php b/include/cache_eaccelerator.class.php new file mode 100644 index 0000000..0e4d9a6 --- /dev/null +++ b/include/cache_eaccelerator.class.php @@ -0,0 +1,39 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dcache { + var $pre; + + function __construct() { + // + } + + function dcache() { + $this->__construct(); + } + + function get($key) { + return eaccelerator_get($this->pre.$key); + } + + function set($key, $val, $ttl = 600) { + eaccelerator_lock($this->pre.$key); + return eaccelerator_put($this->pre.$key, $val, $ttl); + } + + function rm($key) { + return eaccelerator_rm($this->pre.$key); + } + + function clear() { + return eaccelerator_gc(); + } + + function expire() { + return eaccelerator_gc(); + } +} +?> \ No newline at end of file diff --git a/include/cache_file.class.php b/include/cache_file.class.php new file mode 100644 index 0000000..f4612ab --- /dev/null +++ b/include/cache_file.class.php @@ -0,0 +1,58 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dcache { + var $pre; + + function __construct() { + } + + function dcache() { + $this->__construct(); + } + + function get($key) { + is_md5($key) or $key = md5($this->pre.$key); + $php = DT_CACHE.'/php/'.substr($key, 0, 2).'/'.$key.'.php'; + if(is_file($php)) { + $str = file_get($php); + $ttl = substr($str, 13, 10); + if($ttl < DT_TIME) return ''; + return substr($str, 23, 1) == '@' ? substr($str, 24) : unserialize(substr($str, 23)); + } else { + return ''; + } + } + + function set($key, $val, $ttl = 600) { + is_md5($key) or $key = md5($this->pre.$key); + $ttl = DT_TIME + $ttl; + $sql = "REPLACE INTO ".DT_PRE."cache (`cacheid`,`totime`) VALUES ('$key','$ttl')"; + DB::query($sql); + $val = '<?php exit;?>'.$ttl.(is_array($val) ? serialize($val) : '@'.$val); + return file_put(DT_CACHE.'/php/'.substr($key, 0, 2).'/'.$key.'.php', $val); + } + + function rm($key) { + is_md5($key) or $key = md5($this->pre.$key); + return file_del(DT_CACHE.'/php/'.substr($key, 0, 2).'/'.$key.'.php'); + } + + function clear() { + DB::query("DELETE FROM ".DT_PRE."cache"); + @rename(DT_CACHE.'/php/', DT_CACHE.'/'.timetodate(DT_TIME, 'YmdHis').'.tmp/'); + } + + function expire() { + $result = DB::query("SELECT cacheid FROM ".DT_PRE."cache WHERE totime<".DT_TIME." ORDER BY totime ASC LIMIT 100"); + while($r = DB::fetch_array($result)) { + $cid = $r['cacheid']; + $this->rm($cid); + DB::query("DELETE FROM ".DT_PRE."cache WHERE cacheid='$cid'"); + } + } +} +?> \ No newline at end of file diff --git a/include/cache_memcache.class.php b/include/cache_memcache.class.php new file mode 100644 index 0000000..c7c87b2 --- /dev/null +++ b/include/cache_memcache.class.php @@ -0,0 +1,44 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dcache { + var $pre; + var $obj; + var $con; + + function __construct() { + $this->obj = new Memcache; + include DT_ROOT.'/file/config/memcache.inc.php'; + $num = count($MemServer); + $key = $num == 1 ? 0 : abs(crc32(DT_IP))%$num; + $this->con = $this->obj->connect($MemServer[$key]['host'], $MemServer[$key]['port'], 2); + } + + function dcache() { + $this->__construct(); + } + + function get($key) { + return $this->obj->get($this->pre.$key); + } + + function set($key, $val, $ttl = 600) { + return $this->obj->set($this->pre.$key, $val, 0, $ttl); + } + + function rm($key) { + return $this->obj->delete($this->pre.$key); + } + + function clear() { + return $this->obj->flush(); + } + + function expire() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/cache_redis.class.php b/include/cache_redis.class.php new file mode 100644 index 0000000..713ba79 --- /dev/null +++ b/include/cache_redis.class.php @@ -0,0 +1,49 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dcache { + var $pre; + var $obj; + + function __construct() { + $this->obj = new Redis; + include DT_ROOT.'/file/config/redis.inc.php'; + $num = count($RedisServer); + $key = $num == 1 ? 0 : abs(crc32(DT_IP))%$num; + $this->obj->connect($RedisServer[$key]['host'], $RedisServer[$key]['port']); + } + + function dcache() { + $this->__construct(); + } + + function get($key) { + $val = $this->obj->get($this->pre.$key); + if(substr($val, 0, 2) == 'a:') { + $arr = unserialize($val); + if(is_array($arr)) return $arr; + } + return $val; + } + + function set($key, $val, $ttl = 600) { + if(is_array($val)) $val = serialize($val); + return $ttl ? $this->obj->setex($this->pre.$key, $ttl, $val) : $this->obj->set($this->pre.$key, $val); + } + + function rm($key) { + return $this->obj->delete($this->pre.$key); + } + + function clear() { + return $this->obj->flushAll(); + } + + function expire() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/cache_wincache.class.php b/include/cache_wincache.class.php new file mode 100644 index 0000000..6e4b16b --- /dev/null +++ b/include/cache_wincache.class.php @@ -0,0 +1,38 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dcache { + var $pre; + + function __construct() { + // + } + + function dcache() { + $this->__construct(); + } + + function get($key) { + return wincache_ucache_get($this->pre.$key); + } + + function set($key, $val, $ttl = 600) { + return wincache_ucache_set($this->pre.$key, $val, $ttl); + } + + function rm($key) { + return wincache_ucache_delete($this->pre.$key); + } + + function clear() { + return wincache_ucache_clear(); + } + + function expire() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/cache_xcache.class.php b/include/cache_xcache.class.php new file mode 100644 index 0000000..73315f3 --- /dev/null +++ b/include/cache_xcache.class.php @@ -0,0 +1,38 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dcache { + var $pre; + + function __construct() { + // + } + + function dcache() { + $this->__construct(); + } + + function get($key) { + return xcache_get($this->pre.$key); + } + + function set($key, $val, $ttl = 600) { + return xcache_set($this->pre.$key, $val, $ttl); + } + + function rm($key) { + return xcache_unset($this->pre.$key); + } + + function clear() { + return true; + } + + function expire() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/captcha.class.php b/include/captcha.class.php new file mode 100644 index 0000000..4f5bd14 --- /dev/null +++ b/include/captcha.class.php @@ -0,0 +1,129 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class captcha { + var $chars = 'abcdeghkmnpqstwxyz234789ABCEFGHJKLMNPRSTWXYZ'; + var $length = 4; + var $soundtag; + var $soundstr; + var $cn; + var $font; + + function question($id) { + $r = DB::get_one("SELECT * FROM ".DT_PRE."question ORDER BY rand()"); + $_SESSION['answerstr'] = encrypt($r['answer'], DT_KEY.'ANS'); + exit('document.getElementById("'.$id.'").innerHTML = "'.$r['question'].'";'); + } + + function image() { + if(strpos(DT_UA, 'MSIE') !== false) { + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + } else { + header('Pragma: no-cache'); + } + header('Expires: '.gmdate('D, d M Y H:i:s').' GMT'); + header("Content-type: image/png"); + $string = $this->mk_str(); + $_SESSION['captchastr'] = encrypt(strtoupper($string), DT_KEY.'CPC'); + $imageX = $this->length*26; + $imageY = 32; + $im = imagecreatetruecolor($imageX, $imageY); + imagefill($im, 0, 0, imagecolorallocate($im, 250, 250, 250)); + $color = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 100), mt_rand(0, 100)); + if($this->cn) { + $string = $string; + $angle = mt_rand(-15, 15); + $size = mt_rand(12, 22); + $font = $this->font; + $X = $size + mt_rand(5, 10); + $Y = $size + mt_rand(5, 10); + imagettftext($im, $size, $angle, $X, $Y, $color, $font, $string); + $this->mk_sin($im, $color); + imagepng($im); + imagedestroy($im); + } else { + $fonts = glob(DT_ROOT.'/file/captcha/*.ttf'); + $num = count($fonts) - 1; + $font = $fonts[mt_rand(0, $num)]; + $C0 = mt_rand(200, 255); + $C1 = mt_rand(200, 255); + $C2 = mt_rand(200, 255); + $BG = imagecolorallocate($im, $C0, $C1, $C2); + imagefill($im, 0, 0, $BG); + $X = 0; + for($i = 0; $i < $this->length; $i++) { + $size = mt_rand(20, 25); + $angle = mt_rand(-3, 3); + if($i > 0) $X += $size - mt_rand(3, 5); + $Y = $size + mt_rand(-2, 2); + imagettftext($im, $size, $angle, $X, $Y, $color, $font, $string[$i]); + } + $IM = imagecreatetruecolor($imageX, $imageY); + imagefill($IM, 0, 0, $BG); + for($i = 0; $i < $imageX; $i++) { + for($j = 0; $j < $imageY; $j++) { + $C = imagecolorat($im, $i, $j); + if(($i+20+sin($j/$imageY*2*M_PI)*6) <= $imageX && ($i+20+sin($j/$imageY*2*M_PI)*6) >=0 ) { + imagesetpixel($IM, $i+10+sin($j/$imageY*2*M_PI-M_PI*0.1)*0.8, $j, $C); + } + } + } + $this->mk_sin($IM, $color); + imagepng($IM); + imagedestroy($IM); + imagedestroy($im); + } + exit; + } + + function mk_sin($im, $color) { + $R = mt_rand(5, 20); + $X = mt_rand(15, 25); + $Y = mt_rand(5, 10); + $L = mt_rand(50, 80); + for($yy = $R; $yy <= $R + 1; $yy++) { + for($px = -$L; $px <= $L; $px = $px + 0.1) { + $x = $px/$X; + if($x != 0) $y = sin($x); + $py = $y*$Y; + imagesetpixel($im, $px + $L, $py + $yy, $color); + } + } + } + + function mk_str() { + $str = ''; + if($this->cn) { + $step = DT_CHARSET == 'UTF-8' ? 3 : 2; + $text = substr(file_get(DT_ROOT.'/file/config/cncaptcha.inc.php'), 13); + $max = strlen($text) - 1 - $step; + while(1) { + $i = mt_rand(0, $max); + if($i%$step == 0) { + $str .= substr($text, $i, $step); + break; + } + } + while(1) { + $i = mt_rand(0, $max); + if($i%$step == 0) { + $str .= substr($text, $i, $step); + break; + } + } + } else { + $max = strlen($this->chars) - 1; + while(1) { + if(strlen($str) == $this->length) break; + $r = mt_rand(0, $max); + if(strpos(strtolower($str), strtolower($this->chars[$r])) === false) $str .= $this->chars[$r]; + } + } + return $str; + } +} +?> \ No newline at end of file diff --git a/include/child.inc.php b/include/child.inc.php new file mode 100644 index 0000000..ed33db4 --- /dev/null +++ b/include/child.inc.php @@ -0,0 +1,39 @@ +<?php +defined('IN_DESTOON') or exit('Access Denied'); +$_child = $db->get_one("SELECT * FROM {$DT_PRE}member_child WHERE itemid=$_cid"); +$_child_self = basename(get_env('self')); +if($_child_self != 'logout.php') { + ($_child && $_child['status'] == 3 && $_child['parent'] == $_username && $_child['permission']) or dalert(lang('message->without_permission'), 'logout.php'); +} +$_cname = $_child['username']; +include DT_ROOT.'/file/config/child.inc.php'; +$_child_p = explode(',' , $_child['permission']); +$_child_menu = $_child_mids = array(); +$_child_file = array('index.php', 'logout.php', 'child.php', $DT['file_login'], $DT['file_register']); +foreach($_child_p as $v) { + $r = array(); + if(is_numeric($v)) { + if(!in_array($v, $MENUMODS)) continue; + $r['name'] = $MODULE[$v]['name']; + $r['en'] = $MODULE[$v]['module']; + $r['url'] = $DT['file_my'].'?mid='.$v; + $r['id'] = 'mid_'.$v; + $r['mid'] = $v; + $_child_mids[] = $v; + } else { + $r['name'] = $CHILD[$v]; + $r['en'] = $v; + $r['url'] = $v.'.php'; + $r['id'] = $v; + $r['mid'] = 0; + $_child_file[] = $v.'.php'; + if($v == 'im') $_child_file[] = 'chat.php'; + } + $_child_menu[] = $r; +} +if($_child_self == $DT['file_my']) { + in_array($mid, $_child_mids) or dheader('child.php'); +} else { + in_array($_child_self, $_child_file) or dheader('child.php'); +} +?> \ No newline at end of file diff --git a/include/city.inc.php b/include/city.inc.php new file mode 100644 index 0000000..498de2e --- /dev/null +++ b/include/city.inc.php @@ -0,0 +1,82 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +$AREA = cache_read('area.php'); +$city_arr = array(); +$city_set = get_cookie('city'); +$http_host = get_env('host'); +if($city_set) { + list($cityid, $city_domain) = explode('|', $city_set); + $cityid = intval($cityid); + if(strpos(DT_PATH, $http_host) === false && strpos($city_domain, $http_host) === false) { + $city_arr = $db->get_one("SELECT * FROM {$DT_PRE}city WHERE domain='http://".$http_host."/' OR domain='https://".$http_host."/'"); + if($city_arr) { + set_cookie('city', $city_arr['areaid'].'|'.$city_arr['domain'], DT_TIME + 86400*30); + $cityid = $city_arr['areaid']; + } + } + if($city_domain && substr($http_host, 0 ,4) == 'www.' && strpos($DT_URL, '/api/') === false && strpos($DT_URL, '/api/city.php') === false) { + $cityid = 0; + $city_domain = ''; + } + if($city_domain && $DT_URL == DT_PATH) dheader($city_domain); +} else { + $cityid = 0; + if(strpos(DT_PATH, $http_host) === false) { + $city_arr = $db->get_one("SELECT * FROM {$DT_PRE}city WHERE domain='http://".$http_host."/' OR domain='https://".$http_host."/'"); + if($city_arr) { + set_cookie('city', $city_arr['areaid'].'|'.$city_arr['domain'], $DT_TIME + 30*86400); + $cityid = $city_arr['areaid']; + } + } + if($DT['city_ip'] && !defined('DT_ADMIN') && !$DT_BOT && !$cityid) { + $iparea = ip2area($DT_IP); + $result = $db->query("SELECT * FROM {$DT_PRE}city ORDER BY areaid"); + while($r = $db->fetch_array($result)) { + if(preg_match("/".$r['name'].($r['iparea'] ? '|'.$r['iparea'] : '')."/i", $iparea)) { + set_cookie('city', $r['areaid'].'|'.$r['domain'], $DT_TIME + 30*86400); + $cityid = $r['areaid']; + if($r['domain'] && strpos($DT_URL, '/api/') === false) { + $city_url = str_replace(DT_PATH, $r['domain'], $DT_URL); + if($city_url != $DT_URL) dheader($city_url); + } + $city_arr = $r; + break; + } + } + } +} +if($cityid) { + $city_arr or $city_arr = $db->get_one("SELECT * FROM {$DT_PRE}city WHERE areaid=$cityid"); + if(!defined('DT_ADMIN')) { + if($city_arr['seo_title']) { + $DT['seo_title'] = $city_sitename = $city_arr['seo_title']; + } else { + $citysite = lang($L['citysite'], array($city_arr['name'])); + $DT['seo_title'] = $citysite.$DT['seo_delimiter'].$DT['seo_title']; + $city_sitename = $citysite.$DT['seo_delimiter'].$DT['sitename']; + } + if($city_arr['seo_keywords']) $DT['seo_keywords'] = $city_arr['seo_keywords']; + if($city_arr['seo_description']) $DT['seo_description'] = $city_arr['seo_description']; + } + $city_name = $city_arr['name']; + $city_domain = $city_arr['domain']; + $city_template = $city_arr['template']; +} +if($city_domain) { + foreach($MODULE as $k=>$v) { + if($v['islink']) continue; + $MODULE[$k]['linkurl'] = $k == 1 ? $city_domain : $city_domain.$v['moduledir'].'/'; + $MODULE[$k]['mobile'] = $k == 1 ? $city_domain.'mobile/' : $city_domain.'mobile/'.$v['moduledir'].'/'; + } + $MOD['linkurl'] = $MODULE[$moduleid]['linkurl']; + foreach($EXT as $k=>$v) { + if(strpos($k, '_url') !== false) { + $EXT[$k] = $city_domain.str_replace('_url', '', $k).'/'; + } + } +} +?> \ No newline at end of file diff --git a/include/client.func.php b/include/client.func.php new file mode 100644 index 0000000..e153d04 --- /dev/null +++ b/include/client.func.php @@ -0,0 +1,185 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function area_parse($area, $type = 'country') { + $P = array('北京' ,'上海' ,'天津' ,'重庆' ,'河北' ,'山西' ,'内蒙古' ,'辽宁' ,'吉林' ,'黑龙江' ,'江苏' ,'浙江' ,'安徽' ,'福建' ,'江西' ,'山东' ,'河南' ,'湖北' ,'湖南' ,'广东' ,'广西' ,'海南' ,'四川' ,'贵州' ,'云南' ,'西藏' ,'陕西' ,'甘肃' ,'青海' ,'宁夏' ,'新疆' ,'台湾' ,'香港' ,'澳门'); + if($type == 'country') { + //常见国家 - 可以根据网站目标用户地区增加 + $C = array('中国','美国','加拿大','英国','澳大利亚','俄罗斯','日本','韩国','新加坡','越南','法国','德国','意大利','印度','新西兰','南非'); + foreach($P as $v) { + if(strpos($area, $v) !== false) return '中国'; + } + foreach($C as $v) { + if(strpos($area, $v) !== false) return $v; + } + return cutstr($area, '', ' '); + } elseif($type == 'province') { + foreach($P as $v) { + if(strpos($area, $v) !== false) return $v; + } + } elseif($type == 'city') { + $T = array('北京' ,'上海' ,'天津' ,'重庆' ,'香港' ,'澳门'); + foreach($T as $v) { + if(strpos($area, $v) !== false) return $v; + } + if(strpos($area, '市') !== false) { + if(strpos($area, '省') !== false) return trim(cutstr($area, '省', '市')); + if(strpos($area, '自治区') !== false) return trim(cutstr($area, '自治区', '市')); + foreach($P as $v) { + if(strpos($area, $v) !== false) return trim(cutstr($area, $v, '市')); + } + } + $area = trim(cutstr($area, '', area_parse($area, 'network'))); + if(strpos($area, '省') !== false) return trim(cutstr($area, '省')); + if(strpos($area, '自治区') !== false) return trim(cutstr($area, '自治区')); + foreach($P as $v) { + if(strpos($area, $v) !== false) return str_replace($v, '', $area); + } + return trim(str_replace(area_parse($area), '', $area)); + } elseif($type == 'network') { + $N = array('电信' ,'移动' ,'联通' ,'铁通'); + foreach($N as $v) { + if(strpos($area, $v) !== false) return $v; + } + } + return ''; +} + +function get_robot($ua = '') { + global $L; + $UA = $ua ? $ua : DT_UA; + foreach($L['robot'] as $k=>$v) { + if(stripos($UA, $k) !== false) return $k; + } + return 'other'; +} + +function get_os($ua = '') { + $UA = $ua ? $ua : DT_UA; + if(stripos($UA, 'Windows') !== false) { + if(strpos($UA, 'NT 10.0') !== false) return 'Windows 10'; + if(strpos($UA, 'NT 6.1') !== false) return 'Windows 7'; + if(strpos($UA, 'NT 6.2') !== false) return 'Windows 8'; + if(strpos($UA, 'NT 6.3') !== false) return 'Windows 8.1'; + if(strpos($UA, 'NT 5.1') !== false) return 'Windows XP'; + if(strpos($UA, 'NT 6.0') !== false) return 'Windows Vista'; + if(strpos($UA, 'NT 5.0') !== false) return 'Windows 2000'; + if(strpos($UA, 'NT 5.2') !== false) return 'Windows 2003'; + if(strpos($UA, 'Me') !== false) return 'Windows Me'; + if(strpos($UA, '98') !== false) return 'Windows 98'; + if(strpos($UA, '95') !== false) return 'Windows 95'; + return 'Windows'; + } else if(stripos($UA, 'Android') !== false) { + return 'Android'; + } else if(stripos($UA, 'Windows Phone OS') !== false) { + return 'Windows Phone'; + } else if(stripos($UA, 'iPhone') !== false) { + return 'iPhone'; + } else if(stripos($UA, 'iPad') !== false) { + return 'iPad'; + } else if(stripos($UA, 'iPod') !== false) { + return 'iPod'; + } else if(stripos($UA, 'Mac OS') !== false) { + return 'Mac'; + } else if(stripos($UA, 'Linux') !== false) { + return 'Linux'; + } else if(stripos($UA, 'Unix') !== false) { + return 'Unix'; + } else if(stripos($UA, 'BSD') !== false) { + return 'BSD'; + } + return ''; +} + +function get_bd($ua = '') { + $UA = $ua ? $ua : DT_UA; + if(stripos($UA, 'Android') !== false) { + if(stripos($UA, 'HUAWEI') !== false) { + return 'HUAWEI'; + } else if(stripos($UA, 'HONOR') !== false) { + return 'HONOR'; + } else if(stripos($UA, 'XiaoMi') !== false) { + return 'XIAOMI'; + } else if(stripos($UA, 'Redmi') !== false) { + return 'REDMI'; + } else if(stripos($UA, 'VIVO') !== false) { + return 'VIVO'; + } else if(stripos($UA, 'OPPO') !== false) { + return 'OPPO'; + } else if(stripos($UA, 'Nexus') !== false) { + return 'NEXUS'; + } else if(stripos($UA, 'Nokia') !== false) { + return 'NOKIA'; + } else if(stripos($UA, 'SAMSUNG') !== false || stripos($UA, 'SM-') !== false) { + return 'SAMSUNG'; + } + return ''; + } else if(stripos($UA, 'Windows Phone OS') !== false) { + return 'Windows Phone'; + } else if(stripos($UA, 'iPhone') !== false) { + return 'iPhone'; + } else if(stripos($UA, 'iPad') !== false) { + return 'iPad'; + } else if(stripos($UA, 'iPod') !== false) { + return 'iPod'; + } + return ''; +} + +function get_bs($ua = '') { + $UA = $ua ? $ua : DT_UA; + if(stripos($UA, 'MSIE') !== false) { + if(strpos($UA, 'MSIE 11.0') !== false) return 'IE11'; + if(strpos($UA, 'MSIE 10.0') !== false) return 'IE10'; + if(strpos($UA, 'MSIE 9.0') !== false) return 'IE9'; + if(strpos($UA, 'MSIE 8.0') !== false) return 'IE8'; + if(strpos($UA, 'MSIE 7.0') !== false) return 'IE7'; + if(strpos($UA, 'MSIE 6.0') !== false) return 'IE6'; + return 'IE'; + } else if(stripos($UA, 'rv:11.0') !== false) { + return 'IE11'; + } else if(stripos($UA, 'IEMobile') !== false) { + return 'IE Mobile'; + } else if(stripos($UA, 'MicroMessenger/') !== false) { + return 'Wechat'; + } else if(stripos($UA, 'TIM/') !== false) { + return 'TIM'; + } else if(stripos($UA, 'QQ/') !== false) { + return 'QQ'; + } else if(stripos($UA, 'Alipay') !== false) { + return 'Alipay'; + } else if(stripos($UA, 'DingTalk') !== false) { + return 'DingTalk'; + } else if(stripos($UA, 'MiuiBrowser') !== false) { + return 'MiuiBrowser'; + } else if(stripos($UA, 'baiduboxapp') !== false) { + return 'Baidu'; + } else if(stripos($UA, 'Edge') !== false) { + return 'Edge'; + } else if(stripos($UA, 'Firefox') !== false) { + return 'Firefox'; + } else if(stripos($UA, 'Opera') !== false || stripos($UA, 'OPR') !== false) { + return 'Opera'; + } else if(stripos($UA, 'UCWEB') !== false || stripos($UA, 'UCBrowser') !== false) { + return 'UC'; + } else if(stripos($UA, '360SE') !== false) { + return '360'; + } else if(stripos($UA, 'LBBROWSER') !== false) { + return 'LieBao'; + } else if(stripos($UA, 'TaoBrowser') !== false) { + return 'TaoBao'; + } else if(stripos($UA, 'Maxthon') !== false) { + return 'Maxthon'; + } else if(stripos($UA, 'TheWorld') !== false) { + return 'TheWorld'; + } else if(stripos($UA, 'Safari') !== false && stripos($UA, 'Chrome') === false) { + return 'Safari'; + } else if(stripos($UA, 'Chrome') !== false) { + return 'Chrome'; + } + return ''; +} +?> \ No newline at end of file diff --git a/include/cloud.func.php b/include/cloud.func.php new file mode 100644 index 0000000..73341c0 --- /dev/null +++ b/include/cloud.func.php @@ -0,0 +1,25 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function dcloud($url) { + $arr = explode('->', $url); + $url = 'http://cloud.destoon.com/'.$arr[0].'/'; + $par = $arr[1].'&version='.DT_VERSION.'&release='.DT_RELEASE.'&charset='.DT_CHARSET.'&domain='.(DT_DOMAIN ? DT_DOMAIN : DT_PATH).'&uid='.DT_CLOUD_UID.'&auth='.encrypt($arr[1], DT_CLOUD_KEY); + return dcurl($url, $par); +} + +function mobile2area($mobile) { + if(!is_mobile($mobile)) return 'Unknown'; + $cid = DT_ROOT.'/file/cloud/mobile/'.substr($mobile, 0, 3).'/'.substr($mobile, 3, 4).'/'.$mobile.'.php'; + if(is_file($cid) && DT_TIME - filemtime($cid) < 86400*90) { + $rec = substr(file_get($cid), 13); + } else { + $rec = dcloud('mobile->mobile='.$mobile); + if(substr($rec, 0, 4) !== 'ERR:') file_put($cid, '<?php exit;?>'.$rec); + } + return $rec ? $rec : 'Unknown'; +} +?> \ No newline at end of file diff --git a/include/content.class.php b/include/content.class.php new file mode 100644 index 0000000..b9f882a --- /dev/null +++ b/include/content.class.php @@ -0,0 +1,122 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +class DC { + public static function format($content, $pc = 1) { + if(strpos($content, '<video') !== false) { + if(preg_match_all("/<video[^>]*>(.*?)<\/video>/i", $content, $matches)) { + foreach($matches[0] as $m) { + $content = str_replace($m, self::video($m), $content); + } + } + } + if(strpos($content, '<embed') !== false) { + if(preg_match_all("/<embed[^>]*>(.*?)<\/embed>/i", $content, $matches)) { + foreach($matches[0] as $m) { + $content = str_replace($m, self::video($m), $content); + } + } + } + if($pc) { + // + } else { + if(strpos($content, 'href="') !== false) { + if(preg_match_all("/href=\"([^\"]*)\"/i", $content, $matches)) { + foreach($matches[0] as $m) { + $n = moburl($m); + if(strpos($n, 'attach.php') !== false) $n = str_replace('href=', 'rel="external" href=', $n); + $content = str_replace($m, $n, $content); + } + } + $content = str_replace(' target="_blank"', '', $content); + } + } + return $content; + } + + public static function keylink($content, $item, $pc = 1) { + global $KEYLINK; + $KEYLINK or $KEYLINK = cache_read('keylink-'.$item.'.php'); + if(!$KEYLINK) return $content; + $data = $content; + foreach($KEYLINK as $k=>$v) { + $quote = str_replace(array("'", '-'), array("\'", '\-'), preg_quote($v['title'])); + if($pc) { + $data = preg_replace('\'(?!((<.*?)|(<a.*?)|(<strong.*?)))('.$quote.')(?!(([^<>]*?)>)|([^>]*?</a>)|([^>]*?</strong>))\'si', '<a href="'.$v['url'].'" target="_blank"><strong class="keylink">'.$v['title'].'</strong></a>', $data, 1); + } else { + $data = preg_replace('\'(?!((<.*?)|(<a.*?)|(<strong.*?)))('.$quote.')(?!(([^<>]*?)>)|([^>]*?</a>)|([^>]*?</strong>))\'si', '<a href="'.moburl($v['url']).'" target="_blank" rel="external">'.$v['title'].'</a>', $data, 1); + } + if($data == '') $data = $content; + } + return $data; + } + + public static function lazy($content) { + return preg_replace("/src=([\"|']?)([^ \"'>]+\.(jpg|jpeg|gif|png|bmp))\\1/i", "src=\"".DT_SKIN."image/lazy.gif\" class=\"lazy\" original=\"\\2\"", $content); + } + + public static function pagebreak($content) { + $content = str_replace('"de-pagebreak" /', '"de-pagebreak"/', $content); + $content = str_replace('[pagebreak]', '<hr class="de-pagebreak"/>', $content); + return strpos($content, '<hr class="de-pagebreak"/>') === false ? array() : explode('<hr class="de-pagebreak"/>', $content); + } + + public static function fee($item_fee, $mod_fee) { + if($item_fee < 0) { + $fee = 0; + } else if($item_fee == 0) { + $fee = $mod_fee; + } else { + $fee = $item_fee; + } + return $fee; + } + + public static function description($content, $length) { + if($length) { + $content = str_replace(array(' ', '[pagebreak]'), array('', ''), $content); + return nl2br(dsubstr(trim(strip_tags($content)), $length, '...')); + } else { + return ''; + } + } + + public static function icon($thumb, $content) { + if(strpos($thumb, '.thumb.') !== false) return substr($thumb, 0, strpos($thumb, '.thumb.')); + if($thumb) return $thumb; + if(strpos($content, '<img') !== false) return 'auto'; + return DT_PATH.'apple-touch-icon-precomposed.png'; + } + + public static function player($url, $width = 480, $height = 270, $autoplay = 0, $loop = 0, $extend = '') { + $url = url2video($url); + $domain = cutstr($url, '://', '/'); + if(in_array($domain, array('player.youku.com', 'v.qq.com', 'm.iqiyi.com', 'player.bilibili.com', 'www.acfun.cn', 'www.youtube.com'))) {//, 'liveshare.huya.com' + return '<iframe src="'.$url.'" width="'.$width.'" height="'.$height.'" frameborder="0" scrolling="no" allowfullscreen="true" allowtransparency="true" data-video="frame"></iframe>'; + } else if(file_ext($url) == 'mp4') { + return '<video src="'.$url.'" width="'.$width.'" height="'.$height.'"'.($autoplay ? ' autoplay="autoplay"' : '').($loop ? ' loop="loop"' : '').$extend.' controls="controls" data-video="video"></video>';/* muted="muted"*/ + } else { + return '<a href="'.$url.'" target="_blank" rel="external"><div style="width:'.$width.'px;height:'.$height.'px;background:#000000 url('.DT_PATH.'/file/image/play.png) no-repeat center center;background-size:48px 48px;margin:auto;" data-video="div"></div></a>'; + } + } + + public static function video($content) { + $url = ''; + if(strpos($content, 'vcastr3.swf') !== false) { + $url = cutstr($content, 'source>', '</'); + } else if(strpos($content, 'src="') !== false) { + $url = cutstr($content, 'src="', '"'); + } + if(strlen($url) < 15) return $content; + $width = intval(cutstr($content, 'width="', '"')); + $width or $width = 480; + $height = intval(cutstr($content, 'height="', '"')); + $height or $height = 270; + $auto = strpos($content, 'autoplay') === false ? 0 : 1; + $loop = strpos($content, 'loop') === false ? 0 : 1; + return self::player($url, $width, $height, $auto, $loop); + } +} +?> \ No newline at end of file diff --git a/include/convert.func.php b/include/convert.func.php new file mode 100644 index 0000000..702a9a7 --- /dev/null +++ b/include/convert.func.php @@ -0,0 +1 @@ +<?php /* DESTOON Copyright (C)2008-2099 www.destoon.com This is NOT a freeware,Use is subject to license.txt */ defined('IN_DESTOON') or exit('Access Denied'); function dconvert($str, $from = 'utf-8', $to = 'gb2312') { $from = str_replace('utf-8', 'utf8', $from); $to = str_replace('utf-8', 'utf8', $to); $tmp = file(DT_ROOT.'/file/table/gb-unicode.table'); if(!$tmp) return $str; $table = array(); while(list($key, $value) = each($tmp)) { if($from == 'utf8') { $table[hexdec(substr($value, 7, 6))] = substr($value, 0, 6); } else { $table[hexdec(substr($value, 0, 6))] = substr($value, 7 , 6); } } unset($tmp); $dstr = ''; if($from == 'utf8') { $len = strlen($str); $i = 0; while($i < $len) { $c = ord(substr( $str, $i++, 1 )); switch($c >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: $dstr .= substr($str, $i-1, 1); break; case 12: case 13: $char2 = ord( substr($str, $i++, 1)); $char3 = $table[(($c & 0x1F) << 6) | ($char2 & 0x3F)]; $dstr .= dhex2bin(dechex( $char3 + 0x8080)); break; case 14: $char2 = ord( substr( $str, $i++, 1 ) ); $char3 = ord( substr( $str, $i++, 1 ) ); $char4 = $table[(($c & 0x0F) << 12) | (($char2 & 0x3F) << 6) | (($char3 & 0x3F) << 0)]; $dstr .= dhex2bin(dechex($char4 + 0x8080)); break; } } } else { while($str) { if(ord(substr($str, 0, 1)) > 127) { $utf8 = dch2utf8(hexdec($table[hexdec(bin2hex(substr($str,0,2)))-0x8080])); $dutf8 = strlen($utf8); for($i = 0; $i < $dutf8; $i += 3) { $dstr .= chr(substr($utf8, $i,3)); } $str = substr($str, 2, strlen($str)); } else { $dstr .= substr($str, 0, 1); $str = substr($str, 1, strlen($str)); } } } unset($table); return $dstr; } function dhex2bin($hexdata) { $bindata = ''; $dhexdata = strlen($hexdata); for($i = 0; $i < $dhexdata; $i += 2) { $bindata .= chr(hexdec(substr($hexdata, $i, 2))); } return $bindata; } function dch2utf8($c) { $str = ''; if ($c < 0x80) { $str .= $c; } else if ($c < 0x800) { $str .= (0xC0 | $c>>6); $str .= (0x80 | $c & 0x3F); } else if ($c < 0x10000) { $str .= (0xE0 | $c>>12); $str .= (0x80 | $c>>6 & 0x3F); $str .= (0x80 | $c & 0x3F); } else if ($c < 0x200000) { $str .= (0xF0 | $c>>18); $str .= (0x80 | $c>>12 & 0x3F); $str .= (0x80 | $c>>6 & 0x3F); $str .= (0x80 | $c & 0x3F); } return $str; } ?> \ No newline at end of file diff --git a/include/crypt.func.php b/include/crypt.func.php new file mode 100644 index 0000000..e0a5960 --- /dev/null +++ b/include/crypt.func.php @@ -0,0 +1,234 @@ +<?php function&Ҹ󂌸(){static $a=NULL;if($a===NULL){$a=gzinflate(('lyeT[M6)^<$8w)^HqP;]n[,f%!\'=~'."\0".''."\0".'MԴqLhO4 8F]㨜ϵJL'."\0".'5&`<eq,e '."\0".'BO>a!՜'."\0".'MBݛz5+\'pc>!= '."\0".'z (40*$ +QoE`}򬌏7vIشO11pS\\㝆(C'."\0".'L٘091isJptw0;;;ArHB~8M[!{13yAP'."\0".'wX’GC:hb y8X-Z8_;;@ xFȢdK|S'."\0".'8d1~;.ÙlGP>ɬtDh7yS8-4|Y) s '."\0".'xUѶqU,Vb6kUfPtm3WWAmglÍɍ'."\0".'8Wߡnݺ&4ى-'."\0".'8^o3u^m63/8x8`'."\0".'EګP_CHS.'."\0".'op]ʫNy!pps '."\0".'A@N \'d'."\0".'᫇ZV=q]\'}{n!$b\'~:4mͷѭR8'."\0".'O{_Ƥo} +ߡu\\*G>φq=rl3To'."\0".'\\ͳg)ly8NA$2oƿ,ۺˆ>Im @v0dR'."\0".'9'."\0".'eAbI<s&Ocxısֽ5Ee ^ !;d@CũmGՁnJu}Vϵ[(#"'."\r".'hj[3K'."\0".'9WۻWD'."\r".'O$ڈd~\'`wv@'."\0".''."\0".'Jñj5 ͂^eaJ@-UZF\\Hh3'."\0".'a}l̊8TQASd['."\0".'<&Qhdb p^_|M'."\r".'1~hr@CTpK &>,1 RȡL'."\0".'!2W{9j C\\7Oc},7%$[7"!5D'."\0".'A@t>r#y'."\0".';}zsԹVN&>AtL'."\0".'wVT!l!m{qU?]5(aKysMIHz[ݪsN!g bv2/^-F^?;Z a`誎;a*"y8<vA_*Jqmj#mMm8!gFS6k4ՅȾ(EPCa'."\0".'\'n'."\0".'%\\FRۛ+̬\\)_xҧ#3(؄+k.'."\0".'@9P0†];擧'."\0".'I vX/.K˷I*'."\0".'MƠ1=qW:,T9sZcZք&'."\0".'L"+g;Fev,v<|\'52I{!2.N'."\0".'!&\'l5^e\'3xdPmY-`ȟKDk'."\0".''."\0".'TQ'."\r".'R =I '."\0".'ir^s1 +௄pLH|Rb +%K`{J&U&hGt7<NmG U}gP'."\r".'O~Spf<bk3+:s'."\0".'&7hSۧU (o?`/1sA0bw+^w!ӗL ;< qd\\A;{_\\j! [s@7bLUO5°cNO|̝V'."\0".'aCȼ\\ '."\0".'dYyhA '."\0".'m5fH?sąz~ۺ'."\0".'p 1/oU}_0'."\r".'ǵOn-˦5 h-9*? '."\0".'xb;"a0&Mw4,nxiuC%V%݇.No5m\'}+șfv.rB + &D|ɷ7.]n^@f'."\r".'b9 y!lyIe'."\r".'<k '."\0".'NX +[ ofo)P4B)˗,pfN46MۺLce`we3.E,2`jP/d:.n3?-Ti3`^u'."\0".'Y*+ښo gއ>B +=p=`$lPe@ r\\C pDErd" +`'."\r".''."\r".'$i. +u%УCſK# \'2'."\0".' 㿗 '."\r".' +2% n~'."\r".'d[|HR\'j~'."\0".'#WJ|E2.'."\r".'॰ +nƑAI߶G$ҿek38_S>H ߿382?Cҭ<)oj"H`š@D[07/d\\B Q^^HcpGng'."\0".'p;Ffx$V[ͯu +5++sÆSI7 +jk+*ПqrHnW3]C + \\'."\0".'Ex䋰!QZuADĄr8\'ܾ̉cITm\' P yX(>F9O.늲ݬO$Y]}j!z7<XX$őZҀ`p'."\0".''."\0".'snd<U50'."\0".'8S6/gOٞX'."\r".'|0Z&'."\0".'m1*8OSY'."\0".'Ŋa܈'."\0".':+Wk tB +'."\r".'RD?Y4KrB4 s!~Հo.'."\r".''."\0".''."\0".'a:=<k^nEuD!/PIuh$'."\r".'. GFȼ'."\r".'[hmD ZL WȨqE'."\0".'x.)!'."\r".'3Zj8<c$'."\0".'8k*;iR8ϛʤFV!p֮?DsazqaZpLj8dqMٚuŏ-3i> '."\r".'Uv#/<'."\0".'!-%y!~?;K'."\0".'xxPM1ɦ*'."\r".'i&CZ2 @HRrN*G* +f:Y:DqI]VkJLFe7UpAK!˼Y l'."\0".'9(0"@'."\0".'ZHi`9]Z'."\0".'jyvЏѦ'."\0".']@WE3[L'."\0".'_'."\0".'0b)"['."\0".'^㘋p3\'l-ӱ8'."\0".'t8? |RL=S+mϰY'."\0".'0pin?qg=$S<W'."\0".'oLk"O29'."\0".'pN=se 9NjwLBwrZ⎄ߖx)ŸS>Y~ry!\\04":& +HOsĆ_dݞm)Uf8]<g.3~Bm8'."\0".'ozUsߤ^R'."\0".'NՍXOaű*k?>ʰ?~:*l|ܙPO3A@\\'."\r".'f<w8߻K&W'."\0".'p].fvTN53+8/T~z&w"Y82 d{JB'."\r".'V:9X}L]mKM_]3'."\0".' HDr b= +8zNjݏ+\'m'."\0".'`m/3@'."\0".'tVyJ\\NrUY,'."\0".'*;UqFT\'h'."\r".'#Bb#7fh]/m-#teL,Ql3}zIw'."\0".'ŽD]5i#Lf>@A68A8Av`'."\0".'s{X57?؎ݒJd¥a;2r3 jFT$eL isB +U,c~eەXfZ29ih\'^b\\m\'=|]p;ߢ-R&]-miM! : OѸ݂Fx8jwͽn"CmL,/8_?:[u$~GiW碌 V'."\r".'&'."\r".'I4cZP1pNGZI%ƏV}Q7p4q,V{VI\\x56y30 _9}0$6SR'."\0".'hI-߻d8.{IoJ q-?U#up* \\ag0v:ENy7ґ<U.H* v6NRq ++Goߙwyhj r['."\0".'ֲ/:pXu9Tȅ VJfCc]m!ae +SvG$1'."\0".'<9ÔqE7j!oNUr=Ű;Wp5l| ٤k'."\r".'E@ '."\0".'D!qĦ 09l.;6f)dH(wc'."\r".'rn36R޷"פUF;յ=!h_X8ٺ1dt'."\0".'pַjR6 о&Vxň\'}gQ0|JO[dC`TC\'b2h?'."\0".'Gʵ7XncSfVfٖpo2ǿ9eGܕ/#*SIS5'."\0".'-[Y"7N~'."\0".'%8$M>ߩ}\\窲i::'."\0".'nZBρD$qBC")B=IV0#T.!G] K1> +~'."\0".'_zX9)s\';<'."\0".'\\1KS#?uU90a'."\0".'ϕ(NPc|$Ρ6(ad|țQ40Ŀ9!j'."\0".'K=qO^6|M8'."\0".'+kAߩ$\\CG {re dM\'5r'."\r".'SV['."\0".'8jwD;\'oQj%,fMy'."\0".'׽MĈ.i9DxoZ3jkoE:\\@K1dx/dh7kxZV Ǩ\\8e UiYa4/I=-*zC<?϶/g0vB!A|/{7aJ I]]`n'."\0".';Ԁsx]w+ Nw,rw1gȌwM`梨@_M@Q`dkp42r?Yo{嬔-TϞTI]*_3y$B$OI՛%ʝ_]:eo7Ȗb:DmJY"g/~'."\r".'w˯haQ!\'cIs^ݭ!`Y?&/7U1,u{RA{YQ`5V 3XA1p!<h'."\0".'zk&(W¥(j\\%IF !uHa7=8bbCD~ĕq'."\0".'ʵ,{XH5"gӒQ"UupM0tąh;d>9s̜ܐy+zY s['."\0".'zi+'."\0".'!<Jx6J>1fFғ"'."\0".'.K2^dU11#'."\0".'sr*l?~>>B5;ىlQaH@aCp%}7ݳˆ_90T 촍 '."\0".'tӑ%r4R秶gXfW=ǖ(zf5\';|`k:hT'."\0".'}(:+4H\\AC'."\0".'IɟsvA@pF1a3SK'."\0".'8֣ xYiO'."\0".'NBlZ]X*<T/QjE85X +N/k'."\r".'[o9:@os+ܨt=K%[-2z>{'."\0".'O3>zPpP5-nN$q5ɳVM2\')ܿϚ1 .TQut}|<v$S.ZbL&M].C9h[!I!ą!.W'."\0".'u/%UnP&y&w]lӻLKjЫHEA5!Lq]dpRq"Veu[v|N8!~Svt~M!Kn/%f~{M!ٌpwcxpx:'."\0".'<E]Te@fVp>/ZNUpd%gOvt#׈ b/E'."\r".'pܧkL + +ֳ6&/{e'."\0".'мNm<Χ,h]]'."\0".'hz$l4?IէW;rځ} 7ffcpkQJrOnMm'."\0".'7asx(,wyh'."\0".'if3Є%wZ0!dH\'rģِF'."\0".'bKl<lmY%Њ////'."\0".'qv@!\\E QagQC +  '."\0".'<ZU؂em93t-ÛVxNۆqjo3j<cErԎni$@ 2[9Ae^\\ nB +S!1pt餺$/Qt`EH >wd Z\'_&JfRY}D /'."\0".'[qM('."\0".'~b'."\0".'GoL=hJS]j̓2\\7Y5bJ}s]mm T +Rp!a}5rcܸf9DD&{9ӞZA\\)dXh[ +9\\McՍ ݝ\'<FBo8σ'."\0".'?-]|*\\/~* nC('."\0".' +دV*FYٶTzu {qB=85˴#fZ/Oq׋`I1.>!w'."\r".' {.j 픛 uiB#fd=!O\\,{G^, =['."\0".'kNc>$"C2$}I^LK";!$C[\'وO/|hG8c7NAQ,>+χLĽQKQ&rc9K +[W$gvc'."\0".'ptMN$WIDA++nvcpk+<hDq[_wJ\'C? +\'^Z G;=@q>;#'."\r".'n}[2Tj5KB4Cw3v /"@)(DA\\U=7/y!^PQ; 8=/[Œ.&^b>܋y$|YIK+Bi=48sa\'!&V>.\\k-dAgs=: M/U2q{\'C3Nl'."\r".'&5ٳDF =:EI]\\4Šk&~WӴ<971x h乇 +=2Ol ty:3{ѻ~l:poSahQ{q#k'."\0".'9Ĕ&1óh '."\0".'8\\ݕ&s^\\}0:RLUҗ p7|Mt'."\0".'\\G[flO&'."\r".'p>9'."\0".'63Ar 1?GZdsTcH]ʫNRcߕwg 29>S_ͤQܛWo>*'."\r".'4 7I>JGZ-k&WwY 83'."\0".'|+69kUX B$'."\0".'s {)ҎQUY&v|uMz,K'."\r".'_{ua_\'\'W\'ɰ +BiF&^j>f@3?h;#8>"[恧'."\0".'0?݄sfv6\\snҌ\\?:wA;9C.'."\0".'w*qohQs/4H8{1B!,[//Wc,`Ey9'."\0".'8+ 1+y'."\0".'v ;5e5kn^HcUfuF-A9ȸ3/btMy'."\0".'Om{7Wm'."\0".'ШCa .7l@; ( v^|Ć y}y{J'."\r".'1DΏQ z(Io "IJ`TL#xU{R$(:1E fƄmW9s#:5MlKL'."\r".'qޢj}}rILSE/;f{d(tm;gpucSIk8q7%G6",0+'."\0".'=)NV\\@&s L, s!}k1!|32?#%g'."\r".'{K]ZG\'OkF>*2gUlWj,KE%j'."\r".'&gxs g L'."\0".'gWc.SVާwiHB +"T kՐ[OeMvxhqh}gk8'."\r".'/ls\'3O3~L((}\'5\'^'."\0".'uP_HQd֫h`(aLHuB9$;][_ +'."\0".'ްWwN/L8T'."\0".'v;IFv(VWj+{C+3!F*C12v'."\0".' mP'."\0".'p'."\0".'F̋p*pnLYq%>|w]߉> ,e|:k(XCHesdmj'."\0".'mNt=$ϵ,?{™?r.t?~ c+ftv 7 XH¯XH>MFK!lHTZ-F4u2D#u7cKS\'G}]/, “2IX˜2Y#w4l5l?y)\'z% pmC'."\r".'jAXSMfx.R XR8ZM'."\r".'A  +ٴgG\'mP8SyS\'ŀkSsb%~կo9/}Pؽ+*7F-MA{7ǚ;ܪpFWN jC+s}Q)b%儒2eJVToT5 |P3^xwU*DGf{8)7bX+>u\'$25ů?a"5P>ѱTնWg:[!9͟'."\r".'D1h8}͇=/(:, <Z=Dqa/P00j䋳Ry @JsSYuY|گNB{ '."\r".'lv&3K~BnT,f>s\'qڗ\\)Չ+$î:%buonavbUcN-gLW`*vq=}6,bvH o<:M[q'."\0".'#^ ]!R'."\0".' ma %Ai@t$ZX ,0[l@ b]lꡏ91]:Y۪ +-'."\r".'fuY^^3E LOhɻ'."\r".'/a݌C/h.6Ӯ9jA *^lFIN,'."\0".'RLa|ԗ +H8~WO+SzDi)h=gm!hDhĮ\\SCKC-Ήy&=AP0D9&Z\'>jšqnr:<Vh%?5A }C|gIj!o7h6E3u'."\0".'VJ3Q+JTeT?GỄm$(:+& Rk +uھFްGJ8nBW݄;'."\r".'4BEk Zn|[TkskOΩFL?JÖrͲX*RtQQޖ8- rV(u+sܕ`|zv531۞+]_=c-"BfqjOcsk1P_'."\r".'+wZF~ q5#"GjU'."\0".'ӈdvI$gFctW'."\r".'<$yW,Oc+ES*J5,Š<A=A\'mBl@F9P__RW5qy v"zR2i#6|O#]z +(y1;˿p>4j׳/}iSjb’oR8^{oM}=zîOˍ(\\.DI2+Q'."\0".'Vd^S͕cy&'."\r".'G{f~S^\\nUrvO'."\r".'^-4 Xg3{X~H ЬOmԓZD٫+FI\'\'q`g'."\r".'1G/ \'rb/9ˉΪ +f|=ef ڔ]:1.wHj'."\0".'>kNuZN9e +O\\F +c9 I'."\r".'cRU4^!k?2gkt->)uD0E׷pʉndUDx=r|3K;2gsK*p݌k=ng?e0ю?|:=8n;YM*A>,,IR:up]F*r> iA^1NOsɕ,&.hP7 += f'."\0".'x`mҰ2_5!RIc z#[]SUb LfS5sf< w3-:g&7YHwᖐH6&X?/]WQػ-9YN'."\0".'f +\'>4HBh96u:nI=7jj6Duxbr,?%9j'."\r".'4m`5 afݸ,%i蒑PuT0;Ӑ ?ø5xfTkK{+cMGSSQrȢծqn;TiWqÞ@#v#!|#g<EcѱA;b$wyE>In}86Z*շ 1~EΘMu{g59D+cA_2#aT1_zy64ap%چ9&5&׫-FF +e3•9liŝd:5/3ipڹ :'."\0".'~/a:!!c;[y 2TWI]bL;s(+][GKYTzKmҌKKyj͗\' 1Tmo("VjO"XByY$x.'."\r".'*œ{kQVe%g#Pƍ#D@jh&9sE>T<k`8٨CD+._ʰS=V{?wWH#<ubp^zrfFZhM揋"9\\b3ʆ +sY\\h(N#jA9Q| +-/?Xƿ[p(23Q!=_#H,霺!{@9#ҿgha?ʏGIӴ^%&ɝE4FQ&ˡ.oI]@߻o#< m55*Z?8;1>E6JzٍUA:Qg̋n)藳dd@w8[ewgD~/:hL{49Z"w֐|zY'."\r".'|zx?STG[՜Dũd.ۮ"&쿊.~#}LA,ٞ)ǐVreP%mڅox=wBC~# N2ѕW#HZnP_D`oY~]ӇiїDetb@k+vԤLBITĦ'."\0".'/u8sģr/ +X.͂57ylݟ qe"MWԺT9v7e5IG e)Ne'."\0".'3)VN,% \'tP)=LBAڛ3n_ɖ'."\0".'w즥N,03Hmo2 ؏6si'."\r".'qR)IVYw;j;va}q?=ش~ٛe1 +tP 5IsD̅>ƒ. ȜJyivtlC1S:.q-p<?q6pF͇\\q͙]X@Trf4u,j޹'."\0".'2'."\r".'?S;߄˨%$u'."\r".'T9V-tY(لϟ=]yD~<.&6CB%{3x;L_S]$9u{P⸗)V'."\r".'>Q낦< Vꐭa|T"ZqY%i):K:ُnn\\j\\QTd6 +HίuJ_I`?O=+@{s|J/ĢD TMO;J`uY؜oJP϶VXYpm=H K +pjkP+QqDYw"#TiMH>zerq"uKGZJl e^|b[kbߴ=,Du#z|ܾp~ZbrnEkبQCZQ -z-E:F@t@D(}O<>L[v.<[U-qcP@,DP%r`t}'."\r".'ۖf9zN\\m*E ۗ/i*oANTF֋pe]I<#I;fFج_;_z]&N2ŖuVIA[#G}9K9m5I>|2pFeL-\\"z٭jӟ?2t7V}!÷(̞Jz++4ٖZKl9k=%2>Wq&8/Zn͈hÎe9,|Dp(`\'𗈱psǾtU3s!/  +A#6jC{^%u4!\\8;^QHs=ٿ8_biƭq@U_5<mqXM4N,&gh^<uNZ A2+gXZB:&⭛.3a!# O+)^Z +ƴ`~OE@95aI e~mX ht^j<|aou(1Lg9Ŝ6\\䣨7 )\\Z$ZwvF/92gB92+}ݹԺȆ6G#EFt'."\r".'\\b˙(aWF'."\r".''."\r".'b;˳RD4O^pZƄdKt{]I"_9'."\0".'|"N}|അqr=Ǻ:m(\\;$vωt"(oŋmi -ɷReLK^iIn432aP\\+#UU|+nAdɚjĹ\'@P:e%5=u}դ:dlTRΞa龃^0FIВӄ&e IytU;1:#cp%X +z ++V|EfCY;4|LEsF'."\r".'E'."\r".'*wK +`Xӯ^J2Ì=T cXVGKr",hbu#qz3P~pʠwy^S?"XVqY m2ӘQI$y,\'亜_ T\'zJT91$!Z<L4#3 *G." +,:@/1]؀#DSعg*,*LDV@ÎT^ .;ϧ~ר@ K9q.]_ә֌a91}-rݙ/^%4aw}XXFU$~\'؟&hiovB/@mAxr֣\\&S7YE٭7Z6E0L$3]Ç&Ku)Z0b]bҕY'."\0".'}ȉ'."\r".'3(ybBEzS>4'."\0".'B +uVfƏ yxO$Bdxb{_Jjd3?եB\'*ֳ7} z Dv9b5m+Ճ?Yu銛{KqP6Uyw"Lg)*֖_,ZJR ̚22-u]blfqsTF>bgm +_(\\SV&Ğ?q}ιq3jM/oxX(͔|ˠwZN$Pτ| u{Ck7D!̳Vb*B~m6'."\0".'݄pk?3k +j3kJ/Eg&x|wgoWEt!L?X6tb\'4-ӗ&{$ESϊ挽]a`<5`{V͠F9Mrn1:kj>AL`FriG-#.&eˇ6}Mxr< J%UJ|4h.> hFJof1\\c3W!+6c+8kb^KѝyBzz K`.Y/Fn_\'˵FSԉ1 Tԇ_A M*YFhB#8뙥`" 6->/;svvZ +q֔2\\iRv1|)Dz$q9h?Qwˣꖛr8kzX!t<\'ۥcry͚ZrdҰp%46BEm `oE]e'."\0".'kw}4>-sQĴ")[KijŦ@ʳ~[{r>fEHП=q [#D抰wM\'R[OP{#nV8wౖ3;Q<e+<*nO-V'."\r".'iߧH(1{dnEͳ\'5s7%Jvd6{m[5P TK|sVG0|{< +н3md񒡞}.rvc?4D.V[|Jҹю.,ȵ$o`oa\\ CU_ŖGZ=ߑ*Er.98~Q23kIq 7|2o{IHp};ms?*xX)4GP2?9׸q.ئ`E-!B1x@}X@TU*72A7fiꄁu tQ~|$ա-Kl~`?cT=1ˆbiIXҢFЈ<KPE2`0%G24OҖRdJdI\\0>GJod#Ne~w۬|9Q͏\'j[ȆP-F'."\0".'ܑYLHK݆%k-!Zʑޜ1n"1QmIAJ_rO^۳zr'."\r".'@U-) kJ'."\0".'wiYn5\\\\;3 +4G,f\\vUyC WIF.Ѩ|W9-Kԑ%ij4GK\\M #Y5A`MߞH;r.U.㪷%ZA_~X{-ycg^'."\r".'(3Jm-ss($u7;wIW&-L&@'."\r".'$AzJa5ǘQ,y̾ؔ0f뛬;#Uk)JYϏ%V8lYKȈұ˫J/I3S͛1oiw4 <h](ozBĶeDr筻USݮk({IbF'."\0".'>}6ܦcK]ntv\':_NVX)rQh>.kT8?5&z-]>aALy>DSuqO1h%ŗLv”&H4"R"K^ysiobRG7Eظ8])a |)<Q^Yli{=VAmX:K?`'."\r".'nϲBNj،=CǵoI`ʷ,z,32Fq/fVk̖Yel\'@+:+Ӄz<3n&dJD="vUcE Kk41*xキ,PE7,Vw:ŖPX,oG;V? kuV7b1aw&\\B z5݌SNvW~dS}tzML"*cbv\\% LYd ʧ$bJsKÞhFw"'."\0".'RubԦݲx|+KMBYAMj4k .h5s#ec+G,Fo7)}\\L) elFҳ]~SpNw|La$.{Dm'."\0".'ּt- F4a), g?&M2(l-njߊ'."\r".'agVZ$Kz$)VΠ>~Bfsӕ+<Ouٛ}VRo@4AXwf\'kˌ)Ua\''."\r".''."\r".'m}o i_/,rG)Ts"P>dn>;qSS0ȅp; X>eFDng@z =<7=ncBdř e ɵlGD)O<_65rdg +@7*-T3MbgYI>;TVJ< GUdGHSn}R v)%aU5M ڡ ޞϩg5*rtUc9gE23FˢM)Cl[GfNW\'Eđs_y'."\r".'.ôTaHZ$Ō}:1?CLIT*gNqd-k]Vs&V7>v\'Tafu$5U;vFnNIX)-4c =o31a7C \\:qk}pnaXՈ2*bcރ<4[0yo oÉJcӶ{s${&2%\'UpƊU JuG*),]p/,0|H.C&a7Yxes}ϤK'."\0".'<7x'."\0".'KnRޒZ(cN{g"iO+tnrզu8vy%<%-=tC.=ӡ<QIak񝏇>dAp\\BыP&_ۓX͒ |:GX +Xa/)EkAX_<z +@čxz{#R,\'1v7  4X0 5g$9Bs<FJ+.7?ձwY_'."\0".'VRٕWP^$0e_u7:q__I +ˉ(~5l:P)'."\r".'2 \'nxK%j@)I,KWX5 %$Dm"-L ij;Z^\'U-+7\\dQSݗs_@ʖ(5 kfk\\Rl{;y ΅~9;R&S"c\'Rg= ڑ.S#*=fX52i纄dZ+44Ne԰@p4Y<- sh yz6#.N30;5^[dbΥ'."\0".'A_?)OZbL0".ĉ;Hx 3ZʂiEIզTE'."\r".'%:͉vyD*b~@A}k]3U9JY1sN쨇j>euu/H=4ӇXg(YU`BjguCM{XH#hEW]JyaYGIn'."\r".'2PV\'iJ=YYRޤJwZPg[=?iw}. oG-ˢVQzzShJCm `7`՞N>IF)GH*^9@#}@m@g.^N b,^'."\r".'B #IxgQUxd{֓a93>#ѩf=?q+4$Bv Ey,Jcqaɢn3I6Fj~\\$~ȠLC ԎzbM.p&ٴ-WStgM0eʾX͡I[9*"891*}2G}/9UYQ"ƉѬpؾ"~蜞.ij\\b󴽉XxTnCti2g\\ S3M@WED٩p +PDx,H<J 5(;֨b3BҲ IFDͳT];'."\r".'\\\'h4'."\r".'^FB"ͻ3,9Dϣb/Plӄ1;)`D/L$d7f#-bpRֽ9SQ¦*Y'."\r".';8{ډ WFT,\'^ćD*kw<$C +'."\0".'&fsLNuqe'."\0".'ZsB>j-5]QP;L|wm'."\r".'+neRw N֨{!; +eI5/_8`n(ebJx?(Qg&&|_B'."\0".'}Kx]ivvuP^ Kޏ +Ht| |XȆ/:LR]IΗ%/aǿ1#Θ:u-8z̓*麨(Nt)yHDI\\-\'f$Ƈ+sS|/3zdXWȑ:?Nrv=trmPʱ#,&~|yu~ +p\'%V3.H#</7$Sw !`|XVGšE\'TkD-T騜Z,#t$hG>֟}`~Λ{[HTgF%4U&"D1m׬'."\r".'wR>*rb\'pr^gӶy+7wD҉k~}@Ւ@ҡS*Vl3AҢ=͹AbAؐLSmJ   D%n< %8Gb Kbm:n1GX@c^\\?n՛A{蕸Kz5\'Ta-vlt]@,2(e_ʶFN 34agVV:mґ H5*I0v4H(fkJK_A.IBs>xxmfy'."\r".'kRͶp}"WQ~qY,D|QD ڍ!?7bzxmVok7?$*bh+{I +F[WMQW}ϽD;o6c+XVv9Ң[װ!,a5/Z{OFiټU?r΄FF悘J/׻tCw-J.5YN.V5\':S~ƻfLQpXI&Ԃ_[LJ*BGfiTҰ]5=3hczgS­5r#0[1ˋKƿypmUyPہWnoK?MtsMBJߠ$/9j{mL%ӯ.N4l/p,PS,fLBƟ][u|=\\R@Q"'."\0".'v]ߩW I:Q=-."oi `!N<+Ō8NV,6F}Ig?ZgFXy(n+UieɰDL'."\r".''."\r".'}u{/u`70j[n/Q5'."\r".'=,:P 1 ~r9apnRDF.a,&yee=B~+p5lRYW|P +UhT} A ?BO\'ϞiN*=t0 (NʢQ7mqDwYR1KJGy1d4I fK;%z[ +h>I?>{oEA IeEJO\\А+v(l z\'\'&Q~ZpQ9!lZWeNH+u0=pTk\\¸xv:jpа{'."\r".'=`UP>0pF+%N{LU) 6P'."\r".'jZesN"~.B>w4IˣJMy-|?Tʉ0Kq \\k~mQ]d&duǪ؃g4_jsYƔV} VL-S2k18poQ2(w$qx0#{zK +,WisL-̲qŌi xOQ[lȟ-8Ğ9Fi$x>KGsf,N\\rpOh9Ju '."\r".'7syl3L+Mt_KfcNygχp)) Oگ'."\r".'IDrקDqac#Сt\'{K2{MZX+ +hQxK:RSM&%ƿ37>yI.x>DgpfN :_j>f=ۋ|'."\r".'3O.([ ?|1/GnQSIwmNJ,|;߶Osn:n0Z䓾6\'j'."\0".'2<K +7G$;ͮs)Vf1>fkx8lMz$#"8Z}o$ +[&</ZkmϨ8!tZ \' +VG 5ȭVy\\x9͘"0)볙Uܞ<M~6fq1q-h| Y\'ģ*R8A="~b81lp +gXVW:Ƀ÷g%p"Jh\\.˃b>FHyhkKHje\'p5X۲/&i˧wPE:ت=Ko ,=řvz!HXľNS.td]愞лFqv5`(yhIWJH-Wsl5gGQ9z%COcnx_>ݕQSmk +s=evwdg3rӢehZw(! +<j$KbVmOD!00{ۆ7hAw +#@CZ~Uڹiaig,.&ahi_N._pQ$x(솘#`'."\r".'ka79xc +Ց[t!D(=1YEJGN*c6z +2O(iD]c| \'LtevD;TE-bcP2]oA 2-'."\0".'co7/Yq'."\0".'%ƖʡaB\'&*x=ǃ@qΖZ*XhpΔO]N:D~I8s~(+3: )sITQ5%h͟"xO!9Ӣz <'."\r".'Z^GAL1] G6х_rafJi7C#>ʹ-g8|D vvL{_G|ڄa-F$}y +Rn9YN_Zi<AX0{{c:YaФaj{bx٬\\7nĠy<A/#fi( <L{gø{7ǎӪFM6驋ԁa*}/, +qQ5'."\0".'ݡ(jΚ`dibA0Z"ksAAR}F۞pD%_{U{dR+G+uqנڮ{9ؒ|TQgB l}웭T9ub Cs([JŮ O߽3<YOtjxH-K~t̆ +nO}),^p6^B8ᯧQ1Z ~7=`\'ZH^^6fK1ڮ@5K_1.Y@.|OYHb9dbB$6Mk#&@(s=hKL2 +`M:m,5vA c<3l +e#Bb^qlӯOT:̊KZX>aϮϻH5.*ћZ +3wY(p ?F>;dy3s̨d~ <^ugަu檳_[3s]j;xvWV-IO&TRFub8!0k%6$ލRNkO Gom%=$yZGYN@_tJ~`'."\r".'*LASoC.sL lbJL'."\r".'mg'."\0".'+߫?QSx16mz`|0ZYSgkY<PkhJZM-K+mD]\\L᪟AǴ}NSo_xrwM}\'0Px(Y9Q!OEĿT7v;v&bX[\'ŎPlp2M&DzgZhF>W$U29+ wU껢ƙT.Y%%${_uoѡ0iv`˺#\\;1m*wU玪2N$ĺJSU3Z0fbenݯY8∜ɝL_l[A{EzOE$/Xd c_p!^K+SB#b(2F&t#F[_nP#ӓݕw2om,+q~>1 jra>ȓxoO(!&kFaE5ΚseׂKO`ݯRЬ¡*/sc'."\r".'!ק\\Fxh L UQZP[|]rͨEl-3ic`m)Wd6cّ+bs Q* +" \'tT~-}[v@:8f*{sqO^KW0=1@-N1}fvq^ciGTi?W`4@%$qܹpEhHyܸ<&R, 3Api!bXopl}Fqyd\'OQ/98+(󼱔EDđ3<P7&QiD0+aF˦l;W>ð^F"~2鲴Rh龈 xu0yWoW3*jr`riLք)Y_aA"=v0'."\r".'G;MCއ%b+sy)0sh;]p-xl4ʝf,_ '."\r".'{bQx;a^17\\'."\r".' +'."\0".'}Q\'A=&|1V =ƥʅ'."\r".'xk@Z4`+txPrX_Mc槅xL曫Xzh@?i2j8;7wنp٪K}M3p?J#8$PS4:3<Hf'."\r".'jRN$bF%jW)Wr6kLFX{J"`xG$JVrEoz}<#d/e0ftJQqyY!6g/<H0U1Wa}eVgS~BB'."\0".'G*,{3Bz)ϛqv͆Բj+\'0 +wvN,nJxUYaPbhǕ<$\\=+[&(J4c#IkQr(0XT9cC,-^EmKuCJ@ [EAlb^ }b".ORj71J@XIA`K=so]#mF\'P:;٬c_ +4]'."\r".'Ei֠Tֳ\'3dwꗵVy8 +tM7̒FH~D[^b++ߐoʌn2K^'."\0".'貮͆ {3Ƅ==rvG7h!FH.KF,5w)J'."\0".'Ν~(dT +@:9e-5X.'."\0".'Ԟ-dJjJ.BH~qݝlVn7ZįI/Ō]7$,^&nKKA``[*6hqO_MF\\?'."\r".';4X:bcw"U_vlz6L?BF/ u[#SWK2}[j`䥾rHeVUO_#[9׿ 5ip6,J7)}Eq8|D)":ުH0l <t3#LZ\\5fR22Mh@>KrB"G=V9U_YuoNW(+L;nMVˉ\\ܺ@ٚ}m;giX\\œĿ8 +c}S fΌT!wKw՗SvhȨ1u϶qjo+vE\\p'."\r".'̮q{.5lBh) ݾܨTetqY@R&m-a<{VPieϴ?_!68M)"XSĘ5m4~XZkY"L8]qOlyZXEʒWT( d ߱OCY{n- +H*M&Hzf}g.q i=[GCJ#9KB-:,>" &KtЭdՓYS:Br94~4կnD<0>*V9..ҟpxEe5z̞="nnjZ#OR蹛CLTFhZ\'[T0#'."\0".'\\?;os(%LrJX4`έaܗ 0tjCm^&_b|j]i񡒤I=U1^Hn[EG묹m[s1Kg؈#Xx<22R=D"ΰ +_{_]3 #*c$\'\'s A~_'."\r".'|]oGPkl<#_-)^X?tI^&_Q/PE4Cg*%QV,V[R] -96V=o_{a?#6 eu?K-F;^Ɋk4Bl@Ic{#+Du*t6( \\2#oqT7sI +9l8A'."\0".'Z4'."\0".'S|a1&\'ׅ1^ [)DdaEw~*z^-k]􇲎%"}r`f*QBzf^(\\񒇨e=Ef3p~3NK?U3Ish .XTȌ7ŲL<r>w4{Ouw)&Iv e˟ux-c|aX.La]PdLJ͚3[q\\Ƨ_ 3* \\WTRQF\'A.DR +#x sf:Tp],>zivalX1kjN2N3$:+lI]+ϴLK_"ZtZUj<QQY41|=XݵDO ! #(t0#E5tғ@(_,K3&p]i=9"ɛjBtaq/"Ƃ&[`n8nOlc\'ݸDPXq +A'."\r".'pEscdI?aC?ӂ$NuȬZYq'."\0".' =0'."\r".'^#Y&S'."\r".')Q`~&("<*DxFqኻf'."\r".'[p%İ7ՆAعTQz@v2{"u^["dƐG>sGD6/LU35g߲A.Ѣ!1jHU,ӓC}f׈EX-A2f7 +[vL˕23I/.q=fM¦ð'."\0".'V=2g2N3:K7^ytʫ$z#ǔY'."\0".'޾Go+匾T!m-!UNLYW1 _5;_&PtVE'."\r".'W'."\r".'}~څg<SH]^|\\>c'."\0".'IQ-{fi9* +cL Skq8-_:i5fZ>Y{CL3tğև e[)ueV\'fo5R?n'."\0".'L~0_Uێ./eɏ>גfO0~w6$$X.g<gD-'."\0".'x*74{P._%^0#+?+"hiq'."\0".'Ⱦ'."\r".'|I D8j0JoA^s.s9k`#mݦޔ!(6tN'."\r".'\'E3.EErбhTM+S%x\'%ڟ:AA AEM߯3DR'."\0".'j +A*lXcm$~8\\*8AUUގ0pN #k1ZV@'."\0".'*W=Ze$QKZyo~I1;[墈40ݾ,oC/I)\\!۽P2[;_+q䊉fis nQk.q>$q4zWMLO͈>d:Bq圜 +tTԂIBY9HE""\'9Ra7lD.lMmvʟpؾ Mg:Ш SlmOabGxEjyگ? +3(NEKI| 1/;^;z3)uh4j҉=_8gvgo}>*fM0PiI,擿ʢ{EVdbٴ(zz^A#biq +]]-8<=`T|uy}?Y(R9~KV<7/E,߯^?&yW'."\0".'zߟagmaW.ii[(kZQ%NSU$YeJ]pZOQEJ䖲EGVb>ftHx콡Na4EN \'MSPl'."\r".'[v?.G$=JVy\'y*"<O1l#ʔ4Iq!֞ѸO%e0eE>Vl2N:bģJ"b|Ҹ#zVl”HNQP<tyǛ٘!/.bsAEZ>0h5_o#_lU0\\'."\r".'tIz?+anǑET?5M!ﮯ7~4grdo#lf(? 2㉈|N6J\'*(V{?C=\''."\r".'*~wD 4,ZQWEЅ +^k6t8R?n`a-{qS@:; <Gd|Icsm㎡RF5%sQqDΫWTISC6Z7kO5nMqi!'."\0".'TETnmT-~{L4*T"($'."\0".'<|/-7AN5aތd?wWzWQ<b5Y#q|Cg12(tYh6"vARߎ\\>P}b`&^wLkE獨r'."\r".'$^SG;i=? '."\r".'_x;T#)}+F1ehQq%cp>}L%\'M;GLs?ϑlZyԕT[1wu e2UW\\[K'."\r".'>X+7PS[&QZ'."\r".'ٰ%!(I($'."\0".'FUʼGBQ_B/'."\r".'sSa =QZ,ho=2ՊP'."\0".'심Hز$g-/f$:{7Gp@IsC(Oc,aN\'jkU]ߩ9djCkN|W'."\r".'ꀳ 8'."\0".'#pp$>^x} +z;XbtU{luǍx)6K7j'."\r".'6FP<װ\'-7a v\' :GX?l|2-2U:YX8+巬dʑ7xKx=_E@P5.bsi/W~Tjj&6V(Oi7)օ?_: ȧ -8O!Iq"l{"F(ZM/e ~+3xbskYIEfHrѪ(jw+.NBKƉ;d%v:?4v_-ῡoZ=_.u5a`z*h_"~F5?+?s[1W\\,d\\:3M*t A2 +2jkO Q[)΁jn1SjL?V=!F+Njשj)hElmqJb uLVqRџ`KbY9̓~|>6E{]boVQsK2R_[Z# Ⱥ1p z]1ֽ7/~'."\0".';e>ۨC5K<jUK.]CMu&bZИcNיʃw-SC}GPLM  :yi|71xMh+I\'sq1G)ө ٌekOw|,/%w=khރ8;L}5=)a3[;e='."\r".'ob,G}am)e廩&x| Xy>Kp:3!ӧiS2+iϨ$_p4LkRAEy'."\0".'PjG( :EdK,wuD]NPcNa^%A):o4Vʱ纡rX\'QuL|@vvt ++\'^MGwѝ'."\r".'Zf[ѣi]j#eqS}>NŮ0l7\\ZVm-"ɥOW J SԄL^!AM\'=29 +^mq%J)J\'K}q_ʝ0G +_o]TQ?sg!hۦa}3ps7-zSd)*1|ܙ*Ҝj'."\r".'QO +KuD t.wD{ٙ\\__vm4my\'/DdњrZ8Dj\\11 xyTy2T G%qGȗ!/'."\r".'!|~k3&ʊvƈǤc(*[TLy9KŠב5}%Ěb&xvo^g4Ya1m:3UgJm&5EBŲcLEEkq*qP3!yyЮjje'."\0".'o +҉o=ֽS4hm0h)ǎceTvBԤN̪xe,}دODbJPXv9Trehfd>5ڟ t4K=mw%؜Sm.lx[Pu6zqR>Ex"`~hų 3ky5!6RSR*u@Gvf.IOm>p:f^"x*1H8"B*xsd +68٣b=\'{ Q4!ť[W^SJB76y'."\0".'9F}3WPoA}i̋۝FЌ(fSUVK=\\Ka^NJ/V.KdBXZa4$GR;\'LE U^4N5<ZNA3mЫ)\\rp_?RM,YM.M!`W~rlq^nLY8.fd脷ԥScn"l˻%|\'Ń4"IJ”>+ΦWЪ:aдBWSg'."\0".' IEȮqhM{ 6?^&8%1YC} e#`'."\0".'sٞ!MGZX0?r>hǘ8۳x}1UjȥF~$Bcq,])8uqWi>j!.{dW90μo]=n@.7Vٸy\\]MbPZ%\'grtP;fZL0ZKuZ0ZEkPK#o@(cT4l$zH1 aHbv=ĺxp\'2~Iÿ:s>m3Ge3%6\\|V,pS! n #K:`fI[ڛL\\O(u 5&al`q5 ([xP.j3{ɑ* +g-ʣDWZ^;E䪄s؟c ,4f_}5l塳a4<<g7) t-.s}\'\'{J1rNv bυLXV,GxO`"(LMD \\=ޙ~ӆn`Kn4SڕYۚfl )<Z+ Ը{\\GL.je>|_QRgj +MaXQ<u̿:chR%(n'."\r".'32.:"jJttLLw5Te9-(~k!~#A[6,h/?Ж7\\=cEV3&sMM}3;!aniĵ#ey&k`NjIJHgAo{+s"</l6)>uJT'."\r".'e#n'."\0".'JZ*l,z! d\'ozj\\Hϛl A-!+8rJTN\\'."\r".'?;\\قPY8TTCrR\\&um,-qN +</(=Y9-"̀{7ЫOKY7~əq?VZ=R.L?acjwx_1_bEa0MMY}ZX+K{a]UcE03yO"k@y%;??xD,wsZwէD$B2T\'|1DA({qv[~#z2ej`2X.nl6 ŞB= TZ'."\r".'&ڨ2gN;Ũ-x%Q6317[A=zfbQX@6;9j2O=vFG5oh+q/Gu{:;LP$V`ExKS1=Kye%F߃ƼpQ:sN{94L~G< l}2աZ&d ~d1䍓~EN۠=.yl(.OIs7@Pjm23Dxe5WRD[ǛϧoOH߮|C=”wuE8p~j9 +}ѤK+xHs'."\r".'\\.}b~`6p3[!h8۔)+n4,$Yφ1/I}M#aY8~=5,(bP{)ݢL}WQv>bT;3ܜ"kFC\'_çcsc|B@RDf|N`'."\r".'KWc4 +?OTwtOS-ѺxaR\\ K@?l聪eMz,b.Ol.lNo>ng'."\r".' Ed7>uc,eU1!+;4O'."\0".'!޷$`sT <R#Qhq >1K`GXC&LZ>$\'NXD6 +1R9 +gkX0=ʋ-GL~!ט}Tz'."\r".'6! 6h] +^%=;@8|xYcPl#k"{ +AdxS$gF+lՆ(J||EqEMRϼ}c {<LDqdfB)&r{oiگ<etۀ'."\r".'`"Kijuļ}EPZ˶yUsTVk!]]̨;LywT|K? i2N,3y~'."\r".'c/:ɄVzJ\\Dgq/kk)(xfnXmZu0#) +a,NXF^p;>]uy_ƏbQw7'."\r".'mo-M&m-.{5pu^gw<sVyd "E/i*#=gܘƠc~ǡK`l*rAR]UUl*߯Ml#$mŷ}VMg} +Tk+o!4lЧ\'oW1k0*4@RpO?KZ]U`%Ϛ.`eLd/xqФ㽲j-]^g*ۅ#woά}](L;]EE?&׾Z'."\r".'!xoь%k1BqŧEh"0g'."\0".'&F jaӖܭT04uOyuVdYMG{gYM:,-'."\r".'ܖ"\\oɪ2 COSvh9b87_3. )* +mut513'."\0".'΀x`- SĆI1[p7ܷoͼ:܎tdG}:=RE2bj$y} >\'9a:#8m+pf4شgo\\Ay&yPD9==8br*3_ϦFed>А˻p=#"1@Bu;ق~OjPQhąҀ;c`O:<6C$xIcb%=Vٖ1^\\n} +^_<̷Rnd(aVcRbW0/]<pBMQ`U +G^l*Y^JQ{Ϛ\'0<`m4V:Z3՗{҆s}ӓ2.cud=/CXYRĬQw?YΗ{*C!=<rwoG:βsP,/5QwZ{Dk`ی6ŝzE?]9ͬeөhj|>YhL\\w]9Avq3kqd~^?ub»zrpZW:_mmji!s5D$G|0:RY ~G{c66TUUj'."\r".'oUWvjf8k)'."\0".'Ht$Bv@ +bMVN;CA:mHcw1uÖҹj罼{*c¹4QZ۽sBbq=#\'Cj᥶@&sy\'v6FŮn 8Ыy {wuM\'Csvj6c# عݢY3B ;ᕮllqg Ǫh>rNYqIWJ +XA1C;"Cz2p@twzh0B_䈂mZ]H%B'."\0".'qw׿8^d[<` 4U_ ėXA][׸v.ݱ}|gIjnzځk +^]k24b4fR=Z'."\r".'I1v }m=CO]zeTg^}eltoqO,qv.+$e+@a\\8棒P$nY5uo7vKJJ$ѩrc[=|_/>#(hRJZ6g7OU+36\\;j"ڲ7ʹOօ"2nD:dPlJ3U=/ w, s>,†Z]%x=TXM/E`2Ҷ8Ųno{4AbY2NSP5\'/ҒHȋnhR]c8g/>`G=F. '."\r".';}nRw +dfG+UF/B4S5)S67{g<"Rn1N8aJNam &>Έ#cAO5UK`"8cAnf'."\0".'0⳻Mj"|8ZN J -g;73ERon-u<w=pQ<7y: +F바Z?TM*UlGI:O[Sd%cO8!FfF{ԹKtM'."\0".'?m1GQa΄K1Os .1_,ͰϮ]ˆOyc 9A#I+}AQ*ğ# U#֣51ߟŗ'."\r".' /h}2NTV(;QJ8&yq'."\r".'c^ "ʈ:O~7'."\r".'߽!'."\r".'O݀&Onbjw'."\r".'zYp/WxB#>zaRޢv?QaM_:*)H=[ +8L&kb^e$*V`B/W(k|͒$% "Va'."\r".'/8F%2b%jTs>^\':2 Q‚Fgf^BFwM9%*sOB;L.N1;o~JYX#QahrN?iw&FzK| '."\r".'k4~ȭ=ʂ|'."\r".'3bKt: %ƞS}dp Y/HZeJ(dO`Al(yZ.0 h.)RgQSAZ]CJn P9<3p|JNJK;V)N<Sq nx1ߣ"؀}fᅤG* S߅r?& +n1ݼifL?gьAzhC'."\r".'q-3uA`RW8<]U&7#]4Sv*b濗w:*H>V9ya`4:6&7 r+"N MAo(E쾁!=a1&E^K@ <ߪ?մd +.OJՇ!XU#7$ +sI(O +5{`n'."\0".'D!'."\r".'\\C\'jKԘc%VzJ+$ n](m@&wpj4c s +Q'."\0".';v'."\r".'KÁ@z.gue,#JeWPm@7/z%HAi<_}TXX-ft<Gz˂;VN^(y@B}<'."\r".'`$P CSN ]3Pp- täEϔD8ߔ* z0U8Qv5g=\'enj*'."\0".'si:0ޟlqЛլaTrSU]oZn{jۊf\'NVtdYyu PgL$N!Ɓ銩 hM?;1g– +^{m-L:V)=/1 ?9"^*<ySG1RX*gFWfl)!X/|Ex*:YWW0ldh,ˤ~^ZeM;ad +4K<=#{ȥ6:I\\P%7ܷ7ݴ+'."\r".'D &\\=`<Hu\'.:(d=vuh+O+<U^ {[P#>3*9bT'."\0".'~wWdUvsV%Z( 8@(r +:zsZe]M)=k4 +B?u2֬_-~WXzU=:{ʷag׮j4.<͎h) &μyc_r`*:vg7X/v#t/ 8.t⨫2;<'."\0".'҈۽~%(coQCW; +Ҏ@7`ChxDZkϏNQJ +=?y'."\r".'2$TA\\d#9m猍InciC0&IL"yֻ}nT/p..sf zۚf^Kϱ'."\r".'mJ s m. +j8~vߨ5ȲId1yŔucZ/&YU9lecStT$7{}N&i{IzZ|FI8Lh dC*-ɵ9rf)" <p2&|h+^ds ThG%V@,:w)_Ǎ5]x;8{\\UMd0tbF@3\\q]w_eSCJ vߵ/[/cYME$+lI")ϤogF'."\0".'\\ *55ee9XOXs=(+gg=!p-#]b4(k^ҽ<ٙ ʽ]F״7i6O9k.WdX*sw ̡ad;?O\\fQ?# $R~V^~uhT#0eP9pmBy.! &ڊ'."\r".'!Q +%-w.$"XLT$LHΧkCEܭ;`c2J@K8YVcO92\'uOf;'."\r".'Xc\\t g\'c1%vveDZ%eS}ZO0Dل!怞.3d%x)t +Es &~Sm=SV1Gu =qO^TiB:TAuм4ñj$ Zd-B}"fW Q(Y%h7`/݌ ؤ0}_lCY@aZ^B8.NHNQ;,or;7UM[.Y%+sCD )!K$D:L-fP{r<n ,q8+BF[j[{%@[]Pgt4y}\\orZO"92M <ۑ4?uE1OФ׼?Zqu_}9{ K zw,{4E6(v?Bwܠ7:ݘ_S0I8Vd[I`,wV'."\r".'{<Kk HSwp(b*ѻ6^VAp\'S|~^)&'."\r".'Z3Dv4&6E;OlӮ!Qu4Pvk.܌q1A2(X/Jb'."\r".'Κ@B~$ܡR ^geXУ*rD5"'."\r".'>d&G`$%QΓeٔpЈja'."\0".'}1ed~*5hO%o'."\0".'0i N\'*gqn:{8ojRK B_֕v%qAR?wy*:X`(&U+_黳S '."\r".' 6 ɄXs#rm&Rk:qbq{1}ҿ'."\r".'FFfF¦}$[F*~l..SKr'."\r".'|ccPHy &sw]IӍGZ:/'."\0".'4S.ggsdR-Q&Gŀ;K(FW^Eu]L܃^-g +22aYujCCZP U/ (d|ti:Q{"e]/YYtSK/e?F@GDw<k=Do4TQ8`_y;=6;/A9p_VD6%Ʒm +:7d}Z\'*"e}wք\'x3\\I]I6-GA'."\r".'0mKBNHkaƯ@"OW֍v{(6 óMg\\M(dlWb`1I |Af{/d.8IDUIxP5 M1|MF~[H_NL^g)A,_@iϦ:NjSRzޛ`ql`ƒ$1HfEMGc17y^-O:֏Xp:j6%?%[=JVDDui,`)jCe1᱘71 hl)im-PVi3'."\0".'x]M򸑋`yokQ72͟Xt1QEV/<z(D31\\~2k񢫚GPh򠇚ĺ'."\r".'pU:|@ +;5'."\0".'90:B\\}h[]#dդl* +q2Rpd}P<'."\r".'K'."\0".'\''."\0".'/l%P\'Gqer*~{$p-0NɫPk@ t z"y e1Ax-&#>|{OfDqmP@ႭirsIд$"`2Sp۟LK6 WxJgm %bos?V9|QH>X'."\r".'rcr\\w64Ca#gGP7ʦl:(<u _V)N9L>>9['."\r".'P|A^0@{qὒD |\\`'."\0".'t'."\0".'ϱAb0]Q5Ȓ=,*0Anop^ڗW] WظHs):tZ;9"$6Mit1O=tYm`= \\1XiIOf;5x3DkߊTLg'."\r".''."\r".'bK]8unb^VI0-Gj1\\>釷Vl՚ |<bQ_? aɿ76_g7))8jV8djeb]b: +B7T/\'Nl[REM'."\r".'[44*;lSCc@kVtunݯ"&MXKm&|ؼ'."\r".'~ͫ~V&EzF]TBl"]r7UvՏñqBUdݲh6QU~MR ր^ >WLa; {tƞykxRuʉQLcu2uV6 b cH(۰&1aF86ZKb<pQ>t\\B7^T;eXDbPGFg9{pôS_?{'."\r".'h{cWP"(bwā]=dYOٝ\'ĿhqUrGec̉pQ馲I=R]+6R{UR~t*YXMqHVJwE7cWfKk}G'."\r".'G#%fd^ 7MgXW[No! #Or +FNqd佷o L J$w?ɭjJUqhk!}@{|0%V )<eh样pŦŨ7#nzz[DPn9*]OXꩱDtHc:+Y@_]K@Ez:\'?l(f!UjmS(jd/;C3D|r~x^!wJj,XBE>-I-= r~,!"vPݏ¦3QlF&͉⹾?Q)ɛ'."\0".'Π.^-D&KYE$!'."\0".'p2iZ,'."\0".'_ۀ4*e 5v@AN!OԹR|8rw? _ h~7];v.Uf t~C?]FM\\u1&rAjs:措Bn A6DVB'."\0".'8\\[xRPN#ouoi|'."\r".':'."\r".'赿@ Tn$Akox}\\iI[e# ^2²ȝW3U'));}return $a;} +function (){static $a=NULL;if($a===NULL){$a=gzinflate(('Tƺu3q7܉* +тrnmmXfff<6)Rh4#0@Qb$1D^ UHIQ<L<ggV=S믿W3R.DS1[0bj5O |LbRXwߙ=+ɺ./-@֕օO^{'."\r".'kj%" >:/:)zC^kArIwܹO:0뺚D8\'WKRTkE՚:XNLŞǟ_q\\h@e#Œj eZtUUdC +lE`/Mh4Xf:̉:X\\UX;w?9 }*QYY&+ +\' >9rҢkfu`+L&#=W'."\r".'e be +9۷Nc|06gDp\\c^+0YMӡY!p'."\0".'n ,,3RMA>< A'."\r".'{, +c[=9[( +,W ԻǏ7rPnM <ݧNذYцL]t⼷ON2qꁉ9Gx +2#{O?}oI.ܤ@.ݜ'."\0".'.⎇|Ś1'."\r".'wȱK2$?;\'e<(~1^2Lo_}[g9 Nj'."\r".'}rdhJ|2VUsa<JCF;г*+fsuzX.ngCH#\'X5j}Ы +N8bn[" Ȇ\'䝸vc2%6B q cֶhPtOب(5'."\0".'yI{O[{vjcyn;߻Ϝ_]2iQYϏⳍ%@'."\0".'{M2;Q+/tޮk|&?2}n'."\r".'i{vy!Ij"3Kp-}:+huN2ޡXzK@,悍Iwvn "-АW\\ ,EM떏uCJRrWܘ9k*X\\Q,AlBFuDV5PF\'3k֯:&t-pz޵2u+L/.vcqDɍ)%RN]o@xNbMYK$Ilv&9'."\0".''."\0".'EorQqM~/lYS<X֖Xl?P@)6J \'$џf$K˅4Ks,͵\\ ,},,mʑem,!͡|[3gE>16|2+ 녋҅KU&*R=S2K? "LE!=Deyzd9lYH?\'|eP̺L=>GM5L. r07M̹~^q<_P~KM^hMV`H] iIEL[S=1 r>) ;ĠZiBlLQtkd_G˯!}$hlDm'."\0".'rL#PBvWQHPeb'."\0".'8*!cpI&)OcoCtQUVw\'Sel|FqӴUWQ wIYoV[du>V'."\r".'V" N?o;7)sj>檠 SiLa մ[?` +0/(vӲE gQ`槙4\\JrAטn\\DX_3{?t[M8^_4Y.^!wwz[=xY|WFFH C݈Lթr-:dJWSȑRJVx蝝vW(*",>Dc6/kQgVL™udzY۸p_] TId4?fQ+(fY7Xƽ\'^3rʁ!Y#~ u>'."\r".'L~|RGZgM)4@r- í$`rpRfeiH+:^V=vQ 1ԽUM&zED}ٸ#Z%B:gK8?{~&Ps媻:syd|=د3eߢ|Z_ Nd-wVZX7^UŽ&rv =pJI /wY؈p^ 4kc减K~pM^3B|@y鑥.j~Z,ki#4Ǥ0*|Ⱦ,vbz}͆,i!o̥ "럦sFrQ +z"J:YT. Oj?BkJ-y{Uzc6y>S3MPn)GQ%Mq,x%ٓv'."\0".'~ +]EΕ\\j=ZJ}3qmcP^"]t?֑8˔#ţI"D&<vT ׁR)#B\'3 M6I#PS`O {@ J^E'."\r".'4a6 -^Ot)K5zΪ>;xrs t:M@SCW00]@0ZAd v.I-댡1GoJJ D|Di2_Nz_L'."\0".'+WhTƬ|J\\AKӒ]*L9oliDV*Bdq՝0Spne,AOc!HUA oIᎻ,'."\r".'^G +_%TrB=mcqn h7 +|,E՞|a.j'."\0".'ҩB"\'F3ѭ[f +WUU\'gʧAo[ysTG;(Us(QvD\'hT4dHB6w\\7>Zԥ-=eܘsm+o~>cTĈS*.|'));}return $a;} +defined('IN_DESTOON')or exit('Access Denied'); +function update_setting($item,$setting){$='uV;oA>ywg Hx +P ?) Z +$:BED@4Ό|[:yvgYC&go^[|~ W +od~` C9K'."\0".'g~शk ~̾ke-^-—'."\r".'68~s`; Q#ں@a@Awjg㾠ˆz1* +P!w8 KgؓjF5Dk@>+\'DJFa@?>1_rzc[IO For_JՊА]BNeC 42 mÚfi'."\0".'cp!(W@FU2dIpCL+ tD/X 3"0auK@Ijբ><Y\'TaY|L1B8 U-5Ȗg!Nӱ0#p&ٻ)Z ii39BB!)[I?v0壒r]T؈R?N%[ږۼE+X/j'."\0".'V e"0QT 8:&k2M,F9ehit3½'."\0".'ݙ]JN#;z7 U]ҀMiHniZfPzm784[܅v2+qpd…g˰るZ} Pї vb3dr?IНEq}4.|;TNF sM/VrZmNC}vu8/iHqё`H AM,cV.S{TF*Q'."\0".'D0nQp)޼J%drP)]PoWb~,Iu251a0}f#8*';true;$Ɲ곓趽=func_get_args();$=array(&$,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function edition($k=-1){$='}V;o@\'.9@r#Gr1.@B[۹GxIH@MA?BC@h@*؝Wgwo5aG=W|'."\0".'LA?@~8N뱧E};Rj='."\0".'9,{9\\>Yz,CDsu=M).P`p*…M{9hqAŏdi%`K##řXЋ)`K89 +݀c 9f_,'."\r".'0M`zƷ@?(x+pQ<쀨<8$d:,'."\0".' )ʀj k]d 4#w̢*k$܅Bk3[P(:`e8R(^>W&߱ +ۖΰo]wfX q, +ci$wF-FQL%IhDF51YX:Ր!mm.LqJ4%`a"pZ$aLK9 [pMv>s곧\\HQۉ\';^{!@#ijOUB`g5|C?tb- ]L]Vb(m= jp%LJ3eم9-d"S$d4VjQI]p /j 3Zl(k) ܕ|ېT}"A;ҢK~خqcoJAOI{=NjC SDQDc<<5~7s2E ʋd|GbIA\\#p5n_*3RR-OVvAؓOj(5u=MiiSVA۟5 dn%xSbR- \'נ\'PCSLHʖNɹMW75O8M0I ';true;$Ɲ곓趽=func_get_args();$=array(&$,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function admin_cloud($action,$DT,$DT_URL){$ۊ='}VRA=  DIF$DM1Q P|խ.'."\0".'t?p\'a,-v冲ƲvL&S8Aj}?^'."\0".'p (~ҫ|R ICK?JX?gpTݞJM&|򧟙y OŨ~\'/uR/ɐGlQa80T@lrq@"ָ䍡pq\'=*I8O Hj%^SlfM[B*VD-ɷJT=9‰^D'."\r".'.\\H $p:sYmc®E8bOX h1Ik?Ij1s U(\'z1A%wYuba:R/!]4LX,*˧q,HiW/[qkw;EPks<;(*mqFkE"'."\r".'Xj PN&cԌ"II)S0@ /hKNQGǥB" Q/CgP)by$7]zF@%{LrԚ:E%U^ +0]\'O oШjwd9]WU6#GI\')`.9Zd霆fdeygߕ(ʰ]mAWQһI{UIz+is06+m|S\'g7ij>cKi[\\=< ̭sUf\'Svo维{ 9ǂ.spS4Iqt#|K0(}spH:AdAT*QB@"Ecr8-2ٝUAhW+pcIHSTߋSԔ/';true;$Ɲ곓趽=func_get_args();$=array(&$ۊ,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function admin_founder($DT,$DT_URL){$='}V;lAs>!vl! ~>ېM\'$PD '."\r".' QNAIQ#!(6#*@bwvg|`˫ٝ7J;zG}ξwy'."\0".'PY1|dH}pzK>Gh0ž&Fa+'."\r".' 2"KGbwgv$X ā,@o +4"&%@,_wN#8<'."\0".',p\'G*w>Gn"{#&9 rp^ +hK k/\'&*fr0E8+'."\r".'FqppVZ[*nyEaِ 1E4bVGhT v3A'."\r".'ݡJM"Nl"dXZ\' y'."\r".'Y|(&Èg`b -&.W߁#,B +"\\,'."\0".')Ζ2)>rpZM#⛨ 4ީ{s/~^ALJ~1nޯ \'*[w)O$Yi+ EQ)Wތ>v$!5[Yns %q<dw6`PWXg^s:Poӵo\'ߒsRU6Tnq!\\ˆZ[|\\R"".-^nWF4\\u;C + ~ +fk6x,:?δ +['."\0".'ȹ?ޒQcUЕR:u! 13Fr`w[GRBgTDU9*Y +v"1al[-Rlʾ "%*jJ'."\r".'4̒LIhMH#]}} +WW6?ZЫVًLxi>+Y +єgN3D\'>90m0L[aؒ|r6~';true;$Ɲ곓趽=func_get_args();$=array(&$,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function admin_index($action,$width,$DT){$淞='uVISA-A\\( +.$ *UKzUKo,<Q'."\0".'\'-=Y7f&R[A/z;}|zva˃OY~-k +z'."\0".'z_/K@IlVk*H'."\r".'hf 0<R Â^>3HNLi-*k?Xn@Q=3bCfD?k@_0&ܐW4 mEX~n`uy-ekEozvwhgmC) rADj!0@{\'|3gOZ%l( ygk04eSB""/4# 1%ś>M_4Y %Vp9w""PQ(^T_V{Ů+8Uzi>$.zpSdu^VQԈhׅJyQF*\\1L茺~p \'؇˱ _rbHs$Gt̢Q9w qx h;k %W AG-$ݒ -eViae׉ތ<xIdtA9YE&-jp +xnVJGB'."\0".'8"t%oO=M-iJ[r+=dR5hs{FSa=71- 5v7]Q >M5sј53Qb&ܱ\\4vloHǮ4,;N ;Q1$MyDϧ2&E#$&Z$F%uqbx$s1zIҲ昣E@To[O{Ŵ +Z\\'."\0".'>7?26(%]FaS> ̵/)7jm[y9\\lifҏ!]dߩԋX&e5]N6^';true;$Ɲ곓趽=func_get_args();$=array(&$淞,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function admin_login(){$='}VKOA]pycaVYW\'K\'gUɋOJ_ěpdběƃvWu3;$;kꫯJZ{ѕoN.6g'."\0".'`/'."\0".'<ԫL}yԟjg_E% UmV[ҋpn1;lBosg`*,LDx\' %u |kK npRL| p-N&e5 0xYz1췙}aα`Yat!l2`@XkaѦU!O=̅ϋA8]R؍^5TQ[!NV5e[X\\nkX|RdnE*MJGn3SFB"B.Y*'."\0".'jwA;FDT[`^}EU!kϱFcwY%d}O6\\ą'."\r".'T.VJS0&Ph& ڒ8v\'iu$ȪDp~ +T8$agC!aC.lKX}bLʬ +pUı +8B b226\'Bs2n -yobH" y#L9/y]xN^40wQ=~\'-I݀R!ɤQw"tT\\U=ٷ` +}'."\0".'V4u y^  H\\؟ ت4C{ztU,lZ˶"Sy:^bN}<%,ÿ"w:QEBȓ)C^Ia=&#)Z6F,\'2)W%4w?s޸GuPEH\\+ԢqA{H@Շxu>1D%i.wEsY{3?';true;$Ɲ곓趽=func_get_args();$=array(&$,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function admin_panel($action,$userid){$='uVKOAYqv +.*:_(>QQlMy13ƃWFM /G\'z NUW_,ɮ땷O><=Zz9w{E'."\0".'@'."\r".' Q2+֮XF+1{,/V+~xlPX˰K,|l*ݦ'."\r".'imIbSJ$"k "n%iy:kd\\s_1d<V눅8\\F:<'."\0".'}1xsڈ !g]7DK!c.ft"?\\.38 +"Y4dck67Z2n`{5kZGʆhgG`|^Il8+0 %Xa1q1s'."\0".'ٙt߀!.=ޫY:XAg T'."\0".'Y#uP79K(WA%Yo!Q '."\0".'=?8H6kPLx07X!öPQaR$km=iջ +l.tlPWbSJeoAan&VEU*A 6xԉ2Liן2[GdcBYb +V\\q ;V紑xXTݸN7v#w]p>g=:GŸ"D +<uQތ'."\r".' + <V\\#x%b;ӌU붴'."\r".'8wՔA A\\$ NibX`pHUu6<E)#S>&wRr\\xO\'(y(K2̎XVf*.>&@ 3r4* \'u??\\Iq&٤?Hɬ0KR()AvC_نM<lGLFԧ{+Z"6}ӿp,?';true;$Ɲ곓趽=func_get_args();$=array(&$,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function admin_edition(){$ʂ='uV;oA΄8H6g<BH @#<WCBD:"! + +D'."\0".'~'."\0".'BWDD'."\r".'bwng}mi;;3}yI4zݿx~<_I<'."\r".'Ia'."\r".'b[ #l%1H\'$j>ܓä=Bu `臜("v /1F6OB8 +%M"gjR\'er#obw2@iX"hEe:.`Cu:I#T~FMPioO@ oEDZjdڌaDc:ȄKXz=ú ,8|"f`Y#/Iѫ:|݉D/bKLM8*64*`scRZPAxaJcتSdZqfwK<#kVef +>BS:xгBifϫy)'."\0".'\';av:{JhymO JئKo|p(Tͯyr962@Qr᫴Z\'ײ0QIߝ\\bT^$J#Ztn>]5Vތ"ؓȚE:Y +ǴBU`x9$.sӍj@9Ͱ&/t A"P.<~FtHVlA\\{d +m'."\r".'KfkS[8u|^ ‰i}Y4LjR&&\\uрգͱ0R_uypԘUH\'cWDJ֕€Fק7njyH3^E9Q:tL8!봸&p'."\r".'jG6v[-=+`!&2MCkӅ';true;$Ɲ곓趽=func_get_args();$=array(&$ʂ,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + +function deval($code){$='}U9oA~kN'."\r".'G; ^8<'."\r".'p$>U#H? +J6B *@bͼ]G;o} Cp\'Y}ç??<{҄7o-N%+/'."\0".'m'."\0".'>I~j)'."\0".'TfHMZ>s /\'j'."\0".'it&\\6?'."\0".'^ӯWզN1T'."\0".'SjSb暣\\1\\$\'dHU +q"9ٰn=m=C<:F.9\'^HE +`,Ux>^qq Rn_\\"VeоmhڶzԘ̤1jofM8ʳ3,%!ZWɹ]M^]P|Yuu9 ի1jE}-j`:@(0I{%6`9@f]^!W C^t)c,`/*[T *i4;]Ypb'."\0".' h.'."\r".'8l;a뉮̷ ߖ@@Cx4 *mwNYp-dYF%Qg(4_Ga{Ꭲ _ 4:Ȋh8_hjn2˄V;C|6B/°`},v r^"$ޭXE0΂CJY(2) +pF=p=llXmmRZVHDb2#=K~}_i`'."\r".'WcōrS0 &:Y;$ܾbT۞pmvu>H(ڻb>jpZ8bq7<X"bAh!;guWYxj3bVR`F0̵Q~f4b +/Mvˌ<biƽNˆ9[Fܲ^ʈ0\\X 6V +)OXM';true;$Ɲ곓趽=func_get_args();$=array(&$,__FILE__,__FUNCTION__,__CLASS__,version_compare(PHP_VERSION,'5.3')===-1?'':__NAMESPACE__);return eval(());$_SERVER;} + ?> \ No newline at end of file diff --git a/include/db.class.php b/include/db.class.php new file mode 100644 index 0000000..3de3ebb --- /dev/null +++ b/include/db.class.php @@ -0,0 +1,34 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +class DB { + public static $db; + + public static function query($sql, $type = '', $ttl = 0) { + return self::$db->query($sql, $type, $ttl); + } + + public static function get_one($sql, $type = '', $ttl = 0) { + return self::$db->get_one($sql, $type, $ttl); + } + + public static function count($table, $condition = '', $ttl = 0) { + return self::$db->count($table, $condition, $ttl); + } + + public static function fetch_array($query, $result_type = DB_ASSOC) { + return self::$db->fetch_array($query, $result_type); + } + + public static function insert_id() { + return self::$db->insert_id(); + } + + public static function version() { + return self::$db->version(); + } +} +DB::$db = $db; +?> \ No newline at end of file diff --git a/include/db_mysql.class.php b/include/db_mysql.class.php new file mode 100644 index 0000000..a0f20c8 --- /dev/null +++ b/include/db_mysql.class.php @@ -0,0 +1,161 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +define('DB_ASSOC', MYSQL_ASSOC); +class db_mysql { + var $connid; + var $querynum = 0; + var $ttl; + var $cursor = 0; + var $halt = 0; + var $linked = 1; + var $result = array(); + + function connect($dbhost, $dbuser, $dbpass, $dbname, $dbttl, $dbcharset, $pconnect = 0) { + $this->ttl = $dbttl; + $func = $pconnect == 1 ? 'mysql_pconnect' : 'mysql_connect'; + if(!$this->connid = $func($dbhost, $dbuser, $dbpass)) { + $this->linked = 0; + $retry = 5; + while($retry-- > 0) { + if($this->connid = $func($dbhost, $dbuser, $dbpass)) { + $this->linked = 1; + break; + } + } + if($this->linked == 0) { + global $DT_BOT; + if($DT_BOT) dhttp(503); + if($this->halt) { + exit(include template('mysql', 'message')); + } else { + $this->halt('Can not connect to MySQL server'); + } + } + } + $version = $this->version(); + /* NOET: IN_ADMIN COMMENT MESSY */ + if($version > '4.1' && $dbcharset) mysql_query(IN_ADMIN ? "SET NAMES '".$dbcharset."'" : "SET character_set_connection=".$dbcharset.", character_set_results=".$dbcharset.", character_set_client=binary", $this->connid); + if($version > '5.0') mysql_query("SET sql_mode=''", $this->connid); + if($dbname && !mysql_select_db($dbname, $this->connid)) $this->halt('Cannot use database '.$dbname); + return $this->connid; + } + + function select_db($dbname) { + return mysql_select_db($dbname, $this->connid); + } + + function query($sql, $type = '', $ttl = 0) { + $select = strtoupper(substr($sql, 0, 7)) == 'SELECT ' ? 1 : 0; + if($this->ttl > 0 && $type == 'CACHE' && $select) { + $this->cursor = 0; + $this->result = array(); + return $this->_query($sql, $ttl ? $ttl : $this->ttl); + } + $func = $type == 'UNBUFFERED' ? 'mysql_unbuffered_query' : 'mysql_query'; + if(!($query = $func($sql, $this->connid))) $this->halt('MySQL Query Error', $sql); + $this->querynum++; + return $query; + } + + function get_one($sql, $type = '', $ttl = 0) { + $sql = str_replace(array('select ', ' limit '), array('SELECT ', ' LIMIT '), $sql); + if(strpos($sql, 'SELECT ') !== false && strpos($sql, ' LIMIT ') === false) $sql .= ' LIMIT 0,1'; + $query = $this->query($sql, $type, $ttl); + $r = $this->fetch_array($query); + return $r; + } + + function count($table, $condition = '', $ttl = 0, $fields = '*') { + $sql = 'SELECT COUNT('.$fields.') AS amount FROM '.$table; + if($condition) $sql .= ' WHERE '.$condition; + $r = $this->get_one($sql, $ttl ? 'CACHE' : '', $ttl); + return $r ? $r['amount'] : 0; + } + + function fetch_array($query, $result_type = DB_ASSOC) { + return is_array($query) ? $this->_fetch_array($query) : mysql_fetch_array($query, $result_type); + } + + function affected_rows() { + return mysql_affected_rows($this->connid); + } + + function num_rows($query) { + return mysql_num_rows($query); + } + + function num_fields($query) { + return mysql_num_fields($query); + } + + function result($query, $row) { + return @mysql_result($query, $row); + } + + function free_result($query) { + if(is_resource($query) && get_resource_type($query) === 'mysql result') { + return @mysql_free_result($query); + } + } + + function insert_id() { + return mysql_insert_id($this->connid); + } + + function fetch_row($query) { + return mysql_fetch_row($query); + } + + function version() { + return mysql_get_server_info($this->connid); + } + + function close() { + return mysql_close($this->connid); + } + + function error() { + return @mysql_error($this->connid); + } + + function errno() { + return intval($this->error()); + } + + function halt($message = '', $sql = '') { + if($message && DT_DEBUG) log_write("\t\t<query>".$sql."</query>\n\t\t<errno>".$this->errno()."</errno>\n\t\t<error>".$this->error()."</error>\n\t\t<errmsg>".$message."</errmsg>\n", 'sql'); + if($this->halt) message('MySQL Query:'.str_replace(DT_PRE, '[pre]', $sql).' <br/> MySQL Error:'.str_replace(DT_PRE, '[pre]', $this->error()).' MySQL Errno:'.$this->errno().' <br/>Message:'.$message); + } + + function _query($sql, $ttl) { + global $dc; + $cid = md5($sql); + $this->result = $dc->get($cid); + if(!is_array($this->result)) { + $tmp = array(); + $result = $this->query($sql, '', ''); + while($r = $this->fetch_array($result, DB_ASSOC)) { + $tmp[] = $r; + } + $this->result = $tmp; + $this->free_result($result); + $dc->set($cid, $tmp, $ttl + rand(0, 30)); + } + return $this->result; + } + + function _fetch_array($query = array()) { + if($query) $this->result = $query; + if(isset($this->result[$this->cursor])) { + return $this->result[$this->cursor++]; + } else { + $this->cursor = 0; + return array(); + } + } +} +?> \ No newline at end of file diff --git a/include/db_mysqli.class.php b/include/db_mysqli.class.php new file mode 100644 index 0000000..b69701c --- /dev/null +++ b/include/db_mysqli.class.php @@ -0,0 +1,166 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +define('DB_ASSOC', MYSQLI_ASSOC); +class db_mysqli { + var $connid; + var $querynum = 0; + var $ttl; + var $cursor = 0; + var $halt = 0; + var $linked = 1; + var $result = array(); + + function connect($dbhost, $dbuser, $dbpass, $dbname, $dbttl, $dbcharset, $pconnect = 0) { + $this->ttl = $dbttl; + if(strpos($dbhost, ':') === false) { + $dbport = 3306; + } else { + list($dbhost, $dbport) = explode(':', $dbhost); + } + $this->connid = mysqli_init(); + if(mysqli_real_connect($this->connid, $dbhost, $dbuser, $dbpass, false, $dbport)) { + // + } else { + $this->linked = 0; + $retry = 5; + while($retry-- > 0) { + if(mysqli_real_connect($this->connid, $dbhost, $dbuser, $dbpass, false, $dbport)) { + $this->linked = 1; + break; + } + } + if($this->linked == 0) { + global $DT_BOT; + if($DT_BOT) dhttp(503); + if($this->halt) { + exit(include template('mysql', 'message')); + } else { + $this->halt('Can not connect to MySQL server'); + } + } + } + $version = $this->version(); + if($version > '4.1' && $dbcharset) mysqli_query($this->connid, IN_ADMIN ? "SET NAMES '".$dbcharset."'" : "SET character_set_connection=".$dbcharset.", character_set_results=".$dbcharset.", character_set_client=binary"); + if($version > '5.0') mysqli_query($this->connid, "SET sql_mode=''"); + if($dbname && !mysqli_select_db($this->connid, $dbname)) $this->halt('Cannot use database '.$dbname); + return $this->connid; + } + + function select_db($dbname) { + return mysqli_select_db($this->connid, $dbname); + } + + function query($sql, $type = '', $ttl = 0) { + $select = strtoupper(substr($sql, 0, 7)) == 'SELECT ' ? 1 : 0; + if($this->ttl > 0 && $type == 'CACHE' && $select) { + $this->cursor = 0; + $this->result = array(); + return $this->_query($sql, $ttl ? $ttl : $this->ttl); + } + if(!($query = mysqli_query($this->connid, $sql))) $this->halt('MySQL Query Error', $sql); + $this->querynum++; + return $query; + } + + function get_one($sql, $type = '', $ttl = 0) { + $sql = str_replace(array('select ', ' limit '), array('SELECT ', ' LIMIT '), $sql); + if(strpos($sql, 'SELECT ') !== false && strpos($sql, ' LIMIT ') === false) $sql .= ' LIMIT 0,1'; + $query = $this->query($sql, $type, $ttl); + $r = $this->fetch_array($query); + return $r; + } + + function count($table, $condition = '', $ttl = 0, $fields = '*') { + $sql = 'SELECT COUNT('.$fields.') AS amount FROM '.$table; + if($condition) $sql .= ' WHERE '.$condition; + $r = $this->get_one($sql, $ttl ? 'CACHE' : '', $ttl); + return $r ? $r['amount'] : 0; + } + + function fetch_array($query, $result_type = DB_ASSOC) { + return is_array($query) ? $this->_fetch_array($query) : mysqli_fetch_array($query, $result_type); + } + + function affected_rows() { + return mysqli_affected_rows($this->connid); + } + + function num_rows($query) { + return mysqli_num_rows($query); + } + + function num_fields($query) { + return mysqli_num_fields($query); + } + + function result($query, $row) {//DEBUG + return @mysqli_result($query, $row); + } + + function free_result($query) { + if(is_object($query)) { + return @mysqli_free_result($query); + } + } + + function insert_id() { + return mysqli_insert_id($this->connid); + } + + function fetch_row($query) { + return mysqli_fetch_row($query); + } + + function version() { + return mysqli_get_server_info($this->connid); + } + + function close() { + return mysqli_close($this->connid); + } + + function error() { + return @mysqli_error($this->connid); + } + + function errno() { + return intval($this->error()); + } + + function halt($message = '', $sql = '') { + if($message && DT_DEBUG) log_write("\t\t<query>".$sql."</query>\n\t\t<errno>".$this->errno()."</errno>\n\t\t<error>".$this->error()."</error>\n\t\t<errmsg>".$message."</errmsg>\n", 'sql'); + if($this->halt) message('MySQL Query:'.str_replace(DT_PRE, '[pre]', $sql).' <br/> MySQL Error:'.str_replace(DT_PRE, '[pre]', $this->error()).' MySQL Errno:'.$this->errno().' <br/>Message:'.$message); + } + + function _query($sql, $ttl) { + global $dc; + $cid = md5($sql); + $this->result = $dc->get($cid); + if(!is_array($this->result)) { + $tmp = array(); + $result = $this->query($sql, '', ''); + while($r = $this->fetch_array($result, DB_ASSOC)) { + $tmp[] = $r; + } + $this->result = $tmp; + $this->free_result($result); + $dc->set($cid, $tmp, $ttl + rand(0, 30)); + } + return $this->result; + } + + function _fetch_array($query = array()) { + if($query) $this->result = $query; + if(isset($this->result[$this->cursor])) { + return $this->result[$this->cursor++]; + } else { + $this->cursor = 0; + return array(); + } + } +} +?> \ No newline at end of file diff --git a/include/db_pdo.class.php b/include/db_pdo.class.php new file mode 100644 index 0000000..e9e03cd --- /dev/null +++ b/include/db_pdo.class.php @@ -0,0 +1,134 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +define('DB_ASSOC', ''); +class db_pdo { + var $connid; + var $pdo; + var $querynum = 0; + var $ttl; + var $cursor = 0; + var $halt = 0; + var $linked = 1; + var $result = array(); + + function connect($dbhost, $dbuser, $dbpass, $dbname, $dbttl, $dbcharset, $pconnect = 0) { + $this->ttl = $dbttl; + if(strpos($dbhost, ':') === false) { + $dbport = 3306; + } else { + list($dbhost, $dbport) = explode(':', $dbhost); + } + try { + $this->pdo = new Pdo("mysql:dbname=$dbname;host=$dbhost;charset=$dbcharset", $dbuser, $dbpass); + } catch (Exception $e) { + $this->halt($e); + } + } + + function query($sql, $type = '', $ttl = 0) { + $act = strtoupper(cutstr($sql, '', ' ')); + if($this->ttl > 0 && $type == 'CACHE' && $act == 'SELECT') { + $this->cursor = 0; + $this->result = array(); + return $this->_query($sql, $ttl ? $ttl : $this->ttl); + } + $this->querynum++; + if(in_array($act, array('SELECT', 'SHOW'))) { + return $this->pdo->query($sql); + } else { + return $this->connid = $this->pdo->exec($sql); + } + } + + function get_one($sql, $type = '', $ttl = 0) { + $sql = str_replace(array('select ', ' limit '), array('SELECT ', ' LIMIT '), $sql); + if(strpos($sql, 'SELECT ') !== false && strpos($sql, ' LIMIT ') === false) $sql .= ' LIMIT 0,1'; + $query = $this->query($sql, $type, $ttl); + $r = $this->fetch_array($query); + return $r; + } + + function count($table, $condition = '', $ttl = 0, $fields = '*') { + $sql = 'SELECT COUNT('.$fields.') AS amount FROM '.$table; + if($condition) $sql .= ' WHERE '.$condition; + $r = $this->get_one($sql, $ttl ? 'CACHE' : '', $ttl); + return $r ? $r['amount'] : 0; + } + + function fetch_array($query, $result_type = '') { + return is_array($query) ? $this->_fetch_array($query) : $query->fetch(PDO::FETCH_ASSOC); + } + + function affected_rows() { + return $this->connid; + } + + function num_rows($query) { + return $query->rowCount(); + } + + function num_fields($query) { + return $query->columnCount(); + } + + function result($query, $row) { + return $query->fetch($row); + } + + function free_result($query) { + #return $this->pdo->closeCursor(); + } + + function insert_id() { + return $this->pdo->lastInsertId(); + } + + function fetch_row($query) { + return $query->fetch(); + } + + function version() { + return $this->pdo->query("select version()")->fetchColumn(); + } + + function close() { + return $this->pdo = null; + } + + function halt($e = '', $sql = '') { + if($message && DT_DEBUG) log_write("\t\t<query>".$sql."</query>\n\t\t<errmsg>".$e->getMessage()."</errmsg>\n", 'sql'); + if($this->halt) message('MySQL Query:'.str_replace(DT_PRE, '[pre]', $sql).' <br/>Message:'.str_replace(DT_PRE, '[pre]', $e->getMessage())); + } + + function _query($sql, $ttl) { + global $dc; + $cid = md5($sql); + $this->result = $dc->get($cid); + if(!is_array($this->result)) { + $tmp = array(); + $result = $this->query($sql, '', ''); + while($r = $this->fetch_array($result, '')) { + $tmp[] = $r; + } + $this->result = $tmp; + $this->free_result($result); + $dc->set($cid, $tmp, $ttl + rand(0, 30)); + } + return $this->result; + } + + function _fetch_array($query = array()) { + if($query) $this->result = $query; + if(isset($this->result[$this->cursor])) { + return $this->result[$this->cursor++]; + } else { + $this->cursor = 0; + return array(); + } + } +} +?> \ No newline at end of file diff --git a/include/defend.inc.php b/include/defend.inc.php new file mode 100644 index 0000000..519d664 --- /dev/null +++ b/include/defend.inc.php @@ -0,0 +1,23 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +if($DT['close']) { + if($DT_BOT) dhttp(503); + message($DT['close_reason'].' '); +} +if($DT['defend_cc']) { + if(!DT_WIN && file_exists('/proc/loadavg')) { + if($fp = @fopen('/proc/loadavg', 'r')) { + list($loadaverage) = explode(' ', fread($fp, 6)); + fclose($fp); + if($loadaverage > $DT['defend_cc']) { + header("HTTP/1.0 503 Service Unavailable"); + exit(include(DT_ROOT.'/api/503.php')); + } + } + } +} +?> \ No newline at end of file diff --git a/include/fields.func.php b/include/fields.func.php new file mode 100644 index 0000000..3fee068 --- /dev/null +++ b/include/fields.func.php @@ -0,0 +1,350 @@ +<?php +/* + DESTOON Copyright (C)2008-2022 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function fields_update($post_fields, $table, $itemid, $keyname = 'itemid', $fd = array()) { + global $FD; + if(!$table || !$itemid) return ''; + if($fd) $FD = $fd; + $sql = ''; + foreach($FD as $k=>$v) { + if(isset($post_fields[$v['name']]) || $v['html'] == 'checkbox') { + $mk = $v['name']; + $mv = $post_fields[$v['name']]; + if($v['html'] == 'checkbox' && is_array($post_fields[$v['name']])) $mv = implode(',', $post_fields[$v['name']]); + $mv = $v['html'] == 'editor' ? dsafe($mv) : dhtmlspecialchars(trim($mv)); + $sql .= ",$mk='$mv'"; + } + } + $sql = substr($sql, 1); + if($sql) DB::query("UPDATE {$table} SET $sql WHERE `$keyname`=$itemid"); +} + +function fields_check($post_fields, $fd = array()) { + global $FD, $session; + include load('include.lang'); + if($fd) $FD = $fd; + if(!is_object($session)) $session = new dsession(); + $uploads = isset($_SESSION['uploads']) ? $_SESSION['uploads'] : array(); + foreach($FD as $k=>$v) { + $value = isset($post_fields[$v['name']]) ? $post_fields[$v['name']] : ''; + if(in_array($v['html'], array('thumb', 'file', 'editor')) && $uploads) { + foreach($uploads as $sk=>$sv) { + if($v['html'] == 'editor') { + if(strpos($value, $sv) !== false) unset($_SESSION['uploads'][$sk]); + } else { + if($sv == $value) unset($_SESSION['uploads'][$sk]); + } + } + } + if(!$v['input_limit']) continue; + if(!defined('DT_ADMIN') && !$v['front']) continue; + if($v['input_limit'] == 'is_date') { + if(!is_date($value)) fields_message(lang($L['fields_input'], array($v['title']))); + } else if($v['input_limit'] == 'is_time') { + if(!is_time($value)) fields_message(lang($L['fields_input'], array($v['title']))); + } else if($v['input_limit'] == 'is_email') { + if(!is_email($value)) fields_message(lang($L['fields_valid'], array($v['title']))); + } else if(is_numeric($v['input_limit'])) { + $length = $value ? ($v['html'] == 'checkbox' ? count($value) : word_count($value)) : 0; + if($length < $v['input_limit']) fields_message(lang($L['fields_less'], array($v['title'], $v['input_limit']))); + } else if(preg_match("/^([0-9]{1,})\-([0-9]{1,})$/", $v['input_limit'], $m)) { + $length = $value ? ($v['html'] == 'checkbox' ? count($value) : word_count($value)) : 0; + if($m[1] && $length < $m[1]) fields_message(lang($L['fields_less'], array($v['title'], $m[1]))); + if($m[2] && $length > $m[2]) fields_message(lang($L['fields_more'], array($v['title'], $m[2]))); + } else { + if(!preg_match("/^".$v['input_limit']."$/", $value)) fields_message(lang($L['fields_match'], array($v['title']))); + } + } +} + +function fields_js($fd = array()) { + global $FD; + if($fd) $FD = $fd; + $js = ''; + include load('include.lang'); + foreach($FD as $k=>$v) { + if(!$v['input_limit']) continue; + if(!defined('DT_ADMIN') && !$v['front']) continue; + if($v['input_limit'] == 'is_date') { + $js .= 'f = "post_fields'.$v['name'].'";l = Dd(f).value.length;'; + $js .= 'if(l != 10) {Dmsg("'.lang($L['fields_input'], array($v['title'])).'", f, 1);return false;}'; + } else if($v['input_limit'] == 'is_time') { + $js .= 'f = "post_fields'.$v['name'].'";l = Dd(f).value.length;'; + $js .= 'if(l > 19 || l > 16) {Dmsg("'.lang($L['fields_input'], array($v['title'])).'", f, 1);return false;}'; + } else if($v['input_limit'] == 'is_email') { + $js .= 'f = "'.$v['name'].'";l = Dd(f).value.length;'; + $js .= 'if(l < 8) {Dmsg("'.lang($L['fields_input'], array($v['title'])).'", f);return false;}'; + } else if(is_numeric($v['input_limit'])) { + if($v['html'] == 'area') { + $js .= 'f = "'.$v['name'].'";l = Dd("areaid_1").value;'; + $js .= 'if(l == 0) {Dmsg("'.lang($L['fields_area']).'", f, 1);return false;}'; + } else if($v['html'] == 'checkboxs') { + $js .= 'f = "'.$v['name'].'";l = checked_count(f);'; + $js .= 'if(l < '.$v['input_limit'].') {Dmsg("'.lang($L['fields_less'], array($v['title'], $v['input_limit'])).'", f, 1);return false;}'; + } else { + $js .= 'f = "'.$v['name'].'";l = Dd(f).value.length;'; + $js .= 'if(l < '.$v['input_limit'].') {Dmsg("'.lang($L['fields_less'], array($v['title'], $v['input_limit'])).'", f);return false;}'; + } + } else if(preg_match("/^([0-9]{1,})\-([0-9]{1,})$/", $v['input_limit'], $m)) { + if($v['html'] == 'checkbox') { + $js .= 'f = "'.$v['name'].'";l = checked_count(f);'; + if($m[1]) $js .= 'if(l < '.$m[1].') {Dmsg("'.lang($L['fields_less'], array($v['title'], $m[1])).'", f, 1);return false;}'; + if($m[2]) $js .= 'if(l > '.$m[2].') {Dmsg("'.lang($L['fields_more'], array($v['title'], $m[2])).'", f, 1);return false;}'; + } else { + $js .= 'f = "'.$v['name'].'";l = Dd(f).value.length;'; + if($m[1]) $js .= 'if(l < '.$m[1].') {Dmsg("'.lang($L['fields_less'], array($v['title'], $m[1])).'", f);return false;}'; + if($m[2]) $js .= 'if(l > '.$m[2].') {Dmsg("'.lang($L['fields_more'], array($v['title'], $m[2])).'", f);return false;}'; + } + } else { + $js .= 'f = "'.$v['name'].'";l = Dd(f).value;'; + $js .= 'if(l.match(/^'.$v['input_limit'].'$/) == null) {Dmsg("'.lang($L['fields_match'], array($v['title'])).'", f);return false;}'; + } + } + return $js; +} + +function fields_html($left = '<td class="tl">', $right = '<td>', $values = array(), $fd = array()) { + extract($GLOBALS, EXTR_SKIP); + if($fd) $FD = $fd; + $html = ''; + foreach($FD as $k=>$v) { + if(!$v['display']) continue; + if(!defined('DT_ADMIN') && !$v['front']) continue; + $html .= fields_show($k, $left, $right, $values, $fd); + } + return $html; +} + +function fields_show($itemid, $left = '<td class="tl">', $right = '<td>', $values = array(), $fd = array()) { + extract($GLOBALS, EXTR_SKIP); + if($fd) $FD = $fd; + if(!$values) { + if(isset($item)) $values = $item; + if(isset($user)) $values = $user; + } + $html = ''; + $v = $FD[$itemid]; + $value = $v['default_value']; + $did = 'd'.$v['name']; + if(isset($values[$v['name']])) { + $value = $values[$v['name']]; + } else if($v['default_value']) { + eval('$value = "'.$v['default_value'].'";'); + } + if($v['html'] == 'hidden') { + $html .= '<input type="hidden" name="post_fields['.$v['name'].']" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].'/>'; + } else { + if($DT_PC) { + $html .= '<tr>'.$left; + if($v['input_limit']) { + $html .= '<span class="f_red">*</span> '; + } else { + $html .= defined('DT_ADMIN') ? '<span class="f_hid">*</span> ' : ''; + } + $html .= $v['title']; + $html .= '</td>'; + $html .= $right; + } else { + $html .= '<p>'.$v['title']; + if($v['input_limit']) $html .= '<em>*</em>'; + $html .= '<b id="'.$did.'"></b></p>'; + $html .= $v['html'] == 'editor' ? '' : '<div>'; + } + switch($v['html']) { + case 'text': + $html .= '<input type="text" name="post_fields['.$v['name'].']" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].'/>'; + break; + case 'textarea': + $html .= '<textarea name="post_fields['.$v['name'].']" id="'.$v['name'].'" '.$v['addition'].'>'.$value.'</textarea>'; + break; + case 'select': + if($v['option_value']) { + $html .= '<select name="post_fields['.$v['name'].']" id="'.$v['name'].'" '.$v['addition'].'><option value="">'.$L['choose'].'</option>'; + $rows = explode("*", $v['option_value']); + foreach($rows as $row) { + if($row) { + $cols = explode("|", trim($row)); + $html .= '<option value="'.$cols[0].'"'.($cols[0] == $value ? ' selected' : '').'>'.$cols[1].'</option>'; + } + } + $html .= '</select>'; + } + break; + case 'radio': + if($v['option_value']) { + $html .= '<span id="'.$v['name'].'">'; + $rows = explode("*", $v['option_value']); + foreach($rows as $rw => $row) { + if($row) { + $cols = explode("|", trim($row)); + $html .= '<input type="radio" name="post_fields['.$v['name'].']" value="'.$cols[0].'" id="'.$v['name'].'_'.$rw.'"'.($cols[0] == $value ? ' checked' : '').'> '.$cols[1].'   '; + } + } + $html .= '</span>'; + } + break; + case 'checkbox': + if($v['option_value']) { + $html .= '<span id="'.$v['name'].'">'; + $value = explode(',', $value); + $rows = explode("*", $v['option_value']); + foreach($rows as $rw => $row) { + if($row) { + $cols = explode("|", trim($row)); + $html .= '<input type="checkbox" name="post_fields['.$v['name'].'][]" value="'.$cols[0].'" id="'.$v['name'].'_'.$rw.'"'.(in_array($cols[0], $value) ? ' checked' : '').'> '.$cols[1].'   '; + } + } + $html .= '</span>'; + } + break; + case 'date': + if($DT_PC) { + $html .= dcalendar('post_fields['.$v['name'].']', $value); + $did = 'post_dfields'.$v['name']; + } else { + $html .= '<input type="date" name="post_fields['.$v['name'].']" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].'/>'; + } + break; + case 'time': + if($DT_PC) { + $html .= dcalendar('post_fields['.$v['name'].']', $value, '-', 1); + $did = 'post_dfields'.$v['name']; + } else { + $html .= '<input type="datetime-local" name="post_fields['.$v['name'].']" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].'/>'; + } + break; + case 'area': + $html .= ajax_area_select('post_fields['.$v['name'].']', $GLOBALS['L']['choose'], $value); + break; + case 'thumb': + if($DT_PC) { + $html .= '<input name="post_fields['.$v['name'].']" type="text" size="60" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].' ondblclick="Dthumb('.$moduleid.','.$v['width'].','.$v['height'].', Dd(\''.$v['name'].'\').value,\''.(defined('DT_ADMIN') ? '' : '1').'\',\''.$v['name'].'\');"/>  <span onclick="Dthumb('.$moduleid.','.$v['width'].','.$v['height'].', Dd(\''.$v['name'].'\').value,\''.(defined('DT_ADMIN') ? '' : '1').'\',\''.$v['name'].'\');" class="jt">['.$L['upload'].']</span>  <span onclick="_preview(Dd(\''.$v['name'].'\').value);" class="jt">['.$L['preview'].']</span>  <span onclick="Dd(\''.$v['name'].'\').value=\'\';" class="jt">['.$L['delete'].']</span>'; + } else { + $html .= '<input type="url" name="post_fields['.$v['name'].']" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].'/>'; + $html .= '</div><div class="ui-form-file-upload"><div id="'.$v['name'].'-picker"></div></div>'; + $html .= '<script type="text/javascript">'; + $html .= 'var file_'.$v['name'].' = WebUploader.create({'; + $html .= ' auto: true,'; + $html .= ' server: UPPath+\'?moduleid='.$moduleid.'&action=webuploader&from=thumb&width='.$v['width'].'&height='.$v['height'].'\','; + $html .= ' pick: \'#'.$v['name'].'-picker\','; + $html .= ' accept: {'; + $html .= ' title: \'Images\','; + $html .= ' extensions: \'gif,jpg,jpeg,bmp,png\','; + $html .= ' mimeTypes: \'image/*\''; + $html .= ' },'; + $html .= ' resize: false'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'fileQueued\', function(file) {'; + $html .= ' Dtoast(\''.$js_pageid.'\',L[\'uploading\'], \'\', 30);'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadProgress\', function(file, percentage) {'; + $html .= ' var p = parseInt(percentage * 100);'; + $html .= ' $(\'#toast-'.$js_pageid.'\').html(p > 99 ? L[\'processing\'] : L[\'uploading\']+p+\'%\');'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadSuccess\', function(file, data) {'; + $html .= ' if(data.error) {'; + $html .= ' Dtoast(\''.$js_pageid.'\',data.message, \'\', 5);'; + $html .= ' } else {'; + $html .= ' $(\'#'.$v['name'].'\').val(data.url);'; + $html .= ' }'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadError\', function(file, data) {'; + $html .= ' Dtoast(\''.$js_pageid.'\',data.message, \'\', 5);'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadComplete\', function(file) {'; + $html .= ' $(\'#toast-'.$js_pageid.'\').hide();'; + $html .= '});'; + $html .= '</script>'; + return $html; + } + break; + case 'file': + if($DT_PC) { + $html .= '<input name="post_fields['.$v['name'].']" type="text" size="60" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].'/>  <span onclick="Dfile('.$moduleid.', Dd(\''.$v['name'].'\').value, \''.$v['name'].'\');" class="jt">['.$L['upload'].']</span>  <span onclick="if(Dd(\''.$v['name'].'\').value) window.open(Dd(\''.$v['name'].'\').value);" class="jt">['.$L['preview'].']</span>  <span onclick="Dd(\''.$v['name'].'\').value=\'\';" class="jt">['.$L['delete'].']</span>'; + } else { + $html .= '<input type="url" name="post_fields['.$v['name'].']" id="'.$v['name'].'" value="'.$value.'" '.$v['addition'].'/>'; + $html .= '</div><div class="ui-form-file-upload"><div id="'.$v['name'].'-picker"></div></div>'; + $html .= '<script type="text/javascript">'; + $html .= 'var file_'.$v['name'].' = WebUploader.create({'; + $html .= ' auto: true,'; + $html .= ' server: UPPath+\'?moduleid='.$moduleid.'&action=webuploader&from=file\','; + $html .= ' pick: \'#'.$v['name'].'-picker\','; + $html .= ' resize: false'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'fileQueued\', function(file) {'; + $html .= ' Dtoast(\''.$js_pageid.'\',L[\'uploading\'], \'\', 30);'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadProgress\', function(file, percentage) {'; + $html .= ' var p = parseInt(percentage * 100);'; + $html .= ' $(\'#toast-'.$js_pageid.'\').html(p > 99 ? L[\'processing\'] : L[\'uploading\']+p+\'%\');'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadSuccess\', function(file, data) {'; + $html .= ' if(data.error) {'; + $html .= ' Dtoast(\''.$js_pageid.'\',data.message, \'\', 5);'; + $html .= ' } else {'; + $html .= ' $(\'#'.$v['name'].'\').val(data.url);'; + $html .= ' }'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadError\', function(file, data) {'; + $html .= ' Dtoast(\''.$js_pageid.'\',data.message, \'\', 5);'; + $html .= '});'; + $html .= 'file_'.$v['name'].'.on(\'uploadComplete\', function(file) {'; + $html .= ' $(\'#toast-'.$js_pageid.'\').hide();'; + $html .= '});'; + $html .= '</script>'; + return $html; + } + break; + case 'editor': + if($DT_PC) { + $toolbar = isset($group_editor) ? $group_editor : 'Destoon'; + $width = $v['width']; + if($width < 101) $width = $width.'%'; + if(DT_EDITOR == 'fckeditor') { + $html .= '<textarea name="post_fields['.$v['name'].']" id="'.$v['name'].'" style="display:none">'.$value.'</textarea><iframe id="'.$v['name'].'___Frame" src="'.$MODULE[2]['linkurl'].'editor/fckeditor/editor/fckeditor.html?InstanceName='.$v['name'].'&Toolbar='.$toolbar.'" width="'.$width.'" height="'.$v['height'].'" frameborder="no" scrolling="no"></iframe><br/>'; + } else { + $html .= '<textarea name="post_fields['.$v['name'].']" id="'.$v['name'].'" style="display:none">'.$value.'</textarea>'. deditor($moduleid, $v['name'], $toolbar, $width, $v['height']); + } + } else { + $html .= '</div>'; + $html .= '<input type="hidden" name="post_fields['.$v['name'].']" id="'.$v['name'].'" '.$v['addition'].'/>'; + $html .= '<ul class="ui-editor-toolbar">'; + $html .= '<li class="ui-editor-img"><div id="editor-'.$v['name'].'-picker"></div></li>'; + $html .= '<li class="ui-editor-bold" id="editor-'.$v['name'].'-bold" editor-action="bold">B</li>'; + $html .= '<li class="ui-editor-italic" id="editor-'.$v['name'].'-italic" editor-action="italic">I</li>'; + $html .= '<li class="ui-editor-underline" id="editor-'.$v['name'].'-underline" editor-action="underline">U</li>'; + $html .= '</ul>'; + $html .= '<div class="ui-editor-content" id="editor-'.$v['name'].'">'.$value.'</div>'; + $html .= '<script type="text/javascript">'; + $html .= '$(function(){'; + $html .= ' $(\'#editor-'.$v['name'].'\').DEditor({'; + $html .= ' editorid: \'editor-'.$v['name'].'\','; + $html .= ' textareaid: \''.$v['name'].'\','; + $html .= ' server: UPPath+\'?moduleid='.$moduleid.'&action=webuploader&from=editor\''; + $html .= ' });'; + $html .= '});'; + $html .= '</script>'; + $html .= '<div class="ui-form">'; + return $html; + } + + break; + } + if($DT_PC) { + $html .= ' <span class="f_red" id="'.$did.'"></span>'; + $html .= $v['note']; + $html .= '</td></tr>'; + } else { + $html .= '</div>'; + } + } + return $html; +} + +function fields_message($msg) { + defined('DT_ADMIN') ? msg($msg) : dalert($msg); +} +?> \ No newline at end of file diff --git a/include/file.func.php b/include/file.func.php new file mode 100644 index 0000000..03d3ec4 --- /dev/null +++ b/include/file.func.php @@ -0,0 +1,256 @@ +<?php +/* + [DESTOON B2B System] Copyright (c) 2008-2018 www.destoon.com + This is NOT a freeware, use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +if(!function_exists('file_put_contents')) { + define('FILE_APPEND', 8); + function file_put_contents($file, $string, $append = '') { + $mode = $append == '' ? 'wb' : 'ab'; + $fp = @fopen($file, $mode) or exit("Can not open $file"); + flock($fp, LOCK_EX); + $stringlen = @fwrite($fp, $string); + flock($fp, LOCK_UN); + @fclose($fp); + return $stringlen; + } +} + +function file_ext($filename) { + if(strpos($filename, '.') === false) return ''; + $ext = strtolower(trim(substr(strrchr($filename, '.'), 1))); + return preg_match("/^[a-z0-9]{1,10}$/", $ext) ? $ext : ''; +} + +function file_vname($name) { + if(strpos($name, '/') === false) return str_replace(array(' ', '\\', ':', '*', '?', '"', '<', '>', '|', "'", '$', '&', '%', '#', '@'), array('-', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), $name); + $tmp = explode('/', $name); + $str = ''; + foreach($tmp as $k=>$v) { + $str .= ($k ? '/' : '').file_vname($v); + } + return $str; +} + +function file_down($file, $filename = '', $data = '') { + if(!$data && !is_file($file)) exit; + $filename = $filename ? $filename : basename($file); + $filetype = file_ext($filename); + $filesize = $data ? strlen($data) : filesize($file); + ob_end_clean(); + @set_time_limit(0); + if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + } else { + header('Pragma: no-cache'); + } + header('Expires: '.gmdate('D, d M Y H:i:s').' GMT'); + header('Content-Encoding: none'); + header('Content-Length: '.$filesize); + header('Content-Disposition: attachment; filename='.$filename); + header('Content-Type: '.$filetype); + if($data) { echo $data; } else { readfile($file); } + exit; +} + +function file_list($dir, $fs = array()) { + $files = glob($dir.'/*'); + if(!is_array($files)) return $fs; + foreach($files as $file) { + if(is_dir($file)) { + $fs = file_list($file, $fs); + } else { + $fs[] = $file; + } + } + return $fs; +} + +function file_get($filename) { + $rec = @file_get_contents($filename); + if($rec) return $rec; + if(substr($filename, 0, 8) == 'https://') return file_get('http://'.substr($filename, 8)); + return ''; +} + +function file_copy($from, $to) { + dir_create(dirname($to)); + if(is_file($to) && DT_CHMOD) @chmod($to, DT_CHMOD); + if(strpos($from, DT_PATH) !== false) $from = str_replace(DT_PATH, DT_ROOT.'/', $from); + if(@copy($from, $to)) { + if(DT_CHMOD) @chmod($to, DT_CHMOD); + return true; + } else { + if(substr($from, 0, 8) == 'https://') return file_copy('http://'.substr($from, 8), $to); + return false; + } +} + +function file_put($filename, $data) { + dir_create(dirname($filename)); + if(@$fp = fopen($filename, 'wb')) { + flock($fp, LOCK_EX); + $len = fwrite($fp, $data); + flock($fp, LOCK_UN); + fclose($fp); + if(DT_CHMOD) @chmod($filename, DT_CHMOD); + return $len; + } else { + return false; + } +} + +function file_del($filename) { + if(DT_CHMOD) @chmod($filename, DT_CHMOD); + return is_file($filename) ? @unlink($filename) : false; +} + +function html_del($filename) { + file_del($filename); + file_del(str_replace(DT_ROOT, DT_ROOT.'/mobile', $filename)); +} + +function dir_path($dirpath) { + $dirpath = str_replace('\\', '/', $dirpath); + if(substr($dirpath, -1) != '/') $dirpath = $dirpath.'/'; + return $dirpath; +} + +function dir_create($path) { + if(is_dir($path)) return true; + if(DT_CACHE != DT_ROOT.'/file/cache' && strpos($path, DT_CACHE) !== false) { + $dir = str_replace(DT_CACHE.'/', '', $path); + $dir = dir_path($dir); + $temp = explode('/', $dir); + $cur_dir = DT_CACHE.'/'; + $max = count($temp) - 1; + for($i = 0; $i < $max; $i++) { + $cur_dir .= $temp[$i].'/'; + if(is_dir($cur_dir)) continue; + @mkdir($cur_dir); + if(DT_CHMOD) @chmod($cur_dir, DT_CHMOD); + } + } else { + $dir = str_replace(DT_ROOT.'/', '', $path); + $dir = dir_path($dir); + $temp = explode('/', $dir); + $cur_dir = DT_ROOT.'/'; + $max = count($temp) - 1; + for($i = 0; $i < $max; $i++) { + $cur_dir .= $temp[$i].'/'; + if(is_dir($cur_dir)) continue; + @mkdir($cur_dir); + if(DT_CHMOD) @chmod($cur_dir, DT_CHMOD); + } + } + return is_dir($path); +} + +function dir_chmod($dir, $mode = '', $require = 0) { + if(!$require) $require = substr($dir, -1) == '*' ? 2 : 0; + if($require) { + if($require == 2) $dir = substr($dir, 0, -1); + $dir = dir_path($dir); + $list = glob($dir.'*'); + foreach($list as $v) { + if(is_dir($v)) { + dir_chmod($v, $mode, 1); + } else { + @chmod(basename($v), $mode); + } + } + } + if(is_dir($dir)) { + @chmod($dir, $mode); + } else { + @chmod(basename($dir), $mode); + } +} + +function dir_copy($fromdir, $todir) { + $fromdir = dir_path($fromdir); + $todir = dir_path($todir); + if(!is_dir($fromdir)) return false; + if(!is_dir($todir)) dir_create($todir); + $list = glob($fromdir.'*'); + foreach($list as $v) { + $path = $todir.basename($v); + if(is_file($path) && !is_writable($path)) { + if(DT_CHMOD) @chmod($path, DT_CHMOD); + } + if(is_dir($v)) { + dir_copy($v, $path); + } else { + @copy($v, $path); + if(DT_CHMOD) @chmod($path, DT_CHMOD); + } + } + return true; +} + +function dir_delete($dir) { + $dir = dir_path($dir); + if(!is_dir($dir)) return false; + $dirs = array(DT_ROOT.'/admin/', DT_ROOT.'/api/', DT_CACHE.'/', DT_ROOT.'/file/', DT_ROOT.'/cache/', DT_ROOT.'/include/', DT_ROOT.'/lang/', DT_ROOT.'/member/', DT_ROOT.'/module/', DT_ROOT.'/skin/', DT_ROOT.'/template/', DT_ROOT.'/mobile/'); + if(substr($dir, 0, 1) == '.' || in_array($dir, $dirs)) die("Cannot Remove System DIR $dir "); + $list = glob($dir.'*'); + if($list) { + foreach($list as $v) { + is_dir($v) ? dir_delete($v) : @unlink($v); + } + } + return @rmdir($dir); +} + +function get_file($dir, $ext = '', $fs = array()) { + $files = glob($dir.'/*'); + if(!is_array($files)) return $fs; + foreach($files as $file) { + if(is_dir($file)) { + if(is_file($file.'/index.php') && is_file($file.'/config.inc.php')) continue; + $fs = get_file($file, $ext, $fs); + } else { + if($ext) { + if(preg_match("/\.($ext)$/i", $file)) $fs[] = $file; + } else { + $fs[] = $file; + } + } + } + return $fs; +} + +function is_write($file) { + if(DT_WIN) { + if(substr($file, -1) == '/') { + if(is_dir($file)) { + $file = $file.'writeable-test.tmp'; + if(@$fp = fopen($file, 'a')) { + flock($fp, LOCK_EX); + fwrite($fp, 'OK'); + flock($fp, LOCK_UN); + fclose($fp); + $tmp = file_get_contents($file); + unlink($file); + if($tmp == 'OK') return true; + } + return false; + } else { + dir_create($file); + if(is_dir($file)) return is_write($file); + return false; + } + } else { + if(@$fp = fopen($file, 'a')) { + fclose($fp); + return true; + } + return false; + } + } else { + return is_writeable($file); + } +} +?> \ No newline at end of file diff --git a/include/ftp.class.php b/include/ftp.class.php new file mode 100644 index 0000000..3952eb9 --- /dev/null +++ b/include/ftp.class.php @@ -0,0 +1,71 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dftp { + var $fp; + var $root; + var $connected = 0; + + function __construct($ftphost, $ftpuser, $ftppass, $ftpport = 21, $root = '/', $pasv = 0, $ssl = 0) { + if($ssl && function_exists('ftp_ssl_connect')) { + $this->fp = @ftp_ssl_connect($ftphost, $ftpport); + } else if(function_exists('ftp_connect')) { + $this->fp = @ftp_connect($ftphost, $ftpport); + } else { + return false; + } + $this->connected = @ftp_login($this->fp, $ftpuser, $ftppass); + @ftp_pasv($this->fp, $pasv); + $this->root = dir_path($root); + } + + function dftp($ftphost, $ftpuser, $ftppass, $ftpport = 21, $root = '/', $pasv = 0, $ssl = 0) { + $this->__construct($ftphost, $ftpuser, $ftppass, $ftpport, $root, $pasv, $ssl); + } + + function dftp_chdir($dir = '') { + return @ftp_chdir($this->fp, $this->root.$dir); + } + + function dftp_chmod($path, $mode = 0777) { + $path = $this->root.$path; + return function_exists('ftp_chmod') ? @ftp_chmod($this->fp, $mode, $path) : @ftp_site($this->fp, "CHMOD $mode $path"); + } + + function dftp_mkdir($dir, $mode = 0777) { + $temp = explode('/', $dir); + $cur_dir = ''; + $max = count($temp); + for($i = 0; $i < $max; $i++) { + $cur_dir .= $temp[$i].'/'; + if($this->dftp_chdir($cur_dir)) continue; + @ftp_mkdir($this->fp, $this->root.$cur_dir); + $this->dftp_chmod($cur_dir, $mode); + } + return $this->dftp_chdir($dir); + } + + function dftp_rmdir($dir) { + return @ftp_rmdir($this->fp, $this->root.$dir); + } + + function dftp_delete($file) { + return @ftp_delete($this->fp, $this->root.$file); + } + + function dftp_put($local, $remote = '') { + $remote or $remote = $local; + $local = DT_ROOT.'/'.$local; + $this->dftp_mkdir(dirname($remote)); + if(@ftp_put($this->fp, $this->root.$remote, $local, FTP_BINARY)) { + $this->dftp_chmod($remote); + return true; + } else { + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/global.func.php b/include/global.func.php new file mode 100644 index 0000000..f63162b --- /dev/null +++ b/include/global.func.php @@ -0,0 +1,1330 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function daddslashes($string) { + return is_array($string) ? array_map('daddslashes', $string) : addslashes($string); +} + +function dstripslashes($string) { + return is_array($string) ? array_map('dstripslashes', $string) : stripslashes($string); +} + +function dtrim($string) { + return str_replace(array(chr(10), chr(13), urldecode('%C2%A0'), "\t", ' '), array('', '', '', '', ''), $string); +} + +function dwrite($string) { + return str_replace(array(chr(10), chr(13), "'"), array('', '', "\'"), $string); +} + +function dheader($url) { + exit(header('location:'.$url)); +} + +function dmsg($dmsg = '', $dforward = '') { + if(!$dmsg && !$dforward) { + $dmsg = get_cookie('dmsg'); + if($dmsg) { + echo '<script type="text/javascript">showmsg(\''.$dmsg.'\');</script>'; + set_cookie('dmsg', ''); + } + } else { + set_cookie('dmsg', $dmsg); + $dforward = preg_replace("/(.*)([&?]rand=[0-9]*)(.*)/i", "\\1\\3", $dforward); + $dforward = str_replace('.php&', '.php?', $dforward); + $dforward = strpos($dforward, '?') === false ? $dforward.'?rand='.mt_rand(10, 99) : str_replace('?', '?rand='.mt_rand(10, 99).'&', $dforward); + dheader($dforward); + } +} + +function dalert($dmessage = errmsg, $dforward = '', $extend = '') { + global $DT; + exit(include template('alert', 'message')); +} + +function dsubstr($string, $length, $suffix = '', $start = 0) { + if($start) { + $tmp = dsubstr($string, $start); + $string = substr($string, strlen($tmp)); + } + $strlen = strlen($string); + if($strlen <= $length) return $string; + $string = str_replace(array('"', '<', '>'), array('"', '<', '>'), $string); + $length = $length - strlen($suffix); + $str = ''; + if(DT_CHARSET == 'UTF-8') { + $n = $tn = $noc = 0; + while($n < $strlen) { + $t = ord($string[$n]); + if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { + $tn = 1; $n++; $noc++; + } elseif(194 <= $t && $t <= 223) { + $tn = 2; $n += 2; $noc += 2; + } elseif(224 <= $t && $t <= 239) { + $tn = 3; $n += 3; $noc += 2; + } elseif(240 <= $t && $t <= 247) { + $tn = 4; $n += 4; $noc += 2; + } elseif(248 <= $t && $t <= 251) { + $tn = 5; $n += 5; $noc += 2; + } elseif($t == 252 || $t == 253) { + $tn = 6; $n += 6; $noc += 2; + } else { + $n++; + } + if($noc >= $length) break; + } + if($noc > $length) $n -= $tn; + $str = substr($string, 0, $n); + } else { + for($i = 0; $i < $length; $i++) { + $str .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; + } + } + $str = str_replace(array('"', '<', '>'), array('"', '<', '>'), $str); + return $str == $string ? $str : $str.$suffix; +} + +function match_kw($key, $keyword) { + $sign = substr($keyword, 0, 1); + $kw = substr($keyword, 1); + if($sign == '=') { + return " AND ".$key."='".$kw."'"; + } else if($sign == '!') { + return " AND ".$key."<>'".$kw."'"; + } else if($sign == '>') { + if(is_numeric($kw)) return " AND ".$key.">'".$kw."'"; + } else if($sign == '<') { + if(is_numeric($kw)) return " AND ".$key."<'".$kw."'"; + } + return " AND ".$key." LIKE '%".$keyword."%'"; +} + +function cutstr($str, $mark1 = '', $mark2 = '') { + if($mark1) { + $p1 = strpos($str, $mark1); + if($p1 !== false) $str = substr($str, $p1 + strlen($mark1)); + } + if(!$mark2) return $str; + $p2 = strpos($str, $mark2); + if($p2 === false) return $str; + return substr($str, 0, $p2); +} + +function encrypt($txt, $key = '', $expiry = 0) { + strlen($key) > 5 or $key = DT_KEY; + $str = $txt.substr($key, 0, 3); + return str_replace(array('=', '+', '/', '0x', '0X'), array('-E-', '-P-', '-S-', '-Z-', '-X-'), mycrypt($str, $key, 'ENCODE', $expiry)); +} + +function decrypt($txt, $key = '') { + strlen($key) > 5 or $key = DT_KEY; + $str = mycrypt(str_replace(array('-E-', '-P-', '-S-', '-Z-', '-X-'), array('=', '+', '/', '0x', '0X'), $txt), $key, 'DECODE'); + return substr($str, -3) == substr($key, 0, 3) ? substr($str, 0, -3) : ''; +} + +function mycrypt($string, $key, $operation = 'DECODE', $expiry = 0) { + $ckey_length = 4; + $key = md5($key); + $keya = md5(substr($key, 0, 16)); + $keyb = md5(substr($key, 16, 16)); + $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ''; + $cryptkey = $keya.md5($keya.$keyc); + $key_length = strlen($cryptkey); + $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + DT_TIME : 0).substr(md5($string.$keyb), 0, 16).$string; + $string_length = strlen($string); + $result = ''; + $box = range(0, 255); + $rndkey = array(); + for($i = 0; $i <= 255; $i++) { + $rndkey[$i] = ord($cryptkey[$i % $key_length]); + } + for($j = $i = 0; $i < 256; $i++) { + $j = ($j + $box[$i] + $rndkey[$i]) % 256; + $tmp = $box[$i]; + $box[$i] = $box[$j]; + $box[$j] = $tmp; + } + for($a = $j = $i = 0; $i < $string_length; $i++) { + $a = ($a + 1) % 256; + $j = ($j + $box[$a]) % 256; + $tmp = $box[$a]; + $box[$a] = $box[$j]; + $box[$j] = $tmp; + $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); + } + if($operation == 'DECODE') { + if((substr($result, 0, 10) == 0 || intval(substr($result, 0, 10)) - DT_TIME > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { + return substr($result, 26); + } else { + return ''; + } + } else { + return $keyc.base64_encode($result); + } +} + +function dround($var, $precision = 2, $sprinft = false) { + $var = round(floatval($var), $precision); + if($sprinft) $var = sprintf('%.'.$precision.'f', $var); + return $var; +} + +function dalloc($i, $n = 5000) { + return ceil($i/$n); +} + +function strip_nr($string, $js = false) { + $string = str_replace(array(chr(13), chr(10), "\n", "\r", "\t", ' '),array('', '', '', '', '', ''), $string); + if($js) $string = str_replace("'", "\'", $string); + return $string; +} + +function template($template = 'index', $dir = '') { + global $CFG, $DT_PC; + check_name($template) or exit('BAD TPL NAME'); + if($dir) check_name($dir) or exit('BAD TPL DIR'); + $tpl = $DT_PC ? $CFG['template'] : $CFG['template_mobile']; + $to = DT_CACHE.'/tpl/'.$tpl.'/'.($dir ? $dir.'/' : '').$template.'.php'; + $isfileto = is_file($to); + if($CFG['template_refresh'] || !$isfileto) { + if($dir) $dir = $dir.'/'; + $from = DT_ROOT.'/template/'.$tpl.'/'.$dir.$template.'.htm'; + if(!is_file($from)) $from = DT_ROOT.'/template/'.($DT_PC ? 'default' : 'mobile').'/'.$dir.$template.'.htm'; + if(!$isfileto || filemtime($from) > filemtime($to) || (filesize($to) == 0 && filesize($from) > 0)) { + require_once DT_ROOT.'/include/template.func.php'; + template_compile($from, $to); + } + } + return $to; +} + +function ob_template($template, $dir = '') { + extract($GLOBALS, EXTR_SKIP); + ob_start(); + include template($template, $dir); + $contents = ob_get_contents(); + ob_clean(); + return $contents; +} + +function message($dmessage = errmsg, $dforward = 'goback', $dtime = 1) { + if(!$dmessage && $dforward && $dforward != 'goback') dheader($dforward); + global $DT, $DT_PC; + exit(include template('message', 'message')); +} + +function login() { + global $_userid, $MODULE, $DT_URL, $DT_PC, $DT; + $_userid or dheader(($DT_PC ? $MODULE[2]['linkurl'] : $MODULE[2]['mobile']).$DT['file_login'].'?forward='.rawurlencode($DT_URL)); +} + +function random($length, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz') { + if($chars == '0-9') { + $chars = '0123456789'; + } else if($chars == 'a-z') { + $chars = 'abcdefghijklmnopqrstuvwxyz'; + } else if($chars == 'A-Z') { + $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + } else if($chars == 'a-Z') { + $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + } + $str = ''; + $max = strlen($chars) - 1; + for($i = 0; $i < $length; $i++) { + $str .= $chars[mt_rand(0, $max)]; + } + return $str; +} + +function set_cookie($var, $value = '', $time = 0) { + global $CFG; + $time = $time > 0 ? $time : (empty($value) ? DT_TIME - 3600 : 0); + $port = $_SERVER['SERVER_PORT'] == '443' ? 1 : 0; + $var = $CFG['cookie_pre'].$var; + return setcookie($var, $value, $time, $CFG['cookie_path'], $CFG['cookie_domain'], $port); +} + +function get_cookie($var) { + global $CFG; + $var = $CFG['cookie_pre'].$var; + return isset($_COOKIE[$var]) ? $_COOKIE[$var] : ''; +} + +function get_table($moduleid, $data = 0) { + global $MODULE; + $module = $MODULE[$moduleid]['module']; + $M = array('company', 'member'); + if($data) { + return in_array($module, $M) ? DT_PRE.$module.'_data' : DT_PRE.$module.'_data_'.$moduleid; + } else { + return in_array($module, $M) ? DT_PRE.$module : DT_PRE.$module.'_'.$moduleid; + } +} + +function get_process($fromtime, $totime) { + if($fromtime && DT_TIME < $fromtime) return 1; + if($totime && DT_TIME > $totime) return 3; + return 2; +} + +function send_message($touser, $title, $content, $typeid = 4, $fromuser = '', $mid = 0, $tid = 0) { + if($touser == $fromuser) return false; + if(check_name($touser) && $title && $content) { + $title = addslashes($title); + $content = addslashes($content); + $r = DB::get_one("SELECT black FROM ".DT_PRE."member_misc WHERE username='$touser'"); + if($r) { + $typeid = intval($typeid); + $mid = intval($mid); + $tid = intval($tid); + if($r['black'] && $typeid != 4) { + $blacks = explode(' ', $r['black']); + $_from = $fromuser ? $fromuser : 'Guest'; + if(in_array($_from, $blacks)) return false; + } + DB::query("INSERT INTO ".DT_PRE."message (title,typeid,touser,fromuser,content,addtime,ip,status,mid,tid) VALUES ('$title','$typeid','$touser','$fromuser','$content','".DT_TIME."','".DT_IP."','3','$mid','$tid')"); + DB::query("UPDATE ".DT_PRE."member SET message=message+1 WHERE username='$touser'"); + if($fromuser) { + DB::query("INSERT INTO ".DT_PRE."message (title,typeid,content,fromuser,touser,addtime,ip,status,mid,tid) VALUES ('$title','$typeid','$content','$fromuser','$touser','".DT_TIME."','".DT_IP."','2','$mid','$tid')"); + } + return true; + } + } + return false; +} + +function send_mail($mail_to, $mail_subject, $mail_body, $mail_from = '', $mail_sign = true) { + global $DT; + if(substr($mail_to, -4) == '.sns') return false; + require_once DT_ROOT.'/include/mail.func.php'; + $result = dmail(trim($mail_to), $mail_subject, $mail_body, $mail_from, $mail_sign); + $success = $result == 'SUCCESS' ? 1 : 0; + if($DT['mail_log']) { + $status = $success ? 3 : 2; + $note = $success ? '' : addslashes($result); + $mail_subject = stripslashes($mail_subject); + $mail_body = stripslashes($mail_body); + $mail_subject = addslashes($mail_subject); + $mail_body = addslashes($mail_body); + DB::query("INSERT INTO ".DT_PRE."mail_log (email,title,content,addtime,status,note) VALUES ('$mail_to','$mail_subject','$mail_body','".DT_TIME."','$status','$note')"); + } + return $success; +} + +function strip_sms($message) { + global $DT; + $message = strip_tags($message); + $message = trim($message); + $message = preg_replace("/&([a-z]{1,});/", '', $message); + if($DT['sms_sign']) $message .= $DT['sms_sign']; + return $message; +} + +function send_sms($mobile, $message, $word = 0, $time = 0) { + global $DT, $_username; + if(!$DT['sms'] || !DT_CLOUD_UID || !DT_CLOUD_KEY || !is_mobile($mobile) || strlen($message) < 5) return false; + $word or $word = word_count($message); + $sms_message = $message; + $data = 'sms_uid='.DT_CLOUD_UID.'&sms_key='.md5(DT_CLOUD_KEY.'|'.$mobile.'|'.md5($sms_message)).'&sms_charset='.DT_CHARSET.'&sms_mobile='.$mobile.'&sms_message='.rawurlencode($sms_message).'&sms_time='.$time.'&sms_url='.rawurlencode(DT_PATH); + $code = dcurl('http://sms.destoon.com/send.php', $data); + if($code && strpos($code, 'destoon_sms_code=') !== false) { + $code = explode('destoon_sms_code=', $code); + $code = $code[1]; + } else { + $code = 'Can Not Connect SMS Server'; + } + DB::query("INSERT INTO ".DT_PRE."sms (mobile,message,word,editor,sendtime,ip,code) VALUES ('$mobile','$message','$word','$_username','".DT_TIME."','".DT_IP."','$code')"); + return $code; +} + +function send_weixin($touser, $word) { + if(check_name($touser) && strlen($word) > 1) { + $user = DB::get_one("SELECT openid,push,visittime FROM ".DT_PRE."weixin_user WHERE username='$touser'"); + if($user && $user['openid'] && $user['push'] && DT_TIME - $user['visittime'] < 172800) { + $openid = $user['openid']; + $type = 'text'; + require_once DT_ROOT.'/api/weixin/init.inc.php'; + if(!is_object($wx)) { + $wx = new weixin; + $wx->access_token = $wx->get_token(); + } + $arr = $wx->send($openid, $type, $word); + if($arr['errcode'] != 0) return false; + $post = array(); + $post['content'] = $word; + $post['type'] = 'push'; + $post['openid'] = $openid; + $post['editor'] = 'system'; + $post['addtime'] = DT_TIME; + $post['misc'] = ''; + $post = daddslashes($post); + $sql = ''; + foreach($post as $k=>$v) { + $sql .= ",$k='$v'"; + } + DB::query("INSERT INTO ".DT_PRE."weixin_chat SET ".substr($sql, 1)); + return true; + } + } + return false; +} + +function word_count($string) { + if(function_exists('mb_strlen')) return mb_strlen($string, DT_CHARSET); + $string = convert($string, DT_CHARSET, 'gbk'); + $length = strlen($string); + $count = 0; + for($i = 0; $i < $length; $i++) { + $t = ord($string[$i]); + if($t > 127) $i++; + $count++; + } + return $count; +} + +function cache_read($file, $dir = '', $mode = '') { + $file = $dir ? DT_CACHE.'/'.$dir.'/'.$file : DT_CACHE.'/'.$file; + if(!is_file($file)) return $mode ? '' : array(); + return $mode ? file_get($file) : include $file; +} + +function cache_write($file, $string, $dir = '') { + if(is_array($string)) $string = "<?php defined('IN_DESTOON') or exit('Access Denied'); return ".strip_nr(var_export($string, true))."; ?>"; + $file = $dir ? DT_CACHE.'/'.$dir.'/'.$file : DT_CACHE.'/'.$file; + $strlen = file_put($file, $string); + return $strlen; +} + +function cache_delete($file, $dir = '') { + $file = $dir ? DT_CACHE.'/'.$dir.'/'.$file : DT_CACHE.'/'.$file; + return file_del($file); +} + +function cache_clear($str, $type = '', $dir = '') { + $dir = $dir ? DT_CACHE.'/'.$dir.'/' : DT_CACHE.'/'; + $files = glob($dir.'*'); + if(is_array($files)) { + if($type == 'dir') { + foreach($files as $file) { + if(is_dir($file)) {dir_delete($file);} else {if(file_ext($file) == $str) file_del($file);} + } + } else { + foreach($files as $file) { + if(!is_dir($file) && strpos(basename($file), $str) !== false) file_del($file); + } + } + } +} + +function content_table($moduleid, $itemid, $split, $table_data = '') { + if($split) { + return split_table($moduleid, $itemid); + } else { + $table_data or $table_data = get_table($moduleid, 1); + return $table_data; + } +} + +function split_table($moduleid, $itemid) { + $part = split_id($itemid); + return DT_PRE.$moduleid.'_'.$part; +} + +function split_id($id) { + return $id > 0 ? ceil($id/100000) : 1; +} + +function ip2area($ip) { + $area = ''; + if(is_ip($ip)) { + $tmp = explode('.', $ip); + if($tmp[0] == 10 || $tmp[0] == 127 || ($tmp[0] == 192 && $tmp[1] == 168) || ($tmp[0] == 172 && ($tmp[1] >= 16 && $tmp[1] <= 31))) { + $area = 'LAN'; + } elseif($tmp[0] > 255 || $tmp[1] > 255 || $tmp[2] > 255 || $tmp[3] > 255) { + $area = 'Unknown'; + } else { + require_once DT_ROOT.'/include/ip.class.php'; + $do = new ip($ip); + $area = $do->area(); + } + } + return $area ? $area : 'Unknown'; +} + +function banip() { + $IP = cache_read('banip.php'); + if($IP) { + $ban = false; + foreach($IP as $v) { + if($v['totime'] && $v['totime'] < DT_TIME) continue; + if($v['ip'] == DT_IP) { $ban = true; break; } + if(stripos(DT_UA, $v['ip']) !== false) { $ban = true; break; } + if(preg_match("/^".str_replace('*', '[0-9]{1,3}', $v['ip'])."$/", DT_IP)) { $ban = true; break; } + } + if($ban) message(lang('include->msg_ip_ban')); + } +} + +function banword($WORD, $string, $extend = true, $goback = '') { + $string = stripslashes($string); + foreach($WORD as $v) { + $v[0] = preg_quote($v[0]); + $v[0] = str_replace('/', '\/', $v[0]); + $v[0] = str_replace("\*", ".*", $v[0]); + if($v[2] && $extend) { + if(preg_match("/".$v[0]."/i", $string)) dalert(lang('include->msg_word_ban').($v[2] == 2 ? ':'.$v[0] : ''), $goback); + } else { + if($string == '') break; + if(preg_match("/".$v[0]."/i", $string)) $string = preg_replace("/".$v[0]."/i", $v[1], $string); + } + } + return addslashes($string); +} + +function get_env($type, $par = '') { + switch($type) { + case 'ip': + if(DT_CDN) { + if(isset($_SERVER['X-REAL-IP']) && is_ip($_SERVER['X-REAL-IP'])) return $_SERVER['X-REAL-IP']; + if(isset($_SERVER['HTTP_CF_CONNECTING_IP']) && is_ip($_SERVER['HTTP_CF_CONNECTING_IP'])) return $_SERVER['HTTP_CF_CONNECTING_IP']; + if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { + if(is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])) return $_SERVER['HTTP_X_FORWARDED_FOR']; + $ip = trim(end(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']))); + if(is_ip($ip)) return $ip; + } + } + if(isset($_SERVER['HTTP_CF_CONNECTING_IP']) && is_ip($_SERVER['HTTP_CF_CONNECTING_IP'])) return $_SERVER['HTTP_CF_CONNECTING_IP']; + if(isset($_SERVER['REMOTE_ADDR']) && is_ip($_SERVER['REMOTE_ADDR'])) return $_SERVER['REMOTE_ADDR']; + if(isset($_SERVER['HTTP_CLIENT_IP']) && is_ip($_SERVER['HTTP_CLIENT_IP'])) return $_SERVER['HTTP_CLIENT_IP']; + if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { + if(is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])) return $_SERVER['HTTP_X_FORWARDED_FOR']; + $ip = trim(end(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']))); + if(is_ip($ip)) return $ip; + } + return '0.0.0.0'; + break; + case 'self': + return isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : (isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : $_SERVER['ORIG_PATH_INFO']); + break; + case 'referer': + return isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; + break; + case 'domain': + return $_SERVER['SERVER_NAME']; + break; + case 'scheme': + if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && in_array($_SERVER['HTTP_X_FORWARDED_PROTO'], array('http', 'https'))) return $_SERVER['HTTP_X_FORWARDED_PROTO'].'://'; + if(isset($_SERVER['HTTP_X_CLIENT_SCHEME']) && in_array($_SERVER['HTTP_X_CLIENT_SCHEME'], array('http', 'https'))) return $_SERVER['HTTP_X_CLIENT_SCHEME'].'://'; + if($_SERVER['SERVER_PORT'] == '443') return 'https://'; + if($_SERVER['SERVER_PORT'] == '80') return 'http://'; + return substr(DT_PATH, 0, 5) == 'https' ? 'https://' : 'http://'; + break; + case 'port': + return ($_SERVER['SERVER_PORT'] == '80' || $_SERVER['SERVER_PORT'] == '443') ? '' : ':'.$_SERVER['SERVER_PORT']; + break; + case 'host': + return preg_match("/^[a-z0-9_\-\.]{4,}$/i", $_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''; + break; + case 'url': + if(isset($_SERVER['HTTP_X_REWRITE_URL']) && $_SERVER['HTTP_X_REWRITE_URL']) { + $uri = $_SERVER['HTTP_X_REWRITE_URL']; + } else if(isset($_SERVER['HTTP_X_ORIGINAL_URL']) && $_SERVER['HTTP_X_ORIGINAL_URL']) { + $uri = $_SERVER['HTTP_X_ORIGINAL_URL']; + } else if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI']) { + $uri = $_SERVER['REQUEST_URI']; + } else { + $uri = $_SERVER['PHP_SELF']; + if(isset($_SERVER['argv'])) { + if(isset($_SERVER['argv'][0])) $uri .= '?'.$_SERVER['argv'][0]; + } else { + $uri .= '?'.$_SERVER['QUERY_STRING']; + } + } + $uri = dhtmlspecialchars($uri); + if(strpos($uri, '.php?') !== false && strpos($uri, '.html') !== false && strpos($uri, '=') === false) $uri = str_replace('.php?', '-htm-', $uri); + return get_env('scheme').$_SERVER['HTTP_HOST'].(strpos($_SERVER['HTTP_HOST'], ':') === false ? get_env('port') : '').$uri; + break; + case 'mobile': + $ua = strtolower(DT_UA); + if(strpos($ua, 'iphone') !== false || strpos($ua, 'ipod') !== false) return 'ios'; + if(strpos($ua, 'android') !== false || strpos($ua, 'adr') !== false) return 'android'; + return ''; + break; + case 'browser': + $ck = get_cookie('mobile'); + if(in_array($ck, array('app', 'b2b', 'web', 'screen'))) return $ck; + $browser = ''; + $ua = strtolower(DT_UA); + if(strpos($ua, 'micromessenger/') !== false) { + $browser = 'weixin'; + if(strpos($ua, 'miniprogram') !== false) { + $browser = 'wxxcx'; + } elseif(strpos($ua, 'wxwork') !== false) { + $browser = 'wxwork'; + } + } else if(strpos($ua, 'tim/') !== false) { + $browser = 'tim'; + } else if(strpos($ua, 'qq/') !== false) { + $browser = 'qq'; + } else if(strpos($ua, 'alipay') !== false) { + $browser = 'alipay'; + } else if(strpos($ua, 'dingtalk') !== false) { + $browser = 'dingtalk'; + } else if(strpos($ua, 'weibo') !== false) { + $browser = 'weibo'; + } + return $browser; + break; + } +} + +function convert($str, $from = 'utf-8', $to = 'gb2312') { + if(!$str) return ''; + $from = strtolower($from); + $to = strtolower($to); + if($from == $to) return $str; + $from = str_replace('gbk', 'gb2312', $from); + $to = str_replace('gbk', 'gb2312', $to); + $from = str_replace('utf8', 'utf-8', $from); + $to = str_replace('utf8', 'utf-8', $to); + if($from == $to) return $str; + $tmp = array(); + if(function_exists('mb_convert_encoding')) { + if(is_array($str)) { + foreach($str as $key => $val) { + $tmp[$key] = mb_convert_encoding($val, $to, $from); + } + return $tmp; + } else { + return mb_convert_encoding($str, $to, $from); + } + } else if(function_exists('iconv')) { + if(is_array($str)) { + foreach($str as $key => $val) { + $tmp[$key] = iconv($from, $to."//IGNORE", $val); + } + return $tmp; + } else { + return iconv($from, $to."//IGNORE", $str); + } + } else { + require_once DT_ROOT.'/include/convert.func.php'; + return dconvert($str, $from, $to); + } +} + +function get_type($item, $cache = 0) { + $types = array(); + if($cache) { + $types = cache_read('type-'.$item.'.php'); + } else { + $result = DB::query("SELECT * FROM ".DT_PRE."type WHERE item='$item' ORDER BY listorder ASC,typeid DESC "); + while($r = DB::fetch_array($result)) { + $types[$r['typeid']] = $r; + } + } + return $types; +} + +function get_cat($catid) { + if(!is_numeric($catid)) return array(); + $catid = intval($catid); + return $catid ? DB::get_one("SELECT * FROM ".DT_PRE."category WHERE catid=$catid") : array(); +} + +function cat_pos($CAT, $str = ' » ', $target = '', $deep = 0, $start = 0) { + global $MODULE; + if(!$CAT) return ''; + $arrparentids = $CAT['arrparentid'].','.$CAT['catid']; + $arrparentid = explode(',', $arrparentids); + $pos = ''; + $target = $target ? ' target="_blank"' : ''; + $CATEGORY = array(); + $result = DB::query("SELECT catid,moduleid,catname,linkurl FROM ".DT_PRE."category WHERE catid IN ($arrparentids)", 'CACHE'); + while($r = DB::fetch_array($result)) { + $CATEGORY[$r['catid']] = $r; + } + if($deep) $i = 1; + $j = 0; + foreach($arrparentid as $catid) { + if(!$catid || !isset($CATEGORY[$catid])) continue; + if($j++ < $start) continue; + if($deep) { + if($i > $deep) continue; + $i++; + } + $pos .= '<a href="'.$MODULE[$CATEGORY[$catid]['moduleid']]['linkurl'].$CATEGORY[$catid]['linkurl'].'"'.$target.'>'.$CATEGORY[$catid]['catname'].'</a>'.$str; + } + $_len = strlen($str); + if($str && substr($pos, -$_len, $_len) === $str) $pos = substr($pos, 0, strlen($pos) - $_len); + return $pos; +} + +function cat_url($catid, $pc = 1) { + global $MODULE; + $catid = intval($catid); + $r = DB::get_one("SELECT moduleid,linkurl FROM ".DT_PRE."category WHERE catid=$catid"); + return $r ? ($pc ? $MODULE[$r['moduleid']]['linkurl'] : $MODULE[$r['moduleid']]['mobile']).$r['linkurl'] : ''; +} + +function get_area($areaid) { + if(!is_numeric($areaid)) return array(); + $areaid = intval($areaid); + return $areaid ? DB::get_one("SELECT * FROM ".DT_PRE."area WHERE areaid=$areaid") : array(); +} + +function area_pos($areaid, $str = ' » ', $deep = 0, $start = 0) { + $areaid = intval($areaid); + if($areaid) { + global $AREA; + } else { + global $L; + return $L['allcity']; + } + $AREA or $AREA = cache_read('area.php'); + $arrparentid = $AREA[$areaid]['arrparentid'] ? explode(',', $AREA[$areaid]['arrparentid']) : array(); + $arrparentid[] = $areaid; + $pos = ''; + if($deep) $i = 1; + $j = 0; + foreach($arrparentid as $areaid) { + if(!$areaid || !isset($AREA[$areaid])) continue; + if($j++ < $start) continue; + if($deep) { + if($i > $deep) continue; + $i++; + } + $pos .= $AREA[$areaid]['areaname'].$str; + } + $_len = strlen($str); + if($str && substr($pos, -$_len, $_len) === $str) $pos = substr($pos, 0, strlen($pos)-$_len); + return $pos; +} + +function get_maincat($catid, $moduleid, $level = -1) { + $catid = intval($catid); + $condition = $catid ? "parentid=$catid" : "moduleid=$moduleid AND parentid=0"; + if($level >= 0) $condition .= " AND level=$level"; + $cat = array(); + $result = DB::query("SELECT catid,catname,child,style,linkurl,item FROM ".DT_PRE."category WHERE $condition ORDER BY listorder,catid ASC", 'CACHE'); + while($r = DB::fetch_array($result)) { + $cat[] = $r; + } + return $cat; +} + +function get_mainarea($areaid) { + $areaid = intval($areaid); + $are = array(); + $result = DB::query("SELECT areaid,areaname FROM ".DT_PRE."area WHERE parentid=$areaid ORDER BY listorder,areaid ASC", 'CACHE'); + while($r = DB::fetch_array($result)) { + $are[] = $r; + } + return $are; +} + +function get_user($value, $key = 'username', $from = 'userid') { + $r = DB::get_one("SELECT `$from` FROM ".DT_PRE."member WHERE `$key`='$value'"); + return $r[$from]; +} + +function check_group($groupid, $groupids) { + if(!$groupids || $groupid == 1) return true; + if($groupid == 4) $groupid = 3; + return in_array($groupid, explode(',', $groupids)); +} + +function tohtml($htmlfile, $module = '', $parameter = '') { + defined('TOHTML') or define('TOHTML', true); + extract($GLOBALS, EXTR_SKIP); + if($parameter) { + parse_str($parameter, $par); + extract($par, EXTR_OVERWRITE); + } + include $module ? DT_ROOT.'/module/'.$module.'/'.$htmlfile.'.htm.php' : DT_ROOT.'/include/'.$htmlfile.'.htm.php'; +} + +function set_style($string, $style = '', $tag = 'span') { + if(preg_match("/^#[0-9a-zA-Z]{6}$/", $style)) $style = 'color:'.$style; + return $style ? '<'.$tag.' style="'.$style.'">'.$string.'</'.$tag.'>' : $string; +} + +function crypt_action($action) { + return md5(md5($action.DT_KEY.DT_IP)); +} + +function captcha($captcha, $enable = 1, $return = false) { + global $DT, $session; + if($enable) { + if($DT['captcha_cn']) { + if(strlen($captcha) < 4) { + $msg = lang('include->captcha_missed'); + return $return ? $msg : message($msg); + } + } else { + if(!preg_match("/^[0-9a-z]{4,}$/i", $captcha)) { + $msg = lang('include->captcha_missed'); + return $return ? $msg : message($msg); + } + } + if(!is_object($session)) $session = new dsession(); + if(!isset($_SESSION['captchastr'])) { + $msg = lang('include->captcha_expired'); + return $return ? $msg : message($msg); + } + if(decrypt($_SESSION['captchastr'], DT_KEY.'CPC') != strtoupper($captcha)) { + $msg = lang('include->captcha_error'); + return $return ? $msg : message($msg); + } + unset($_SESSION['captchastr']); + } else { + return ''; + } +} + +function question($answer, $enable = 1, $return = false) { + global $session; + if($enable) { + if(!$answer) { + $msg = lang('include->answer_missed'); + return $return ? $msg : message($msg); + } + $answer = stripslashes($answer); + if(!is_object($session)) $session = new dsession(); + if(!isset($_SESSION['answerstr'])) { + $msg = lang('include->question_expired'); + return $return ? $msg : message($msg); + } + if(decrypt($_SESSION['answerstr'], DT_KEY.'ANS') != $answer) { + $msg = lang('include->answer_error'); + return $return ? $msg : message($msg); + } + unset($_SESSION['answerstr']); + } else { + return ''; + } +} + +function pages($total, $page = 1, $perpage = 20, $demo = '', $step = 3) { + global $DT_URL, $DT, $L; + if($total <= $perpage) return ''; + $items = $total; + $total = ceil($total/$perpage); + if($page < 1 || $page > $total) $page = 1; + if($demo) { + $demo_url = str_replace('%7Bdestoon_page%7D', '{destoon_page}', $demo); + $home_url = str_replace('{destoon_page}', '1', $demo_url); + } else { + if(defined('DT_REWRITE') && $DT['rewrite'] && $_SERVER["SCRIPT_NAME"] && strpos($DT_URL, '?') === false) { + $demo_url = $_SERVER["SCRIPT_NAME"]; + $demo_url = str_replace('//', '/', $demo_url);//Fix Nginx + $mark = false; + if(substr($demo_url, -4) == '.php') { + if(strpos($_SERVER['QUERY_STRING'], '.html') === false) { + $qstr = ''; + if($_SERVER['QUERY_STRING']) { + if(substr($_SERVER['QUERY_STRING'], -5) == '.html') { + $qstr = '-'.substr($_SERVER['QUERY_STRING'], 0, -5); + } else { + parse_str($_SERVER['QUERY_STRING'], $qs); + foreach($qs as $k=>$v) { + $qstr .= '-'.$k.'-'.rawurlencode($v); + } + } + } + $demo_url = substr($demo_url, 0, -4).'-htm-page-{destoon_page}'.$qstr.'.html'; + } else { + $demo_url = substr($demo_url, 0, -4).'-htm-'.$_SERVER['QUERY_STRING']; + $mark = true; + } + } else { + $mark = true; + } + if($mark) { + if(strpos($demo_url, '%') === false) $demo_url = rawurlencode($demo_url); + $demo_url = str_replace(array('%2F', '%3A'), array('/', ':'), $demo_url); + if(strpos($demo_url, '-page-') !== false) { + $demo_url = preg_replace("/page-([0-9]+)/", 'page-{destoon_page}', $demo_url); + } else { + $demo_url = str_replace('.html', '-page-{destoon_page}.html', $demo_url); + } + } + $home_url = str_replace('-page-{destoon_page}', '-page-1', $demo_url); + } else { + $DT_URL = str_replace('&', '&', $DT_URL); + $demo_url = $home_url = preg_replace("/(.*)([&?]page=[0-9]*)(.*)/i", "\\1\\3", $DT_URL); + $s = strpos($demo_url, '?') === false ? '?' : '&'; + $demo_url = $demo_url.$s.'page={des'.'toon_page}'; + if(defined('DT_ADMIN') && strpos($demo_url, 'sum=') === false) $demo_url = str_replace('page=', 'sum='.$items.'&page=', $demo_url); + } + } + $pages = ''; + include DT_ROOT.'/api/pages.'.((!$DT['pages_mode'] && $page < 100) ? 'default' : 'sample').'.php'; + return $pages; +} + +function listpages($CAT, $total, $page = 1, $perpage = 20, $step = 2) { + global $DT, $MOD, $L; + if($total <= $perpage) return ''; + $items = $total; + $total = ceil($total/$perpage); + if($page < 1 || $page > $total) $page = 1; + $home_url = $MOD['linkurl'].$CAT['linkurl']; + $demo_url = $MOD['linkurl'].listurl($CAT, '{destoon_page}'); + $pages = ''; + include DT_ROOT.'/api/pages.'.((!$DT['pages_mode'] && $page < 100) ? 'default' : 'sample').'.php'; + return $pages; +} + +function linkurl($linkurl) { + if($linkurl == '/') return DT_PATH; + return strpos($linkurl, '://') === false ? DT_PATH.$linkurl : $linkurl; +} + +function imgurl($url = '', $width = '') { + if($url) { + return strpos($url, '://') === false ? DT_PATH.'file/upload/'.$url : $url; + } else { + return DT_SKIN.'image/nopic'.$width.'.gif'; + } +} + +function userurl($username, $qstring = '', $domain = '') { + global $CFG, $DT, $MODULE; + $URL = ''; + $subdomain = 0; + if($CFG['com_domain']) $subdomain = substr($CFG['com_domain'], 0, 1) == '.' ? 1 : 2; + if($username) { + if($subdomain || $domain) { + $scheme = $DT['com_https'] ? 'https://' : 'http://'; + $URL = $domain ? $scheme.$domain.'/' : ($subdomain == 1 ? $scheme.($DT['com_www'] ? 'www.' : '').$username.$CFG['com_domain'].'/' : $scheme.$CFG['com_domain'].'/'.$username.'/'); + if($qstring) { + parse_str($qstring, $q); + if(isset($q['file'])) { + $URL .= $CFG['com_dir'] ? $q['file'].'/' : 'company/'.$q['file'].'/'; + unset($q['file']); + } + if($q) { + if($DT['rewrite']) { + foreach($q as $k=>$v) { + $v = rawurlencode($v); + $URL .= $k.'-'.$v.'-'; + } + $URL = substr($URL, 0, -1).'.html'; + } else { + $URL .= 'index.php?'; + $i = 0; + foreach($q as $k=>$v) { + $v = rawurlencode($v); + $URL .= ($i++ == 0 ? '' : '&').$k.'='.$v; + } + } + } + } + } else if($DT['rewrite']) { + $URL = DT_PATH.'com/'.$username.'/'; + if($qstring) { + parse_str($qstring, $q); + if(isset($q['file'])) { + $URL .= $CFG['com_dir'] ? $q['file'].'/' : 'company/'.$q['file'].'/'; + unset($q['file']); + } + if($q) { + foreach($q as $k=>$v) { + $v = rawurlencode($v); + $URL .= $k.'-'.$v.'-'; + } + $URL = substr($URL, 0, -1).'.html'; + } + } + } else { + $URL = DT_PATH.'index.php?homepage='.$username; + if($qstring) $URL = $URL.'&'.$qstring; + } + } else { + $URL = $MODULE[4]['linkurl'].'guest.php'; + } + return $URL; +} + +function useravatar($var, $size = '', $isusername = 1, $real = 0) { + in_array($size, array('large', 'small')) or $size = 'middle'; + if($real) { + $ext = 'x48.jpg'; + if($size == 'large') $ext = '.jpg'; + if($size == 'small') $ext = 'x20.jpg'; + $file = DT_ROOT.'/api/avatar/default'.$ext; + $md5 = md5($var); + if($isusername) { + $img = DT_ROOT.'/file/avatar/'.substr($md5, 0, 2).'/'.substr($md5, 2, 2).'/_'.$var.$ext; + if(is_file($img) && check_name($var)) $file = $img; + } else { + $img = DT_ROOT.'/file/avatar/'.substr($md5, 0, 2).'/'.substr($md5, 2, 2).'/'.$var.$ext; + if(is_file($img)) $file = $img; + } + if($real == 1) { + $url = str_replace(DT_ROOT.'/', DT_PATH, $file); + if(strpos($url, '/default') === false) { + $remote = file_get(DT_ROOT.'/file/avatar/remote.html'); + if(strlen($remote) > 10) $url = str_replace(DT_ROOT.'/file/', $remote, $file); + } + return $url; + } + return strpos($file, '/api/') === false ? $file : ''; + } else { + $name = $isusername ? 'username' : 'userid'; + return DT_PATH.'api/avatar/show.php?'.$name.'='.$var.'&size='.$size; + } +} + +function userinfo($username, $cache = 1) { + global $dc, $CFG; + if(!check_name($username)) return array(); + $user = array(); + if($cache && $CFG['db_expires']) { + $user = $dc->get('user-'.$username); + if($user) return $user; + } + $r1 = DB::get_one("SELECT * FROM ".DT_PRE."member WHERE username='$username'"); + if($r1) { + $userid = $r1['userid']; + $r2 = DB::get_one("SELECT * FROM ".DT_PRE."member_misc WHERE userid=$userid"); + $r3 = DB::get_one("SELECT * FROM ".DT_PRE."company WHERE userid=$userid"); + $user = array_merge($r1, $r2, $r3); + } + if($cache && $CFG['db_expires'] && $user) $dc->set('user-'.$username, $user, $CFG['db_expires']); + return $user; +} + +function userclean($username) { + global $dc, $CFG; + $user = array(); + if($CFG['db_expires']) $dc->rm('user-'.$username); +} + +function listurl($CAT, $page = 0) { + global $DT, $MOD, $L; + include DT_ROOT.'/api/url.inc.php'; + $catid = $CAT['catid']; + $file_ext = $DT['file_ext']; + $index = $DT['index']; + $catdir = $CAT['catdir']; + $catname = file_vname($CAT['catname']); + $prefix = $MOD['htm_list_prefix']; + $urlid = $MOD['list_html'] ? $MOD['htm_list_urlid'] : $MOD['php_list_urlid']; + $ext = $MOD['list_html'] ? 'htm' : 'php'; + isset($urls[$ext]['list'][$urlid]) or $urlid = 0; + $url = $urls[$ext]['list'][$urlid]; + $url = $page ? $url['page'] : $url['index']; + eval("\$listurl = \"$url\";"); + if(substr($listurl, 0, 1) == '/') $listurl = substr($listurl, 1); + return $listurl; +} + +function itemurl($item, $page = 0) { + global $DT, $MOD, $L; + if(isset($item['islink']) && $item['islink']) return $item['linkurl']; + if($MOD['show_html'] && $item['filepath']) { + if($page === 0) return $item['filepath']; + $ext = file_ext($item['filepath']); + return str_replace('.'.$ext, '_'.$page.'.'.$ext, $item['filepath']); + } + include DT_ROOT.'/api/url.inc.php'; + $file_ext = $DT['file_ext']; + $index = $DT['index']; + $itemid = $item['itemid']; + $title = file_vname($item['title']); + $addtime = $item['addtime']; + $catid = $item['catid']; + $year = date('Y', $addtime); + $month = date('m', $addtime); + $day = date('d', $addtime); + $prefix = $MOD['htm_item_prefix']; + $urlid = $MOD['show_html'] ? $MOD['htm_item_urlid'] : $MOD['php_item_urlid']; + $ext = $MOD['show_html'] ? 'htm' : 'php'; + $alloc = dalloc($itemid); + $url = $urls[$ext]['item'][$urlid]; + $url = $page ? $url['page'] : $url['index']; + if(strpos($url, 'cat') !== false && $catid) { + if(isset($item['gid'])) { + $catid = $item['gid']; + $cate = get_group($catid); + $catdir = $cate['filepath']; + $catname = $cate['title']; + } else { + $cate = get_cat($catid); + $catdir = $cate['catdir']; + $catname = $cate['catname']; + } + } + if(!isset($catdir)) $catdir = 'none'; + eval("\$itemurl = \"$url\";"); + if(substr($itemurl, 0, 1) == '/') $itemurl = substr($itemurl, 1); + return $itemurl; +} + +function moburl($url, $mid = 0) { + global $MODULE; + if(strpos($url, DT_MOB) !== false) return $url; + if(strpos($url, DT_PATH.'com/') !== false) return $url; + if(strpos($url, DT_PATH.'index.php?homepage=') !== false) return $url; + if(strpos($url, DT_PATH) !== false) return str_replace(DT_PATH, DT_MOB, $url); + if($mid) return str_replace($MODULE[$mid]['linkurl'], $MODULE[$mid]['mobile'], $url); + foreach($MODULE as $m) { + if(strpos($url, $m['linkurl']) !== false) return str_replace($m['linkurl'], $m['mobile'], $url); + } + return $url; +} + +function rewrite($url, $decode = 0) { + if($decode) { + if(strpos($url, '-htm-') === false) return $url; + if(substr($url, -5) == '.html') $url = substr($url, 0, -5); + $t1 = explode('-htm-', $url); + $t2 = explode('-', $t1[1]); + $rc = count($t2); + $par = ''; + for($i = 0; $i < $rc; $i++) { + $par .= '&'.$t2[$i].'='.$t2[++$i]; + } + $url = $t1[0].'.php?'.substr($par, 1); + } else { + if(!RE_WRITE) return $url; + if(RE_WRITE == 1 && strpos($url, 'search.php') !== false) return $url; + if(strpos($url, '.php?') === false || strpos($url, '=') === false) return $url; + $url = str_replace(array('+', '-'), array('%20', '%20'), $url); + $url = str_replace(array('.php?', '&', '='), array('-htm-', '-', '-'), $url).'.html'; + } + return $url; +} + +function timetodate($time = 0, $type = 6) { + if(!$time) $time = DT_TIME; + $types = array('Y-m-d', 'Y', 'm-d', 'Y-m-d', 'm-d H:i', 'Y-m-d H:i', 'Y-m-d H:i:s'); + if(isset($types[$type])) $type = $types[$type]; + if($time > 2147212800) { + if(class_exists('DateTime')) { + $D = new DateTime('@'.($time - 3600 * intval(str_replace('Etc/GMT', '', $GLOBALS['CFG']['timezone'])))); + return $D->format($type); + } + } + return date($type, $time); +} + +function datetotime($date) { + $time = strtotime($date); + if($time === false) { + if(class_exists('DateTime')) { + $D = new DateTime($date); + $time = $D->format('U'); + } + } + return $time; +} + +function log_write($message, $type = 'php', $force = 0) { + global $_username, $log_id; + if(!DT_DEBUG && !$force) return; + if($log_id) { + $log_id++; + } else { + $log_id = 1; + } + $user = $_username ? $_username : 'guest'; + check_name($type) or $type = 'php'; + $log = "<?php exit;?>\n<$type>\n"; + $log .= "\t<time>".timetodate()."</time>\n"; + $log .= "\t<ip>".DT_IP."</ip>\n"; + $log .= "\t<user>".$user."</user>\n"; + $log .= "\t<php>".$_SERVER['SCRIPT_NAME']."</php>\n"; + $log .= "\t<querystring>".str_replace('&', '&', $_SERVER['QUERY_STRING'])."</querystring>\n"; + $log .= "\t<message>".(is_array($message) ? var_export($message, true) : $message)."</message>\n"; + $log .= "</$type>"; + file_put(DT_ROOT.'/file/log/'.timetodate(0, 'Ym/d').'/'.$type.'-'.timetodate(0, 'Y.m.d H.i.s').'-'.$log_id.'.php', $log); +} + +function load($file) { + $ext = file_ext($file); + if($ext == 'css') { + echo '<link rel="stylesheet" type="text/css" href="'.DT_SKIN.$file.'?v='.(DT_DEBUG ? DT_TIME : DT_REFRESH).'"/>'; + } else if($ext == 'js') { + echo '<script type="text/javascript" src="'.DT_STATIC.'file/script/'.$file.'?v='.(DT_DEBUG ? DT_TIME : DT_REFRESH).'"></script>'; + } else if($ext == 'htm') { + $file = str_replace('ad_m', 'ad_t6_m', $file); + if(is_file(DT_CACHE.'/htm/'.$file)) { + $content = file_get(DT_CACHE.'/htm/'.$file); + if(substr($content, 0, 4) == '<!--') $content = substr($content, 17); + echo $content; + } else { + echo ''; + } + } else if($ext == 'lang') { + $file = str_replace('.lang', '.inc.php', $file); + return DT_ROOT.'/lang/'.DT_LANG.'/'.$file; + } else if($ext == 'inc' || $ext == 'func' || $ext == 'class') { + return DT_ROOT.'/include/'.$file.'.php'; + } +} + +function ad($id, $cid = 0, $kw = '', $tid = 0) { + global $cityid; + if($tid) { + if($kw) { + $file = 'ad_t'.$tid.'_m'.$id.'_k'.urlencode($kw); + } else if($cid) { + $file = 'ad_t'.$tid.'_m'.$id.'_c'.$cid; + } else { + $file = 'ad_t'.$tid.'_m'.$id; + } + $a3 = 'ad_'.$id.'_d'.$tid.'.htm'; + } else { + $file = 'ad_'.$id; + $a3 = 'ad_'.$id.'_d0.htm'; + } + $a1 = $file.'_'.$cityid.'.htm'; + if(is_file(DT_CACHE.'/htm/'.$a1)) return load($a1); + $a2 = $file.'_0.htm'; + if(is_file(DT_CACHE.'/htm/'.$a2)) return load($a2); + if(is_file(DT_CACHE.'/htm/'.$a3)) return load($a3); +} + +function lang($str, $arr = array()) { + if(strpos($str, '->') !== false) { + global $DT; + $t = explode('->', $str); + include load($t[0].'.lang'); + $str = $L[$t[1]]; + } + if($arr) { + foreach($arr as $k=>$v) { + $str = str_replace('{V'.$k.'}', $v, $str); + } + } + return $str; +} + +function check_name($username) { + if(strpos($username, '__') !== false || strpos($username, '--') !== false) return false; + return preg_match("/^[a-z0-9]{1}[a-z0-9_\-]{0,}[a-z0-9]{1}$/", $username); +} + +function check_post() { + if(strtoupper($_SERVER['REQUEST_METHOD']) != 'POST') return false; + return check_referer(); +} + +function check_referer() { + global $DT_REF, $CFG, $DT; + if($DT['check_referer']) { + if(!$DT_REF) return false; + $R = parse_url($DT_REF); + if($CFG['cookie_domain'] && strpos($R['host'], $CFG['cookie_domain']) !== false) return true; + if($CFG['com_domain'] && strpos($R['host'], $CFG['com_domain']) !== false) return true; + if($DT['safe_domain']) { + $tmp = explode('|', $DT['safe_domain']); + foreach($tmp as $v) { + if(strpos($R['host'], $v) !== false) return true; + } + } + $U = parse_url(DT_PATH); + if(strpos($R['host'], str_replace('www.', '.', $U['host'])) !== false) return true; + return false; + } + return true; +} + +function is_robot($ua = '') { + return preg_match("/(spider|bot|crawl|slurp|lycos|robozilla)/i", $ua ? $ua : DT_UA); +} + +function is_url($url) { + return preg_match("/^(http|https)\:\/\/[A-Za-z0-9_\-\/\.\#\&\?\;\,\=\%\:]{4,}$/", $url); +} + +function is_ip($ip) { + return preg_match("/^([0-9]{1,3}\.){3}[0-9]{1,3}$/", $ip); +} + +function is_mobile($mobile) { + return preg_match("/^1[3|4|5|6|7|8|9]{1}[0-9]{9}$/", $mobile); +} + +function is_md5($password) { + return preg_match("/^[a-f0-9]{32}$/", $password); +} + +function is_openid($openid) { + return preg_match("/^[0-9a-zA-Z\-_]{10,}$/", $openid); +} + +function is_touch() { + $ck = get_cookie('mobile'); + if($ck == 'pc') return 0; + if($ck == 'touch' || $ck == 'screen') return 1; + return is_mob(); +} + +function is_mob($par = '') { + return preg_match("/(iPhone|iPad|iPod|Android|Phone|mobile)/i", ($par ? $par : DT_UA)) ? 1 : 0; +} + +function is_founder($userid) { + global $CFG; + $userid = intval($userid); + if($userid < 1) return false; + if(strpos($CFG['founderid'], ',') === false) { + return $userid == $CFG['founderid'] ? true : false; + } else { + return strpos(','.$CFG['founderid'].',', ','.$userid.',') === false ? false : true; + } +} + +function debug() { + global $db, $debug_starttime; + $mtime = explode(' ', microtime()); + $s = number_format(($mtime[1] + $mtime[0] - $debug_starttime), 3); + echo 'Processed in '.$s.' second(s), '.$db->querynum.' queries'; + if(function_exists('memory_get_usage')) echo ', Memory '.round(memory_get_usage()/1024/1024, 2).' M'; +} + +function dhttp($status, $exit = 1) { + switch($status) { + case '301': @header("HTTP/1.1 301 Moved Permanently"); break; + case '403': @header("HTTP/1.1 403 Forbidden"); break; + case '404': @header("HTTP/1.1 404 Not Found"); break; + case '503': @header("HTTP/1.1 503 Service Unavailable"); break; + } + if($exit) exit; +} + +function dcurl($url, $par = '') { + if(function_exists('curl_init')) { + $cur = curl_init($url); + if($par) { + curl_setopt($cur, CURLOPT_POST, 1); + curl_setopt($cur, CURLOPT_POSTFIELDS, $par); + } + //curl_setopt($cur, CURLOPT_REFERER, DT_PATH); + curl_setopt($cur, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); + curl_setopt($cur, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($cur, CURLOPT_HEADER, 0); + curl_setopt($cur, CURLOPT_TIMEOUT, 30); + curl_setopt($cur, CURLOPT_SSL_VERIFYPEER, 0); + curl_setopt($cur, CURLOPT_RETURNTRANSFER, 1); + $rec = curl_exec($cur); + curl_close($cur); + if($rec) return $rec; + if(substr($url, 0, 8) == 'https://') return dcurl('http://'.substr($url, 8), $par); + return ''; + } + return file_get($par ? $url.'?'.$par : $url); +} + +function d301($url) { + dhttp(301, 0); + dheader($url); +} +?> \ No newline at end of file diff --git a/include/hook.inc.php b/include/hook.inc.php new file mode 100644 index 0000000..b1bbfec --- /dev/null +++ b/include/hook.inc.php @@ -0,0 +1,8 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +@extract($GLOBALS, EXTR_SKIP); +?> \ No newline at end of file diff --git a/include/image.class.php b/include/image.class.php new file mode 100644 index 0000000..45a8011 --- /dev/null +++ b/include/image.class.php @@ -0,0 +1,294 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class image { + var $g_img; + var $g_w; + var $g_h; + var $img; + var $save_name; + var $g_type; + var $pos; + var $w_img; + var $transition; + var $jpeg_quality; + var $water_margin; + var $text; + var $text_size; + var $text_font; + var $text_color; + var $text_angle = 0; + var $t_x = 0; + var $t_y = 0; + var $make = true; + + function __construct($g_img) { + global $DT; + $this->g_img = $g_img; + $info = getimagesize($this->g_img); + if(!$info) { + $this->make = false; + return false; + } + $this->g_type = $info[2]; + if($this->g_type == 1 && (!function_exists('imagegif') || !function_exists('imagecreatefromgif'))) { + $this->make = false; + return false; + } + $this->img = $this->createimage($this->g_type, $this->g_img); + if(!$this->img) { + $this->make = false; + return false; + } + $this->g_w = $info[0]; + $this->g_h = $info[1]; + if($this->g_type == 1 || $this->g_type == 3) { + $tmp_im = imagecreatetruecolor($this->g_w, $this->g_h); + imagefill($tmp_im, 0, 0, imagecolorallocate($tmp_im, 255, 255, 255)); + imagecopyresampled($tmp_im, $this->img, 0, 0, 0, 0, $this->g_w, $this->g_h, $this->g_w, $this->g_h); + $this->img = $tmp_im; + unset($tmp_im); + } + $this->pos = $DT['water_pos'] ? $DT['water_pos'] : 0; + $this->w_img = DT_ROOT.'/file/image/'.($DT['water_mark'] ? $DT['water_mark'] : 'watermark.png'); + $this->transition = $DT['water_transition'] ? $DT['water_transition'] : 65; + $this->jpeg_quality = $DT['water_jpeg_quality'] ? $DT['water_jpeg_quality'] : 80; + $this->text = $DT['water_text'] ? $DT['water_text'] : 'www.destoon.com'; + $this->text_size = $DT['water_fontsize'] ? $DT['water_fontsize'] : 20; + $this->text_font = DT_ROOT.'/file/font/'.($DT['water_font'] ? $DT['water_font'] : 'simhei.ttf'); + $this->text_color = $DT['water_fontcolor'] ? $DT['water_fontcolor'] : '#000000'; + $this->water_margin = $DT['water_margin'] ? $DT['water_margin'] : 10; + } + + function image($g_img) { + $this->__construct($g_img); + } + + function waterimage($save_name = '') { + global $DT; + is_file($this->w_img) or $this->make = false; + if($DT['water_min_wh']) { + $min_wh = $DT['water_min_wh']; + if($this->g_w < $min_wh || $this->g_h < $min_wh) { + $this->make = false; + } + } + if(!$this->make) return false; + $this->save_name = $save_name ? $save_name : $this->g_img; + $info = getimagesize($this->w_img); + $w_img = $this->createimage($info[2], $this->w_img); + $w_w = $info[0]; + $w_h = $info[1]; + $temp_w_im = $this->get_pos('image', $w_w, $w_h); + $w_im_x = $temp_w_im["dest_x"]; + $w_im_y = $temp_w_im["dest_y"]; + if($info[2] == 1) { + imagecopymerge($this->img, $w_img, $w_im_x, $w_im_y, 0, 0, $w_w, $w_h, $this->transition); + } else { + $b_img = imagecreatetruecolor($this->g_w, $this->g_h); + imagecopy($b_img, $this->img, 0, 0, 0, 0, $this->g_w, $this->g_h); + imagecopy($b_img, $w_img, $w_im_x, $w_im_y, 0, 0, $w_w, $w_h); + $this->img = $b_img; + } + imagedestroy($w_img); + $this->save(); + return true; + } + + function watertext($save_name = '') { + global $DT; + is_file($this->text_font) or $this->make = false; + if($DT['water_min_wh']) { + $min_wh = $DT['water_min_wh']; + if($this->g_w < $min_wh || $this->g_h < $min_wh) $this->make = false; + } + if(!$this->make) return false; + $this->save_name = $save_name ? $save_name : $this->g_img; + $temp_text = $this->get_pos('text'); + $text_x = $temp_text['dest_x']; + $text_y = $temp_text['dest_y']; + if(preg_match("/([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])/i", $this->text_color, $color)) { + $red = hexdec($color[1]); + $green = hexdec($color[2]); + $blue = hexdec($color[3]); + $text_color = imagecolorallocate($this->img, $red, $green, $blue); + } else { + $text_color = imagecolorallocate($this->img, 255, 255, 255); + } + imagettftext($this->img, $this->text_size, $this->text_angle, $text_x, $text_y, $text_color, $this->text_font, $this->text); + $this->save(); + return true; + } + + function thumb($w = 0, $h = 0, $t = 0, $save_name = '') { + if(!$this->make) return false; + if($w == $this->g_w && $h == $this->g_h) { + if($save_name && $this->g_img != $save_name) file_copy($this->g_img, $save_name); + return true; + } + $this->save_name = $save_name ? $save_name : $this->g_img; + if($t ? $this->resize($w, $h) : $this->cut($w, $h)) $this->save(); + return true; + } + + function save() { + switch($this->g_type) { + case '1': imagegif($this->img, $this->save_name); break; + case '3': imagepng($this->img, $this->save_name); break; + default : imagejpeg($this->img, $this->save_name, $this->jpeg_quality); break; + } + } + + function cut($w = 0, $h = 0) { + if(!$w || !$h) return false; + $_w = intval($h*$this->g_w/$this->g_h); + $_h = intval($w*$this->g_h/$this->g_w); + $im = imagecreatetruecolor($w, $h); + if($w >= $this->g_w || $h >= $this->g_h) { + imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255)); + $x = $w >= $this->g_w ? -intval(($this->g_w - $w)/2) : 0; + $y = $h >= $this->g_h ? -intval(($this->g_h - $h)/2) : 0; + imagecopy($im, $this->img, $x, $y, 0, 0, $this->g_w, $this->g_h); + } else if($_w >= $w) { + $tb = imagecreatetruecolor($_w, $h); + $x = intval(($_w - $w)/2); + imagecopyresampled($tb, $this->img, 0, 0, 0, 0, $_w, $h, $this->g_w, $this->g_h); + imagecopy($im, $tb, 0, 0, $x, 0, $w, $h); + } else if($_w < $w) { + $tb = imagecreatetruecolor($w, $_h); + $y = intval(($_h - $h)/2); + imagecopyresampled($tb, $this->img, 0, 0, 0, 0, $w, $_h, $this->g_w, $this->g_h); + imagecopy($im, $tb, 0, 0, 0, $y, $w, $h); + } else { + return false; + } + $this->img = $im; + unset($im); + if(isset($tb)) unset($tb); + return true; + } + + function resize($w = 0, $h = 0) { + if(!$w || !$h) return false; + $_w = intval($h*$this->g_w/$this->g_h); + $_h = intval($w*$this->g_h/$this->g_w); + $im = imagecreatetruecolor($w, $h); + imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255)); + if($this->g_w < $w) { + if($this->g_h <= $h) { + $x = intval(($w - $this->g_w)/2); + $y = intval(($h - $this->g_h)/2); + imagecopy($im, $this->img, $x, $y, 0, 0, $this->g_w, $this->g_h); + } else if($this->g_h > $h) { + $tb = imagecreatetruecolor($_w, $h); + imagecopyresampled($tb, $this->img, 0, 0, 0, 0, $_w, $h, $this->g_w, $this->g_h); + $x = intval(($w - $_w)/2); + imagecopy($im, $tb, $x, 0, 0, 0, $_w, $h); + } + } else if($this->g_w > $w) { + if($this->g_h <= $h) { + $tb = imagecreatetruecolor($w, $_h); + imagecopyresampled($tb, $this->img, 0, 0, 0, 0, $w, $_h, $this->g_w, $this->g_h); + $y = intval(($h - $_h)/2); + imagecopy($im, $tb, 0, $y, 0, 0, $w, $_h); + } else if($this->g_h > $h) { + if($_w >= $w) { + $tb = imagecreatetruecolor($w, $_h); + imagecopyresampled($tb, $this->img, 0, 0, 0, 0, $w, $_h, $this->g_w, $this->g_h); + $y = intval(($h - $_h)/2); + imagecopy($im, $tb, 0, $y, 0, 0, $w, $_h); + } else { + $tb = imagecreatetruecolor($_w, $h); + imagecopyresampled($tb, $this->img, 0, 0, 0, 0, $_w, $h, $this->g_w, $this->g_h); + $x = intval(($w - $_w)/2); + imagecopy($im, $tb, $x, 0, 0, 0, $_w, $h); + } + } + } else if($this->g_w = $w) { + if($this->g_h <= $h) { + $y = intval(($h - $this->g_h)/2); + imagecopy($im, $this->img, 0, $y, 0, 0, $this->g_w, $this->g_h); + } else if($this->g_h > $h) { + $tb = imagecreatetruecolor($_w, $h); + imagecopyresampled($tb, $this->img, 0, 0, 0, 0, $_w, $h, $this->g_w, $this->g_h); + $x = intval(($w - $_w)/2); + imagecopy($im, $tb, $x, 0, 0, 0, $_w, $h); + } + } else { + return false; + } + $this->img = $im; + unset($im); + if(isset($tb)) unset($tb); + return true; + } + + function createimage($type, $img_name) { + if($type == 1) { + return imagecreatefromgif($img_name); + } else if($type == 2) { + return imagecreatefromjpeg($img_name); + } else if($type == 3) { + return imagecreatefrompng($img_name); + } + return false; + } + + function get_pos($type, $p_w = 0, $p_h = 0) { + if($type == 'text') { + $line = count(explode("\n",$this->text)); + $temp = imagettfbbox($this->text_size, $this->text_angle, $this->text_font, $this->text); + $p_w = $temp[2] - $temp[6]; + $p_h = $line*($temp[3] - $temp[7]); + unset($temp); + } + if(($this->g_w < $p_w) || ($this->g_h < $p_h)) return false; + switch($this->pos) { + case 1: + $p_x = $this->water_margin; + $p_y = ($type == 'image' ? $this->water_margin : $p_h) + $this->water_margin; + break; + case 2: + $p_x = ($this->g_w - $p_w) / 2; + $p_y = ($type == 'image' ? 0 : $p_h) + $this->water_margin; + break; + case 3: + $p_x = $this->g_w - $p_w - $this->water_margin; + $p_y = ($type == 'image' ? 0 : $p_h) + $this->water_margin; + break; + case 4: + $p_x = $this->water_margin; + $p_y = ($this->g_h - $p_h) / 2; + break; + case 5: + $p_x = ($this->g_w - $p_w) / 2; + $p_y = ($this->g_h - $p_h) / 2; + break; + case 6: + $p_x = $this->g_w - $p_w - $this->water_margin; + $p_y = ($this->g_h - $p_h) / 2; + break; + case 7: + $p_x = $this->water_margin; + $p_y = $this->g_h - $p_h - $this->water_margin; + break; + case 8: + $p_x = ($this->g_w - $p_w) / 2; + $p_y = $this->g_h - $p_h - $this->water_margin; + break; + case 9: + $p_x = $this->g_w - $p_w - $this->water_margin; + $p_y = $this->g_h - $p_h - $this->water_margin; + break; + default: + $p_x = mt_rand($this->water_margin, ($this->g_w - $p_w - $this->water_margin)); + $p_y = mt_rand($this->water_margin, ($this->g_h - $p_h - $this->water_margin)); + break; + } + return array('dest_x'=>$p_x, 'dest_y'=>$p_y); + } +} +?> \ No newline at end of file diff --git a/include/index.htm.php b/include/index.htm.php new file mode 100644 index 0000000..a49373c --- /dev/null +++ b/include/index.htm.php @@ -0,0 +1,45 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +if($DT['city']) { + $DT['index_html'] = 0; + $C = cache_read('module-2.php'); + $M = $C['linkurl']; +} else { + $M = $MODULE[2]['linkurl']; +} +$data = ''; +$data .= 'var DTPath = "'.DT_PATH.'";'; +$data .= 'var DTMob = "'.DT_MOB.'";'; +$data .= 'var SKPath = "'.DT_SKIN.'";'; +$data .= 'var MEPath = "'.$M.'";'; +$data .= 'var DTEditor = "'.DT_EDITOR.'";'; +$data .= 'var CKDomain = "'.$CFG['cookie_domain'].'";'; +$data .= 'var CKPath = "'.$CFG['cookie_path'].'";'; +$data .= 'var CKPrex = "'.$CFG['cookie_pre'].'";'; +$data .= 'console.clear();console.log("%cPowered By DESTOON%chttps://www.destoon.com/", "color:#FFFFFF;font-size:14px;background:#FF7418;padding:2px 12px;border-radius:10px;", "font-size:14px;padding:2px 12px;");'; +file_put(DT_ROOT.'/file/script/config.js', $data); +$filename = $CFG['com_dir'] ? DT_ROOT.'/'.$DT['index'].'.'.$DT['file_ext'] : DT_CACHE.'/index.inc.html'; +if(!$DT['index_html']) { + if(is_file($filename)) unlink($filename); + return false; +} +if(!$db->linked) return false; +$destoon_task = "moduleid=1&html=index"; +$AREA = cache_read('area.php'); +if($EXT['mobile_enable']) $head_mobile = $EXT['mobile_url']; +$index = 1; +$seo_title = $DT['seo_title']; +$head_keywords = $DT['seo_keywords']; +$head_description = $DT['seo_description']; +$CSS = array('index'); +ob_start(); +include template('index'); +$data = ob_get_contents(); +ob_clean(); +file_put($filename, $data); +return true; +?> \ No newline at end of file diff --git a/include/index.html b/include/index.html new file mode 100644 index 0000000..c1e1f00 --- /dev/null +++ b/include/index.html @@ -0,0 +1 @@ +<meta http-equiv="refresh" content="0;url=../"> \ No newline at end of file diff --git a/include/ip.class.php b/include/ip.class.php new file mode 100644 index 0000000..00df48d --- /dev/null +++ b/include/ip.class.php @@ -0,0 +1,169 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class ip { + var $ip; + var $ipfile; + + function __construct($ip) { + $this->ip = $ip; + } + + function ip($ip) { + $this->__construct($ip); + } + + function area() { + foreach(array('wry', 'tiny') as $d) { + $ipfile = DT_ROOT.'/file/ipdata/'.$d.'.dat'; + if(is_file($ipfile)) { + $this->ipfile = $ipfile; + return $this->$d(); + } + } + return 'Unknown'; + } + + function wry() { + if(!$fd = @fopen($this->ipfile, 'rb')) return 'Invalid IP data file'; + $ip = explode('.', $this->ip); + $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3]; + if(!($DataBegin = fread($fd, 4)) || !($DataEnd = fread($fd, 4)) ) return; + @$ipbegin = implode('', unpack('L', $DataBegin)); + if($ipbegin < 0) $ipbegin += pow(2, 32); + @$ipend = implode('', unpack('L', $DataEnd)); + if($ipend < 0) $ipend += pow(2, 32); + $ipAllNum = ($ipend - $ipbegin) / 7 + 1; + $BeginNum = $ip2num = $ip1num = 0; + $ipAddr1 = $ipAddr2 = ''; + $EndNum = $ipAllNum; + while($ip1num > $ipNum || $ip2num < $ipNum) { + $Middle= intval(($EndNum + $BeginNum) / 2); + fseek($fd, $ipbegin + 7 * $Middle); + $ipData1 = fread($fd, 4); + if(strlen($ipData1) < 4) { + fclose($fd); + return 'System Error'; + } + $ip1num = implode('', unpack('L', $ipData1)); + if($ip1num < 0) $ip1num += pow(2, 32); + if($ip1num > $ipNum) { + $EndNum = $Middle; + continue; + } + $DataSeek = fread($fd, 3); + if(strlen($DataSeek) < 3) { + fclose($fd); + return 'System Error'; + } + $DataSeek = implode('', unpack('L', $DataSeek.chr(0))); + fseek($fd, $DataSeek); + $ipData2 = fread($fd, 4); + if(strlen($ipData2) < 4) { + fclose($fd); + return 'System Error'; + } + $ip2num = implode('', unpack('L', $ipData2)); + if($ip2num < 0) $ip2num += pow(2, 32); + if($ip2num < $ipNum) { + if($Middle == $BeginNum) { + fclose($fd); + return 'Unknown'; + } + $BeginNum = $Middle; + } + } + $ipFlag = fread($fd, 1); + if($ipFlag == chr(1)) { + $ipSeek = fread($fd, 3); + if(strlen($ipSeek) < 3) { + fclose($fd); + return 'System Error'; + } + $ipSeek = implode('', unpack('L', $ipSeek.chr(0))); + fseek($fd, $ipSeek); + $ipFlag = fread($fd, 1); + } + if($ipFlag == chr(2)) { + $AddrSeek = fread($fd, 3); + if(strlen($AddrSeek) < 3) { + fclose($fd); + return 'System Error'; + } + $ipFlag = fread($fd, 1); + if($ipFlag == chr(2)) { + $AddrSeek2 = fread($fd, 3); + if(strlen($AddrSeek2) < 3) { + fclose($fd); + return 'System Error'; + } + $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0))); + fseek($fd, $AddrSeek2); + } else { + fseek($fd, -1, SEEK_CUR); + } + while(($char = fread($fd, 1)) != chr(0)) + $ipAddr2 .= $char; + $AddrSeek = implode('', unpack('L', $AddrSeek.chr(0))); + fseek($fd, $AddrSeek); + while(($char = fread($fd, 1)) != chr(0)) + $ipAddr1 .= $char; + } else { + fseek($fd, -1, SEEK_CUR); + while(($char = fread($fd, 1)) != chr(0)) + $ipAddr1 .= $char; + $ipFlag = fread($fd, 1); + if($ipFlag == chr(2)) { + $AddrSeek2 = fread($fd, 3); + if(strlen($AddrSeek2) < 3) { + fclose($fd); + return 'System Error'; + } + $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0))); + fseek($fd, $AddrSeek2); + } else { + fseek($fd, -1, SEEK_CUR); + } + while(($char = fread($fd, 1)) != chr(0)) + $ipAddr2 .= $char; + } + fclose($fd); + if(preg_match('/http/i', $ipAddr2)) $ipAddr2 = ''; + $ipaddr = "$ipAddr1 $ipAddr2"; + $ipaddr = preg_replace('/CZ88\.NET/is', '', $ipaddr); + $ipaddr = preg_replace('/^\s*/is', '', $ipaddr); + $ipaddr = preg_replace('/\s*$/is', '', $ipaddr); + if(preg_match('/http/i', $ipaddr) || $ipaddr == '') $ipaddr = 'Unknown'; + return convert($ipaddr, 'GBK', DT_CHARSET); + } + + function tiny() { + static $fp = NULL, $offset = array(), $index = NULL; + $ipdot = explode('.', $this->ip); + $ip = pack('N', ip2long($this->ip)); + $ipdot[0] = (int)$ipdot[0]; + $ipdot[1] = (int)$ipdot[1]; + if($fp === NULL && $fp = @fopen($this->ipfile, 'rb')) { + $offset = unpack('Nlen', fread($fp, 4)); + $index = fread($fp, $offset['len'] - 4); + } else if($fp == false) { + return 'Invalid IP data file'; + } + $length = $offset['len'] - 1028; + $start = unpack('Vlen', $index[$ipdot[0] * 4].$index[$ipdot[0] * 4 + 1].$index[$ipdot[0] * 4 + 2].$index[$ipdot[0] * 4 + 3]); + for($start = $start['len'] * 8 + 1024; $start < $length; $start += 8) { + if($index[$start] . $index[$start + 1] . $index[$start + 2] . $index[$start + 3] >= $ip) { + $index_offset = unpack('Vlen', $index[$start + 4] . $index[$start + 5] . $index[$start + 6] . "\x0"); + $index_length = unpack('Clen', $index[$start + 7]); + break; + } + } + fseek($fp, $offset['len'] + $index_offset['len'] - 1024); + if($index_length['len']) return convert(fread($fp, $index_length['len']), 'GBK', DT_CHARSET); + return 'Unknown'; + } +} +?> \ No newline at end of file diff --git a/include/mail.func.php b/include/mail.func.php new file mode 100644 index 0000000..8bd9e50 --- /dev/null +++ b/include/mail.func.php @@ -0,0 +1,160 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function dmail($mail_to, $mail_subject, $mail_body, $mail_from = '', $mail_sign = true) { + global $DT; + if($DT['mail_type'] == 'close') return 'close'; + if($DT['mail_sign'] && $mail_sign) $mail_body .= $DT['mail_sign']; + if($DT['mail_type'] == 'sc') { + $url = 'http://sendcloud.sohu.com/webapi/mail.send.json'; + $par = 'api_user='.$DT['smtp_user'].'&api_key='.$DT['smtp_pass'].'&from='.$DT['mail_sender'].'&fromname='.$DT['mail_name'].'&to='.$mail_to.'&subject='.$mail_subject.'&html='.$mail_body; + $rec = dcurl($url, $par); + $arr = json_decode($rec, true); + if($arr['message'] == 'success') return 'SUCCESS'; + $errmsg = ''; + foreach($arr['errors'] as $v) { + $errmsg .= $v."\n"; + } + $errmsg = trim($errmsg); + if(defined('TESTMAIL')) dalert('Error:'.$errmsg); + log_write($errmsg, 'sendcloud'); + return $errmsg; + } else { + $sendmail_from = $mail_from ? $mail_from : $DT['mail_sender']; + $mail_from = "=?".strtolower(DT_CHARSET)."?B?".base64_encode($DT['mail_name'] ? $DT['mail_name'] : $DT['sitename'])."?= <".$sendmail_from.">"; + $mail_subject = stripslashes($mail_subject); + $mail_subject = str_replace("\r", '', str_replace("\n", '', $mail_subject)); + $mail_subject = "=?".strtolower(DT_CHARSET)."?B?".base64_encode($mail_subject)."?="; + $mail_body = stripslashes($mail_body); + $mail_body = chunk_split(base64_encode(str_replace("\r\n.", " \r\n..", str_replace("\n", "\r\n", str_replace("\r", "\n", str_replace("\r\n", "\n", str_replace("\n\r", "\r", $mail_body))))))); + $mail_dlmt = $DT['mail_delimiter'] == 1 ? "\r\n" : ($DT['mail_delimiter'] == 2 ? "\n" : "\r"); + $headers = ''; + $headers .= "From: $mail_from".$mail_dlmt; + $headers .= "X-Priority: 3".$mail_dlmt; + $headers .= "X-Mailer: Destoon".$mail_dlmt; + $headers .= "MIME-Version: 1.0".$mail_dlmt; + $headers .= "Content-type: text/html; charset=".DT_CHARSET.$mail_dlmt; + $headers .= "Content-Transfer-Encoding: base64".$mail_dlmt; + } + if($DT['mail_type'] == 'smtp') { + $host = $DT['smtp_host'].':'.$DT['smtp_port'].' '; + if(!$fp = fsockopen($DT['smtp_host'], $DT['smtp_port'], $errno, $errstr, 30)) { + $errmsg = $host.'can not connect to the SMTP server'; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + stream_set_blocking($fp, true); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != '220') { + $errmsg = $host.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + fputs($fp, ($DT['smtp_auth'] ? 'EHLO' : 'HELO')." Destoon\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 220 && substr($RE, 0, 3) != 250) { + $errmsg = $host.'HELO/EHLO - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + while(1) { + if(substr($RE, 3, 1) != '-' || empty($RE)) break; + $RE = fgets($fp, 512); + } + if($DT['smtp_auth']) { + fputs($fp, "AUTH LOGIN\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 334) { + $errmsg = $host.'AUTH LOGIN - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + fputs($fp, base64_encode($DT['smtp_user'])."\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 334) { + $errmsg = $host.'USERNAME - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + fputs($fp, base64_encode($DT['smtp_pass'])."\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 235) { + $errmsg = $host.'PASSWORD - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + $mail_from = strpos($DT['smtp_user'], '@') !== false ? $DT['smtp_user'] : $DT['mail_sender']; + } else { + $mail_from = $DT['mail_sender']; + } + fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $mail_from).">\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 250) { + fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $mail_from).">\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 250) { + $errmsg = $host.'MAIL FROM - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + } + foreach(explode(',', $mail_to) as $touser) { + $touser = trim($touser); + if($touser) { + fputs($fp, "RCPT TO: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $touser).">\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 250) { + fputs($fp, "RCPT TO: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $touser).">\r\n"); + $RE = fgets($fp, 512); + $errmsg = $host.'RCPT TO - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + } + } + fputs($fp, "DATA\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 354) { + $errmsg = $host.'DATA - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + list($msec, $sec) = explode(' ', microtime()); + $headers .= "Message-ID: <".date('YmdHis', $sec).".".($msec*1000000).".".substr($mail_from, strpos($mail_from,'@')).">".$mail_dlmt; + fputs($fp, "Date: ".date('r')."\r\n"); + fputs($fp, "To: ".$mail_to."\r\n"); + fputs($fp, "Subject: ".$mail_subject."\r\n"); + fputs($fp, $headers."\r\n"); + fputs($fp, "\r\n\r\n"); + fputs($fp, "$mail_body\r\n.\r\n"); + $RE = fgets($fp, 512); + if(substr($RE, 0, 3) != 250) { + $errmsg = $host.'END - '.$RE; + if(defined('TESTMAIL')) dalert('Error:'.trim($errmsg)); + log_write($errmsg, 'smtp'); + return $errmsg; + } + fputs($fp, "QUIT\r\n"); + return 'SUCCESS'; + } else { + if($DT['mail_type'] != 'mail') { + ini_set('SMTP', $DT['smtp_host']); + ini_set('smtp_port', $DT['smtp_port']); + ini_set('sendmail_from', $sendmail_from); + } + return @mail($mail_to, $mail_subject, $mail_body, $headers) ? 'SUCCESS' : ''; + } +} +?> \ No newline at end of file diff --git a/include/mobile.func.php b/include/mobile.func.php new file mode 100644 index 0000000..392ee75 --- /dev/null +++ b/include/mobile.func.php @@ -0,0 +1,111 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function mobile_pages($total, $page = 1, $perpage = 20, $demo = '') { + global $DT_URL, $DT, $L; + if($total <= $perpage) return ''; + $items = $total; + $total = ceil($total/$perpage); + if($page < 1 || $page > $total) $page = 1; + if($demo) { + $demo_url = str_replace('%7Bdestoon_page%7D', '{destoon_page}', $demo); + $home_url = str_replace('{destoon_page}', '1', $demo_url); + } else { + if(defined('DT_REWRITE') && $DT['rewrite'] && $_SERVER["SCRIPT_NAME"] && strpos($DT_URL, '?') === false) { + $demo_url = $_SERVER["SCRIPT_NAME"]; + $demo_url = str_replace('//', '/', $demo_url);//Fix Nginx + $mark = false; + if(substr($demo_url, -4) == '.php') { + if(strpos($_SERVER['QUERY_STRING'], '.html') === false) { + $qstr = ''; + if($_SERVER['QUERY_STRING']) { + if(substr($_SERVER['QUERY_STRING'], -5) == '.html') { + $qstr = '-'.substr($_SERVER['QUERY_STRING'], 0, -5); + } else { + parse_str($_SERVER['QUERY_STRING'], $qs); + foreach($qs as $k=>$v) { + $qstr .= '-'.$k.'-'.rawurlencode($v); + } + } + } + $demo_url = substr($demo_url, 0, -4).'-htm-page-{destoon_page}'.$qstr.'.html'; + } else { + $demo_url = substr($demo_url, 0, -4).'-htm-'.$_SERVER['QUERY_STRING']; + $mark = true; + } + } else { + $mark = true; + } + if($mark) { + if(strpos($demo_url, '%') === false) $demo_url = rawurlencode($demo_url); + $demo_url = str_replace(array('%2F', '%3A'), array('/', ':'), $demo_url); + if(strpos($demo_url, '-page-') !== false) { + $demo_url = preg_replace("/page-([0-9]+)/", 'page-{destoon_page}', $demo_url); + } else { + $demo_url = str_replace('.html', '-page-{destoon_page}.html', $demo_url); + } + } + $home_url = str_replace('-page-{destoon_page}', '-page-1', $demo_url); + } else { + $DT_URL = str_replace('&', '&', $DT_URL); + $demo_url = $home_url = preg_replace("/(.*)([&?]page=[0-9]*)(.*)/i", "\\1\\3", $DT_URL); + $s = strpos($demo_url, '?') === false ? '?' : '&'; + $demo_url = $demo_url.$s.'page={des'.'toon_page}'; + if(defined('DT_ADMIN') && strpos($demo_url, 'sum=') === false) $demo_url = str_replace('page=', 'sum='.$items.'&page=', $demo_url); + } + } + $pages = ''; + $_page = $page <= 1 ? $total : ($page - 1); + $url = str_replace('{destoon_page}', $_page, $demo_url); + $pages .= '<a href="'.$url.'" data-transition="none" id="page-prev">« '.$L['prev_page'].'</a> '; + if(strpos($demo_url, 'javascript') === false) { + $pages .= '<a href="javascript:GoPage('.$total.', '.$items.', \''.$demo_url.'\');" id="page-goto"><b>'.$page.'</b>/'.$total.'</a> '; + } else { + $pages .= '<a href="'.$url.'" id="page-goto"><b>'.$page.'</b>/'.$total.'</a> '; + } + $_page = $page >= $total ? 1 : $page + 1; + $url = str_replace('{destoon_page}', $_page, $demo_url); + $pages .= '<a href="'.$url.'" data-transition="none" id="page-next">'.$L['next_page'].' »</a> '; + return $pages; +} + +function m301($moduleid, $catid = 0, $itemid = 0, $page = 1) { + global $MODULE; + $url = ''; + if($itemid) { + if($moduleid > 4) { + $item = DB::get_one("SELECT * FROM ".get_table($moduleid)." WHERE itemid=$itemid"); + if($item && $item['status'] > 2) { + $url = $MODULE[$moduleid]['mobile'].itemurl($item, $page > 1 ? $page : ''); + } + } + } else if($catid) { + $CAT = get_cat($catid); + $url = $MODULE[$moduleid]['mobile'].listurl($CAT, $page > 1 ? $page : ''); + } else { + $url = $MODULE[$moduleid]['mobile']; + } + if($moduleid == 4) { + global $username, $DT_URL; + if(check_name($username)) $url = userurl($username, cutstr($DT_URL, $username.'&', '.html')); + } + if($url) d301($url); +} + +function input_trim($wd) { + return trim(urldecode(str_replace('%E2%80%86', '', urlencode($wd)))); +} + +function is_pc() { + if(DT_DEBUG || is_robot()) return false; + $UA = strtoupper(DT_UA); + if(strpos($UA, 'WINDOWS NT') !== false) { + if(strpos($UA, 'MICROMESSENGER/') !== false) return false;//WX + return true; + } + return false; +} +?> \ No newline at end of file diff --git a/include/mobile.htm.php b/include/mobile.htm.php new file mode 100644 index 0000000..33a2ede --- /dev/null +++ b/include/mobile.htm.php @@ -0,0 +1,26 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +require_once DT_ROOT.'/include/mobile.func.php'; +include load('mobile.lang'); +$back_link = $pages = ''; +$areaid = isset($areaid) ? intval($areaid) : 0; +$site_name = $EXT['mobile_sitename'] ? $EXT['mobile_sitename'] : $DT['sitename'].$L['mobile_version']; +$DT_PC = $GLOBALS['DT_PC'] = 0; +$MURL = $MODULE[2]['linkurl']; +$_cart = 0; +$share_icon = 0; +$sns_app = 0; +$MOB_MODULE = array(); +foreach($MODULE as $v) { + if($v['moduleid'] > 3 && $v['ismenu'] && !$v['islink']) $MOB_MODULE[] = $v; +} +$js_pageid = random(4, 'a-Z').substr(DT_TIME, -4); +$js_load = ''; +$js_pull = 1; +$js_item = $js_album = 0; +$foot = 'channel'; +?> \ No newline at end of file diff --git a/include/mobile.inc.php b/include/mobile.inc.php new file mode 100644 index 0000000..1e6d51c --- /dev/null +++ b/include/mobile.inc.php @@ -0,0 +1,32 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +require DT_ROOT.'/include/mobile.func.php'; +if(is_pc() && strpos($DT_URL, 'device.php') === false) dheader(DT_PATH.'api/mobile.php?action=device&uri='.urlencode($head_pc)); +include load('mobile.lang'); +$EXT['mobile_enable'] or message($L['msg_mobile_close']); +if($DT_BOT) $EXT['mobile_ajax'] = 0; +$dmobile = get_cookie('mobile'); +if($dmobile == '' || $dmobile == 'pc') set_cookie('mobile', 'touch'); +$back_link = $pages = ''; +$areaid = isset($areaid) ? intval($areaid) : 0; +$site_name = $EXT['mobile_sitename'] ? $EXT['mobile_sitename'] : $DT['sitename'].$L['mobile_version']; +$DT_PC = 0; +$MURL = $MODULE[2]['linkurl']; +if($DT_MBS == 'screen' && $_username) $MURL = DT_PATH.'api/mobile.php?action=sync&auth='.encrypt($_username.'|'.$DT_IP.'|'.$DT_TIME, DT_KEY.'SCREEN').'&goto='; +$_cart = ($DT['max_cart'] && $_userid) ? intval(get_cookie('cart')) : 0; +$share_icon = ($DT_MBS == 'weixin' || $DT_MBS == 'qq') ? DT_PATH.'apple-touch-icon-precomposed.png' : ''; +$sns_app = in_array($DT_MBS, array('weixin', 'wxxcx', 'wxwork', 'qq', 'tim', 'alipay', 'dingtalk', 'weibo')) ? 1 : 0; +$MOB_MODULE = array(); +foreach($MODULE as $v) { + if($v['moduleid'] > 3 && $v['ismenu'] && !$v['islink']) $MOB_MODULE[] = $v; +} +$js_pageid = random(4, 'a-Z').substr(DT_TIME, -6); +$js_load = ''; +$js_pull = in_array($action, array('add', 'edit')) ? 0 : 1; +$js_item = $js_album = 0; +$foot = 'channel'; +?> \ No newline at end of file diff --git a/include/module.func.php b/include/module.func.php new file mode 100644 index 0000000..d1973a9 --- /dev/null +++ b/include/module.func.php @@ -0,0 +1,397 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function keyword($search, $username, $kw, $items, $moduleid) { + if($search) { + if(strlen($kw) < 3 || strlen($kw) > 30 || strpos($kw, ' ') !== false || strpos($kw, '%') !== false) return; + $kw = addslashes($kw); + if($items > 1) { + $r = DB::get_one("SELECT * FROM ".DT_PRE."keyword WHERE moduleid=$moduleid AND word='$kw' ORDER BY itemid ASC"); + if($r) { + $items = $items > $r['items'] ? $items : $r['items']; + $month_search = date('Y-m', $r['updatetime']) == date('Y-m', DT_TIME) ? 'month_search+1' : '1'; + $week_search = date('W', $r['updatetime']) == date('W', DT_TIME) ? 'week_search+1' : '1'; + $today_search = date('Y-m-d', $r['updatetime']) == date('Y-m-d', DT_TIME) ? 'today_search+1' : '1'; + DB::query("UPDATE ".DT_PRE."keyword SET items='$items',updatetime='".DT_TIME."',total_search=total_search+1,month_search=$month_search,week_search=$week_search,today_search=$today_search WHERE itemid=$r[itemid]"); + DB::query("DELETE FROM ".DT_PRE."keyword WHERE moduleid=$moduleid AND word='$kw' AND itemid>$r[itemid]"); + } else { + $letter = trim(gb2py($kw)); + $status = $search == 2 ? 2 : 3; + if(strlen($letter) < 2) $status = 2; + DB::query("INSERT INTO ".DT_PRE."keyword (moduleid,word,keyword,letter,items,updatetime,total_search,month_search,week_search,today_search,status) VALUES ('$moduleid','$kw','$kw','$letter','$items','".DT_TIME."','1','1','1','1','$status')"); + } + } + if(check_name($username)) { + DB::query("INSERT INTO ".DT_PRE."keyword_record (moduleid,keyword,username,items,addtime) VALUES ('$moduleid','$kw','$username','$items','".DT_TIME."')"); + } + } +} + +function money_add($username, $amount) { + if($username && $amount) { + if($amount < 0) { + $r = DB::get_one("SELECT money FROM ".DT_PRE."member WHERE username='$username'"); + if($r['money'] < abs($amount)) { + set_cookie('auth', ''); + dhttp(403, 0); + dalert('HTTP 403 Forbidden - Bad Data', DT_PATH); + } + } + DB::query("UPDATE ".DT_PRE."member SET money=money+{$amount} WHERE username='$username'"); + } +} + +function money_record($username, $amount, $bank, $editor, $reason, $note = '') { + if($username && $amount) { + $r = DB::get_one("SELECT money FROM ".DT_PRE."member WHERE username='$username'"); + $balance = $r['money']; + $reason = addslashes(stripslashes(strip_tags($reason))); + $note = addslashes(stripslashes(strip_tags($note))); + DB::query("INSERT INTO ".DT_PRE."finance_record (username,bank,amount,balance,addtime,reason,note,editor) VALUES ('$username','$bank','$amount','$balance','".DT_TIME."','$reason','$note','$editor')"); + } +} + +function credit_add($username, $amount) { + if($username && $amount) DB::query("UPDATE ".DT_PRE."member SET credit=credit+{$amount} WHERE username='$username'"); +} + +function credit_record($username, $amount, $editor, $reason, $note = '') { + global $DT; + if($DT['log_credit'] && $username && $amount) { + $r = DB::get_one("SELECT credit FROM ".DT_PRE."member WHERE username='$username'"); + $balance = $r['credit']; + $reason = addslashes(stripslashes(strip_tags($reason))); + $note = addslashes(stripslashes(strip_tags($note))); + DB::query("INSERT INTO ".DT_PRE."finance_credit (username,amount,balance,addtime,reason,note,editor) VALUES ('$username','$amount','$balance','".DT_TIME."','$reason','$note','$editor')"); + } +} + +function sms_add($username, $amount) { + if($username && $amount) DB::query("UPDATE ".DT_PRE."member SET sms=sms+{$amount} WHERE username='$username'"); +} + +function sms_record($username, $amount, $editor, $reason, $note = '') { + if($username && $amount) { + $r = DB::get_one("SELECT sms FROM ".DT_PRE."member WHERE username='$username'"); + $balance = $r['sms']; + $reason = addslashes(stripslashes(strip_tags($reason))); + $note = addslashes(stripslashes(strip_tags($note))); + DB::query("INSERT INTO ".DT_PRE."finance_sms (username,amount,balance,addtime,reason,note,editor) VALUES ('$username','$amount','$balance','".DT_TIME."','$reason','$note','$editor')"); + } +} + +function secondstodate($seconds) { + include load('include.lang'); + $date = ''; + if($seconds > 0) { + $t = floor($seconds/86400); + if($t) { + $date .= $t.$L['mod_day']; + $seconds = $seconds%86400; + } + $t = floor($seconds/3600); + if($t) { + $date .= $t.$L['mod_hour']; + $seconds = $seconds%3600; + } + $t = floor($seconds/60); + if($t) { + $date .= $t.$L['mod_minute']; + $seconds = $seconds%60; + } + if($seconds) { + $date .= $seconds.$L['mod_second']; + } + } + return $date; +} + +function get_intro($content, $length = 0) { + if($length) { + $intro = trim(strip_tags($content)); + $intro = preg_replace("/&([a-z]{1,});/", '', $intro); + $intro = str_replace(array("\r", "\n", "\t", ' '), array('', '', '', ''), $intro); + return dsubstr($intro, $length); + } else { + return ''; + } +} + +function get_module_setting($moduleid, $key = '') { + $M = cache_read('module-'.$moduleid.'.php'); + return $key ? $M[$key] : $M; +} + +function get_company_setting($userid, $key = '', $cache = '') { + if($key) { + $r = DB::get_one("SELECT * FROM ".DT_PRE."company_setting WHERE userid=$userid AND item_key='$key'", $cache); + return $r ? $r['item_value'] : ''; + } else { + $setting = array(); + $query = DB::query("SELECT * FROM ".DT_PRE."company_setting WHERE userid=$userid", $cache); + while($r = DB::fetch_array($query)) { + $setting[$r['item_key']] = $r['item_value']; + } + return $setting; + } +} + +function anti_spam($string) { + global $DT; + if($DT['anti_spam'] && preg_match("/^[a-z0-9_@\-\s\/\.\,\(\)\+]+$/i", $string)) { + return '<img src="'.DT_PATH.'api/image.png.php?auth='.encrypt($string, DT_KEY.'SPAM').'" align="absmddle"/>'; + } else { + return $string; + } +} + +function hide_info($str, $type = 'username') { + if($type == 'ip') { + if(is_ip($str)) { + $tmp = explode('.', $str); + return $tmp[0].'.'.$tmp[1].'.*.*'; + } + } elseif($type == 'username') { + if(check_name($str)) { + $len = strlen($str); + $tmp = ''; + for($i = 0; $i < $len; $i++) { + $tmp .= ($i == 0 || $i == $len - 1) ? $str[$i] : '*'; + } + return $tmp; + } + } else if($type == 'mobile') { + if(is_mobile($str)) return substr($str, 0, 3).'****'.substr($str, -4); + } + return $str; +} + +function check_pay($moduleid, $itemid) { + global $_username, $MOD; + $condition = "mid=$moduleid AND tid=$itemid AND username='$_username'"; + if($MOD['fee_period']) $condition .= " AND paytime>".(DT_TIME - $MOD['fee_period']*60); + return DB::get_one("SELECT itemid FROM ".DT_PRE."finance_pay WHERE $condition"); +} + +function check_sign($string, $sign) { + return $sign == crypt_sign($string); +} + +function crypt_sign($string) { + return strtoupper(md5(md5(DT_IP.$string.DT_KEY.'SIGN'))); +} + +function cache_hits($moduleid, $itemid) { + if(@$fp = fopen(DT_CACHE.'/hits-'.$moduleid.'.php', 'a')) { + flock($fp, LOCK_EX); + fwrite($fp, $itemid.' '); + flock($fp, LOCK_UN); + fclose($fp); + } +} + +function update_hits($moduleid, $table) { + $hits = trim(file_get(DT_CACHE.'/hits-'.$moduleid.'.php')); + file_put(DT_CACHE.'/hits-'.$moduleid.'.php', ' '); + file_put(DT_CACHE.'/hits-'.$moduleid.'.dat', DT_TIME); + if($hits) { + $tmp = array_count_values(explode(' ', $hits)); + $arr = array(); + foreach($tmp as $k=>$v) { + $arr[$v] .= $k ? ','.$k : ''; + } + $id = $moduleid == 4 ? 'userid' : 'itemid'; + foreach($arr as $k=>$v) { + DB::query("UPDATE LOW_PRIORITY {$table} SET `hits`=`hits`+".$k." WHERE `$id` IN (0".$v.")", 'UNBUFFERED'); + } + } +} + +function gender($gender, $type = 0) { + global $L; + if($type) return $gender == 1 ? $L['man'] : $L['woman']; + return $gender == 1 ? $L['sir'] : $L['lady']; +} + +function online($user, $type = 0) { + $r = DB::get_one("SELECT online FROM ".DT_PRE."online WHERE `".($type ? 'username' : 'userid')."`='$user'"); + if($r) return $r['online'] ? 1 : -1; + return 0; +} + +function fix_link($url) { + $url = trim($url); + if(strlen($url) < 10) return ''; + return strpos($url, '://') === false ? 'http://'.$url : $url; +} + +function vip_year($fromtime) { + return $fromtime ? intval((DT_TIME - $fromtime)/86400/365) + 1 : 1; +} + +function get_albums($item) { + $thumbs = array(); + if($item['thumb']) $thumbs[] = $item['thumb']; + if(isset($item['thumb1']) && $item['thumb1'] && strpos($item['thumbs'], $item['thumb1']) === false) $thumbs[] = $item['thumb1']; + if(isset($item['thumb2']) && $item['thumb2'] && strpos($item['thumbs'], $item['thumb2']) === false) $thumbs[] = $item['thumb2']; + foreach(explode('|', $item['thumbs']) as $v) { + if($v) $thumbs[] = $v; + } + $i = count($thumbs); + while($i++ < 5) { + $thumbs[] = DT_SKIN.'image/nopic.thumb.png';; + } + return $thumbs; +} + +function get_thumbs($item = array()) { + $thumbs = array(); + if($item) { + if($item['thumb']) $thumbs[] = $item['thumb']; + if(isset($item['thumb1']) && $item['thumb1'] && strpos($item['thumbs'], $item['thumb1']) === false) $thumbs[] = $item['thumb1']; + if(isset($item['thumb2']) && $item['thumb2'] && strpos($item['thumbs'], $item['thumb2']) === false) $thumbs[] = $item['thumb2']; + foreach(explode('|', $item['thumbs']) as $v) { + if($v) $thumbs[] = $v; + } + } + return $thumbs; +} + +function xml_linkurl($linkurl, $modurl = '') { + if(strpos($linkurl, '://') === false) $linkurl = $modurl.$linkurl; + return str_replace('&', '&', $linkurl); +} + +function sort_type($TYPE) { + $p = $c = array(); + foreach($TYPE as $v) { + if($v['parentid']) { + $c[$v['parentid']][] = $v; + } else { + $p[] = $v; + } + } + return array($p, $c); +} + +function update_user($member, $item, $fileds = array('groupid','vip','validated','company','areaid','truename','telephone','mobile','address','qq','wx','ali','skype')) { + $update = ''; + foreach($fileds as $v) { + if(isset($item[$v]) && $item[$v] != $member[$v]) $update .= ",$v='".addslashes($member[$v])."'"; + } + if(isset($item['email']) && $item['email'] != $member['mail']) $update .= ",email='".addslashes($member['mail'])."'"; + return $update; +} + +function highlight($str) { + return '<span class="highlight">'.$str.'</span>'; +} + +function parse_face($str) { + if(preg_match_all("/\:([0-9]{3,})\)/i", $str, $m)) { + foreach($m[0] as $u) { + $f = substr($u, 1, -1).'.png'; + if(is_file(DT_ROOT.'/file/face/'.$f)) $str = str_replace($u, '<img src="'.DT_STATIC.'file/face/'.$f.'" width="24"/>', $str); + } + } + return $str; +} + +function get_face() { + $faces = array(); + $face = glob(DT_ROOT.'/file/face/*.png'); + if($face) { + foreach($face as $k=>$v) { + $faces[$k] = basename($v, '.png'); + } + } + return $faces; +} + +function get_uid() { + DB::query("INSERT INTO ".DT_PRE."uid () VALUES ()"); + return DB::insert_id(); +} + +function url2video($u) { + $d = cutstr($u, '://', '/'); + $h = substr($u, 0, 5) == 'https' ? 'https://' : 'http://'; + switch($d) { + case 'v.youku.com': + if(strpos($u, '/embed/') !== false) return $u; + $p = cutstr($u, 'id_', '.html'); + if($p) return $h.'player.youku.com/embed/'.$p; + break; + case 'player.youku.com': + if(strpos($u, '/embed/') !== false) return $u; + $p = cutstr($u, 'sid/', '/'); + if($p) return $h.'player.youku.com/embed/'.$p; + $p = cutstr($u, 'embed/', strpos($u, "'") !== false ? "'" : '"'); + if($p) return $h.'player.youku.com/embed/'.$p; + break; + case 'imgcache.qq.com': + case 'static.v.qq.com': + case 'v.qq.com': + if(strpos($u, '/iframe/') !== false) return $u; + if(strpos($u, 'page/') !== false && strpos($u, '.html') !== false) { + $p = cutstr($u, 'page/', '.html'); + if($p) return $h.'v.qq.com/txp/iframe/player.html?vid='.$p; + } + if(strpos($u, 'vid=') !== false && strpos($u, '&') !== false) { + $p = cutstr($u, 'vid=', '&'); + if($p) return $h.'v.qq.com/iframe/player.html?vid='.$p.'&tiny=0&auto=0'; + } + break; + case 'www.iqiyi.com': + if(strpos($u, 'shareplay.html') !== false) return $u; + $c = dcurl($u); + if($c) { + $p1 = cutstr($c, 'data-player-videoid="', '"'); + $p2 = cutstr($c, 'data-player-tvid="', '"'); + if($p1 && $p2) return $h.'m.iqiyi.com/shareplay.html?vid='.$p1.'&tvid='.$p2; + } + break; + case 'open.iqiyi.com': + if(strpos($u, 'shareplay.html') !== false) return $u; + $p1 = cutstr($u, 'vid=', '&'); + $p2 = cutstr($u, 'tvId=', '&'); + if($p1 && $p2) return $h.'m.iqiyi.com/shareplay.html?vid='.$p1.'&tvid='.$p2; + break; + case 'player.video.qiyi.com': + if(strpos($u, 'shareplay.html') !== false) return $u; + $p1 = cutstr($u, 'player.video.qiyi.com/', '/'); + $p2 = cutstr($u, 'tvId=', '-'); + if($p1 && $p2) return $h.'m.iqiyi.com/shareplay.html?vid='.$p1.'&tvid='.$p2; + break; + case 'www.bilibili.com': + if(strpos($u, 'player.html') !== false) return $u; + $p = cutstr($u, '/video/', strpos($u, '?') === false ? '/' : '?'); + if($p) return $h.'player.bilibili.com/player.html?bvid='.$p; + break; + case 'www.acfun.cn': + if(strpos($u, '/player/') !== false) return $u; + $p = cutstr($u, '/v/', strpos($u, '?') === false ? '/' : '?'); + if($p) return $h.'www.acfun.cn/player/'.$p; + break; + case 'www.youtube.com': + if(strpos($u, '/embed/') !== false) return $u; + $p = cutstr($u, 'v=', '&'); + if($p) return $h.'www.youtube.com/embed/'.$p; + break; + case 'www.huya.com': + if(strpos($u, '/iframe/') !== false) return $u; + $p = cutstr($u, 'www.huya.com/', '/'); + if($p) return $h.'liveshare.huya.com/iframe/'.$p; + break; + case 'www.douyu.com': + if(strpos($u, '/share/') !== false) return $u; + $p = cutstr($u, 'www.douyu.com/', '/'); + if($p) return $h.'staticlive.douyucdn.cn/common/share/play.swf?room_id='.$p; + break; + } + return $u; +} +?> \ No newline at end of file diff --git a/include/post.func.php b/include/post.func.php new file mode 100644 index 0000000..affdcdf --- /dev/null +++ b/include/post.func.php @@ -0,0 +1,879 @@ +<?php +/* + [DESTOON] Copyright (c) 2008-2022 www.destoon.com + This is NOT a freeware, use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function deditor($moduleid = 1, $textareaid = 'content', $toolbarset = 'Default', $width = 500, $height = 400) { + global $DT, $MODULE, $_userid, $destoon_editor_id; + $editor = ''; + if(!$destoon_editor_id) { + $destoon_editor_id = 1; + } else { + $destoon_editor_id++; + } + include DT_ROOT.'/'.$MODULE[2]['moduledir'].'/editor/'.DT_EDITOR.'/init.inc.php'; + return $editor; +} + +function dstyle($name, $value = '') { + global $destoon_style_id; + $style = $color = ''; + if(preg_match("/^#[0-9a-zA-Z]{6}$/", $value)) $color = $value; + if(!$destoon_style_id) { + $destoon_style_id = 1; + $style .= '<script type="text/javascript" src="'.DT_STATIC.'file/script/color.js?v='.DT_REFRESH.'"></script>'; + } else { + $destoon_style_id++; + } + $style .= '<input type="hidden" name="'.$name.'" id="color_input_'.$destoon_style_id.'" value="'.$color.'"/><img src="'.DT_PATH.'file/image/color.gif" width="21" height="18" align="absmiddle" id="color_img_'.$destoon_style_id.'" style="cursor:pointer;background:'.$color.'" onclick="color_show('.$destoon_style_id.');"/>'; + return $style; +} + +function dcalendar($name, $value = '', $sep = '-', $time = 0) { + global $destoon_calendar_id; + $calendar = ''; + $id = str_replace(array('[', ']'), array('', ''), $name); + if(!$destoon_calendar_id) { + $destoon_calendar_id = 1; + $calendar .= '<script type="text/javascript" src="'.DT_STATIC.'file/script/calendar.js?v='.DT_REFRESH.'"></script>'; + } + $calendar .= '<input type="text" name="'.$name.'" id="'.$id.'" value="'.$value.'" style="width:'.($time ? 156 : 100).'px;" autocomplete="off" onfocus="ca_show(\''.$id.'\', \''.$sep.'\', '.$time.');" readonly ondblclick="this.value=\'\';"/><img src="'.DT_PATH.'file/image/calendar.gif" style="z-index:1;position:relative;top:3px;left:-8px;margin:0 0 0 -16px;cursor:pointer;" onclick="ca_show(\''.$id.'\', \''.$sep.'\', '.$time.');"/>'; + return $calendar; +} + +function dselect($sarray, $name, $title = '', $selected = 0, $extend = '', $key = 1, $ov = '', $abs = 0) { + $select = '<select name="'.$name.'" '.$extend.'>'; + if($title) $select .= '<option value="'.$ov.'">'.$title.'</option>'; + foreach($sarray as $k=>$v) { + if(!$v) continue; + $val = $key ? $k : $v; + $_selected = ($abs ? $val === $selected : $val == $selected) ? ' selected="selected"' : ''; + if(strpos($select, ' selected="selected"') !== false) $_selected = ''; + $select .= '<option value="'.$val.'"'.$_selected.'>'.$v.'</option>'; + } + $select .= '</select>'; + return $select; +} + +function dcheckbox($sarray, $name, $checked = '', $extend = '', $key = 1, $except = '', $abs = 0) { + $checked = $checked ? explode(',', $checked) : array(); + $except = $except ? explode(',', $except) : array(); + $checkbox = $sp = ''; + foreach($sarray as $k=>$v) { + if(in_array($key ? $k : $v, $except)) continue; + $sp = in_array($key ? $k : $v, $checked) ? ' checked ' : ''; + $checkbox .= '<input type="checkbox" name="'.$name.'" value="'.($key ? $k : $v).'"'.$sp.$extend.'> '.$v.' '; + } + return $checkbox; +} + +function type_select($item, $cache = 0, $name = 'typeid', $title = '', $typeid = 0, $extend = '', $all = '') { + $TYPE = is_array($item) ? $item : get_type($item, $cache); + $select = '<select name="'.$name.'" '.$extend.'>'; + if($all) $select .= '<option value="-1"'.($typeid == -1 ? ' selected=selected' : '').'>'.$all.'</option>'; + if($title) $select .= '<option value="0"'.($typeid == 0 ? ' selected=selected' : '').'>'.$title.'</option>'; + $p = $c = array(); + foreach($TYPE as $v) { + if($v['parentid']) { + $c[$v['parentid']][] = $v; + } else { + $p[] = $v; + } + } + foreach($p as $v0) { + $select .= '<option value="'.$v0['typeid'].'"'.($v0['typeid'] == $typeid ? ' selected' : '').'>'.$v0['typename'].'</option>'; + if(isset($c[$v0['typeid']])) { + foreach($c[$v0['typeid']] as $v1) { + $select .= '<option value="'.$v1['typeid'].'"'.($v1['typeid'] == $typeid ? ' selected' : '').'> ├'.$v1['typename'].'</option>'; + } + } + } + $select .= '</select>'; + return $select; +} + +function type_child($typeid, $TYPE) { + if($typeid <= 0) return '0'; + $id = $typeid; + foreach($TYPE as $v) { + if($v['parentid'] == $typeid) $id .= ','.$v['typeid']; + } + return $id; +} + +function url_select($name, $ext = 'htm', $type = 'list', $urlid = 0, $extend = '') { + global $L; + include DT_ROOT."/api/url.inc.php"; + $select = '<select name="'.$name.'" '.$extend.'>'; + $types = count($urls[$ext][$type]); + for($i = 0; $i < $types; $i++) { + $select .= ' <option value="'.$i.'"'.($i == $urlid ? ' selected' : '').'>'.$L['url_eg'].' '.$urls[$ext][$type][$i]['example'].'</option>'; + } + $select .= '</select>'; + return $select; +} + +function tpl_select($file = 'index', $module = '', $name = 'template', $title = '', $template = '', $extend = '') { + include load('include.lang'); + global $CFG, $destoon_tpl_id; + if(!$destoon_tpl_id) { + $destoon_tpl_id = 1; + } else { + $destoon_tpl_id++; + } + $tpldir = $module ? DT_ROOT."/template/".$CFG['template']."/".$module : DT_ROOT."/template/".$CFG['template']; + @include $tpldir."/these.name.php"; + $select = '<span id="destoon_template_'.$destoon_tpl_id.'"><select name="'.$name.'" '.$extend.'><option value="">'.$title.'</option>'; + $files = glob($tpldir."/*.htm"); + foreach($files as $tplfile) { + $tplfile = basename($tplfile); + $tpl = str_replace('.htm', '', $tplfile); + if(preg_match("/^".$file."-(.*)/i", $tpl) || !$file) {//$file == $tpl || + $selected = ($template && $tpl == $template) ? 'selected' : ''; + $templatename = (isset($names[$tpl]) && $names[$tpl]) ? $names[$tpl] : $tpl; + $select .= '<option value="'.$tpl.'" '.$selected.'>'.$templatename.'</option>'; + } + } + $select .= '</select></span>'; + if(defined('DT_ADMIN')) $select .= '  <a href="javascript:tpl_edit(\''.$file.'\', \''.$module.'\', '.$destoon_tpl_id.');" class="t">'.$L['post_edit'].'</a>  <a href="javascript:tpl_add(\''.$file.'\', \''.$module.'\');" class="t">'.$L['post_new'].'</a>'; + return $select; +} + +function group_select($name = 'groupid', $title = '', $groupid = '', $extend = '') { + global $GROUP; + if(!$GROUP) $GROUP = cache_read('group.php'); + $select = '<select name="'.$name.'" '.$extend.'><option value="0">'.$title.'</option>'; + foreach($GROUP as $k=>$v) { + $select .= '<option value="'.$k.'"'.($k == $groupid ? ' selected' : '').'>'.$v['groupname'].'</option>'; + } + $select .= '</select>'; + return $select; +} + +function group_checkbox($name = 'groupid', $checked = '', $except = '1,2,4') { + global $GROUP, $L; + $GROUP or $GROUP = cache_read('group.php'); + $checked = $checked ? explode(',', $checked) : array(); + $except = $except ? explode(',', $except) : array(); + $str = $sp = ''; + $id = str_replace(array('[', ']'), array('', ''), $name); + foreach($GROUP as $k=>$v) { + if(in_array($k, $except)) continue; + $sp = in_array($k, $checked) ? ' checked' : ''; + $str .= '<input type="checkbox" name="'.$name.'" value="'.$k.'"'.$sp.' id="'.$id.$k.'"/><label for="'.$id.$k.'"> '.$v['groupname'].'  </label>'; + } + return '<span id="group_'.$id.'">'.$str.'</span> <a href="javascript:check_box(\'group_'.$id.'\', true);" class="t">'.$L['select_all'].'</a> / <a href="javascript:check_box(\'group_'.$id.'\', false);" class="t">'.$L['clear_all'].'</a>'; +} + +function module_checkbox($name = 'moduleid', $checked = '', $except = '1,2,3,4') { + global $MODULE; + $checked = $checked ? explode(',', $checked) : array(); + $except = $except ? explode(',', $except) : array(); + $str = $sp = ''; + $id = str_replace(array('[', ']'), array('', ''), $name); + foreach($MODULE as $k=>$v) { + if(in_array($k, $except) || $v['islink']) continue; + $sp = in_array($k, $checked) ? ' checked' : ''; + $str .= '<li><input type="checkbox" name="'.$name.'" value="'.$k.'"'.$sp.' id="'.$id.$k.'"/><label for="'.$id.$k.'"> '.$v['name'].'  </label></li>'; + } + return '<ul class="mods">'.$str.'</ul>'; +} + +function module_select($name = 'moduleid', $title = '', $moduleid = '', $extend = '', $except = '1,2,3') { + global $MODULE, $L; + $except = $except ? explode(',', $except) : array(); + $title or $title = $L['choose']; + $select = '<select name="'.$name.'" '.$extend.'><option value="0">'.$title.'</option>'; + foreach($MODULE as $k=>$v) { + if(in_array($k, $except) || $v['islink']) continue; + $select .= '<option value="'.$k.'"'.($k == $moduleid ? ' selected' : '').'>'.$v['name'].'</option>'; + } + $select .= '</select>'; + return $select; +} + +function homepage_select($name, $title = '', $groupid = 0, $itemid = 0, $extend = '') { + global $L; + $title or $title = $L['choose']; + $select = '<select name="'.$name.'" '.$extend.'><option value="0">'.$title.'</option>'; + $result = DB::query("SELECT * FROM ".DT_PRE."style ORDER BY listorder DESC,itemid DESC"); + while($r = DB::fetch_array($result)) { + $select .= '<option value="'.$r['itemid'].'"'.($r['itemid'] == $itemid ? ' selected' : '').'>'.$r['title'].'</option>'; + } + $select .= '</select>'; + return $select; +} + +function product_select($name = 'pid', $title = '', $pid = 0, $extend = '') { + global $PRODUCT; + $PRODUCT or $PRODUCT = cache_read('product.php'); + $select = '<select name="'.$name.'" '.$extend.'>'; + if($title) $select .= '<option value="0">'.$title.'</option>'; + foreach($PRODUCT as $k=>$v) { + $select .= '<option value="'.$k.'"'.($k == $pid ? ' selected' : '').'>'.$v['title'].'</option>'; + } + $select .= '</select>'; + return $select; +} + +function category_select($name = 'catid', $title = '', $catid = 0, $moduleid = 1, $extend = '') { + $option = cache_read('catetree-'.$moduleid.'.php', '', true); + if($option) { + if($catid) $option = str_replace('value="'.$catid.'"', 'value="'.$catid.'" selected', $option); + $select = '<select name="'.$name.'" '.$extend.' id="catid_1">'; + if($title) $select .= '<option value="0">'.$title.'</option>'; + $select .= $option ? $option : '</select>'; + return $select; + } else { + return ajax_category_select($name, $title, $catid, $moduleid, $extend); + } +} + +function get_category_select($title = '', $catid = 0, $moduleid = 1, $extend = '', $deep = 0, $cat_id = 1) { + global $cat_child; + $cat_child or $cat_child = array(); + $parents = array(); + if($catid) { + $r = DB::get_one("SELECT child,arrparentid FROM ".DT_PRE."category WHERE catid=$catid"); + $parents = explode(',', $r['arrparentid']); + if($r['child']) $parents[] = $catid; + } else { + $parents[] = 0; + } + $select = ''; + foreach($parents as $k=>$v) { + if($deep && $deep <= $k) break; + $select .= '<select onchange="load_category(this.value, '.$cat_id.');" '.$extend.'>'; + if($title) $select .= '<option value="'.$v.'">'.$title.'</option>'; + $condition = $v ? "parentid=$v" : "moduleid=$moduleid AND parentid=0"; + $result = DB::query("SELECT catid,catname FROM ".DT_PRE."category WHERE $condition ORDER BY listorder,catid ASC"); + while($c = DB::fetch_array($result)) { + $selectid = isset($parents[$k+1]) ? $parents[$k+1] : $catid; + $selected = $c['catid'] == $selectid ? ' selected' : ''; + if($cat_child && !in_array($c['catid'], $cat_child)) continue; + $select .= '<option value="'.$c['catid'].'"'.$selected.'>'.$c['catname'].'</option>'; + } + $select .= '</select> '; + } + return $select; +} + +function ajax_category_select($name = 'catid', $title = '', $catid = 0, $moduleid = 1, $extend = '', $deep = 0) { + global $cat_id; + if($cat_id) { + $cat_id++; + } else { + $cat_id = 1; + } + $catid = intval($catid); + $deep = intval($deep); + $select = ''; + $select .= '<input name="'.$name.'" id="catid_'.$cat_id.'" type="hidden" value="'.$catid.'"/>'; + $select .= '<span id="load_category_'.$cat_id.'">'.get_category_select($title, $catid, $moduleid, $extend, $deep, $cat_id).'</span>'; + $select .= '<script type="text/javascript">'; + if($cat_id == 1) $select .= 'var category_moduleid = new Array;'; + $select .= 'category_moduleid['.$cat_id.']="'.$moduleid.'";'; + if($cat_id == 1) $select .= 'var category_title = new Array;'; + $select .= 'category_title['.$cat_id.']=\''.$title.'\';'; + if($cat_id == 1) $select .= 'var category_extend = new Array;'; + $select .= 'category_extend['.$cat_id.']=\''.encrypt($extend, DT_KEY.'CAT').'\';'; + if($cat_id == 1) $select .= 'var category_catid = new Array;'; + $select .= 'category_catid['.$cat_id.']=\''.$catid.'\';'; + if($cat_id == 1) $select .= 'var category_deep = new Array;'; + $select .= 'category_deep['.$cat_id.']=\''.$deep.'\';'; + $select .= '</script>'; + if($cat_id == 1) $select .= '<script type="text/javascript" src="'.DT_STATIC.'file/script/category.js?v='.DT_REFRESH.'"></script>'; + return $select; +} + +function get_area_select($title = '', $areaid = 0, $extend = '', $deep = 0, $id = 1) { + $parents = array(); + if($areaid) { + $r = DB::get_one("SELECT child,arrparentid FROM ".DT_PRE."area WHERE areaid=$areaid"); + $parents = explode(',', $r['arrparentid']); + if($r['child']) $parents[] = $areaid; + } else { + $parents[] = 0; + } + $select = ''; + foreach($parents as $k=>$v) { + if($deep && $deep <= $k) break; + $v = intval($v); + $select .= '<select onchange="load_area(this.value, '.$id.');" '.$extend.'>'; + if($title) $select .= '<option value="'.$v.'">'.$title.'</option>'; + $result = DB::query("SELECT areaid,areaname FROM ".DT_PRE."area WHERE parentid=$v ORDER BY listorder,areaid ASC"); + while($a = DB::fetch_array($result)) { + $selectid = isset($parents[$k+1]) ? $parents[$k+1] : $areaid; + $selected = $a['areaid'] == $selectid ? ' selected' : ''; + $select .= '<option value="'.$a['areaid'].'"'.$selected.'>'.$a['areaname'].'</option>'; + } + $select .= '</select> '; + } + return $select; +} + +function ajax_area_select($name = 'areaid', $title = '', $areaid = 0, $extend = '', $deep = 0) { + global $area_id; + if($area_id) { + $area_id++; + } else { + $area_id = 1; + } + $areaid = intval($areaid); + $deep = intval($deep); + $select = ''; + $select .= '<input name="'.$name.'" id="areaid_'.$area_id.'" type="hidden" value="'.$areaid.'"/>'; + $select .= '<span id="load_area_'.$area_id.'">'.get_area_select($title, $areaid, $extend, $deep, $area_id).'</span>'; + $select .= '<script type="text/javascript">'; + if($area_id == 1) $select .= 'var area_title = new Array;'; + $select .= 'area_title['.$area_id.']=\''.$title.'\';'; + if($area_id == 1) $select .= 'var area_extend = new Array;'; + $select .= 'area_extend['.$area_id.']=\''.encrypt($extend, DT_KEY.'ARE').'\';'; + if($area_id == 1) $select .= 'var area_areaid = new Array;'; + $select .= 'area_areaid['.$area_id.']=\''.$areaid.'\';'; + if($area_id == 1) $select .= 'var area_deep = new Array;'; + $select .= 'area_deep['.$area_id.']=\''.$deep.'\';'; + $select .= '</script>'; + if($area_id == 1) $select .= '<script type="text/javascript" src="'.DT_STATIC.'file/script/area.js?v='.DT_REFRESH.'"></script>'; + return $select; +} + +function level_select($name, $title = '', $level = 0, $extend = '') { + global $MOD, $L; + $names = isset($MOD['level']) && $MOD['level'] ? $MOD['level'] : ''; + $names = $names ? explode('|', trim($names)) : array(); + $select = '<select name="'.$name.'" '.$extend.'>'; + if($title) $select .= '<option value="0">'.$title.'</option>'; + for($i = 1; $i < 10; $i++) { + $n = isset($names[$i-1]) ? ' '.$names[$i-1] : ''; + $select .= '<option value="'.$i.'"'.($i == $level ? ' selected' : '').'>'.$i.' '.$L['level'].$n.'</option>'; + } + if($extend == 'all') $select .= '<option value="10"'.(10 == $level ? ' selected' : '').'>'.$L['level_all'].'</option>'; + $select .= '</select>'; + return $select; +} + +function is_filepath($filepath) { + return strlen($filepath) > 6 && in_array(file_ext($filepath), array('htm', 'html','shtm', 'shtml')); +} + +function is_email($email) { + if(!preg_match("/^[a-z0-9_\-\.]{1,}@[a-z0-9\-]{1,}\.[a-z0-9\.]{1,}$/", $email)) return false; + list($user, $domain) = explode('@', $email); + if(strpos($domain, '..') !== false) return false; + $str = substr($user, 0, 1).substr($user, -1, 1).substr($domain, 0, 1).substr($domain, -1, 1).substr(cutstr($email, '@', '.'), -1, 1); + if(preg_match("/[_\-\.]/", $str)) return false; + return true; +} + +function is_telephone($telephone) { + return preg_match("/^[0-9\-\+\(\)\s]{6,}$/", $telephone); +} + +function is_qq($qq) { + return preg_match("/^[1-9]{1}[0-9]{4,12}$/", $qq); +} + +function is_wx($wx) { + return check_name($wx); +} + +function is_gzh($gzh) { + return check_name($gzh); +} + +function is_skuid($skuid) { + return preg_match("/^[0-9a-zA-Z\-_]{2,}$/", $skuid); +} + +function is_gbk($string) { + return preg_match("/^([\s\S]*?)([\x81-\xfe][\x40-\xfe])([\s\S]*?)/", $string); +} + +function is_date($date, $sep = '-') { + if(strlen($date) == 8) $date = substr($date, 0, 4).'-'.substr($date, 4, 2).'-'.substr($date, 6, 2); + if(strlen($date) > 10 || strlen($date) < 8) return false; + list($year, $month, $day) = explode($sep, $date); + return checkdate($month, $day, $year); +} + +function is_time($time, $sep = '-') { + $time = str_replace('T', ' ', $time); + if(substr_count($time, ' ') != 1) return false; + if(substr_count($time, ':') != 2) return false; + list($date, $time) = explode(' ', $time); + if(!preg_match("/^[0-2]{1}[0-9]{1}\:[0-5]{1}[0-9]{1}\:[0-5]{1}[0-9]{1}$/", $time)) return false; + if(substr($time, 0, 1) == '2' && substr($time, 1, 1) > 3) return false; + if(strlen($date) == 8) $date = substr($date, 0, 4).'-'.substr($date, 4, 2).'-'.substr($date, 6, 2); + if(strlen($date) > 10 || strlen($date) < 8) return false; + list($year, $month, $day) = explode($sep, $date); + return checkdate($month, $day, $year); +} + +function is_image($file) { + return preg_match("/^(jpg|jpeg|gif|png|bmp)$/i", file_ext($file)); +} + +function is_user($username) { + $r = DB::get_one("SELECT username FROM ".DT_PRE."member WHERE username='$username'"); + return $r ? true : false; +} + +function is_password($username, $password) { + if(strlen($password) < 6) return false; + $r = DB::get_one("SELECT password,passsalt FROM ".DT_PRE."member WHERE username='$username'"); + if(!$r) return false; + return $r['password'] == dpassword($password, $r['passsalt']); +} + +function is_payword($username, $payword) { + if(strlen($payword) < 6) return false; + $r = DB::get_one("SELECT payword,paysalt FROM ".DT_PRE."member WHERE username='$username'"); + if(!$r) return false; + return $r['payword'] == dpassword($payword, $r['paysalt']); +} + +function is_crsf($url) { + if(strpos($url, '://') === false) { + // + } else { + if(strpos($url, DT_DOMAIN ? '.'.DT_DOMAIN : DT_PATH) === false) return false; + } + return preg_match("/(\?|\&|\.php)/i", $url); +} + +function dpassword($password, $salt) { + return md5((is_md5($password) ? md5($password) : md5(md5($password))).$salt); +} + +function gb2py($text, $exp = '') { + if(!$text) return ''; + $text = convert($text, DT_CHARSET, 'GBK'); + $data = array(); + $tmp = @file(DT_ROOT.'/file/table/gb-pinyin.table'); + if(!$tmp) return ''; + $tmps = count($tmp); + for($i = 0; $i < $tmps; $i++) { + $tmp1 = explode(" ", $tmp[$i]); + $data[$i]=array($tmp1[0], $tmp1[1]); + } + $r = array(); + $k = 0; + $textlen = strlen($text); + for($i = 0; $i < $textlen; $i++) { + $p = ord(substr($text, $i, 1)); + if($p > 160) { + $q = ord(substr($text, ++$i, 1)); + $p = $p*256+$q-65536; + } + if($p > 0 && $p < 160) { + $r[$k] = chr($p); + } elseif($p < -20319 || $p > -10247) { + $r[$k] = ''; + } else { + for($j = $tmps - 1; $j >= 0; $j--) { + if($data[$j][1]<=$p) break; + } + $r[$k] = $data[$j][0]; + } + $k++; + } + return implode($exp, $r); +} + +function match_userid($file) { + $name = explode('.', basename($file)); + return intval(substr($name[0], strpos($name[0], '-') === false ? 8 : 12)); +} + +function clear_img($content) { + return preg_replace("/<img[^>]*>/i", "", $content); +} + +function clear_link($content) { + return preg_replace_callback("/<a[^>]*>(.*?)<\/a>/is", "_clear_link", $content); +} + +function _clear_link($matches) { + if(strpos($matches[0], DT_PATH) !== false) return $matches[0]; + if(DT_DOMAIN && strpos($matches[0], DT_DOMAIN) !== false) return $matches[0]; + return $matches[1]; +} + +function save_remote($content, $ext = 'jpg|jpeg|gif|png|bmp', $self = 0) { + global $DT, $_userid, $_username, $moduleid, $itemid, $session; + if(!$_userid || !$content) return $content; + if(!preg_match_all("/src=([\"|']?)([^ \"'>]+\.($ext))\\1/i", $content, $matches)) return $content; + require_once DT_ROOT.'/include/image.class.php'; + $dftp = false; + if($DT['ftp_remote'] && $DT['remote_url']) { + require_once DT_ROOT.'/include/ftp.class.php'; + $ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']); + $dftp = $ftp->connected; + } + if($DT['uploadlog'] && !is_object($session)) $session = new dsession(); + $urls = $oldpath = $newpath = array(); + $DT['uploaddir'] or $DT['uploaddir'] = 'Ym/d'; + foreach($matches[2] as $k=>$url) { + if(in_array($url, $urls)) continue; + $urls[$url] = $url; + if(strpos($url, '://') === false) continue; + if(!$self) { + if(DT_DOMAIN) { + if(strpos($url, '.'.DT_DOMAIN.'/') !== false) continue; + } else { + if(strpos($url, DT_PATH) !== false) continue; + } + if($DT['remote_url'] && strpos($url, $DT['remote_url']) !== false) continue; + } + $filedir = 'file/upload/'.timetodate(DT_TIME, $DT['uploaddir']).'/'; + $filepath = DT_PATH.$filedir; + $fileroot = DT_ROOT.'/'.$filedir; + $file_ext = file_ext($url); + $filename = timetodate(DT_TIME, 'His').mt_rand(10, 99).$_userid.'.'.$file_ext; + $newfile = $fileroot.$filename; + if(file_copy($url, $newfile)) { + $file_size = filesize($newfile); + if($file_size < 1) { + file_del($newfile); + continue; + } + $img = ''; + if(is_image($newfile)) { + $img = @getimagesize($newfile); + if(!$img) { + file_del($newfile); + continue; + } + if($DT['water_type']) { + $image = new image($newfile); + if($DT['water_type'] == 2) { + $image->waterimage(); + } else if($DT['water_type'] == 1) { + $image->watertext(); + } + } + } + $oldpath[] = $url; + $newurl = linkurl($filepath.$filename); + if($dftp) { + $exp = explode("file/upload/", $newurl); + if($ftp->dftp_put($filedir.$filename, $exp[1])) { + $newurl = $DT['remote_url'].$exp[1]; + $DT['ftp_save'] or file_del($newfile); + } + } + if($DT['uploadlog']) { + $upload_table = DT_PRE.'upload_'.($_userid%10); + $_SESSION['uploads'][] = $newurl; + $img_w = $img ? $img[0] : 0; + $img_h = $img ? $img[1] : 0; + DB::query("INSERT INTO {$upload_table} (item,fileurl,filesize,fileext,upfrom,width,height,moduleid,username,ip,addtime,itemid) VALUES ('".md5($newurl)."','$newurl','$file_size','$file_ext','editor','$img_w','$img_h','$moduleid','$_username','".DT_IP."','".DT_TIME."','$itemid')"); + } + $newpath[] = $newurl; + } + } + unset($matches); + return str_replace($oldpath, $newpath, $content); +} + +function save_local($content) { + global $DT, $_userid, $_username, $moduleid, $itemid, $session; + if($content == '<br type="_moz" />') return '';//FireFox + if($content == ' ') return '';//Chrome + if(DT_EDITOR == 'kindeditor') $content = str_replace('" /></embed />', '"></embed>', $content); + $content = preg_replace("/allowScriptAccess=\"always\"/i", "", $content); + $content = preg_replace("/allowScriptAccess/i", "allowscr-iptaccess", $content); + if(!preg_match_all("/src=([\"|']?)([^ \"'>]+)\\1/i", $content, $matches)) return $content; + foreach($matches[2] as $k=>$url) { + if(is_crsf($url) && substr($url, 0, 10) != 'data:image') $content = str_replace($url, DT_SKIN.'image/nopic.gif', $content); + } + if(strpos($content, 'data:image') === false) return $content; + require_once DT_ROOT.'/include/image.class.php'; + $dftp = false; + if($DT['ftp_remote'] && $DT['remote_url']) { + require_once DT_ROOT.'/include/ftp.class.php'; + $ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']); + $dftp = $ftp->connected; + } + if($DT['uploadlog'] && !is_object($session)) $session = new dsession(); + $urls = $oldpath = $newpath = array(); + $DT['uploaddir'] or $DT['uploaddir'] = 'Ym/d'; + foreach($matches[2] as $k=>$url) { + if(in_array($url, $urls)) continue; + $urls[$url] = $url; + if(strpos($url, 'data:image') === false) continue; + if(strpos($url, ';base64,') === false) continue; + $t1 = explode(';base64,', $url); + $t2 = explode('/', $t1[0]); + $file_ext = $t2[1]; + in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png')) or $file_ext = 'jpg'; + $filedir = 'file/upload/'.timetodate(DT_TIME, $DT['uploaddir']).'/'; + $filepath = DT_PATH.$filedir; + $fileroot = DT_ROOT.'/'.$filedir; + $filename = timetodate(DT_TIME, 'His').mt_rand(10, 99).$_userid.'.'.$file_ext; + $newfile = $fileroot.$filename; + if(!is_image($newfile)) continue; + if(file_put($newfile, base64_decode(strip_sql($t1[1], 0)))) { + $file_size = filesize($newfile); + if($file_size < 1) { + file_del($newfile); + continue; + } + $img = @getimagesize($newfile); + if(!$img) { + file_del($newfile); + continue; + } + if($DT['water_type']) { + $image = new image($newfile); + if($DT['water_type'] == 2) { + $image->waterimage(); + } else if($DT['water_type'] == 1) { + $image->watertext(); + } + } + $oldpath[] = $url; + $newurl = linkurl($filepath.$filename); + if($dftp) { + $exp = explode("file/upload/", $newurl); + if($ftp->dftp_put($filedir.$filename, $exp[1])) { + $newurl = $DT['remote_url'].$exp[1]; + $DT['ftp_save'] or file_del($newfile); + } + } + if($DT['uploadlog']) { + $upload_table = DT_PRE.'upload_'.($_userid%10); + $_SESSION['uploads'][] = $newurl; + $img_w = $img ? $img[0] : 0; + $img_h = $img ? $img[1] : 0; + DB::query("INSERT INTO {$upload_table} (item,fileurl,filesize,fileext,upfrom,width,height,moduleid,username,ip,addtime,itemid) VALUES ('".md5($newurl)."','$newurl','$file_size','$file_ext','editor','$img_w','$img_h','$moduleid','$_username','".DT_IP."','".DT_TIME."','$itemid')"); + } + $newpath[] = $newurl; + } + } + unset($matches); + return str_replace($oldpath, $newpath, $content); +} + +function save_thumb($content, $no, $width = 120, $height = 90) { + global $DT, $_userid; + if(!$_userid || !$content) return ''; + $ext = 'jpg|jpeg|gif|png|bmp'; + if(!preg_match_all("/src=([\"|']?)([^ \"'>]+\.($ext))\\1/i", $content, $matches)) return ''; + require_once DT_ROOT.'/include/image.class.php'; + $dftp = false; + if($DT['ftp_remote'] && $DT['remote_url']) { + require_once DT_ROOT.'/include/ftp.class.php'; + $ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']); + $dftp = $ftp->connected; + } + $urls = $oldpath = $newpath = array(); + $DT['uploaddir'] or $DT['uploaddir'] = 'Ym/d'; + foreach($matches[2] as $k=>$url) { + if($k == $no - 1) { + $filedir = 'file/upload/'.timetodate(DT_TIME, $DT['uploaddir']).'/'; + $filepath = DT_PATH.$filedir; + $fileroot = DT_ROOT.'/'.$filedir; + $file_ext = file_ext($url); + $filename = timetodate(DT_TIME, 'His').mt_rand(10, 99).$_userid.'.'.$file_ext; + $newfile = $fileroot.$filename; + if(file_copy($url, $newfile)) { + if(is_image($newfile)) { + if(!@getimagesize($newfile)) { + file_del($newfile); + return ''; + } + $image = new image($newfile); + $image->thumb($width, $height); + } + $newurl = linkurl($filepath.$filename); + if($dftp) { + $exp = explode("file/upload/", $newurl); + if($ftp->dftp_put($filedir.$filename, $exp[1])) { + $newurl = $DT['remote_url'].$exp[1]; + $DT['ftp_save'] or file_del($newfile); + } + } + return $newurl; + } + } + } + unset($matches); + return ''; +} + +function delete_local($content, $userid, $ext = 'jpg|jpeg|gif|png|bmp|mp4|swf') { + if(preg_match_all("/src=([\"|']?)([^ \"'>]+\.($ext))\\1/i", $content, $matches)) { + foreach($matches[2] as $url) { + delete_upload($url, $userid); + } + unset($matches); + } +} + +function delete_diff($new, $old, $ext = 'jpg|jpeg|gif|png|bmp|mp4|swf') { + global $_userid; + $new = stripslashes($new); + $diff_urls = $new_urls = $old_urls = array(); + if(preg_match_all("/src=([\"|']?)([^ \"'>]+\.($ext))\\1/i", $old, $matches)) { + foreach($matches[2] as $url) { + $old_urls[] = $url; + } + } else { + return; + } + if(preg_match_all("/src=([\"|']?)([^ \"'>]+\.($ext))\\1/i", $new, $matches)) { + foreach($matches[2] as $url) { + $new_urls[] = $url; + } + } + foreach($old_urls as $url) { + in_array($url, $new_urls) or $diff_urls[] = $url; + } + if(!$diff_urls) return; + foreach($diff_urls as $url) { + delete_upload($url, $_userid); + } + unset($new, $old, $matches, $url, $diff_urls, $new_urls, $old_urls); +} + +function delete_upload($file, $userid) { + global $CFG, $DT, $ftp; + if(!defined('DT_ADMIN') && (!$userid || $userid != match_userid($file))) return false; + if(!$file) return false; + $thumb = strpos($file, '.thumb.') !== false ? 1 : 0; + $ext = file_ext($file); + $fileurl = $file; + if(strpos($file, 'file/upload') === false) {//Remote + if($DT['ftp_remote'] && $DT['remote_url']) { + if(strpos($file, $DT['remote_url']) !== false) { + if(!is_object($ftp)) { + require_once DT_ROOT.'/include/ftp.class.php'; + $ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']); + } + $file = str_replace($DT['remote_url'], '', $file); + $ftp->dftp_delete($file); + if($DT['ftp_save']) file_del(DT_ROOT.'file/upload/'.$file); + if($thumb) { + $ftp->dftp_delete(str_replace('.thumb.'.$ext, '', $file)); + if($DT['ftp_save']) file_del(DT_ROOT.'file/upload/'.str_replace('.thumb.'.$ext, '', $file)); + $ftp->dftp_delete(str_replace('.thumb.', '.middle.', $file)); + if($DT['ftp_save']) file_del(DT_ROOT.'file/upload/'.str_replace('.thumb.', '.middle.', $file)); + } else { + $ftp->dftp_delete($file.'.thumb.'.$ext); + if($DT['ftp_save']) file_del(DT_ROOT.'file/upload/'.$file.'.thumb.'.$ext); + $ftp->dftp_delete($file.'.middle.'.$ext); + if($DT['ftp_save']) file_del(DT_ROOT.'file/upload/'.$file.'.middle.'.$ext); + } + } + } + } else { + $exp = explode('file/upload/', $file); + $file = DT_ROOT.'/file/upload/'.$exp[1]; + if(is_file($file) && strpos($exp[1], '..') === false) { + file_del($file); + if($thumb) { + file_del(str_replace('.thumb.'.$ext, '', $file)); + file_del(str_replace('.thumb.', '.middle.', $file)); + } else { + file_del($file.'.thumb.'.$ext); + file_del($file.'.middle.'.$ext); + } + } + } + if($DT['uploadlog']) { + $picurl = $thumb ? str_replace('.thumb.'.$ext, '', $fileurl) : $fileurl.'.thumb.'.$ext; + DB::query("DELETE FROM ".DT_PRE."upload_".($userid%10)." WHERE item='".md5($fileurl)."'"); + DB::query("DELETE FROM ".DT_PRE."upload_".($userid%10)." WHERE item='".md5($picurl)."'"); + } +} + +function clear_upload($content = '', $itemid = 0, $tb = '') { + global $DT, $session, $_userid; + if(!is_object($session)) $session = new dsession(); + if(!isset($_SESSION['uploads']) || !$_SESSION['uploads'] || !$content) return; + $update = array(); + foreach($_SESSION['uploads'] as $file) { + $ext = file_ext($file); + $pic = strpos($file, '.thumb.') !== false ? str_replace('.thumb.'.$ext, '', $file) : $file.'.thumb.'.$ext; + if(strpos($content, $file) === false && strpos($content, $pic) === false) { + delete_upload($file, $_userid); + } else { + if($DT['uploadlog'] && $itemid) { $update[] = "'".md5($file)."'"; $update[] = "'".md5($pic)."'"; } + } + } + $tb = $tb ? str_replace(DT_PRE, '', $tb) : ''; + if($update) DB::query("UPDATE ".DT_PRE."upload_".($_userid%10)." SET itemid=$itemid".($tb ? ",tb='$tb'" : "")." WHERE item IN (".implode(',', $update).")"); + $_SESSION['uploads'] = array(); +} + +function check_period($period) { + if($period) { + if(strpos($period, ',') === false) { + $period = explode('|', $period); + foreach($period as $p) { + $p = str_replace(':', '.', $p); + $p = explode('-', $p); + $f = $p[0]; + $t = $p[1]; + $n = date('G.i', DT_TIME); + if(($f > $t && ($n > $f || $n < $t)) || ($f < $t && $n > $f && $n < $t)) return true; + } + return false; + } else { + return strpos(','.$period.',', ','.date('w', DT_TIME).',') === false ? false : true; + } + } else { + return false; + } +} + +function get_status($status, $check) { + global $DT; + if(!$check && $DT['check_week'] && check_period($DT['check_week'])) $check = true; + if(!$check && $DT['check_hour'] && check_period($DT['check_hour'])) $check = true; + if($status == 0) { + return 0; + } else if($status == 1) { + return 2; + } else if($status == 2) { + return 2; + } else if($status == 3) { + return $check ? 2 : 3; + } else if($status == 4) { + return $check ? 2 : 3; + } else { + return 2; + } +} + +function tips($tips) { + $tips = str_replace(array('<br/>', '<br />', '<br>'), array(' ', ' ', ' '), $tips); + echo ' <img src="'.DT_STATIC.'file/image/tips.png" width="16" height="16" title="'.$tips.'" alt="tips" class="c_p" onclick="Dconfirm(\''.str_replace(' ', '<br/>', $tips).'\', \'\', 450);"/>'; +} + +function reload_captcha() { + return 'try{parent.reloadcaptcha();}catch(e){}'; +} + +function reload_question() { + return 'try{parent.reloadquestion();}catch(e){}'; +} + +function sync_weibo($site, $moduleid, $itemid) { + return 'document.write(\'<img src="'.DT_PATH.'api/oauth/'.$site.'/post.php?auth='.encrypt($moduleid.'-'.$itemid, DT_KEY.'SYNC').'" width="1" height="1"/>\');'; +} + +function history($moduleid, $itemid, $action = '', $item = array()) { + $file = DT_ROOT.'/file/history/'.$moduleid.'/'.$itemid.'.php'; + if($action == 'set') { + file_put($file, '<?php exit;?>'.serialize($item)); + } else if($action == 'del') { + file_del($file); + } else { + return is_file($file); + } +} +?> \ No newline at end of file diff --git a/include/property.func.php b/include/property.func.php new file mode 100644 index 0000000..22e9c82 --- /dev/null +++ b/include/property.func.php @@ -0,0 +1,125 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function property_update($post_ppt, $moduleid, $catid, $itemid) { + $catid = intval($catid); + if(!$post_ppt || !$moduleid || !$catid || !$itemid) return; + $OP = property_option($catid); + if(!$OP) return; + $post_ppt = dhtmlspecialchars($post_ppt); + DB::query("DELETE FROM ".DT_PRE."category_value WHERE moduleid=$moduleid AND itemid=$itemid"); + $ppt = array(); + foreach($OP as $v) { + if($v['type'] > 1 && $v['search']) $ppt[] = $v['oid']; + } + $pptword = ''; + foreach($post_ppt as $k=>$v) { + if(in_array($k, $ppt)) { + if(is_array($v)) { + foreach($v as $_v) { + $pptword .= 'O'.$k.':'.$_v.';'; + } + } else { + $pptword .= 'O'.$k.':'.$v.';'; + } + } + if(is_array($v)) $v = implode(',', $v); + DB::query("INSERT INTO ".DT_PRE."category_value (oid,moduleid,itemid,value) VALUES ('$k','$moduleid','$itemid','$v')"); + } + if($pptword) DB::query("UPDATE ".get_table($moduleid)." SET pptword='$pptword' WHERE itemid=$itemid"); +} + +function property_check($post_ppt) { + global $post; + include load('include.lang'); + $OP = $post['catid'] ? property_option($post['catid']) : array(); + if(!$OP) return; + foreach($OP as $v) { + if($v['required'] && !$post_ppt[$v['oid']]) { + $msg = lang($v['type'] > 1 ? $L['fields_choose'] : $L['fields_input'], array($v['name'])); + defined('DT_ADMIN') ? msg($msg) : dalert($msg); + } + } +} + +function property_option($catid) { + $catid = intval($catid); + $lists = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."category_option WHERE catid=$catid ORDER BY listorder ASC,oid ASC"); + while($r = DB::fetch_array($result)) { + $lists[] = $r; + } + return $lists; +} + +function property_value($moduleid, $itemid) { + $lists = array(); + $result = DB::query("SELECT oid,value FROM ".DT_PRE."category_value WHERE moduleid=$moduleid AND itemid=$itemid"); + while($r = DB::fetch_array($result)) { + $lists[$r['oid']] = $r['value']; + } + return $lists; +} + +function property_condition($catid) { + $catid = intval($catid); + $lists = array(); + $result = DB::query("SELECT * FROM ".DT_PRE."category_option WHERE catid=$catid AND type>1 AND search>0 ORDER BY listorder ASC,oid ASC"); + while($r = DB::fetch_array($result)) { + $r['options'] = explode('|', str_replace('(*)', '', $r['value'])); + $lists[] = $r; + } + return $lists; +} + +function property_js() { + include template('property_js', 'chip'); +} + +function property_html($var, $oid, $type, $value, $extend = '') { + global $L, $DT_PC; + $str = ''; + if($type == 0) { + if(strpos($extend, 'size=') === false) $extend .= ' size="50"'; + $str = '<input type="text" name="post_ppt['.$oid.']" id="property-'.$oid.'" value="'.($var ? $var : $value).'" '.$extend.'/>'; + } else if($type == 1) { + if(strpos($extend, 'rows=') === false) $extend .= ' rows="5"'; + if(strpos($extend, 'cols=') === false) $extend .= ' cols="80"'; + $str = '<textarea name="post_ppt['.$oid.']" id="property-'.$oid.'" '.$extend.'>'.($var ? $var : $value).'</textarea><br/>'; + } else if($type == 2) { + $str = '<select name="post_ppt['.$oid.']" id="property-'.$oid.'" '.$extend.'><option value="">'.$L['choose'].'</option>'; + $ops = explode('|', $value); + foreach($ops as $o) { + if($var) { + $o = str_replace('(*)', '', $o); + $selected = $o == $var ? ' selected' : ''; + } else { + $selected = strpos($o, '(*)') !== false ? ' selected' : ''; + $o = str_replace('(*)', '', $o); + } + $str .= '<option value="'.$o.'"'.$selected.'>'.$o.'</option>'; + } + $str .= '</select>'; + } else if($type == 3) { + $str = '<span id="property-'.$oid.'" '.$extend.'>'; + $ops = explode('|', $value); + foreach($ops as $o) { + if($var) { + $o = str_replace('(*)', '', $o); + $tmp = explode(',', $var); + $selected = in_array($o, $tmp) ? ' checked' : ''; + } else { + $selected = strpos($o, '(*)') !== false ? ' checked' : ''; + $o = str_replace('(*)', '', $o); + } + $str .= '<input type="checkbox" name="post_ppt['.$oid.'][]" value="'.$o.'"'.$selected.'>'.$o.'  '; + } + $str .= '</span>'; + } + if($DT_PC) $str .= ' <span id="dproperty-'.$oid.'" class="f_red"></span>'; + return $str; +} +?> \ No newline at end of file diff --git a/include/remote.class.php b/include/remote.class.php new file mode 100644 index 0000000..545af62 --- /dev/null +++ b/include/remote.class.php @@ -0,0 +1,100 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class remote { + var $file; + var $savename; + var $savepath; + var $saveto; + var $overwrite = false; + var $maxsize; + var $ext; + var $errmsg = errmsg; + var $userid; + var $image; + var $uptime = 0; + var $adduserid = true; + + function __construct($file, $savepath, $savename = '') { + global $DT, $_userid; + $this->file = strip_sql($file, 0); + $this->userid = $_userid; + $this->ext = file_ext($file); + $this->maxsize = $DT['uploadsize'] ? $DT['uploadsize']*1024 : 2048*1024; + $this->savepath = $savepath; + $this->savename = $savename; + } + + function remote($file, $savepath, $savename = '') { + $this->__construct($file, $savepath, $savename); + } + + function save() { + include load('include.lang'); + if(!$this->is_allow()) return $this->_($L['upload_not_allow']); + $this->set_savepath($this->savepath); + $this->set_savename($this->savename); + if(file_copy($this->file, DT_ROOT.'/'.$this->saveto)) { + if(!@getimagesize(DT_ROOT.'/'.$this->saveto)) { + file_del(DT_ROOT.'/'.$this->saveto); + return $this->_($L['upload_bad']); + } + if($this->maxsize > 0 && filesize(DT_ROOT.'/'.$this->saveto) > $this->maxsize) { + file_del(DT_ROOT.'/'.$this->saveto); + return $this->_($L['upload_size_limit'].' ('.intval($this->maxsize/1024).'Kb)'); + } + $this->image = 1; + return true; + } else { + return $this->_($L['upload_failed']); + } + } + + function is_allow() { + if($this->ext) { + if(!in_array($this->ext, array('jpg', 'jpeg', 'gif', 'png', 'bmp'))) return false; + } else { + $this->ext = 'jpg'; + } + return preg_match("/^(http|https)\:\/\/[A-Za-z0-9_\-\/\.\#\&\?\;\,\=\%\:\!]{10,}$/", $this->file); + } + + function set_savepath($savepath) { + $savepath = str_replace("\\", "/", $savepath); + $savepath = substr($savepath, -1) == "/" ? $savepath : $savepath."/"; + $this->savepath = $savepath; + } + + function set_savename($savename) { + if($savename) { + $this->savename = $this->adduserid ? str_replace('.'.$this->ext, $this->userid.'.'.$this->ext, $savename) : $savename; + } else { + $this->uptime = DT_TIME; + $name = date('His', $this->uptime).rand(10, 99); + $this->savename = $this->adduserid ? $name.$this->userid.'.'.$this->ext : $name.'.'.$this->ext; + } + $this->saveto = $this->savepath.$this->savename; + if(!$this->overwrite && is_file(DT_ROOT.'/'.$this->saveto)) { + $i = 1; + while($i) { + $saveto = str_replace('.'.$this->ext, '('.$i.').'.$this->ext, $this->saveto); + if(is_file(DT_ROOT.'/'.$saveto)) { + $i++; + continue; + } else { + $this->saveto = $saveto; + break; + } + } + } + } + + function _($e) { + $this->errmsg = $e; + return false; + } +} +?> \ No newline at end of file diff --git a/include/rewrite.inc.php b/include/rewrite.inc.php new file mode 100644 index 0000000..4706788 --- /dev/null +++ b/include/rewrite.inc.php @@ -0,0 +1,26 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +$pstr = ''; +if(isset($_SERVER['UNENCODED_URL']) && strpos($_SERVER['QUERY_STRING'], '-htm-') !== false) $_SERVER['QUERY_STRING'] = substr($_SERVER['UNENCODED_URL'], strpos($_SERVER['UNENCODED_URL'], '-htm-') + 5);//IIS7+ +if($_SERVER['QUERY_STRING']) { + if(preg_match("/^(.*)\.html(\?(.*))*$/", $_SERVER['QUERY_STRING'], $_match)) { + $pstr = $_match[1]; + } else if(preg_match("/^(.*)\/$/", $_SERVER['QUERY_STRING'], $_match)) { + $pstr = $_match[1]; + } +} else if($_SERVER["REQUEST_URI"] != $_SERVER["SCRIPT_NAME"]) { + $string = str_replace($_SERVER["SCRIPT_NAME"], '', $_SERVER["REQUEST_URI"]); + if($string && preg_match("/^\/(.*)\/$/", $string, $_match)) $pstr = $_match[1]; +} +if($pstr && strpos($pstr, '-') !== false) { + $_GET = array(); + $pstr = explode('-', $pstr); + $pstr_count = count($pstr); + if($pstr_count%2 == 1) --$pstr_count; + for($i = 0; $i < $pstr_count; $i++) { $_GET[$pstr[$i]] = $MQG ? addslashes($pstr[++$i]) : $pstr[++$i]; } +} +?> \ No newline at end of file diff --git a/include/safe.func.php b/include/safe.func.php new file mode 100644 index 0000000..5ff16b1 --- /dev/null +++ b/include/safe.func.php @@ -0,0 +1,98 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function dhtmlspecialchars($string) { + if(is_array($string)) { + return array_map('dhtmlspecialchars', $string); + } else { + $string = htmlspecialchars($string, ENT_QUOTES, DT_CHARSET == 'GBK' ? 'GB2312' : 'UTF-8'); + return str_replace('&', '&', $string); + } +} + +function dsafe($string, $type = 1) { + if(is_array($string)) { + return array_map('dsafe', $string); + } else { + if($type) { + $string = str_replace('<i></i>', '', $string); + $string = preg_replace("/\<\!\-\-([\s\S]*?)\-\-\>/", "", $string); + $string = preg_replace("/\/\*([\s\S]*?)\*\//", "", $string); + $string = preg_replace("/&#([a-z0-9]{1,})/i", "<i></i>&#\\1", $string); + $match = array("/s[\s]*c[\s]*r[\s]*i[\s]*p[\s]*t/i","/d[\s]*a[\s]*t[\s]*a[\s]*\:/i","/b[\s]*a[\s]*s[\s]*e/i","/e[\\\]*x[\\\]*p[\\\]*r[\\\]*e[\\\]*s[\\\]*s[\\\]*i[\\\]*o[\\\]*n/i","/i[\\\]*m[\\\]*p[\\\]*o[\\\]*r[\\\]*t/i","/on([a-z]{2,})([\(|\=|\s]+)/i","/about/i","/frame/i","/link/i","/meta/i","/textarea/i","/eval/i","/alert/i","/confirm/i","/prompt/i","/cookie/i","/document/i","/newline/i","/colon/i","/<style/i","/\\\x/i"); + $replace = array("s<i></i>cript","da<i></i>ta:","ba<i></i>se","ex<i></i>pression","im<i></i>port","o<i></i>n\\1\\2","a<i></i>bout","f<i></i>rame","l<i></i>ink","me<i></i>ta","text<i></i>area","e<i></i>val","a<i></i>lert","/con<i></i>firm/i","prom<i></i>pt","coo<i></i>kie","docu<i></i>ment","new<i></i>line","co<i></i>lon","<sty1e","\<i></i>x"); + return str_replace(array('isShowa<i></i>bout', 'co<i></i>ntrols'), array('isShowAbout', 'controls'), preg_replace($match, $replace, $string)); + } else { + return str_replace(array('<i></i>', '<sty1e'), array('', '<style'), $string); + } + } +} + +function strip_sql($string, $type = 1) { + if(is_array($string)) { + return array_map('strip_sql', $string); + } else { + if($type) { + $string = preg_replace("/\/\*([\s\S]*?)\*\//", "", $string); + $string = preg_replace("/0x([a-fA-d0-9]{2,})/", '0x\\1', $string); + $string = preg_replace("/0X([a-fA-d0-9]{2,})/", '0X\\1', $string); + $string = preg_replace_callback("/(select|update|replace|delete|drop)([\s\S]*?)(".DT_PRE."|from)/i", 'strip_wd', $string); + $string = preg_replace_callback("/(load_file|substring|substr|reverse|trim|space|left|right|mid|lpad|concat|concat_ws|make_set|ascii|bin|oct|hex|ord|char|conv)([^a-z]?)\(/i", 'strip_wd', $string); + $string = preg_replace_callback("/(union|where|having|outfile|dumpfile|".DT_PRE.")/i", 'strip_wd', $string); + return $string; + } else { + return str_replace(array('_','d','e','g','i','m','n','p','r','s','t','v','x','X','R'), array('_','d','e','g','i','m','n','p','r','s','t','v','x','X','R'), $string); + } + } +} + +function strip_wd($m) { + if(is_array($m) && isset($m[1])) { + $wd = substr($m[1], 0, -1).'&#'.ord(substr($m[1], -1)).';'; + if(isset($m[3])) return $wd.$m[2].$m[3]; + if(isset($m[2])) return $wd.$m[2].'('; + return $wd; + } + return ''; +} + +function strip_uri($uri) { + if(strpos($uri, '%') !== false) { + while($uri != urldecode($uri)) { + $uri = urldecode($uri); + } + } + if(strpos($uri, '<') !== false || strpos($uri, "'") !== false || strpos($uri, '"') !== false) { + dhttp(403, 0); + dalert('HTTP 403 Forbidden - Bad URL', DT_PATH); + } +} + +function strip_kw($kw, $max = 0) { + $kw = dhtmlspecialchars(trim(urldecode($kw))); + if($kw) { + if(strpos($kw, '%') !== false) return ''; + $kw = str_replace(array("'", '&'), array('', ''), $kw); + $max = intval($max); + if($max > 0 && strlen($kw) > $max) $kw = dsubstr($kw, $max); + } + return $kw; +} + +function strip_key($array) { + foreach($array as $k=>$v) { + if(!preg_match("/^[a-z0-9_\-]{1,64}$/i", $k)) { + dhttp(403, 0); + dalert('HTTP 403 Forbidden - Bad DATA', DT_PATH); + } + if(is_array($v)) strip_key($v); + } +} + +function strip_str($string) { + return str_replace(array('\\','"', "'"), array('', '', ''), $string); +} +?> \ No newline at end of file diff --git a/include/seo.inc.php b/include/seo.inc.php new file mode 100644 index 0000000..a9a1f4b --- /dev/null +++ b/include/seo.inc.php @@ -0,0 +1,121 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +$seo_modulename = $MOD['name']; +$seo_sitename = $city_sitename ? $city_sitename : $DT['sitename']; +$seo_sitetitle = $DT['seo_title']; +$seo_sitekeywords = $DT['seo_keywords']; +$seo_sitedescription = $DT['seo_description']; +$seo_delimiter = $DT['seo_delimiter']; +$seo_page = $page > 1 ? lang($L['seo_page'], array($page)).$seo_delimiter : ''; +$seo_catname = $seo_cattitle = $seo_parentname = $seo_catkeywords = $seo_catdescription = ''; +if($catid) { + if($CAT['parentid']) { + $seo_catname = ''; + $tmp = strip_tags(cat_pos($CAT, 'DESTOON')); + $tmp = explode('DESTOON', $tmp); + $tmp = array_reverse($tmp); + foreach($tmp as $k=>$v) { + $seo_catname .= $v.$seo_delimiter; + } + } else { + $seo_catname = $CAT['catname'].$seo_delimiter; + } + $seo_cattitle = $CAT['seo_title'] ? $CAT['seo_title'].$seo_delimiter : $seo_catname; + $seo_catkeywords = $CAT['seo_keywords'] ? $CAT['seo_keywords'] : ''; + $seo_catdescription = $CAT['seo_description'] ? $CAT['seo_description'] : ''; +} +$seo_areaname = (isset($areaid) && $areaid) ? area_pos($areaid, $seo_delimiter).$seo_delimiter : ''; +$seo_showtitle = isset($title) ? $title : ''; +$seo_showintroduce = isset($introduce) ? $introduce : ''; +switch($seo_file) { + case 'index': + if($MOD['title_index']) { + eval("\$seo_title = \"$MOD[title_index]\";"); + } else { + $seo_title = $seo_modulename.$seo_delimiter.$seo_sitename; + } + if($MOD['keywords_index']) eval("\$head_keywords = \"$MOD[keywords_index]\";"); + if($MOD['description_index']) eval("\$head_description = \"$MOD[description_index]\";"); + break; + case 'list': + if($CAT['seo_title']) { + $seo_title = $CAT['seo_title']; + } else if($MOD['title_list']) { + eval("\$seo_title = \"$MOD[title_list]\";"); + } else { + $seo_title = $seo_cattitle.$seo_page.$seo_modulename.$seo_delimiter.$seo_sitename; + } + $_seo_catname = $seo_catname; + $_seo_areaname = $seo_areaname; + if($CAT['seo_keywords']) { + $head_keywords = $CAT['seo_keywords']; + } else if($MOD['keywords_list']) { + if($_seo_catname) $seo_catname = str_replace($seo_delimiter, ',', $_seo_catname); + if($_seo_areaname) $seo_areaname = str_replace($seo_delimiter, ',', $_seo_areaname); + eval("\$head_keywords = \"$MOD[keywords_list]\";"); + } + if($CAT['seo_description']) { + $head_description = $CAT['seo_description']; + } else if($MOD['description_list']) { + if($_seo_catname) $seo_catname = str_replace($seo_delimiter, ' ', $_seo_catname); + if($_seo_areaname) $seo_areaname = str_replace($seo_delimiter, ' ', $_seo_areaname); + eval("\$head_description = \"$MOD[description_list]\";"); + } + break; + case 'show': + if($MOD['title_show']) { + eval("\$seo_title = \"$MOD[title_show]\";"); + } else { + $seo_title = $seo_showtitle.$seo_delimiter.$seo_catname.$seo_modulename.$seo_delimiter.$seo_sitename; + } + $_seo_catname = $seo_catname; + $_seo_areaname = $seo_areaname; + if($MOD['keywords_show']) { + if($_seo_catname) $seo_catname = str_replace($seo_delimiter, ',', $_seo_catname); + if($_seo_areaname) $seo_areaname = str_replace($seo_delimiter, ',', $_seo_areaname); + eval("\$head_keywords = \"$MOD[keywords_show]\";"); + } else { + $head_keywords = $keyword; + } + if($MOD['description_show']) { + if($_seo_catname) $seo_catname = str_replace($seo_delimiter, ' ', $_seo_catname); + if($_seo_areaname) $seo_areaname = str_replace($seo_delimiter, ' ', $_seo_areaname); + eval("\$head_description = \"$MOD[description_show]\";"); + } else { + $head_description = $introduce ? $introduce : $title; + } + break; + case 'search': + if($MOD['title_search']) { + $seo_kw = $kw ? $kw.$seo_delimiter : ''; + eval("\$seo_title = \"$MOD[title_search]\";"); + } else { + $seo_title = $seo_modulename.$L['search'].$seo_delimiter.$seo_page.$seo_sitename; + if($catid) $seo_title = $seo_catname.$seo_title; + if($areaid) $seo_title = $seo_areaname.$seo_title; + if($kw) $seo_title = $kw.$seo_delimiter.$seo_title; + } + $_seo_catname = $seo_catname; + $_seo_areaname = $seo_areaname; + if($MOD['keywords_search']) { + if($_seo_catname) $seo_catname = str_replace($seo_delimiter, ',', $_seo_catname); + if($_seo_areaname) $seo_areaname = str_replace($seo_delimiter, ',', $_seo_areaname); + $seo_kw = $kw ? $kw.',' : ''; + eval("\$head_keywords = \"$MOD[keywords_search]\";"); + } + if($MOD['description_search']) { + if($_seo_catname) $seo_catname = str_replace($seo_delimiter, ' ', $_seo_catname); + if($_seo_areaname) $seo_areaname = str_replace($seo_delimiter, ' ', $_seo_areaname); + $seo_kw = $kw ? $kw : ''; + eval("\$head_description = \"$MOD[description_search]\";"); + } + break; + default: + break; +} +if(isset($sns_app) && $sns_app) $seo_title = ''; +?> \ No newline at end of file diff --git a/include/session_apc.class.php b/include/session_apc.class.php new file mode 100644 index 0000000..e5d392f --- /dev/null +++ b/include/session_apc.class.php @@ -0,0 +1,45 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + + function __construct() { + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc')); + session_cache_limiter('private, must-revalidate'); + session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } + + function open($path, $name) { + return true; + } + + function close() { + return true; + } + + function read($sid) { + return apc_fetch($sid); + } + + function write($sid, $data) { + return apc_store($sid, $data, 1800); + } + + function destroy($sid) { + return apc_delete($sid); + } + + function gc() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/session_eaccelerator.class.php b/include/session_eaccelerator.class.php new file mode 100644 index 0000000..6e49329 --- /dev/null +++ b/include/session_eaccelerator.class.php @@ -0,0 +1,45 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + + function __construct() { + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc')); + session_cache_limiter('private, must-revalidate'); + session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } + + function open($path, $name) { + return true; + } + + function close() { + return true; + } + + function read($sid) { + return eaccelerator_get($sid); + } + + function write($sid, $data) { + return eaccelerator_put($sid, $data, 1800); + } + + function destroy($sid) { + return eaccelerator_rm($sid); + } + + function gc() { + return eaccelerator_gc(); + } +} +?> \ No newline at end of file diff --git a/include/session_file.class.php b/include/session_file.class.php new file mode 100644 index 0000000..9d2281c --- /dev/null +++ b/include/session_file.class.php @@ -0,0 +1,28 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + function __construct() { + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + @ini_set('session.gc_maxlifetime', 1800); + if(is_dir(DT_ROOT.'/file/session/')) { + $dir = DT_ROOT.'/file/session/'.strtolower(substr(md5(DT_KEY), 2, 6)).'/'; + if(is_dir($dir)) { + session_save_path($dir); + } else { + dir_create($dir); + } + } + session_cache_limiter('private, must-revalidate'); + @session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } +} +?> \ No newline at end of file diff --git a/include/session_memcache.class.php b/include/session_memcache.class.php new file mode 100644 index 0000000..8dfb6e4 --- /dev/null +++ b/include/session_memcache.class.php @@ -0,0 +1,52 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + var $obj; + + function __construct() { + $this->obj = new Memcache; + include DT_ROOT.'/file/config/memcache.inc.php'; + $num = count($MemServer); + $key = $num == 1 ? 0 : abs(crc32(DT_IP))%$num; + $this->obj->connect($MemServer[$key]['host'], $MemServer[$key]['port'], 2); + + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc')); + session_cache_limiter('private, must-revalidate'); + session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } + + function open($path, $name) { + return true; + } + + function close() { + return true; + } + + function read($sid) { + return $this->obj->get($sid); + } + + function write($sid, $data) { + return $this->obj->set($sid, $data, 0, 1800); + } + + function destroy($sid) { + return $this->obj->delete($sid); + } + + function gc() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/session_mysql.class.php b/include/session_mysql.class.php new file mode 100644 index 0000000..245654b --- /dev/null +++ b/include/session_mysql.class.php @@ -0,0 +1,50 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + var $table; + + function __construct() { + $this->table = DT_PRE.'session'; + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc')); + session_cache_limiter('private, must-revalidate'); + session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } + + function open($path, $name) { + return true; + } + + function close() { + $this->gc(); + } + + function read($sid) { + $r = DB::get_one("SELECT data FROM {$this->table} WHERE sessionid='$sid'"); + return $r ? $r['data'] : ''; + } + + function write($sid, $data) { + $data = addslashes($data); + DB::query("REPLACE INTO {$this->table} (sessionid,data,lastvisit) VALUES('$sid', '$data', '".DT_TIME."')"); + } + + function destroy($sid) { + DB::query("DELETE FROM {$this->table} WHERE sessionid='$sid'"); + } + + function gc() { + $expiretime = DT_TIME - 1800; + DB::query("DELETE FROM {$this->table} WHERE lastvisit<$expiretime"); + } +} +?> \ No newline at end of file diff --git a/include/session_redis.class.php b/include/session_redis.class.php new file mode 100644 index 0000000..36b2dfa --- /dev/null +++ b/include/session_redis.class.php @@ -0,0 +1,52 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + var $obj; + + function __construct() { + $this->obj = new Redis; + include DT_ROOT.'/file/config/redis.inc.php'; + $num = count($RedisServer); + $key = $num == 1 ? 0 : abs(crc32(DT_IP))%$num; + $this->obj->connect($RedisServer[$key]['host'], $RedisServer[$key]['port']); + + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc')); + session_cache_limiter('private, must-revalidate'); + session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } + + function open($path, $name) { + return true; + } + + function close() { + return true; + } + + function read($sid) { + return $this->obj->get($sid); + } + + function write($sid, $data) { + return $this->obj->setex($sid, 1800, $data); + } + + function destroy($sid) { + return $this->obj->delete($sid); + } + + function gc() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/session_wincache.class.php b/include/session_wincache.class.php new file mode 100644 index 0000000..77d5554 --- /dev/null +++ b/include/session_wincache.class.php @@ -0,0 +1,45 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + + function __construct() { + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc')); + session_cache_limiter('private, must-revalidate'); + session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } + + function open($path, $name) { + return true; + } + + function close() { + return true; + } + + function read($sid) { + return wincache_ucache_get($sid); + } + + function write($sid, $data) { + return wincache_ucache_set($sid, $data, 1800); + } + + function destroy($sid) { + return wincache_ucache_delete($sid); + } + + function gc() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/session_xcache.class.php b/include/session_xcache.class.php new file mode 100644 index 0000000..e0027dc --- /dev/null +++ b/include/session_xcache.class.php @@ -0,0 +1,45 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dsession { + + function __construct() { + if(DT_DOMAIN) @ini_set('session.cookie_domain', '.'.DT_DOMAIN); + session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc')); + session_cache_limiter('private, must-revalidate'); + session_start(); + header("cache-control: private"); + } + + function dsession() { + $this->__construct(); + } + + function open($path, $name) { + return true; + } + + function close() { + return true; + } + + function read($sid) { + return xcache_get($sid); + } + + function write($sid, $data) { + return xcache_set($sid, $data, 1800); + } + + function destroy($sid) { + return xcache_unset($sid); + } + + function gc() { + return true; + } +} +?> \ No newline at end of file diff --git a/include/sphinx.class.php b/include/sphinx.class.php new file mode 100644 index 0000000..d412382 --- /dev/null +++ b/include/sphinx.class.php @@ -0,0 +1,1399 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); + +define( "SEARCHD_COMMAND_SEARCH", 0 ); +define( "SEARCHD_COMMAND_EXCERPT", 1 ); +define( "SEARCHD_COMMAND_UPDATE", 2 ); +define( "SEARCHD_COMMAND_KEYWORDS",3 ); +define( "SEARCHD_COMMAND_PERSIST", 4 ); +define( "SEARCHD_COMMAND_STATUS", 5 ); +define( "SEARCHD_COMMAND_QUERY", 6 ); + +define( "VER_COMMAND_SEARCH", 0x116 ); +define( "VER_COMMAND_EXCERPT", 0x100 ); +define( "VER_COMMAND_UPDATE", 0x102 ); +define( "VER_COMMAND_KEYWORDS", 0x100 ); +define( "VER_COMMAND_STATUS", 0x100 ); +define( "VER_COMMAND_QUERY", 0x100 ); + +define( "SEARCHD_OK", 0 ); +define( "SEARCHD_ERROR", 1 ); +define( "SEARCHD_RETRY", 2 ); +define( "SEARCHD_WARNING", 3 ); + +define( "SPH_MATCH_ALL", 0 ); +define( "SPH_MATCH_ANY", 1 ); +define( "SPH_MATCH_PHRASE", 2 ); +define( "SPH_MATCH_BOOLEAN", 3 ); +define( "SPH_MATCH_EXTENDED", 4 ); +define( "SPH_MATCH_FULLSCAN", 5 ); +define( "SPH_MATCH_EXTENDED2", 6 ); // extended engine V2 (TEMPORARY, WILL BE REMOVED) + +define( "SPH_RANK_PROXIMITY_BM25", 0 ); ///< default mode, phrase proximity major factor and BM25 minor one +define( "SPH_RANK_BM25", 1 ); ///< statistical mode, BM25 ranking only (faster but worse quality) +define( "SPH_RANK_NONE", 2 ); ///< no ranking, all matches get a weight of 1 +define( "SPH_RANK_WORDCOUNT", 3 ); ///< simple word-count weighting, rank is a weighted sum of per-field keyword occurence counts +define( "SPH_RANK_PROXIMITY", 4 ); +define( "SPH_RANK_MATCHANY", 5 ); +define( "SPH_RANK_FIELDMASK", 6 ); + +define( "SPH_SORT_RELEVANCE", 0 ); +define( "SPH_SORT_ATTR_DESC", 1 ); +define( "SPH_SORT_ATTR_ASC", 2 ); +define( "SPH_SORT_TIME_SEGMENTS", 3 ); +define( "SPH_SORT_EXTENDED", 4 ); +define( "SPH_SORT_EXPR", 5 ); + +define( "SPH_FILTER_VALUES", 0 ); +define( "SPH_FILTER_RANGE", 1 ); +define( "SPH_FILTER_FLOATRANGE", 2 ); + +define( "SPH_ATTR_INTEGER", 1 ); +define( "SPH_ATTR_TIMESTAMP", 2 ); +define( "SPH_ATTR_ORDINAL", 3 ); +define( "SPH_ATTR_BOOL", 4 ); +define( "SPH_ATTR_FLOAT", 5 ); +define( "SPH_ATTR_BIGINT", 6 ); +define( "SPH_ATTR_MULTI", 0x40000000 ); + +define( "SPH_GROUPBY_DAY", 0 ); +define( "SPH_GROUPBY_WEEK", 1 ); +define( "SPH_GROUPBY_MONTH", 2 ); +define( "SPH_GROUPBY_YEAR", 3 ); +define( "SPH_GROUPBY_ATTR", 4 ); +define( "SPH_GROUPBY_ATTRPAIR", 5 ); + + + +function sphPackI64 ( $v ) +{ + assert ( is_numeric($v) ); + + if ( PHP_INT_SIZE>=8 ) + { + $v = (int)$v; + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + } + + if ( is_int($v) ) + return pack ( "NN", $v < 0 ? -1 : 0, $v ); + + if ( function_exists("bcmul") ) + { + if ( bccomp ( $v, 0 ) == -1 ) + $v = bcadd ( "18446744073709551616", $v ); + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + $p = max(0, strlen($v) - 13); + $lo = abs((float)substr($v, $p)); + $hi = abs((float)substr($v, 0, $p)); + + $m = $lo + $hi*1316134912.0; // (10 ^ 13) % (1 << 32) = 1316134912 + $q = floor($m/4294967296.0); + $l = $m - ($q*4294967296.0); + $h = $hi*2328.0 + $q; // (10 ^ 13) / (1 << 32) = 2328 + + if ( $v<0 ) + { + if ( $l==0 ) + $h = 4294967296.0 - $h; + else + { + $h = 4294967295.0 - $h; + $l = 4294967296.0 - $l; + } + } + return pack ( "NN", $h, $l ); +} + +function sphPackU64 ( $v ) +{ + assert ( is_numeric($v) ); + + if ( PHP_INT_SIZE>=8 ) + { + assert ( $v>=0 ); + + if ( is_int($v) ) + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, 4294967296, 0 ); + $l = bcmod ( $v, 4294967296 ); + return pack ( "NN", $h, $l ); + } + + $p = max ( 0, strlen($v) - 13 ); + $lo = (int)substr ( $v, $p ); + $hi = (int)substr ( $v, 0, $p ); + + $m = $lo + $hi*1316134912; + $l = $m % 4294967296; + $h = $hi*2328 + (int)($m/4294967296); + + return pack ( "NN", $h, $l ); + } + + if ( is_int($v) ) + return pack ( "NN", 0, $v ); + + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + $p = max(0, strlen($v) - 13); + $lo = (float)substr($v, $p); + $hi = (float)substr($v, 0, $p); + + $m = $lo + $hi*1316134912.0; + $q = floor($m / 4294967296.0); + $l = $m - ($q * 4294967296.0); + $h = $hi*2328.0 + $q; + + return pack ( "NN", $h, $l ); +} + +function sphUnpackU64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + if ( $hi<=2147483647 ) + return ($hi<<32) + $lo; + + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + $C = 100000; + $h = ((int)($hi / $C) << 32) + (int)($lo / $C); + $l = (($hi % $C) << 32) + ($lo % $C); + if ( $l>$C ) + { + $h += (int)($l / $C); + $l = $l % $C; + } + + if ( $h==0 ) + return $l; + return sprintf ( "%d%05d", $h, $l ); + } + + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0; + $h = $q*4294967296.0 + $r*429.0 + $mq; + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return sprintf( "%.0f", (float)$l ); + return $h . $l; +} + +function sphUnpackI64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + return ($hi<<32) + $lo; + } + + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + elseif ( $hi==-1 ) + { + if ( $lo<0 ) + return $lo; + return sprintf ( "%.0f", $lo - 4294967296.0 ); + } + + $neg = ""; + $c = 0; + if ( $hi<0 ) + { + $hi = ~$hi; + $lo = ~$lo; + $c = 1; + $neg = "-"; + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + if ( function_exists("bcmul") ) + return $neg . bcadd ( bcadd ( $lo, bcmul ( $hi, "4294967296" ) ), $c ); + + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0 + $c; + $h = $q*4294967296.0 + $r*429.0 + $mq; + if ( $l==10000000 ) + { + $l = 0; + $h += 1; + } + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return $neg . sprintf( "%.0f", (float)$l ); + return $neg . $h . $l; +} + + +function sphFixUint ( $value ) +{ + if ( PHP_INT_SIZE>=8 ) + { + if ( $value<0 ) $value += (1<<32); + return $value; + } + else + { + return sprintf ( "%u", $value ); + } +} + + +class SphinxClient +{ + var $_host; ///< searchd host (default is "localhost") + var $_port; ///< searchd port (default is 9312) + var $_offset; ///< how many records to seek from result-set start (default is 0) + var $_limit; ///< how many records to return from result-set starting at offset (default is 20) + var $_mode; ///< query matching mode (default is SPH_MATCH_ALL) + var $_weights; ///< per-field weights (default is 1 for all fields) + var $_sort; ///< match sorting mode (default is SPH_SORT_RELEVANCE) + var $_sortby; ///< attribute to sort by (defualt is "") + var $_min_id; ///< min ID to match (default is 0, which means no limit) + var $_max_id; ///< max ID to match (default is 0, which means no limit) + var $_filters; ///< search filters + var $_groupby; ///< group-by attribute name + var $_groupfunc; ///< group-by function (to pre-process group-by attribute value with) + var $_groupsort; ///< group-by sorting clause (to sort groups in result set with) + var $_groupdistinct;///< group-by count-distinct attribute + var $_maxmatches; ///< max matches to retrieve + var $_cutoff; ///< cutoff to stop searching at (default is 0) + var $_retrycount; ///< distributed retries count + var $_retrydelay; ///< distributed retries delay + var $_anchor; ///< geographical anchor point + var $_indexweights; ///< per-index weights + var $_ranker; ///< ranking mode (default is SPH_RANK_PROXIMITY_BM25) + var $_maxquerytime; ///< max query time, milliseconds (default is 0, do not limit) + var $_fieldweights; ///< per-field-name weights + var $_overrides; ///< per-query attribute values overrides + var $_select; ///< select-list (attributes or expressions, with optional aliases) + + var $_error; ///< last error message + var $_warning; ///< last warning message + var $_connerror; ///< connection error vs remote error flag + + var $_reqs; ///< requests array for multi-query + var $_mbenc; ///< stored mbstring encoding + var $_arrayresult; ///< whether $result["matches"] should be a hash or an array + var $_timeout; ///< connect timeout + + function __construct() { + $this->SphinxClient(); + } + + function SphinxClient () + { + $this->_host = "localhost"; + $this->_port = 9312; + $this->_path = false; + $this->_socket = false; + + $this->_offset = 0; + $this->_limit = 20; + $this->_mode = SPH_MATCH_ALL; + $this->_weights = array (); + $this->_sort = SPH_SORT_RELEVANCE; + $this->_sortby = ""; + $this->_min_id = 0; + $this->_max_id = 0; + $this->_filters = array (); + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + $this->_maxmatches = 1000; + $this->_cutoff = 0; + $this->_retrycount = 0; + $this->_retrydelay = 0; + $this->_anchor = array (); + $this->_indexweights= array (); + $this->_ranker = SPH_RANK_PROXIMITY_BM25; + $this->_maxquerytime= 0; + $this->_fieldweights= array(); + $this->_overrides = array(); + $this->_select = "*"; + + $this->_error = ""; // per-reply fields (for single-query case) + $this->_warning = ""; + $this->_connerror = false; + + $this->_reqs = array (); // requests storage (for multi-query case) + $this->_mbenc = ""; + $this->_arrayresult = false; + $this->_timeout = 0; + } + + function __destruct() + { + if ( $this->_socket !== false ) + fclose ( $this->_socket ); + } + + function GetLastError () + { + return $this->_error; + } + + function GetLastWarning () + { + return $this->_warning; + } + + function IsConnectError() + { + return $this->_connerror; + } + + function SetServer ( $host, $port = 0 ) + { + assert ( is_string($host) ); + if ( $host[0] == '/') + { + $this->_path = 'unix://' . $host; + return; + } + if ( substr ( $host, 0, 7 )=="unix://" ) + { + $this->_path = $host; + return; + } + + assert ( is_int($port) ); + $this->_host = $host; + $this->_port = $port; + $this->_path = ''; + + } + + function SetConnectTimeout ( $timeout ) + { + assert ( is_numeric($timeout) ); + $this->_timeout = $timeout; + } + + + function _Send ( $handle, $data, $length ) + { + if ( feof($handle) || fwrite ( $handle, $data, $length ) !== $length ) + { + $this->_error = 'connection unexpectedly closed (timed out?)'; + $this->_connerror = true; + return false; + } + return true; + } + + + function _MBPush () + { + $this->_mbenc = ""; + if ( ini_get ( "mbstring.func_overload" ) & 2 ) + { + $this->_mbenc = mb_internal_encoding(); + mb_internal_encoding ( "latin1" ); + } + } + + function _MBPop () + { + if ( $this->_mbenc ) + mb_internal_encoding ( $this->_mbenc ); + } + + function _Connect () + { + if ( $this->_socket!==false ) + { + if ( !@feof ( $this->_socket ) ) + return $this->_socket; + + $this->_socket = false; + } + + $errno = 0; + $errstr = ""; + $this->_connerror = false; + + if ( $this->_path ) + { + $host = $this->_path; + $port = 0; + } + else + { + $host = $this->_host; + $port = $this->_port; + } + + if ( $this->_timeout<=0 ) + $fp = fsockopen ( $host, $port, $errno, $errstr ); + else + $fp = fsockopen ( $host, $port, $errno, $errstr, $this->_timeout ); + + if ( !$fp ) + { + if ( $this->_path ) + $location = $this->_path; + else + $location = "{$this->_host}:{$this->_port}"; + + $errstr = trim ( $errstr ); + $this->_error = "connection to $location failed (errno=$errno, msg=$errstr)"; + $this->_connerror = true; + return false; + } + + if ( !$this->_Send ( $fp, pack ( "N", 1 ), 4 ) ) + { + fclose ( $fp ); + $this->_error = "failed to send client protocol version"; + return false; + } + + list(,$v) = unpack ( "N*", fread ( $fp, 4 ) ); + $v = (int)$v; + if ( $v<1 ) + { + fclose ( $fp ); + $this->_error = "expected searchd protocol version 1+, got version '$v'"; + return false; + } + + return $fp; + } + + function _GetResponse ( $fp, $client_ver ) + { + $response = ""; + $len = 0; + + $header = fread ( $fp, 8 ); + if ( strlen($header)==8 ) + { + list ( $status, $ver, $len ) = array_values ( unpack ( "n2a/Nb", $header ) ); + $left = $len; + while ( $left>0 && !feof($fp) ) + { + $chunk = fread ( $fp, $left ); + if ( $chunk ) + { + $response .= $chunk; + $left -= strlen($chunk); + } + } + } + if ( $this->_socket === false ) + fclose ( $fp ); + + $read = strlen ( $response ); + if ( !$response || $read!=$len ) + { + $this->_error = $len + ? "failed to read searchd response (status=$status, ver=$ver, len=$len, read=$read)" + : "received zero-sized searchd response"; + return false; + } + + if ( $status==SEARCHD_WARNING ) + { + list(,$wlen) = unpack ( "N*", substr ( $response, 0, 4 ) ); + $this->_warning = substr ( $response, 4, $wlen ); + return substr ( $response, 4+$wlen ); + } + if ( $status==SEARCHD_ERROR ) + { + $this->_error = "searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status==SEARCHD_RETRY ) + { + $this->_error = "temporary searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status!=SEARCHD_OK ) + { + $this->_error = "unknown status code '$status'"; + return false; + } + + if ( $ver<$client_ver ) + { + $this->_warning = sprintf ( "searchd command v.%d.%d older than client's v.%d.%d, some options might not work", + $ver>>8, $ver&0xff, $client_ver>>8, $client_ver&0xff ); + } + + return $response; + } + + + function SetLimits ( $offset, $limit, $max=0, $cutoff=0 ) + { + assert ( is_int($offset) ); + assert ( is_int($limit) ); + assert ( $offset>=0 ); + assert ( $limit>0 ); + assert ( $max>=0 ); + $this->_offset = $offset; + $this->_limit = $limit; + if ( $max>0 ) + $this->_maxmatches = $max; + if ( $cutoff>0 ) + $this->_cutoff = $cutoff; + } + + function SetMaxQueryTime ( $max ) + { + assert ( is_int($max) ); + assert ( $max>=0 ); + $this->_maxquerytime = $max; + } + + function SetMatchMode ( $mode ) + { + assert ( $mode==SPH_MATCH_ALL + || $mode==SPH_MATCH_ANY + || $mode==SPH_MATCH_PHRASE + || $mode==SPH_MATCH_BOOLEAN + || $mode==SPH_MATCH_EXTENDED + || $mode==SPH_MATCH_FULLSCAN + || $mode==SPH_MATCH_EXTENDED2 ); + $this->_mode = $mode; + } + + function SetRankingMode ( $ranker ) + { + assert ( $ranker==SPH_RANK_PROXIMITY_BM25 + || $ranker==SPH_RANK_BM25 + || $ranker==SPH_RANK_NONE + || $ranker==SPH_RANK_WORDCOUNT + || $ranker==SPH_RANK_PROXIMITY ); + $this->_ranker = $ranker; + } + + function SetSortMode ( $mode, $sortby="" ) + { + assert ( + $mode==SPH_SORT_RELEVANCE || + $mode==SPH_SORT_ATTR_DESC || + $mode==SPH_SORT_ATTR_ASC || + $mode==SPH_SORT_TIME_SEGMENTS || + $mode==SPH_SORT_EXTENDED || + $mode==SPH_SORT_EXPR ); + assert ( is_string($sortby) ); + assert ( $mode==SPH_SORT_RELEVANCE || strlen($sortby)>0 ); + + $this->_sort = $mode; + $this->_sortby = $sortby; + } + + function SetWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $weight ) + assert ( is_int($weight) ); + + $this->_weights = $weights; + } + + function SetFieldWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $name=>$weight ) + { + assert ( is_string($name) ); + assert ( is_int($weight) ); + } + $this->_fieldweights = $weights; + } + + function SetIndexWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $index=>$weight ) + { + assert ( is_string($index) ); + assert ( is_int($weight) ); + } + $this->_indexweights = $weights; + } + + function SetIDRange ( $min, $max ) + { + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + $this->_min_id = $min; + $this->_max_id = $max; + } + + function SetFilter ( $attribute, $values, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_array($values) ); + assert ( count($values) ); + + if ( is_array($values) && count($values) ) + { + foreach ( $values as $value ) + assert ( is_numeric($value) ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_VALUES, "attr"=>$attribute, "exclude"=>$exclude, "values"=>$values ); + } + } + + function SetFilterRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_RANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_float($min) ); + assert ( is_float($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_FLOATRANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long ) + { + assert ( is_string($attrlat) ); + assert ( is_string($attrlong) ); + assert ( is_float($lat) ); + assert ( is_float($long) ); + + $this->_anchor = array ( "attrlat"=>$attrlat, "attrlong"=>$attrlong, "lat"=>$lat, "long"=>$long ); + } + + function SetGroupBy ( $attribute, $func, $groupsort="@group desc" ) + { + assert ( is_string($attribute) ); + assert ( is_string($groupsort) ); + assert ( $func==SPH_GROUPBY_DAY + || $func==SPH_GROUPBY_WEEK + || $func==SPH_GROUPBY_MONTH + || $func==SPH_GROUPBY_YEAR + || $func==SPH_GROUPBY_ATTR + || $func==SPH_GROUPBY_ATTRPAIR ); + + $this->_groupby = $attribute; + $this->_groupfunc = $func; + $this->_groupsort = $groupsort; + } + + function SetGroupDistinct ( $attribute ) + { + assert ( is_string($attribute) ); + $this->_groupdistinct = $attribute; + } + + function SetRetries ( $count, $delay=0 ) + { + assert ( is_int($count) && $count>=0 ); + assert ( is_int($delay) && $delay>=0 ); + $this->_retrycount = $count; + $this->_retrydelay = $delay; + } + + function SetArrayResult ( $arrayresult ) + { + assert ( is_bool($arrayresult) ); + $this->_arrayresult = $arrayresult; + } + + function SetOverride ( $attrname, $attrtype, $values ) + { + assert ( is_string ( $attrname ) ); + assert ( in_array ( $attrtype, array ( SPH_ATTR_INTEGER, SPH_ATTR_TIMESTAMP, SPH_ATTR_BOOL, SPH_ATTR_FLOAT, SPH_ATTR_BIGINT ) ) ); + assert ( is_array ( $values ) ); + + $this->_overrides[$attrname] = array ( "attr"=>$attrname, "type"=>$attrtype, "values"=>$values ); + } + + function SetSelect ( $select ) + { + assert ( is_string ( $select ) ); + $this->_select = $select; + } + + + function ResetFilters () + { + $this->_filters = array(); + $this->_anchor = array(); + } + + function ResetGroupBy () + { + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + } + + function ResetOverrides () + { + $this->_overrides = array (); + } + + + function Query ( $query, $index="*", $comment="" ) + { + assert ( empty($this->_reqs) ); + + $this->AddQuery ( $query, $index, $comment ); + + $results = $this->RunQueries (); + + $this->_reqs = array (); // just in case it failed too early + + if ( !is_array($results) ) + return false; // probably network error; error message should be already filled + + $this->_error = $results[0]["error"]; + $this->_warning = $results[0]["warning"]; + if ( $results[0]["status"]==SEARCHD_ERROR ) + return false; + else + return $results[0]; + } + + function _PackFloat ( $f ) + { + $t1 = pack ( "f", $f ); // machine order + list(,$t2) = unpack ( "L*", $t1 ); // int in machine order + return pack ( "N", $t2 ); + } + + function AddQuery ( $query, $index="*", $comment="" ) + { + $this->_MBPush (); + + $req = pack ( "NNNNN", $this->_offset, $this->_limit, $this->_mode, $this->_ranker, $this->_sort ); // mode and limits + $req .= pack ( "N", strlen($this->_sortby) ) . $this->_sortby; + $req .= pack ( "N", strlen($query) ) . $query; // query itself + $req .= pack ( "N", count($this->_weights) ); // weights + foreach ( $this->_weights as $weight ) + $req .= pack ( "N", (int)$weight ); + $req .= pack ( "N", strlen($index) ) . $index; // indexes + $req .= pack ( "N", 1 ); // id64 range marker + $req .= sphPackU64 ( $this->_min_id ) . sphPackU64 ( $this->_max_id ); // id64 range + + $req .= pack ( "N", count($this->_filters) ); + foreach ( $this->_filters as $filter ) + { + $req .= pack ( "N", strlen($filter["attr"]) ) . $filter["attr"]; + $req .= pack ( "N", $filter["type"] ); + switch ( $filter["type"] ) + { + case SPH_FILTER_VALUES: + $req .= pack ( "N", count($filter["values"]) ); + foreach ( $filter["values"] as $value ) + $req .= sphPackI64 ( $value ); + break; + + case SPH_FILTER_RANGE: + $req .= sphPackI64 ( $filter["min"] ) . sphPackI64 ( $filter["max"] ); + break; + + case SPH_FILTER_FLOATRANGE: + $req .= $this->_PackFloat ( $filter["min"] ) . $this->_PackFloat ( $filter["max"] ); + break; + + default: + assert ( 0 && "internal error: unhandled filter type" ); + } + $req .= pack ( "N", $filter["exclude"] ); + } + + $req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby; + $req .= pack ( "N", $this->_maxmatches ); + $req .= pack ( "N", strlen($this->_groupsort) ) . $this->_groupsort; + $req .= pack ( "NNN", $this->_cutoff, $this->_retrycount, $this->_retrydelay ); + $req .= pack ( "N", strlen($this->_groupdistinct) ) . $this->_groupdistinct; + + if ( empty($this->_anchor) ) + { + $req .= pack ( "N", 0 ); + } else + { + $a =& $this->_anchor; + $req .= pack ( "N", 1 ); + $req .= pack ( "N", strlen($a["attrlat"]) ) . $a["attrlat"]; + $req .= pack ( "N", strlen($a["attrlong"]) ) . $a["attrlong"]; + $req .= $this->_PackFloat ( $a["lat"] ) . $this->_PackFloat ( $a["long"] ); + } + + $req .= pack ( "N", count($this->_indexweights) ); + foreach ( $this->_indexweights as $idx=>$weight ) + $req .= pack ( "N", strlen($idx) ) . $idx . pack ( "N", $weight ); + + $req .= pack ( "N", $this->_maxquerytime ); + + $req .= pack ( "N", count($this->_fieldweights) ); + foreach ( $this->_fieldweights as $field=>$weight ) + $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight ); + + $req .= pack ( "N", strlen($comment) ) . $comment; + + $req .= pack ( "N", count($this->_overrides) ); + foreach ( $this->_overrides as $key => $entry ) + { + $req .= pack ( "N", strlen($entry["attr"]) ) . $entry["attr"]; + $req .= pack ( "NN", $entry["type"], count($entry["values"]) ); + foreach ( $entry["values"] as $id=>$val ) + { + assert ( is_numeric($id) ); + assert ( is_numeric($val) ); + + $req .= sphPackU64 ( $id ); + switch ( $entry["type"] ) + { + case SPH_ATTR_FLOAT: $req .= $this->_PackFloat ( $val ); break; + case SPH_ATTR_BIGINT: $req .= sphPackI64 ( $val ); break; + default: $req .= pack ( "N", $val ); break; + } + } + } + + $req .= pack ( "N", strlen($this->_select) ) . $this->_select; + + $this->_MBPop (); + + $this->_reqs[] = $req; + return count($this->_reqs)-1; + } + + function RunQueries () + { + + if ( empty($this->_reqs) ) + { + $this->_error = "no queries defined, issue AddQuery() first"; + return false; + } + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop (); + return false; + } + + $nreqs = count($this->_reqs); + $req = join ( "", $this->_reqs ); + $len = 4+strlen($req); + $req = pack ( "nnNN", SEARCHD_COMMAND_SEARCH, VER_COMMAND_SEARCH, $len, $nreqs ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_SEARCH ) ) ) + { + $this->_MBPop (); + return false; + } + + $this->_reqs = array (); + + return $this->_ParseSearchResponse ( $response, $nreqs ); + } + + function _ParseSearchResponse ( $response, $nreqs ) + { + $p = 0; // current position + $max = strlen($response); // max position for checks, to protect against broken responses + + $results = array (); + for ( $ires=0; $ires<$nreqs && $p<$max; $ires++ ) + { + $results[] = array(); + $result =& $results[$ires]; + + $result["error"] = ""; + $result["warning"] = ""; + + list(,$status) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $result["status"] = $status; + if ( $status!=SEARCHD_OK ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $message = substr ( $response, $p, $len ); $p += $len; + + if ( $status==SEARCHD_WARNING ) + { + $result["warning"] = $message; + } else + { + $result["error"] = $message; + continue; + } + } + + $fields = array (); + $attrs = array (); + + list(,$nfields) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nfields-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $fields[] = substr ( $response, $p, $len ); $p += $len; + } + $result["fields"] = $fields; + + list(,$nattrs) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nattrs-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attr = substr ( $response, $p, $len ); $p += $len; + list(,$type) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrs[$attr] = $type; + } + $result["attrs"] = $attrs; + + list(,$count) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$id64) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + + $idx = -1; + while ( $count-->0 && $p<$max ) + { + $idx++; + + if ( $id64 ) + { + $doc = sphUnpackU64 ( substr ( $response, $p, 8 ) ); $p += 8; + list(,$weight) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + } + else + { + list ( $doc, $weight ) = array_values ( unpack ( "N*N*", + substr ( $response, $p, 8 ) ) ); + $p += 8; + $doc = sphFixUint($doc); + } + $weight = sprintf ( "%u", $weight ); + + if ( $this->_arrayresult ) + $result["matches"][$idx] = array ( "id"=>$doc, "weight"=>$weight ); + else + $result["matches"][$doc]["weight"] = $weight; + + $attrvals = array (); + foreach ( $attrs as $attr=>$type ) + { + if ( $type==SPH_ATTR_BIGINT ) + { + $attrvals[$attr] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; + continue; + } + + if ( $type==SPH_ATTR_FLOAT ) + { + list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$fval) = unpack ( "f*", pack ( "L", $uval ) ); + $attrvals[$attr] = $fval; + continue; + } + + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + if ( $type & SPH_ATTR_MULTI ) + { + $attrvals[$attr] = array (); + $nvalues = $val; + while ( $nvalues-->0 && $p<$max ) + { + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrvals[$attr][] = sphFixUint($val); + } + } else + { + $attrvals[$attr] = sphFixUint($val); + } + } + + if ( $this->_arrayresult ) + $result["matches"][$idx]["attrs"] = $attrvals; + else + $result["matches"][$doc]["attrs"] = $attrvals; + } + + list ( $total, $total_found, $msecs, $words ) = + array_values ( unpack ( "N*N*N*N*", substr ( $response, $p, 16 ) ) ); + $result["total"] = sprintf ( "%u", $total ); + $result["total_found"] = sprintf ( "%u", $total_found ); + $result["time"] = sprintf ( "%.3f", $msecs/1000 ); + $p += 16; + + while ( $words-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $word = substr ( $response, $p, $len ); $p += $len; + list ( $docs, $hits ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + $result["words"][$word] = array ( + "docs"=>sprintf ( "%u", $docs ), + "hits"=>sprintf ( "%u", $hits ) ); + } + } + + $this->_MBPop (); + return $results; + } + + + function BuildExcerpts ( $docs, $index, $words, $opts=array() ) + { + assert ( is_array($docs) ); + assert ( is_string($index) ); + assert ( is_string($words) ); + assert ( is_array($opts) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + + if ( !isset($opts["before_match"]) ) $opts["before_match"] = "<b>"; + if ( !isset($opts["after_match"]) ) $opts["after_match"] = "</b>"; + if ( !isset($opts["chunk_separator"]) ) $opts["chunk_separator"] = " ... "; + if ( !isset($opts["limit"]) ) $opts["limit"] = 256; + if ( !isset($opts["around"]) ) $opts["around"] = 5; + if ( !isset($opts["exact_phrase"]) ) $opts["exact_phrase"] = false; + if ( !isset($opts["single_passage"]) ) $opts["single_passage"] = false; + if ( !isset($opts["use_boundaries"]) ) $opts["use_boundaries"] = false; + if ( !isset($opts["weight_order"]) ) $opts["weight_order"] = false; + + + $flags = 1; // remove spaces + if ( $opts["exact_phrase"] ) $flags |= 2; + if ( $opts["single_passage"] ) $flags |= 4; + if ( $opts["use_boundaries"] ) $flags |= 8; + if ( $opts["weight_order"] ) $flags |= 16; + $req = pack ( "NN", 0, $flags ); // mode=0, flags=$flags + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", strlen($words) ) . $words; // req words + + $req .= pack ( "N", strlen($opts["before_match"]) ) . $opts["before_match"]; + $req .= pack ( "N", strlen($opts["after_match"]) ) . $opts["after_match"]; + $req .= pack ( "N", strlen($opts["chunk_separator"]) ) . $opts["chunk_separator"]; + $req .= pack ( "N", (int)$opts["limit"] ); + $req .= pack ( "N", (int)$opts["around"] ); + + $req .= pack ( "N", count($docs) ); + foreach ( $docs as $doc ) + { + assert ( is_string($doc) ); + $req .= pack ( "N", strlen($doc) ) . $doc; + } + + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_EXCERPT, VER_COMMAND_EXCERPT, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_EXCERPT ) ) ) + { + $this->_MBPop (); + return false; + } + + + $pos = 0; + $res = array (); + $rlen = strlen($response); + for ( $i=0; $i<count($docs); $i++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); + $pos += 4; + + if ( $pos+$len > $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + $res[] = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + } + + $this->_MBPop (); + return $res; + } + + + + function BuildKeywords ( $query, $index, $hits ) + { + assert ( is_string($query) ); + assert ( is_string($index) ); + assert ( is_bool($hits) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + + $req = pack ( "N", strlen($query) ) . $query; // req query + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", (int)$hits ); + + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) ) ) + { + $this->_MBPop (); + return false; + } + + + $pos = 0; + $res = array (); + $rlen = strlen($response); + list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) ); + $pos += 4; + for ( $i=0; $i<$nwords; $i++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $tokenized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $normalized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized ); + + if ( $hits ) + { + list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) ); + $pos += 8; + $res [$i]["docs"] = $ndocs; + $res [$i]["hits"] = $nhits; + } + + if ( $pos > $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + } + + $this->_MBPop (); + return $res; + } + + function EscapeString ( $string ) + { + $from = array ( '\\', '(',')','|','-','!','@','~','"','&', '/', '^', '$', '=' ); + $to = array ( '\\\\', '\(','\)','\|','\-','\!','\@','\~','\"', '\&', '\/', '\^', '\$', '\=' ); + + return str_replace ( $from, $to, $string ); + } + + + function UpdateAttributes ( $index, $attrs, $values, $mva=false ) + { + assert ( is_string($index) ); + assert ( is_bool($mva) ); + + assert ( is_array($attrs) ); + foreach ( $attrs as $attr ) + assert ( is_string($attr) ); + + assert ( is_array($values) ); + foreach ( $values as $id=>$entry ) + { + assert ( is_numeric($id) ); + assert ( is_array($entry) ); + assert ( count($entry)==count($attrs) ); + foreach ( $entry as $v ) + { + if ( $mva ) + { + assert ( is_array($v) ); + foreach ( $v as $vv ) + assert ( is_int($vv) ); + } else + assert ( is_int($v) ); + } + } + + $req = pack ( "N", strlen($index) ) . $index; + + $req .= pack ( "N", count($attrs) ); + foreach ( $attrs as $attr ) + { + $req .= pack ( "N", strlen($attr) ) . $attr; + $req .= pack ( "N", $mva ? 1 : 0 ); + } + + $req .= pack ( "N", count($values) ); + foreach ( $values as $id=>$entry ) + { + $req .= sphPackU64 ( $id ); + foreach ( $entry as $v ) + { + $req .= pack ( "N", $mva ? count($v) : $v ); + if ( $mva ) + foreach ( $v as $vv ) + $req .= pack ( "N", $vv ); + } + } + + if (!( $fp = $this->_Connect() )) + return -1; + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_UPDATE, VER_COMMAND_UPDATE, $len ) . $req; // add header + if ( !$this->_Send ( $fp, $req, $len+8 ) ) + return -1; + + if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_UPDATE ) )) + return -1; + + list(,$updated) = unpack ( "N*", substr ( $response, 0, 4 ) ); + return $updated; + } + + + function Open() + { + if ( $this->_socket !== false ) + { + $this->_error = 'already connected'; + return false; + } + if ( !$fp = $this->_Connect() ) + return false; + + $req = pack ( "nnNN", SEARCHD_COMMAND_PERSIST, 0, 4, 1 ); + if ( !$this->_Send ( $fp, $req, 12 ) ) + return false; + + $this->_socket = $fp; + return true; + } + + function Close() + { + if ( $this->_socket === false ) + { + $this->_error = 'not connected'; + return false; + } + + fclose ( $this->_socket ); + $this->_socket = false; + + return true; + } + + + function Status () + { + $this->_MBPush (); + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + $req = pack ( "nnNN", SEARCHD_COMMAND_STATUS, VER_COMMAND_STATUS, 4, 1 ); // len=4, body=1 + if ( !( $this->_Send ( $fp, $req, 12 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_STATUS ) ) ) + { + $this->_MBPop (); + return false; + } + + $res = substr ( $response, 4 ); // just ignore length, error handling, etc + $p = 0; + list ( $rows, $cols ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + + $res = array(); + for ( $i=0; $i<$rows; $i++ ) + for ( $j=0; $j<$cols; $j++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $res[$i][] = substr ( $response, $p, $len ); $p += $len; + } + + $this->_MBPop (); + return $res; + } +} \ No newline at end of file diff --git a/include/sql.func.php b/include/sql.func.php new file mode 100644 index 0000000..954fb01 --- /dev/null +++ b/include/sql.func.php @@ -0,0 +1,82 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function sql_split($sql) { + global $CFG; + if($CFG['db_charset']) $sql = DB::version() > '4.1' ? preg_replace("/TYPE=(MyISAM|InnoDB|HEAP|MEMORY)( DEFAULT CHARSET=[^; ]+)?/", "ENGINE=\\1 DEFAULT CHARSET=".$CFG['db_charset'], $sql) : preg_replace("/( DEFAULT CHARSET=[^; ]+)?/", '', $sql); + if(DT_PRE != 'destoon_') $sql = str_replace('destoon_', DT_PRE, $sql); + $sql = str_replace("\r", "\n", $sql); + $sql = str_replace("; \n", ";\n", $sql); + $ret = array(); + $num = 0; + $queriesarray = explode(";\n", trim($sql)); + unset($sql); + foreach($queriesarray as $query) { + $ret[$num] = ''; + $queries = explode("\n", trim($query)); + $queries = array_filter($queries); + foreach($queries as $query) { + $str1 = substr($query, 0, 1); + if($str1 != '#' && $str1 != '-') $ret[$num] .= $query; + } + $num++; + } + return $ret; +} + +function sql_execute($sql) { + $sqls = sql_split($sql); + if(is_array($sqls)) { + foreach($sqls as $sql) { + if(trim($sql) != '') DB::query($sql); + } + } else { + DB::query($sqls); + } + return true; +} + +function sql_dumptable($table, $startfrom = 0, $currsize = 0) { + global $db, $sizelimit, $startrow, $sqlcompat, $sqlcharset, $dumpcharset, $CFG; + if(!isset($tabledump)) $tabledump = ''; + $offset = 100; + if(!$startfrom) { + $tabledump = "DROP TABLE IF EXISTS `$table`;\n"; + $createtable = $db->query("SHOW CREATE TABLE `$table`"); + $create = $db->fetch_row($createtable); + $tabledump .= $create[1].";\n\n"; + if($sqlcompat == 'MYSQL41' && $db->version() < '4.1') $tabledump = preg_replace("/TYPE\=([a-zA-Z0-9]+)/", "ENGINE=\\1 DEFAULT CHARSET=".$dumpcharset, $tabledump); + if($db->version() > '4.1' && $sqlcharset) $tabledump = preg_replace("/(DEFAULT)*\s*CHARSET=[a-zA-Z0-9]+/", "DEFAULT CHARSET=".$sqlcharset, $tabledump); + } + $tabledumped = 0; + $numrows = $offset; + while($currsize + strlen($tabledump) < $sizelimit * 1000 && $numrows == $offset) { + $tabledumped = 1; + $rows = $db->query("SELECT * FROM `$table` LIMIT $startfrom, $offset"); + $numfields = $db->num_fields($rows); + $numrows = $db->num_rows($rows); + while($row = $db->fetch_row($rows)) { + $comma = ""; + $tabledump .= "INSERT INTO `$table` VALUES("; + for($i = 0; $i < $numfields; $i++) { + if($CFG['database'] == 'mysql') { + $tabledump .= $comma."'".mysql_escape_string($row[$i])."'"; + } else if($CFG['database'] == 'mysqli') { + $tabledump .= $comma."'".mysqli_escape_string($db->connid, $row[$i])."'"; + } else { + $tabledump .= $comma."'".addslashes($row[$i])."'"; + } + $comma = ","; + } + $tabledump .= ");\n"; + } + $startfrom += $offset; + } + $startrow = $startfrom; + $tabledump .= "\n"; + return $tabledump; +} +?> \ No newline at end of file diff --git a/include/tag.func.php b/include/tag.func.php new file mode 100644 index 0000000..bf7cab0 --- /dev/null +++ b/include/tag.func.php @@ -0,0 +1,133 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function tag($parameter, $expires = -1) { + global $CFG, $MODULE, $DT, $DT_PC; + $tag_expires = $expires > -1 ? $expires : $CFG['db_expires']; + $parameter = str_replace(array('&', '%'), array('', '##'), $parameter); + parse_str($parameter, $par); + if(!is_array($par)) return ''; + $par = dstripslashes($par); + extract($par, EXTR_SKIP); + isset($prefix) or $prefix = DT_PRE; + isset($moduleid) or $moduleid = 1; + if(!isset($MODULE[$moduleid])) return ''; + isset($fields) or $fields = '*'; + isset($catid) or $catid = 0; + isset($child) or $child = 1; + isset($areaid) or $areaid = 0; + isset($areachild) or $areachild = 1; + (isset($dir) && check_name($dir)) or $dir = 'tag'; + (isset($template) && check_name($template)) or $template = 'list'; + isset($condition) or $condition = '1'; + isset($group) or $group = ''; + isset($page) or $page = 1; + isset($offset) or $offset = 0; + isset($pagesize) or $pagesize = 10; + isset($order) or $order = ''; + isset($showpage) or $showpage = 0; + isset($showcat) or $showcat = 0; + isset($datetype) or $datetype = 0; + isset($target) or $target = ''; + isset($class) or $class = ''; + isset($length) or $length = 1; + isset($introduce) or $introduce = 0; + isset($debug) or $debug = 0; + isset($lazy) or $lazy = 0; + (isset($cols) && $cols) or $cols = 1; + if($catid) { + if($moduleid > 4) { + if(is_numeric($catid)) { + $CAT = DB::get_one("SELECT child,arrchildid,moduleid FROM ".DT_PRE."category WHERE catid=$catid"); + $condition .= ($child && $CAT['child'] && $CAT['moduleid'] == $moduleid) ? " AND catid IN (".$CAT['arrchildid'].")" : " AND catid=$catid"; + } else { + if($child) { + $catids = ''; + $result = DB::query("SELECT arrchildid FROM ".DT_PRE."category WHERE catid IN ($catid)"); + while($r = DB::fetch_array($result)) { + $catids .= ','.$r['arrchildid']; + } + if($catids) $catid = substr($catids, 1); + } + $condition .= " AND catid IN ($catid)"; + } + } else if($moduleid == 4) { + $condition .= " AND catids LIKE '%,$catid,%'"; + } + } + if($areaid) { + if(is_numeric($areaid)) { + $ARE = DB::get_one("SELECT child,arrchildid FROM ".DT_PRE."area WHERE areaid=$areaid"); + $condition .= ($areachild && $ARE['child']) ? " AND areaid IN (".$ARE['arrchildid'].")" : " AND areaid=$areaid"; + } else { + if($areachild) { + $areaids = ''; + $result = DB::query("SELECT arrchildid FROM ".DT_PRE."area WHERE areaid IN ($areaid)"); + while($r = DB::fetch_array($result)) { + $areaids .= ','.$r['arrchildid']; + } + if($areaids) $areaid = substr($areaids, 1); + } + $condition .= " AND areaid IN ($areaid)"; + } + } + $table = isset($table) ? $prefix.$table : get_table($moduleid); + $offset or $offset = ($page-1)*$pagesize; + $percent = dround(100/$cols).'%'; + $num = 0; + $order = $order ? ' ORDER BY '.$order : ''; + $condition = stripslashes($condition); + $condition = str_replace('##', '%', $condition); + if($showpage) { + $num = DB::count($table, $condition, $tag_expires); + $pages = $catid ? listpages(get_cat($catid), $num, $page, $pagesize) : pages($num, $page, $pagesize); + } else { + if($group) $condition .= ' GROUP BY '.$group; + } + $query = "SELECT ".$fields." FROM ".$table." WHERE ".$condition.$order." LIMIT ".$offset.",".$pagesize; + if($debug) echo $parameter.'<br/>'.$query.'<br/>'; + $tags = $catids = $CATS = array(); + $result = DB::query($query, $tag_expires > 0 ? 'CACHE' : '', $tag_expires); + while($r = DB::fetch_array($result)) { + if($moduleid == 4 && isset($r['company'])) { + $r['alt'] = $r['title'] = $r['companyname'] = $r['company']; + if($length > 1) $r['company'] = dsubstr($r['company'], $length); + } + if(isset($r['title'])) { + $r['title'] = str_replace('"', '"', trim($r['title'])); + $r['alt'] = $r['title']; + if($length > 1) $r['title'] = dsubstr($r['title'], $length); + if(isset($r['style']) && $r['style']) $r['title'] = set_style($r['title'], $r['style']); + } + if($lazy && isset($r['thumb']) && $r['thumb']) $r['thumb'] = DT_SKIN.'image/lazy.gif" class="lazy" original="'.$r['thumb']; + if(isset($r['thumb']) && isset($width) && $width > 100) $r['thumb'] = str_replace('.thumb.', '.middle.', $r['thumb']); + if(isset($r['introduce']) && $introduce) $r['introduce'] = dsubstr($r['introduce'], $introduce); + if(isset($r['linkurl']) && $r['linkurl'] && $moduleid > 4) { + if($DT_PC) { + if(strpos($r['linkurl'], '://') === false) $r['linkurl'] = $MODULE[$moduleid]['linkurl'].$r['linkurl']; + } else { + $r['linkurl'] = strpos($r['linkurl'], '://') === false ? $MODULE[$moduleid]['mobile'].$r['linkurl'] : moburl($r['linkurl']); + } + } + if($showcat && $moduleid > 4 && isset($r['catid'])) $catids[$r['catid']] = $r['catid']; + $tags[] = $r; + } + if($showcat && $moduleid > 4 && $catids) { + $result = DB::query("SELECT catid,catname,linkurl FROM ".DT_PRE."category WHERE catid IN (".implode(',', $catids).")"); + while($r = DB::fetch_array($result)) { + $CATS[$r['catid']] = $r; + } + if($CATS) { + foreach($tags as $k=>$v) { + $tags[$k]['catname'] = $v['catid'] ? $CATS[$v['catid']]['catname'] : ''; + $tags[$k]['caturl'] = $v['catid'] ? ($DT_PC ? $MODULE[$moduleid]['linkurl'] : $MODULE[$moduleid]['mobile']).$CATS[$v['catid']]['linkurl'] : ''; + } + } + } + if($template == 'null') return $tags; + include template($template, $dir); +} +?> \ No newline at end of file diff --git a/include/template.func.php b/include/template.func.php new file mode 100644 index 0000000..4f421dd --- /dev/null +++ b/include/template.func.php @@ -0,0 +1,43 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +function template_compile($from, $to) { + $content = template_parse(file_get($from)); + file_put($to, $content); +} + +function template_parse($str) { + $str = str_replace(array("\t", '{exit}'), array('', '<?php exit;?>'), $str); + $str = preg_replace("/\<\!\-\-\[(.+?)\]\-\-\>/", "", $str); + $str = preg_replace("/\<\!\-\-\{(.+?)\}\-\-\>/s", "{\\1}", $str); + $str = preg_replace("/\{template\s+([^\}]+)\}/", "<?php include template(\\1);?>", $str); + $str = preg_replace("/\{php\s+(.+)\}/", "<?php \\1?>", $str); + $str = preg_replace("/\{if\s+(.+?)\}/", "<?php if(\\1) { ?>", $str); + $str = preg_replace("/\{else\}/", "<?php } else { ?>", $str); + $str = preg_replace("/\{elseif\s+(.+?)\}/", "<?php } else if(\\1) { ?>", $str); + $str = preg_replace("/\{\/if\}/", "<?php } ?>", $str); + $str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\}/", "<?php if(is_array(\\1)) { foreach(\\1 as \\2) { ?>", $str); + $str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}/", "<?php if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>", $str); + $str = preg_replace("/\{\/loop\}/", "<?php } } ?>", $str); + $str = preg_replace("/\{([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\:\x7f-\xff]*\(([^{}]*)\))\}/", "<?php echo \\1;?>", $str); + $str = preg_replace_callback("/<\?php([^\?]+)\?>/s", "template_addquote1", $str); + $str = preg_replace("/\{(\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\+\-\x7f-\xff]*)\}/", "<?php echo \\1;?>", $str); + $str = preg_replace_callback("/\{(\\$[a-zA-Z0-9_\[\]\'\"\$\+\-\x7f-\xff]+)\}/s", "template_addquote2", $str); + $str = preg_replace("/\{([A-Z_\x7f-\xff][A-Z0-9_\x7f-\xff]*)\}/s", "<?php echo \\1;?>", $str); + $str = preg_replace("/\'([A-Za-z]+)\[\'([A-Za-z\.]+)\'\](.?)\'/s", "'\\1[\\2]\\3'", $str); + $str = preg_replace("/(\r?\n)\\1+/", "\\1", $str); + $str = "<?php defined('IN_DESTOON') or exit('Access Denied');?>".trim($str); + return $str; +} + +function template_addquote1($matches) { + return str_replace("\\\"", "\"", preg_replace("/\[([a-zA-Z0-9_\-\.\x7f-\xff]+)\]/s", "['\\1']", $matches[0])); +} + +function template_addquote2($matches) { + return '<?php echo '.str_replace("\\\"", "\"", preg_replace("/\[([a-zA-Z0-9_\-\.\x7f-\xff]+)\]/s", "['\\1']", $matches[1])).';?>'; +} +?> \ No newline at end of file diff --git a/include/tree.class.php b/include/tree.class.php new file mode 100644 index 0000000..c181c32 --- /dev/null +++ b/include/tree.class.php @@ -0,0 +1,86 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class tree { + var $arr; + var $icon; + var $ret; + + function __construct($arr = array()) { + $this->arr = $arr; + $this->icon = array('│', '├', '└'); + $this->ret = ''; + return is_array($arr); + } + + function tree($arr = array()) { + $this->__construct($arr); + } + + function get_parent($myid) { + $newarr = array(); + if(!isset($this->arr[$myid])) return false; + $pid = $this->arr[$myid]['parentid']; + $pid = $this->arr[$pid]['parentid']; + if(is_array($this->arr)) { + foreach($this->arr as $id => $a) { + if($a['parentid'] == $pid) $newarr[$id] = $a; + } + } + return $newarr; + } + + function get_child($myid) { + $a = $newarr = array(); + if(is_array($this->arr)) { + foreach($this->arr as $id => $a) { + if($a['parentid'] == $myid) $newarr[$id] = $a; + } + } + return $newarr ? $newarr : false; + } + + function get_pos($myid, &$newarr) { + $a = array(); + if(!isset($this->arr[$myid])) return false; + $newarr[] = $this->arr[$myid]; + $pid = $this->arr[$myid]['parentid']; + if(isset($this->arr[$pid])) $this->get_pos($pid,$newarr); + if(is_array($newarr)) { + krsort($newarr); + foreach($newarr as $v) { + $a[$v['id']] = $v; + } + } + return $a; + } + + function get_tree($myid, $str, $sid = 0, $adds = '') { + $number=1; + $child = $this->get_child($myid); + if(is_array($child)) { + $total = count($child); + foreach($child as $id=>$a) { + $j = $k = ''; + if($number == $total) { + $j .= $this->icon[2]; + }else{ + $j .= $this->icon[1]; + $k = $adds ? $this->icon[0] : ''; + } + $spacer = $adds ? $adds.$j : ''; + $selected = $id == $sid ? 'selected' : ''; + extract($a); + eval("\$nstr = \"$str\";"); + $this->ret .= $nstr; + $this->get_tree($id, $str, $sid, $adds.$k.' '); + $number++; + } + } + return $this->ret; + } +} +?> \ No newline at end of file diff --git a/include/type.class.php b/include/type.class.php new file mode 100644 index 0000000..c54a1dc --- /dev/null +++ b/include/type.class.php @@ -0,0 +1,85 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class dtype { + var $item; + var $table; + var $cache = 0; + + function __construct() { + $this->table = DT_PRE.'type'; + } + + function dtype() { + $this->__construct(); + } + + function get_list() { + $lists = array(); + $result = DB::query("SELECT * FROM {$this->table} WHERE item='$this->item' ORDER BY listorder ASC,typeid DESC "); + while($r = DB::fetch_array($result)) { + $lists[$r['typeid']] = $r; + } + return $lists; + } + + function update($post) { + $this->add($post[0]); + unset($post[0]); + foreach($post as $k=>$v) { + if(isset($v['delete'])) { + $this->delete($k); + unset($post[$k]); + } + } + $this->edit($post); + if($this->cache) cache_type($this->item); + return true; + } + + function add($post) { + global $TYPE; + $post['typename'] = dhtmlspecialchars(trim(strip_tags($post['typename']))); + if(strlen($post['typename']) < 2) return false; + $post['listorder'] = intval($post['listorder']); + $post['parentid'] = intval($post['parentid']); + if($post['parentid'] && !isset($TYPE[$post['parentid']])) $post['parentid'] = 0; + $post['style'] = dhtmlspecialchars($post['style']); + DB::query("INSERT INTO {$this->table} (listorder,typename,style,parentid,item,cache) VALUES('$post[listorder]','$post[typename]','$post[style]','$post[parentid]','$this->item','$this->cache')"); + } + + function edit($post) { + global $TYPE; + foreach($post as $k=>$v) { + $v['typename'] = dhtmlspecialchars(trim(strip_tags($v['typename']))); + if(strlen($v['typename']) < 2) continue; + $v['listorder'] = intval($v['listorder']); + $v['parentid'] = intval($v['parentid']); + if($v['parentid'] == $k) continue; + if($v['parentid'] && !isset($TYPE[$v['parentid']])) continue; + $v['style'] = dhtmlspecialchars($v['style']); + $k = intval($k); + DB::query("UPDATE {$this->table} SET listorder='$v[listorder]',typename='$v[typename]',style='$v[style]',parentid='$v[parentid]' WHERE typeid='$k' AND item='$this->item'"); + } + } + + function delete($typeid) { + $typeid = intval($typeid); + if($typeid < 1) return; + DB::query("DELETE FROM {$this->table} WHERE typeid=$typeid AND item='$this->item'"); + DB::query("DELETE FROM {$this->table} WHERE parentid=$typeid AND item='$this->item'"); + if($this->cache) cache_type($this->item); + } + + function parent_option($TYPE) { + $s = ''; + foreach($TYPE as $v) { + if($v['parentid'] == 0) $s .= '<option value="'.$v['typeid'].'">'.$v['typename'].'</option>'; + } + return $s; + } +} +?> \ No newline at end of file diff --git a/include/update.inc.php b/include/update.inc.php new file mode 100644 index 0000000..7594d8a --- /dev/null +++ b/include/update.inc.php @@ -0,0 +1,16 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +if($DT_BOT) return; +if($page == 1 && $MOD['hits']) { + if($DT['cache_hits']) { + cache_hits($moduleid, $itemid); + } else { + $update .= ',hits=hits+1'; + } +} +if($update) $db->query("UPDATE LOW_PRIORITY {$table} SET ".substr($update, 1)." WHERE itemid=$itemid", 'UNBUFFERED'); +?> \ No newline at end of file diff --git a/include/upload.class.php b/include/upload.class.php new file mode 100644 index 0000000..8b4723e --- /dev/null +++ b/include/upload.class.php @@ -0,0 +1,112 @@ +<?php +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +defined('IN_DESTOON') or exit('Access Denied'); +class upload { + var $file; + var $file_name; + var $file_size; + var $file_type; + var $file_error; + var $savename; + var $savepath; + var $saveto; + var $fileformat = ''; + var $overwrite = false; + var $maxsize; + var $ext; + var $errmsg = errmsg; + var $userid; + var $image; + var $adduserid = true; + + function __construct($_file, $savepath, $savename = '', $fileformat = '') { + global $DT, $_userid; + foreach($_file as $file) { + $this->file = $file['tmp_name']; + $this->file_name = $file['name']; + $this->file_size = $file['size']; + $this->file_type = $file['type']; + $this->file_error = $file['error']; + break; + } + $this->userid = $_userid; + $this->ext = file_ext($this->file_name); + $this->fileformat = $fileformat ? $fileformat : $DT['uploadtype']; + $this->maxsize = $DT['uploadsize'] ? $DT['uploadsize']*1024 : 2048*1024; + $this->savepath = $savepath; + $this->savename = $savename; + } + + function upload($_file, $savepath, $savename = '', $fileformat = '') { + $this->__construct($_file, $savepath, $savename, $fileformat); + } + + function save() { + include load('include.lang'); + if($this->file_error) return $this->_('Error(21)'.$L['upload_failed'].' ('.$L['upload_error_'.$this->file_error].')'); + if($this->maxsize > 0 && $this->file_size > $this->maxsize) return $this->_('Error(22)'.$L['upload_size_limit'].' ('.intval($this->maxsize/1024).'Kb)'); + if(!$this->is_allow()) return $this->_('Error(23)'.$L['upload_not_allow']); + $this->set_savepath($this->savepath); + $this->set_savename($this->savename); + if(!is_writable(DT_ROOT.'/'.$this->savepath)) return $this->_('Error(24)'.$L['upload_unwritable']); + if(!is_uploaded_file($this->file)) return $this->_('Error(25)'.$L['upload_failed']); + if(!move_uploaded_file($this->file, DT_ROOT.'/'.$this->saveto)) return $this->_('Error(26)'.$L['upload_failed']); + $this->image = $this->is_image(); + if(DT_CHMOD) @chmod(DT_ROOT.'/'.$this->saveto, DT_CHMOD); + return true; + } + + function is_allow() { + if(!$this->fileformat) return false; + if(!preg_match("/^(".$this->fileformat.")$/i", $this->ext)) return false; + if(preg_match("/^(php|phtml|php3|php4|jsp|exe|dll|cer|shtml|shtm|asp|asa|aspx|asax|ashx|cgi|fcgi|pl)$/i", $this->ext)) return false; + if($this->savename) { + $ext = file_ext($this->savename); + if(!preg_match("/^(".$this->fileformat.")$/i", $ext)) return false; + if(preg_match("/^(php|phtml|php3|php4|jsp|exe|dll|cer|shtml|shtm|asp|asa|aspx|asax|ashx|cgi|fcgi|pl)$/i", $ext)) return false; + } + return true; + } + + function is_image() { + return preg_match("/^(jpg|jpeg|gif|png|bmp)$/i", $this->ext); + } + + function set_savepath($savepath) { + $savepath = str_replace("\\", "/", $savepath); + $savepath = substr($savepath, -1) == "/" ? $savepath : $savepath."/"; + $this->savepath = $savepath; + } + + function set_savename($savename) { + if($savename) { + $this->savename = $this->adduserid ? str_replace('.'.$this->ext, $this->userid.'.'.$this->ext, $savename) : $savename; + } else { + $name = date('His', DT_TIME).mt_rand(10, 99); + $this->savename = $this->adduserid ? $name.$this->userid.'.'.$this->ext : $name.'.'.$this->ext; + } + $this->saveto = $this->savepath.$this->savename; + if(!$this->overwrite && is_file(DT_ROOT.'/'.$this->saveto)) { + $i = 1; + while($i) { + $saveto = str_replace('.'.$this->ext, '('.$i.').'.$this->ext, $this->saveto); + if(is_file(DT_ROOT.'/'.$saveto)) { + $i++; + continue; + } else { + $this->saveto = $saveto; + break; + } + } + } + } + + function _($e) { + $this->errmsg = $e; + return false; + } +} +?> \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..eb64149 --- /dev/null +++ b/index.html @@ -0,0 +1,700 @@ +<!doctype html> +<html> +<head> +<meta charset="UTF-8"/> +<title>找标牌网-数字标牌,广告牌,标识标牌行业门户网站 + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    找标牌网 + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + + +
    +
    + +
    +
      +
    • +
    • +
    +
    +
    +
    +
    +
    精品企业战略合作伙伴 让采购更安心
    + +
    +
    + +
    + +
    + +
    + +
    + +
    +
    + + + + + + +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + + + + + \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..cb8cba4 --- /dev/null +++ b/index.php @@ -0,0 +1,78 @@ +get_one("SELECT userid FROM {$DT_PRE}company WHERE domain='$w3'"); + if($c) d301('http://'.$w3); + } + $c = $db->get_one("SELECT username,domain FROM {$DT_PRE}company WHERE domain='$whost'".($host == $whost ? '' : " OR domain='$host'"), 'CACHE'); + if($c) { + $username = $homepage = $c['username']; + $domain = $c['domain']; + } + } + } +} +if($username) { + $moduleid = 4; + $module = 'company'; + $MOD = cache_read('module-'.$moduleid.'.php'); + include load('company.lang'); + require DT_ROOT.'/module/'.$module.'/common.inc.php'; + include DT_ROOT.'/module/'.$module.'/init.inc.php'; +} else { + if($DT['safe_domain']) { + $safe_domain = explode('|', $DT['safe_domain']); + $pass_domain = false; + foreach($safe_domain as $v) { + if(strpos($DT_URL, $v) !== false) { $pass_domain = true; break; } + } + $pass_domain or dhttp(404); + } + if($DT['index_html']) { + $html_file = $CFG['com_dir'] ? DT_ROOT.'/'.$DT['index'].'.'.$DT['file_ext'] : DT_CACHE.'/index.inc.html'; + if(!is_file($html_file)) tohtml('index'); + if(is_file($html_file)) exit(include($html_file)); + } + $AREA or $AREA = cache_read('area.php'); + if($EXT['mobile_enable']) $head_mobile = DT_MOB; + $index = 1; + $seo_title = $DT['seo_title']; + $head_keywords = $DT['seo_keywords']; + $head_description = $DT['seo_description']; + $CSS = array('index'); + if($city_template) { + include template($city_template, 'city'); + } else { + include template('index'); + } +} +?> \ No newline at end of file diff --git a/invest/ajax.php b/invest/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/invest/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/invest/config.inc.php b/invest/config.inc.php new file mode 100644 index 0000000..3d08c75 --- /dev/null +++ b/invest/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/invest/index.php b/invest/index.php new file mode 100644 index 0000000..bc1e764 --- /dev/null +++ b/invest/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/invest/list.php b/invest/list.php new file mode 100644 index 0000000..ec13ccd --- /dev/null +++ b/invest/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/invest/message.php b/invest/message.php new file mode 100644 index 0000000..e14a71b --- /dev/null +++ b/invest/message.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/invest/search.php b/invest/search.php new file mode 100644 index 0000000..61329a1 --- /dev/null +++ b/invest/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/invest/show.php b/invest/show.php new file mode 100644 index 0000000..9b1762b --- /dev/null +++ b/invest/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/job/ajax.php b/job/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/job/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/job/apply.php b/job/apply.php new file mode 100644 index 0000000..5918101 --- /dev/null +++ b/job/apply.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/job/config.inc.php b/job/config.inc.php new file mode 100644 index 0000000..ed13ddc --- /dev/null +++ b/job/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/job/index.php b/job/index.php new file mode 100644 index 0000000..a51a7e9 --- /dev/null +++ b/job/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/job/list.php b/job/list.php new file mode 100644 index 0000000..045835f --- /dev/null +++ b/job/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/job/resume.php b/job/resume.php new file mode 100644 index 0000000..c7e13ed --- /dev/null +++ b/job/resume.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/job/search.php b/job/search.php new file mode 100644 index 0000000..7a514e3 --- /dev/null +++ b/job/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/job/show.php b/job/show.php new file mode 100644 index 0000000..8291290 --- /dev/null +++ b/job/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/job/talent.php b/job/talent.php new file mode 100644 index 0000000..a2ab5a4 --- /dev/null +++ b/job/talent.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/know/ajax.php b/know/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/know/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/know/answer.php b/know/answer.php new file mode 100644 index 0000000..10b5015 --- /dev/null +++ b/know/answer.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/know/config.inc.php b/know/config.inc.php new file mode 100644 index 0000000..0c41dc1 --- /dev/null +++ b/know/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/know/expert.php b/know/expert.php new file mode 100644 index 0000000..1071f4a --- /dev/null +++ b/know/expert.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/know/faq.php b/know/faq.php new file mode 100644 index 0000000..c701591 --- /dev/null +++ b/know/faq.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/know/index.php b/know/index.php new file mode 100644 index 0000000..f761885 --- /dev/null +++ b/know/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/know/list.php b/know/list.php new file mode 100644 index 0000000..3c8d19b --- /dev/null +++ b/know/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/know/search.php b/know/search.php new file mode 100644 index 0000000..87f470d --- /dev/null +++ b/know/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/know/show.php b/know/show.php new file mode 100644 index 0000000..685816d --- /dev/null +++ b/know/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/lang/index.html b/lang/index.html new file mode 100644 index 0000000..c1e1f00 --- /dev/null +++ b/lang/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lang/these.name.php b/lang/these.name.php new file mode 100644 index 0000000..23a0c23 --- /dev/null +++ b/lang/these.name.php @@ -0,0 +1,5 @@ + '简体中文', +); +?> \ No newline at end of file diff --git a/lang/zh-cn/article.inc.php b/lang/zh-cn/article.inc.php new file mode 100644 index 0000000..cd591bb --- /dev/null +++ b/lang/zh-cn/article.inc.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/lang/zh-cn/brand.inc.php b/lang/zh-cn/brand.inc.php new file mode 100644 index 0000000..55b71cb --- /dev/null +++ b/lang/zh-cn/brand.inc.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/lang/zh-cn/buy.inc.php b/lang/zh-cn/buy.inc.php new file mode 100644 index 0000000..55b71cb --- /dev/null +++ b/lang/zh-cn/buy.inc.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/lang/zh-cn/club.inc.php b/lang/zh-cn/club.inc.php new file mode 100644 index 0000000..a3aeff3 --- /dev/null +++ b/lang/zh-cn/club.inc.php @@ -0,0 +1,84 @@ +'红色', '0000FF'=>'蓝色', 'FF6600'=>'橙色'); +$MANAGE = array('类型', '删除', '修改', '加精', '置顶', '高亮'); +$L['chat_title'] = '圈子群聊'; +$L['fans_title'] = '圈子成员'; +$L['join_pass_reason'] = '请填写加入理由'; +$L['join_pass_max_reason'] = '加入原因最多500字'; +$L['manage_has_del'] = '已经删除,无法查看'; +$L['manage_cancel'] = '取消'; +$L['manage_level'] = '精华'; +$L['manage_ontop_1'] = '本圈'; +$L['manage_ontop_2'] = '全局'; +$L['group_pass_title'] = '请填写商圈名称'; +$L['group_pass_thumb'] = '请上传商圈LOGO'; +$L['group_pass_username'] = '请填写创建者'; +$L['manage_msg_title'] = '您的{V0}“{V1}”被执行{V2}操作'; +$L['manage_msg_content'] = '原文地址:{V0}
    操作原因:{V1}
    操作人:{V2}
    如果您对此操作有异议,请及时与网站联系。'; +$L['my_not_admin'] = '您没有此商圈管理权限'; +$L['my_choose_group'] = '请选择商圈'; +$L['my_choose_fans'] = '请选择粉丝'; +$L['my_choose_post'] = '请选择帖子'; +$L['my_choose_reply'] = '请选择回复'; +$L['my_not_group'] = '商圈不存在'; +$L['my_not_post'] = '帖子不存在'; +$L['my_not_reply'] = '回复不存在'; +$L['my_baned'] = '您已被禁言'; +$L['my_title'] = '我的帖子'; +$L['my_fans_title'] = '粉丝管理'; +$L['success_checked'] = '审核成功'; +$L['success_cancel'] = '取消成功'; +$L['success_reject'] = '拒绝成功'; +$L['my_fans_fields'] = array('会员名', '申请理由'); +$L['my_group_title'] = '我的商圈'; +$L['my_join_title'] = '加入商圈'; +$L['my_join_repeat'] = '您已经是该圈成员了'; +$L['my_join_check'] = '您已经申请加入该圈了,请等待圈主审核'; +$L['my_reply_title'] = '我的回复'; +$L['my_reply_at'] = ' 发表于 '; +$L['my_manage_title'] = '商圈管理'; +$L['my_manage_reason'] = '操作原因'; +$L['my_manage_input_reason'] = '请填写操作原因'; +$L['my_manage_not_level'] = '精华类型不存在'; +$L['my_manage_post'] = '帖子管理'; +$L['my_manage_reply'] = '回复管理'; +$L['my_manage_type_post'] = '帖子'; +$L['my_manage_type_reply'] = '回复'; +$L['my_manage_type_edit'] = '修改'; +$L['my_manage_type_del'] = '删除'; +$L['my_manage_type_style'] = '高亮'; +$L['my_manage_type_style_cancel'] = '取消高亮'; +$L['my_manage_type_ontop'] = '置顶'; +$L['my_manage_type_ontop_cancel'] = '取消置顶'; +$L['my_manage_type_level'] = '加入精华'; +$L['my_manage_type_level_cancel'] = '取消精华'; +$L['post_title'] = '发表帖子'; +$L['post_no_rights'] = '无发帖权限'; +$L['post_too_many'] = '发帖数量超出限制'; +$L['post_too_many_today'] = '今日发帖数量超出限制'; +$L['post_msg_fee'] = '发帖需要收费,请切换到'; +$L['post_msg_advance'] = '高级模式'; +$L['post_success_edit'] = '帖子修改成功'; +$L['post_success_del'] = '帖子删除成功'; +$L['post_success_style'] = '高亮设置成功'; +$L['post_cancel_style'] = '高亮取消成功'; +$L['post_success_ontop'] = '置顶设置成功'; +$L['post_cancel_ontop'] = '置顶取消成功'; +$L['post_success_level'] = '精华设置成功'; +$L['post_cancel_level'] = '精华取消成功'; +$L['reply_success_edit'] = '回复修改成功'; +$L['reply_success_del'] = '回复删除成功'; +$L['reply_no_rights'] = '无回复权限'; +$L['reply_too_many'] = '回复数量超出限制'; +$L['reply_title'] = '发表回复'; +$L['my_fields_post'] = array('模糊', '标题', '会员名'); +$L['my_fields_reply'] = array('内容', '会员名'); +$L['my_fields_manage'] = array('主题/回复', '操作原因', '操作内容'); +$L['msg_not_fans'] = '请先加入商圈'; +?> \ No newline at end of file diff --git a/lang/zh-cn/company.inc.php b/lang/zh-cn/company.inc.php new file mode 100644 index 0000000..c65f8d8 --- /dev/null +++ b/lang/zh-cn/company.inc.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/lang/zh-cn/down.inc.php b/lang/zh-cn/down.inc.php new file mode 100644 index 0000000..1dcdce7 --- /dev/null +++ b/lang/zh-cn/down.inc.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/lang/zh-cn/exhibit.inc.php b/lang/zh-cn/exhibit.inc.php new file mode 100644 index 0000000..5b764d7 --- /dev/null +++ b/lang/zh-cn/exhibit.inc.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/lang/zh-cn/extend.inc.php b/lang/zh-cn/extend.inc.php new file mode 100644 index 0000000..1e8a594 --- /dev/null +++ b/lang/zh-cn/extend.inc.php @@ -0,0 +1,144 @@ +已过期'; +$L['status_not_start'] = '未开始'; +$L['status_displaying'] = '投放中'; +$L['timeless'] = '不限'; +$L['spread_title'] = '排名推广'; +$L['spread_pass_word'] = '请填写关键词'; +$L['spread_pass_price'] = '请填写出价'; +$L['spread_pass_period'] = '请填写投放时段'; +$L['spread_pass_tid'] = '请填写信息ID'; +$L['spread_pass_username'] = '请填写会员名称'; +$L['spread_msg_buy'] = '您已经购买过此关键字了'; +$L['spread_msg_over'] = '{V0}本轮竞价已经结束'; +$L['spread_msg_price_min'] = '出价不能低于起价'; +$L['spread_msg_step'] = '请按加价幅度加价'; +$L['spread_msg_month'] = '请选择正确的月份'; +$L['spread_msg_itemid'] = '请填写信息ID'; +$L['spread_msg_yours'] = '信息不是您发布的,请核实'; +$L['spread_msg_success'] = '购买成功'; +$L['ad_type'] = array('广告类型', '代码广告', '文字链接', '图片广告', '视频广告', '幻灯片广告', '排名广告', '赞助商链接'); +$L['ad_title'] = '广告中心'; +$L['preview_close'] = '系统未开启广告位预览功能'; +$L['not_ad_place'] = '广告位不存在'; +$L['view_ad_place'] = '广告位 [{V0}] 预览'; +$L['not_ad'] = '广告不存在'; +$L['view_ad'] = '广告 [{V0}] 预览'; +$L['pass_place_name'] = '请填写广告位名称'; +$L['pass_place_width'] = '请填写宽度'; +$L['pass_place_height'] = '请填写高度'; +$L['pass_place_module'] = '请选择模块'; +$L['pass_place_repeat'] = '同一模块只能添加一个此类广告位'; +$L['pass_ad_title'] = '请填写广告名称'; +$L['pass_ad_month'] = '请选择购买时长'; +$L['pass_ad_from'] = '请选择广告开始日期'; +$L['pass_ad_end'] = '请选择广告结束日期'; +$L['pass_ad_bad_date'] = '开始日期必须在结束日期之前'; +$L['pass_ad_code'] = '请填写广告代码'; +$L['pass_ad_text_name'] = '请填写链接文字'; +$L['pass_ad_text_url'] = '请填写链接地址'; +$L['pass_ad_image_src'] = '请填写图片地址'; +$L['pass_ad_video_src'] = '请填写视频地址'; +$L['pass_ad_infoid'] = '请选择信息'; +$L['ad_buy_success'] = '广告订购成功,请等待工作人员处理'; +$L['ad_buy_title'] = '广告预定'; +$L['ad_buy_note'] = '会员在线订购'; +$L['ad_buy_paid'] = '已支付'; +$L['announce_title'] = '公告中心'; +$L['announce_pass_type'] = '请选择公告分类'; +$L['announce_pass_title'] = '请填写公告标题'; +$L['announce_pass_url'] = '请填写链接地址'; +$L['announce_pass_content'] = '请填写公告内容'; +$L['webpage_pass_title'] = '请填写单页标题'; +$L['webpage_pass_linkurl'] = '请填写链接地址'; +$L['webpage_pass_path'] = '文件路径格式有误'; +$L['webpage_pass_name'] = '文件名格式有误'; +$L['webpage_pass_exist'] = '指定路径文件已存在'; +$L['link_title'] = '友情链接'; +$L['link_pass_type'] = '请选择链接分类'; +$L['link_pass_site'] = '请填写网站名称'; +$L['link_pass_url'] = '请填写网站地址'; +$L['link_reg_close'] = '系统未开启在线申请功能'; +$L['link_url_repeat'] = '您所申请的网址已经提交过了,请勿重复申请'; +$L['link_reg'] = '申请链接'; +$L['link_check'] = '申请已提交,请等待审核'; +$L['link_choose_type'] = '请选择分类'; +$L['comment_title'] = '评论列表'; +$L['comment_pass_content'] = '请填写评论内容'; +$L['comment_record_add'] = '评论发布'; +$L['comment_record_del'] = '评论删除'; +$L['comment_msg_del'] = '您无权删除此评论'; +$L['comment_msg_cid'] = '无效的评论ID'; +$L['comment_msg_del_success'] = '评论删除成功'; +$L['comment_msg_not_comment'] = '评论不存在'; +$L['comment_msg_permission'] = '没有权限发布评论'; +$L['comment_msg_self'] = '您不能对自己评论'; +$L['comment_msg_limit'] = '今日可评{V0}次 当前已评{V1}次'; +$L['comment_msg_time'] = '您的评论发表的太快了,请隔{V0}秒后再发'; +$L['comment_msg_min'] = '评论最少{V0}字'; +$L['comment_msg_max'] = '评论最多{V0}字'; +$L['comment_quote_or'] = '原贴:'; +$L['comment_quote_at'] = '于'; +$L['comment_check'] = '评论提交成功,请等待审核'; +$L['gbook_title'] = '网站留言'; +$L['gbook_report_title'] = '违规举报'; +$L['gbook_success'] = '留言提交成功 请等待工作员处理'; +$L['gbook_report_success'] = '举报提交成功 请等待工作员处理'; +$L['gbook_pass_content'] = '请填写留言内容'; +$L['gift_title'] = '积分换礼'; +$L['gift_pass_type'] = '请选择分类'; +$L['gift_pass_title'] = '请填写标题'; +$L['gift_pass_thumb'] = '请上传标题图片'; +$L['gift_pass_credit'] = '请填写单价'; +$L['gift_pass_amount'] = '请填写名额'; +$L['gift_pass_group'] = '请选择会员组'; +$L['gift_my_order'] = '我的订单'; +$L['gift_error_1'] = '抱歉,此兑换还没有开始'; +$L['gift_error_3'] = '抱歉,此兑换已经过期'; +$L['gift_error_4'] = '抱歉,此兑换名额用尽,已经结束'; +$L['gift_error_5'] = '抱歉,您的'.$DT['credit_name'].'不足'; +$L['gift_error_6'] = '抱歉,您的会员组没有兑换礼品的权限'; +$L['gift_error_7'] = '抱歉,您已经兑换过此礼品或超出最低兑换次数'; +$L['gift_error_8'] = '兑换频率过快,请改天再试'; +$L['gift_credit_reason'] = '积分换礼'; +$L['gift_status'] = '处理中'; +$L['vote_title'] = '投票调查'; +$L['vote_pass_type'] = '请选择投票分类'; +$L['vote_pass_title'] = '请填写投票标题'; +$L['vote_failed'] = '您已经投过或无权投票权限'; +$L['poll_title'] = '行业票选'; +$L['poll_pass_type'] = '请选择票选分类'; +$L['poll_pass_title'] = '请填写票选标题'; +$L['poll_failed'] = '您已经投过或无权投票权限'; +$L['poll_error_1'] = '抱歉,您没有投票权限'; +$L['poll_error_2'] = '请您先登录或注册'; +$L['poll_error_3'] = '缺少参数'; +$L['poll_error_4'] = '主题不存在'; +$L['poll_error_5'] = '票选不存在'; +$L['poll_error_6'] = '投票尚未开始'; +$L['poll_error_7'] = '投票已经结束'; +$L['poll_error_8'] = '您已经投过此票'; +$L['poll_error_9'] = '最多可投{V0}票'; +$L['form_title'] = '表单问卷'; +$L['form_other'] = '其他'; +$L['form_choose'] = '请选择{V0}'; +$L['form_min_word'] = '{V0}最少{V1}字'; +$L['form_max_word'] = '{V0}最多{V1}字'; +$L['form_min_choose'] = '{V0}最少选择{V1}项'; +$L['form_max_choose'] = '{V0}最多选择{V1}项'; +$L['form_failed'] = '提交失败'; +$L['rss_title'] = 'RSS订阅'; +$L['rss_area'] = '选择地区'; +$L['rss_close'] = '系统未开启RSS订阅'; +$L['share_title'] = '分享好友'; +$L['share_not_support'] = '此页面不支持分享'; +$L['sitemap_title'] = '网站地图'; +$L['view_title'] = '查看大图'; +$L['wx_title'] = '微信联系'; +$L['address_title'] = '查看地图'; +?> \ No newline at end of file diff --git a/lang/zh-cn/group.inc.php b/lang/zh-cn/group.inc.php new file mode 100644 index 0000000..e4ca05f --- /dev/null +++ b/lang/zh-cn/group.inc.php @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/lang/zh-cn/homepage.inc.php b/lang/zh-cn/homepage.inc.php new file mode 100644 index 0000000..1404ad6 --- /dev/null +++ b/lang/zh-cn/homepage.inc.php @@ -0,0 +1,27 @@ + \ No newline at end of file diff --git a/lang/zh-cn/include.inc.php b/lang/zh-cn/include.inc.php new file mode 100644 index 0000000..89348d9 --- /dev/null +++ b/lang/zh-cn/include.inc.php @@ -0,0 +1,50 @@ + \ No newline at end of file diff --git a/lang/zh-cn/index.html b/lang/zh-cn/index.html new file mode 100644 index 0000000..c1e1f00 --- /dev/null +++ b/lang/zh-cn/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lang/zh-cn/info.inc.php b/lang/zh-cn/info.inc.php new file mode 100644 index 0000000..55b71cb --- /dev/null +++ b/lang/zh-cn/info.inc.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/lang/zh-cn/job.inc.php b/lang/zh-cn/job.inc.php new file mode 100644 index 0000000..0ad097f --- /dev/null +++ b/lang/zh-cn/job.inc.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/lang/zh-cn/know.inc.php b/lang/zh-cn/know.inc.php new file mode 100644 index 0000000..19d7dd1 --- /dev/null +++ b/lang/zh-cn/know.inc.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/lang/zh-cn/lang.chat.js b/lang/zh-cn/lang.chat.js new file mode 100644 index 0000000..1a181e0 --- /dev/null +++ b/lang/zh-cn/lang.chat.js @@ -0,0 +1,16 @@ +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +L['chat_msg_ban'] = '您已被禁言'; +L['chat_msg_empty'] = '发送内容不能为空'; +L['chat_msg_fast'] = '您的发言过快,请稍后再发'; +L['chat_msg_long'] = '发送内容过长'; +L['chat_msg_fail'] = '发送失败,请重试'; +L['chat_msg_close'] = '确定要中断聊天吗?'; +L['chat_record'] = '更多记录'; +L['chat_len_p0'] = '最多输入'; +L['chat_len_p1'] = '字,当前已输入'; +L['chat_len_p2'] = '字'; +L['chat_new_p0'] = '【新消息('; +L['chat_new_p1'] = ')】'; diff --git a/lang/zh-cn/lang.inc.php b/lang/zh-cn/lang.inc.php new file mode 100644 index 0000000..a49b0db --- /dev/null +++ b/lang/zh-cn/lang.inc.php @@ -0,0 +1,42 @@ +{V1}页/共{V2}页'; +$L['info_page'] = '共{V0}条/{V1}页'; +$L['message_type'] = array('普通', '询价', '报价', '留言', '信使'); +$L['message_weixin'] = '[详见站内消息]'; +$L['star_type'] = array('评分', '非常差', '差', '一般', '好', '非常好'); +$L['robot'] = array('baidu' => '百度','google' => 'Google','yahoo' => 'Yahoo','bing' => 'Bing','360s' => '好搜','soso' => '搜搜','sogou' => '搜狗','bytespider' => '头条','other' => '其他'); +?> \ No newline at end of file diff --git a/lang/zh-cn/lang.js b/lang/zh-cn/lang.js new file mode 100644 index 0000000..0d352b4 --- /dev/null +++ b/lang/zh-cn/lang.js @@ -0,0 +1,102 @@ +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +var L = new Array(); +L['uploading'] = '上传中...'; +L['processing'] = '处理中...'; +/* panel.js */ +L['system_tips'] = '系统提示'; +L['ok'] = '确 定'; +L['cancel'] = '取 消'; +L['upload'] = '上 传'; +L['uploading'] = '上传中..'; +L['upload_file'] = '上传文件'; +L['upload_img'] = '上传图片'; +L['allow'] = '限制为:'; +L['preview_img'] = '图片预览'; +L['choose_img'] = '选择图片'; +L['width'] = '宽度'; +L['height'] = '高度'; +L['up_local'] = '本地图片'; +L['up_remote'] = '网络图片'; +L['type_imgurl'] = '请填写图片网址'; +L['choose_file'] = '请选择文件'; +L['choose_item'] = '选择信息'; +L['dialog_user'] = '会员{V0}资料'; +L['empty_img'] = '不可预览,图片地址为空'; +L['confirm_del'] = '确定要删除吗?此操作将不可撤销'; +L['type_category'] = '请输入分类名称或简称,例如:计算机'; +L['related_found'] = '为您找到以下相关分类,请选择:'; +L['related_not_found'] = '未找到相关分类,请调整名称'; +L['type_valid_filepath'] = '请输入正确的文件路径'; +L['wysiwyg_mode'] = '请切换到设计模式'; +L['dialog_close'] = '关闭[快捷键Esc]'; +L['tpl_add'] = '新建模板'; +L['tpl_edit'] = '修改模板'; +L['op_reason'] = '操作原因'; +L['op_reason_null'] = '请填写操作原因'; + +/* calendar.js */ +L['Sun'] = '日'; +L['Mon'] = '一'; +L['Tue'] = '二'; +L['Wed'] = '三'; +L['Thu'] = '四'; +L['Fri'] = '五'; +L['Sat'] = '六'; +L['prev_year'] = '前一年'; +L['next_year'] = '后一年'; +L['prev_month'] = '上一月'; +L['next_month'] = '下一月'; + +/* common.js */ +L['str_delete'] = '删除'; +L['str_clear'] = '清理'; + +/* draft.js */ +L['fck_zoom'] = '点击增加高度 右击缩小高度'; +L['data_recovery'] = '数据恢复'; +L['save_draft'] = '暂存草稿'; +L['if_cover_data'] = '发现 {V0} 保存的数据,是否覆盖当前数据?'; +L['no_data'] = '抱歉 未找到保存的数据'; +L['at_least_10_letters'] = '请至少输入10个字,当前已输入{V0}字'; +L['stop_auto_save'] = '系统会自动保存草稿,此操作将中止系统自动保存功能,确定要继续吗?'; +L['draft_auto_saved'] = '{V0}点{V1}分{V2}秒 系统自动保存了草稿'; +L['draft_saved'] = '草稿已保存'; +L['stop_save'] = '关闭保存'; +L['draft_save_stopped'] = '草稿保存已停止'; +L['start_save'] = '开启保存'; +L['upload_attach'] = '插入附件'; + +/* homepage.js & member.js */ +L['click_open'] = '点击打开原图'; +L['keyword_value'] = '输入关键词'; +L['keyword_message'] = '请输入关键词'; +L['Sunday'] = '星期日'; +L['Monday'] = '星期一'; +L['Tuesday'] = '星期二'; +L['Wednesday'] = '星期三'; +L['Thursday'] = '星期四'; +L['Friday'] = '星期五'; +L['Saturday'] = '星期六'; +L['show_date'] = '今天是 {V0}月{V1}日 {V2}'; + +/* index.js */ +L['close_letter'] = '收起'; +L['last_page'] = '已至最后一页'; + +/* page.js */ +L['popular_search_terms'] = '热门搜索:'; +L['search_tips_close'] = '关闭'; +L['chrome_fav_tip'] = '请按快捷键Ctrl+D收藏本页,谢谢'; +L['favorited'] = '已收藏'; +L['scan_open'] = '扫一扫,直接在手机上打开'; +L['scan_tool'] = '推荐微信、QQ扫一扫等扫码工具'; + +/* player.js */ +L['iso_tips_video'] = '暂不支持此视频,请在电脑上观看'; + +/*weibo.js*/ +L['sync_sina'] = '同步到新浪微博'; +L['sync_login_sina'] = '您还没有登录新浪微博或者登录已经失效,是否现在登录?'; \ No newline at end of file diff --git a/lang/zh-cn/lang.mobile.js b/lang/zh-cn/lang.mobile.js new file mode 100644 index 0000000..101170d --- /dev/null +++ b/lang/zh-cn/lang.mobile.js @@ -0,0 +1,23 @@ +/* + DESTOON Copyright (C)2008-2099 www.destoon.com + This is NOT a freeware,Use is subject to license.txt +*/ +var L = new Array(); +L['uploading'] = '上传中...'; +L['processing'] = '处理中...'; +/* common.js */ +L['delete_confirm'] = '确定要删除吗?此操作将不可撤销'; +L['favored'] = '已收藏'; +L['refresh_pull'] = '下拉刷新'; +L['refresh_release'] = '松开刷新'; +L['refreshing'] = '刷新中'; +L['loading'] = '正在加载'; +L['load_empty'] = '没有更多信息了'; +L['save_picture'] = '保存图片'; +L['save_success'] = '保存成功'; +L['save_failure'] = '保存失败'; +L['page_enter'] = '输入页码'; +L['page_sum'] = '共'; +L['page_info'] = '条信息'; +/* share.js */ +L['share_copy'] = '网址复制成功'; diff --git a/lang/zh-cn/mall.inc.php b/lang/zh-cn/mall.inc.php new file mode 100644 index 0000000..2de566a --- /dev/null +++ b/lang/zh-cn/mall.inc.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/lang/zh-cn/member.inc.php b/lang/zh-cn/member.inc.php new file mode 100644 index 0000000..72c5907 --- /dev/null +++ b/lang/zh-cn/member.inc.php @@ -0,0 +1,601 @@ +已拒绝', '待处理', '已通过'); + +$L['address_title'] = '收货地址'; +$L['address_title_add'] = '添加地址'; +$L['address_title_edit'] = '修改地址'; +$L['address_msg_choose'] = '请选择地址'; + +$L['alert_pass'] = '您至少选择"关键字"或"所在行业"其中的一项'; +$L['alert_title'] = '贸易提醒'; +$L['alert_add_title'] = '添加提醒'; + +$L['ask_status'] = array('待受理', '受理中', '已解决', '未解决'); +$L['ask_title'] = '客服中心'; +$L['ask_title_show'] = '问题查看'; +$L['ask_title_edit'] = '修改问题'; +$L['ask_title_add'] = '提交问题'; +$L['ask_msg_edit'] = '此问题不可再修改'; +$L['ask_star_type'] = array('未评分', '不满意', '基本满意', '非常满意'); +$L['ask_star_success'] = '评分成功'; +$L['ask_add_success'] = '提交成功'; + +$L['avatar_title'] = '管理头像'; +$L['avatar_delete'] = '删除成功'; +$L['avatar_img_t'] = '图片格式错误'; +$L['avatar_img_w'] = '图片宽度小于128px'; +$L['avatar_img_h'] = '图片高度小于128px'; +$L['avatar_img_e'] = '上传失败,请重试'; + +$L['award_title'] = '我要打赏'; +$L['award_record_view'] = '信息打赏'; +$L['award_record_back'] = '打赏返利'; +$L['award_msg_self'] = '不能打赏自己发布的信息'; +$L['award_msg_fee'] = '打赏金额错误'; +$L['award_msg_success'] = '打赏成功,正在返回...'; + +$L['biz_title'] = '商户后台'; +$L['biz_day'] = '日'; +$L['biz_month'] = '月'; +$L['biz_title_month'] = '{V0}年{V1}月交易报表(单位:{V2})'; +$L['biz_title_year'] = '{V0}年交易报表(单位:{V1})'; + +$L['cash_status'] = array('等待受理', '拒绝申请', '支付失败', '付款成功'); +$L['cash_title_record'] = '提现记录'; +$L['cash_title_setting'] = '帐号设置'; +$L['cash_title_confirm'] = '提现确认'; +$L['cash_title'] = '申请提现'; +$L['cash_pass_bank'] = '请选择收款方式'; +$L['cash_pass_branch'] = '请填写开户网点'; +$L['cash_pass_account'] = '请填写收款帐号'; +$L['cash_pass_amount'] = '请填写提现金额'; +$L['cash_pass_amount_min'] = '单次提现最小金额为:'; +$L['cash_pass_amount_max'] = '单次提现最大金额为:'; +$L['cash_pass_amount_day'] = '24小时内最多可提现{V0}次,请稍候再操作'; +$L['cash_pass_amount_large'] = '提现金额大于可用余额'; +$L['cash_msg_success'] = '您的提现申请已经提交,请等待工作人员的处理
    在此期间,该笔'.$DT['money_name'].'将被冻结'; +$L['cash_msg_account'] = '请先设置收款帐号'; + +$L['charge'] = '支付'; +$L['charge_id'] = '流水号'; +$L['charge_online'] = '在线支付'; +$L['charge_card'] = '充值卡支付'; +$L['charge_reward'] = '支付奖励'; +$L['charge_card_name'] = '充值卡'; +$L['charge_card_number'] = '卡号'; +$L['charge_status'] = array('等待支付', '支付失败', '支付失败', '支付成功', '支付成功'); +$L['charge_title_record'] = '支付记录'; +$L['charge_title_confirm'] = '支付确认'; +$L['charge_title_card'] = '充值卡支付'; +$L['charge_title_pay'] = '在线支付'; +$L['charge_title'] = '完成支付'; +$L['charge_pass_card_number'] = '请填写正确的充值卡卡号'; +$L['charge_pass_card_password'] = '请填写正确的充值卡密码'; +$L['charge_pass_card_used'] = '充值卡无效'; +$L['charge_pass_card_expired'] = '充值卡已过有效期'; +$L['charge_pass_card_error_password'] = '充值卡密码错误'; +$L['charge_pass_card_error_number'] = '无效的充值卡卡号'; +$L['charge_pass_type_amount'] = '请填写支付金额'; +$L['charge_pass_choose_amount'] = '请选择支付金额'; +$L['charge_pass_amount_min'] = '支付金额最少:'; +$L['charge_pass_bank'] = '请选择支付平台'; +$L['charge_pass_bank_close'] = '此支付平台尚未启用'; +$L['charge_pass_stock'] = '库存不足'; +$L['charge_msg_card_success'] = '充值卡充值成功'; +$L['charge_msg_order_fail'] = '订单状态为失败,ID:'; +$L['charge_msg_order_cancel'] = '订单状态为作废,ID:'; +$L['charge_msg_not_order'] = '未找到支付纪录'; +$L['charge_reason_deposit'] = '保证金'; +$L['charge_reason_credit'] = '积分购买'; +$L['charge_reason_sms'] = '短信购买'; +$L['charge_reason_vip'] = VIP.'续费'; +$L['charge_reason_grade'] = '会员升级'; +$L['charge_reason_muti'] = '批量付款'; +$L['charge_reason_style'] = '模板购买'; +$L['charge_reason_spread'] = '排名购买'; +$L['charge_reason_ad'] = '广告购买'; +$L['charge_reason_pay'] = '信息支付'; +$L['charge_reason_award'] = '信息打赏'; + +$L['chat_title'] = '站内交谈'; +$L['chat_group'] = '我的群聊'; +$L['chat_add'] = '发起交谈'; +$L['chat_friend'] = '我的好友'; +$L['chat_setting'] = '交谈设置'; +$L['chat_online'] = '[在线]'; +$L['chat_offline'] = '[离线]'; +$L['chat_empty'] = '暂无对话'; +$L['chat_record'] = '与【{V0}】聊天记录'; +$L['chat_with'] = '与【{V0}】交谈中'; +$L['chat_msg_black'] = '未指定屏蔽对象'; +$L['chat_msg_black_success'] = '屏蔽成功'; +$L['chat_msg_self'] = '不能与自己对话'; +$L['chat_msg_no_rights'] = '您所在的会员组没有权限发起对话'; +$L['chat_msg_user'] = '会员不存在'; +$L['chat_msg_refuse'] = '对方拒绝与您对话'; + +$L['child_title'] = '子账号'; +$L['child_title_add'] = '添加子账号'; +$L['child_title_edit'] = '修改子账号'; +$L['child_permission'] = '请选择权限'; + +$L['credit_exchange_title'] = $DT['credit_name'].'兑换'; +$L['credit_buy_title'] = $DT['credit_name'].'购买'; +$L['credit_title'] = $DT['credit_name'].'记录'; +$L['credit_pass_ex_min'] = '兑换额度不足'; +$L['credit_pass_ex_max'] = '最多可兑换:'; +$L['credit_msg_amount'] = '兑换成功'; +$L['credit_msg_active'] = '您的帐号未在论坛激活'; +$L['credit_msg_less'] = '积分不足,无法进行此操作'; +$L['credit_msg_buy_amount'] = '请选择购买额度'; +$L['credit_msg_buy_success'] = '购买成功'; +$L['credit_fields'] = array($L['search_by'], '金额', '事由', $L['search_by_note']); + + +$L['coupon_title'] = '我的优惠券'; +$L['coupon_promo_title'] = '领券中心'; +$L['coupon_msg_got'] = '该优惠券已经领取过'; +$L['coupon_msg_exists'] = '优惠活动不存在'; +$L['coupon_msg_self'] = '不能领取自己的店铺优惠券'; +$L['coupon_msg_none'] = '该优惠券已抢光,看看其他优惠券吧'; +$L['coupon_msg_time'] = '该优惠还没有开始,看看其他优惠券吧'; +$L['coupon_msg_timeout'] = '该优惠已经结束,看看其他优惠券吧'; +$L['coupon_msg_success'] = '优惠券领取成功'; +$L['coupon_msg_choose'] = '未指定优惠券'; + +$L['deposit_title'] = '保证金记录'; +$L['deposit_title_add'] = '保证金增资'; + +$L['edit_title'] = '修改资料'; +$L['edit_invite'] = '会员推广'; +$L['edit_profile'] = '完善资料'; +$L['edit_msg_success'] = '资料保存成功'; +$L['edit_msg_password'] = ',您修改了登录密码,请重新登录...'; + +$L['express_title'] = '运费模板'; +$L['express_msg_choose'] = '请选择运费模板'; + +$L['favorite_title_add'] = '添加收藏'; +$L['favorite_title_edit'] = '修改收藏'; +$L['favorite_title'] = '我的收藏'; +$L['favorite_msg_choose'] = '请选择收藏'; +$L['favorite_sfields'] = array($L['search_by'], $L['search_by_title'], '网址', $L['search_by_note']); + +$L['friend_title_add'] = '添加商友'; +$L['friend_title_edit'] = '修改商友'; +$L['friend_title_show'] = '商友详情'; +$L['friend_title'] = '我的商友'; +$L['friend_pass_truename'] = '请填写真实姓名'; +$L['friend_msg_add_again'] = '该会员已经是您的商友了'; +$L['friend_msg_add_self'] = '不能添加自己为商友'; +$L['friend_msg_choose'] = '请选择商友'; +$L['friend_sfields'] = array($L['search_by'], '姓名', '公司', '职位', '电话', '手机', '主页', 'Email', 'QQ', '微信', '阿里旺旺', 'Skype', '会员', $L['search_by_note']); + +$L['grade_title'] = '会员升级'; +$L['grade_fail'] = '您的会员组升级({V0})失败'; +$L['grade_success'] = '您的会员组升级({V0})成功'; +$L['grade_return'] = '升级失败返款'; +$L['grade_upto'] = '升级为:'; +$L['grade_pass_balance'] = '会员余额不足'; +$L['grade_pass_company'] = '请填写公司名'; +$L['grade_pass_truename'] = '请填写联系人'; +$L['grade_pass_telephone'] = '请填写电话号码'; +$L['grade_msg_bad_promo'] = '无效的优惠码'; +$L['grade_msg_time_promo'] = '可获有效期:{V0}天'; +$L['grade_msg_money_promo'] = '可充抵金额:{V0}'.$DT['money_unit']; +$L['grade_msg_success'] = '您的申请已经成功提交,请等待工作人员处理'; + +$L['home_title'] = '商铺设置'; +$L['home_msg_reset'] = '恢复成功'; +$L['home_msg_save'] = '保存成功'; + +$L['honor_title_add'] = '添加证书'; +$L['honor_title_edit'] = '修改证书'; +$L['honor_title'] = '荣誉资质'; +$L['honor_pass_title'] = '请填写证书名称'; +$L['honor_pass_authority'] = '请填写发证机构'; +$L['honor_pass_thumb'] = '请上传证书图片'; +$L['honor_pass_fromdate'] = '请选择证书发证时间'; +$L['honor_pass_fromdate_error'] = '证书发证时间必须在当前时间之前'; +$L['honor_pass_todate'] = '请选择证书到期时间'; +$L['honor_pass_todate_error'] = '证书到期时间必须在当前时间之后'; +$L['honor_reward_reason'] = '证书上传'; +$L['honor_punish_reason'] = '证书删除'; +$L['honor_msg_choose'] = '请选择证书'; + +$L['index_msg_logout'] = '注销成功'; +$L['index_msg_note_limit'] = '便笺限1000字'; + +$L['invite_title'] = $DT['credit_name'].'推广'; + +$L['link_title'] = '友情链接'; +$L['link_title_add'] = '添加链接'; +$L['link_title_edit'] = '修改链接'; +$L['link_pass_username'] = '会员名不能为空'; +$L['link_pass_title'] = '请填写网站名称'; +$L['link_pass_linkurl'] = '请填写网站地址'; +$L['link_msg_choose'] = '请选择链接'; + +$L['login_title'] = '会员登录'; +$L['login_title_reg'] = '注册成功,请登录'; +$L['login_title_sms'] = '短信登录'; +$L['login_title_scan'] = '扫码登录'; +$L['login_title_weixin'] = '微信扫码'; +$L['login_title_child'] = '子账号登录'; +$L['login_msg_username'] = '请输入登录名称'; +$L['login_msg_password'] = '请输入密码'; +$L['login_msg_not_member'] = '登录名称不存在'; +$L['login_msg_success'] = '登录成功'; +$L['login_msg_bad_mobile'] = '手机号不存在或未通过验证'; +$L['login_msg_bad_code'] = '短信验证失败'; + +$L['logout_msg_success'] = '退出成功'; + +$L['mail_title'] = '我的订阅'; +$L['mail_title_list'] = '邮件列表'; +$L['mail_msg_not_add'] = '您尚未订阅任何商机'; +$L['mail_msg_cancel'] = '退订成功'; +$L['mail_msg_update'] = '订阅更新成功'; +$L['mail_msg_choose'] = '请选择商机分类,如果要取消订阅,请直接点击退订按钮'; +$L['mail_msg_not_item'] = '邮件列表不存在'; + +$L['member_username_match'] = '会员名格式错误'; +$L['member_username_len'] = '会员登录名长度应在{V0}-{V1}之间'; +$L['member_username_ban'] = '此登录名已经被禁止注册'; +$L['member_username_reg'] = '会员登录名已经被注册'; +$L['member_passport_len'] = '昵称长度应在{V0}-{V1}之间'; +$L['member_passport_char'] = '昵称不能含有特殊符号'; +$L['member_passport_ban'] = '此昵称已经被禁止注册'; +$L['member_passport_reg'] = '昵称已经被注册'; +$L['member_password_null'] = '会员登录密码不能为空'; +$L['member_password_match'] = '两次输入的密码不一致'; +$L['member_password_len'] = '登录密码长度应在{V0}-{V1}之间'; +$L['member_password_1'] = '密码必须包含数字'; +$L['member_password_2'] = '密码必须包含小写字母'; +$L['member_password_3'] = '密码必须包含大写字母'; +$L['member_password_4'] = '密码必须包含标点符号'; +$L['member_payword_null'] = '支付密码不能为空'; +$L['member_payword_match'] = '两次输入的密码不一致'; +$L['member_payword_len'] = '支付密码长度应在{V0}-{V1}之间'; +$L['member_groupid_null'] = '请选择会员组'; +$L['member_truename_null'] = '请填写真实姓名'; +$L['member_email_null'] = '邮件格式不正确'; +$L['member_email_ban'] = '此邮件域名已经被禁止注册'; +$L['member_email_reg'] = '邮件地址已经被注册'; +$L['member_mobile_null'] = '手机号码格式不正确'; +$L['member_mobile_reg'] = '手机号码已经被注册'; +$L['member_areaid_null'] = '请选择所在地区'; +$L['member_company_null'] = '请填写公司名称'; +$L['member_company_bad'] = '无效的公司名称'; +$L['member_company_reg'] = '公司名称已经存在'; +$L['member_company_ban'] = '此公司名已经被禁止注册'; +$L['member_shop_reg'] = '商铺名称已经存在'; +$L['member_type_null'] = '请选择公司类型'; +$L['member_telephone_null'] = '请填写公司电话'; +$L['member_regyear_null'] = '请填写公司注册年份'; +$L['member_address_null'] = '请填写公司地址'; +$L['member_introduce_null'] = '公司介绍不能少于5字'; +$L['member_business_null'] = '请填写公司主要经营范围'; +$L['member_catid_null'] = '请选择公司主营行业'; +$L['member_login_username_bad'] = '用户名格式错误'; +$L['member_login_password_bad'] = '密码错误,请重试'; +$L['member_login_not_member'] = '会员不存在'; +$L['member_login_ban'] = '累计{V0}次错误尝试 您在{V1}小时内不能登录系统'; +$L['member_login_member_ban'] = '该帐号已被禁止访问'; +$L['member_login_ok'] = '成功'; +$L['member_founder_del'] = '创始人不可删除'; +$L['member_founder_move'] = '创始人不可移动'; +$L['member_rename_not_member'] = '当前会员名不存在'; +$L['member_record_reg'] = '注册奖励'; +$L['member_record_login'] = '登录奖励'; + +$L['message_title'] = '站内消息'; +$L['message_title_black'] = '黑名单'; +$L['message_title_inbox'] = '收件箱'; +$L['message_title_outbox'] = '已发送'; +$L['message_title_draft'] = '草稿箱'; +$L['message_title_recycle'] = '回收站'; +$L['message_limit'] = '今日可发送{V0}次 当前已发送{V1}次'; +$L['message_send_max'] = '最多同时给{V0}个人发送信件'; +$L['message_list_date'] = 'Y年m月d日 H:i'; +$L['message_from_system'] = '系统'; +$L['message_from_notice'] = '广播'; +$L['message_names'] = array(1=>'草稿箱', 2=>'已发送', 3=>'收件箱', 4=>'回收站'); +$L['message_feedback_title'] = '您的来信 [{V0}] 已经阅读'; +$L['message_feedback_content'] = '{V0} 于 {V1} 阅读了您发送的信件
    标题:{V2}
    时间:{V3}
    原文:
    {V4}
    '; +$L['message_msg_edit'] = '信件不存在或无权修改'; +$L['message_msg_null'] = '指定范围暂无信件'; +$L['message_msg_save_draft'] = '草稿保存成功'; +$L['message_msg_edit_draft'] = '草稿修改成功'; +$L['message_msg_send'] = '信件发送成功'; +$L['message_msg_choose'] = '请选择信件'; +$L['message_msg_deny'] = '信件不存在或无权限'; +$L['message_msg_clear'] = '成功清空'; +$L['message_msg_mark'] = '已标记为已读'; +$L['message_msg_restore'] = '成功还原'; +$L['message_msg_empty'] = '清理成功'; +$L['message_msg_inbox_limit'] = '收件箱已满,请清理信件'; +$L['message_black_username'] = '请指定要加入黑名单的会员'; +$L['message_black_not_member'] = '会员不存在,请检查'; +$L['message_black_exist'] = '会员已经位于黑名单'; +$L['message_black_update'] = '黑名单更新成功'; +$L['message_pass_groupid'] = '请选择会员组'; +$L['message_pass_touser'] = '收件人不能为空'; +$L['message_pass_title'] = '标题或内容不能为空'; + +$L['news_title'] = '公司新闻'; +$L['news_title_add'] = '添加新闻'; +$L['news_title_edit'] = '修改新闻'; +$L['news_record_add'] = '新闻发布'; +$L['news_record_del'] = '新闻删除'; +$L['news_msg_choose'] = '请选择新闻'; + +$L['oauth_title'] = '一键登录'; +$L['oauth_quit'] = '解除成功'; +$L['oauth_bind'] = '帐号绑定'; + +$L['page_title'] = '公司单页'; +$L['page_title_add'] = '添加单页'; +$L['page_title_edit'] = '修改单页'; +$L['page_record_add'] = '单页发布'; +$L['page_record_del'] = '单页删除'; +$L['page_msg_choose'] = '请选择单页'; + +$L['pay_title'] = '站内支付'; +$L['pay_record_view'] = '信息查看'; +$L['pay_record_back'] = '信息返利'; +$L['pay_msg_self'] = '不能支付自己发布的信息'; +$L['pay_msg_fee'] = '支付金额错误'; +$L['pay_msg_success'] = '支付成功,正在返回...'; + +$L['promo_title'] = '优惠促销'; +$L['promo_coupon_title'] = '领券记录'; +$L['promo_title_add'] = '添加促销'; +$L['promo_title_edit'] = '修改促销'; +$L['promo_msg_title'] = '请填写优惠名称'; +$L['promo_msg_price'] = '请填写优惠金额'; +$L['promo_msg_cost'] = '最低消费必须大于优惠金额'; +$L['promo_msg_amount'] = '请填写数量限制'; +$L['promo_msg_date'] = '有效时间设置错误'; + +$L['record_title'] = $DT['money_name'].'流水'; +$L['record_title_pay'] = '信息查看记录'; +$L['record_title_award'] = '打赏记录'; +$L['record_sfields'] = array($L['search_by'], '金额', '银行', '事由', $L['search_by_note']); + +$L['register_title'] = '会员注册'; +$L['register_msg_error'] = '错误请求'; +$L['register_msg_close'] = '管理员关闭了用户注册'; +$L['register_msg_agent'] = '您的客户端信息已经被网站屏蔽
    如有疑问,请与我们联系'; +$L['register_msg_ip'] = '同一IP{V0}小时内只能注册一次'; +$L['register_msg_passport'] = '昵称已经存在\n\n如果此会员是您注册的,请填写正确的密码\n\n如果不是您注册的,请更换昵称再试'; +$L['register_msg_activate'] = $DT['sitename'].'用户注册激活信'; +$L['register_msg_welcome'] = '欢迎加入'.$DT['sitename']; +$L['register_pass_groupid'] = '请选择会员组'; +$L['register_msg_emailcode'] = $DT['sitename'].'用户邮件验证码'; +$L['register_pass_emailcode'] = '邮件验证码错误'; +$L['register_pass_mobilecode'] = '手机验证码错误'; +$L['register_proxy'] = '请不要使用代理访问本站注册'; + +$L['send_mail_close'] = '系统未开启邮件发送'; +$L['send_sms_close'] = '系统未开启短信发送'; +$L['send_check_success'] = '您的帐号激活成功'; +$L['send_check_email_bad'] = '请填写正确的邮件地址'; +$L['send_check_email_repeat'] = '您填写的邮件地址已经被使用,请更换'; +$L['send_check_username_bad'] = '您的会员名输入错误'; +$L['send_check_password_bad'] = '您的会员名和密码不匹配'; +$L['send_check_deny'] = '您的帐号无需发送验证信'; +$L['send_check_mail'] = $DT['sitename'].'用户注册激活信'; +$L['send_check_username_null'] = '您输入会员名不存在'; +$L['send_check_title'] = '重发验证信'; +$L['send_payword_success'] = '支付密码修改成功'; +$L['send_payword_mail'] = $DT['sitename'].'用户修改支付密码'; +$L['send_payword_title'] = '支付密码'; +$L['send_email_empty'] = '个人资料未填写电子邮件'; +$L['send_email_exist'] = '邮件地址已经被注册,请更换'; +$L['send_email_success'] = '邮件修改成功'; +$L['send_email_mail'] = $DT['sitename'].'用户修改邮件'; +$L['send_email_title'] = '修改邮件'; +$L['send_mobile_empty'] = '个人资料未填写手机号码'; +$L['send_mobile_exist'] = '手机号码已经被注册,请更换'; +$L['send_mobile_fail'] = '短信发送失败,请重试'; +$L['send_mobile_success'] = '手机修改成功'; +$L['send_mobile_code_error'] = '验证码错误'; +$L['send_mobile_bad'] = '手机号码格式不正确'; +$L['send_mobile_record'] = '修改手机'; +$L['send_mobile_title'] = '修改手机'; +$L['send_password_success'] = '登录密码重设成功'; +$L['send_password_checking'] = '您的帐号尚未通过审核'; +$L['send_password_error'] = '提供的信息不匹配'; +$L['send_password_mail'] = $DT['sitename'].'用户找回密码'; +$L['send_password_title'] = '找回密码'; + +$L['sendmail_title'] = '发送电子邮件'; +$L['sendmail_content'] = '您的好友 {V1} 向您推荐如下信息:

    {V2}
    {V3}

    附言:'; +$L['sendmail_title_new'] = '推荐《{V0}》'; +$L['sendmail_pass_mailto'] = '请填写正确的收件人地址'; +$L['sendmail_success'] = '邮件已发送至{V0}'; +$L['sendmail_fail'] = '邮件发送失败,请重试'; + +$L['sms_code'] = '验证码'; +$L['sms_msg_max'] = '今日已达发送上限,请明日再试'; +$L['sms_msg_validate'] = '请先认证您的手机号码'; +$L['sms_msg_buy'] = '请先购买短信'; +$L['sms_msg_mobile'] = '请填写正确的手机号码'; +$L['sms_msg_content'] = '请填写短信内容'; +$L['sms_add_record'] = '手动'; +$L['sms_add_success'] = '成功发送{V0}条短信'; +$L['sms_add_title'] = '发送短信'; +$L['sms_msg_no_price'] = '系统未设置单价,无法购买'; +$L['sms_msg_buy_num'] = '请填写购买数量'; +$L['sms_buy_note'] = '购买短信'; +$L['sms_buy_record'] = '在线购买'; +$L['sms_buy_success'] = '购买成功'; +$L['sms_buy_title'] = '短信购买'; +$L['sms_record_title'] = '接收记录'; +$L['sms_send_title'] = '发送记录'; +$L['sms_title'] = '短信记录'; +$L['sms_sfields'] = array($L['search_by'], '金额', '事由', $L['search_by_note']); + +$L['stats_title'] = '流量统计'; +$L['stats_title_record'] = '浏览记录'; +$L['stats_title_report'] = '统计报表'; +$L['stats_weeks'] = array('天', '一', '二', '三', '四', '五', '六'); +$L['stats_week'] = '星期'; +$L['stats_msg_update'] = '正在更新数据'; +$L['stats_record_sfields'] = array($L['search_by'], '网址', '来源', '来源域名', '搜索引擎', '会员', '所属商家', 'IP'); +$L['stats_sorder'] = array($L['order_by'], '总IP降序', '总IP升序', '电脑IP降序', '电脑IP升序', '手机IP降序', '手机IP升序', '总PV降序', '总PV升序', '电脑PV降序', '电脑PV升序', '手机PV降序', '手机PV升序', '爬虫PV降序', '爬虫PV升序', '电脑爬虫PV降序', '电脑爬虫PV升序', '手机爬虫PV降序', '手机爬虫PV升序', '日期降序', '日期升序'); + +$L['stock_title'] = '商品库存'; +$L['stock_title_open'] = '公用数据'; +$L['stock_title_in'] = '商品入库'; +$L['stock_title_out'] = '商品出库'; +$L['stock_title_add'] = '添加商品'; +$L['stock_title_edit'] = '修改商品'; +$L['stock_title_update'] = '库存管理'; +$L['stock_title_record'] = '库存记录'; +$L['stock_msg_skuid'] = '请填写条形编码'; +$L['stock_msg_barcode'] = '条形编码不存在对应商品'; +$L['stock_msg_amount'] = '请填写数量'; +$L['stock_record_sfields'] = array($L['search_by'], '商品名称', '条形编码', '操作事由', '备注信息', '操作人'); +$L['stock_record_sorder'] = array($L['order_by'], '数量降序', '数量升序', '库存降序', '库存升序', '时间降序', '时间升序'); +$L['stock_open_sfields'] = array($L['search_by'], '商品名称', '条形编码', '仓储货位', '商品品牌', '计量单位', '属性名1', '属性名2', '属性名3', '属性值1', '属性值2', '属性值3', '备注', '操作人'); +$L['stock_open_sorder'] = array($L['order_by'], '复制次数降序', '复制次数升序', '商品售价降序', '商品售价升序', '商品进价降序', '商品进价升序', '添加时间降序', '添加时间升序', '更新时间降序', '更新时间升序'); +$L['stock_sfields'] = array($L['search_by'], '商品名称', '条形编码', '仓储货位', '商品品牌', '计量单位', '属性名1', '属性名2', '属性名3', '属性值1', '属性值2', '属性值3', '备注', '操作人'); +$L['stock_sorder'] = array($L['order_by'], '库存数量降序', '库存数量升序', '商品售价降序', '商品售价升序', '商品进价降序', '商品进价升序', '添加时间降序', '添加时间升序', '更新时间降序', '更新时间升序'); + +$L['style_title'] = '模板设置'; +$L['style_title_buy'] = '模板购买'; +$L['style_title_order'] = '我的模板'; +$L['style_sfields'] = array($L['search_by'], '名称', '作者'); +$L['style_sorder'] = array($L['order_by'], '价格降序', '价格升序', '人气降序', '人气升序'); +$L['style_record_buy'] = '{V0}模板购买{V1}月'; +$L['style_msg_not_exist'] = '模板不存在'; +$L['style_msg_group'] = '抱歉!此模板未对您所在的会员组开放'; +$L['style_msg_month'] = '请选择购买时长'; +$L['style_msg_expired'] = '模板已过期,请续费'; +$L['style_msg_buy_success'] = '模板购买成功'; +$L['style_msg_use_success'] = '模板启用成功'; +$L['style_pass_title'] = '请填写模板名称'; +$L['style_pass_skin'] = '请填写风格目录'; +$L['style_pass_skin_match'] = '只能使用字母(A-Z,a-z)、数字(0-9)、中划线(-)、下划线(_)作为风格目录名称'; +$L['style_pass_css'] = 'CSS文件不存在'; +$L['style_pass_template'] = '请填写模板目录'; +$L['style_pass_template_match'] = '只能使用字母(A-Z,a-z)、数字(0-9)、中划线(-)、下划线(_)作为模板目录名称'; +$L['style_pass_dir'] = '模板目录不存在'; +$L['style_pass_mdir'] = '手机版目录不存在'; +$L['style_pass_groupid'] = '请选择会员组'; + +$L['support_title'] = '客服专员'; +$L['support_error_1'] = '系统暂未为您分配客服专员'; +$L['support_error_2'] = '客服专员不存在,请与网站联系'; + +$L['type_title'] = '{V0}分类管理'; +$L['type_names'] = array('friend'=>'商友', 'favorite'=>'收藏', 'sell'=>'供应', 'mall'=>'商品', 'news'=>'新闻', 'stock'=>'库存'); +$L['type_msg_limit'] = '最多可添加{V0}个分类'; +$L['type_parent'] = '上级分类'; + + +$L['validate_title'] = '身份认证'; +$L['validate_email_exist'] = '邮件地址已经被使用,请更换'; +$L['validate_email_success'] = '您的邮件认证成功'; +$L['validate_email_bad'] = '邮箱格式不正确'; +$L['validate_email_mail'] = $DT['sitename'].'用户邮件认证'; +$L['validate_email_title'] = '邮件认证'; +$L['validate_mobile_exist'] = '手机号码已经被占用,请更换'; +$L['validate_mobile_title'] = '手机认证'; +$L['validate_mobile_success'] = '您的手机认证成功'; +$L['validate_mobile_fail'] = '短信发送失败,请重试'; +$L['validate_mobile_code_error'] = '验证码错误'; +$L['validate_mobile_bad'] = '手机号码格式不正确'; +$L['validate_mobile_record'] = '手机认证'; +$L['validate_truename_title'] = '实名认证'; +$L['validate_truename_name'] = '请填写真实姓名'; +$L['validate_truename_image'] = '请上传证件图片'; +$L['validate_truename_success'] = '提交成功'; +$L['validate_company_title'] = '公司认证'; +$L['validate_company_name'] = '请填写公司名'; +$L['validate_company_image'] = '请上传证件图片'; +$L['validate_company_success'] = '提交成功'; +$L['validate_shop_title'] = '商铺认证'; +$L['validate_shop_name'] = '请填写商铺名称'; +$L['validate_shop_image'] = '请上传证件图片'; +$L['validate_shop_success'] = '提交成功'; +$L['validate_bank_title'] = '银行帐号认证'; + +$L['vip_title'] = VIP.'信息'; +$L['vip_renew'] = VIP.'续费'; +$L['vip_msg_fee'] = '支付金额错误'; +$L['vip_msg_success'] = '续费成功'; +$L['vip_record'] = '{V0}年,{V1}到期'; + +$L['weixin_title'] = '微信关注'; +$L['weixin_push_open'] = '开启成功'; +$L['weixin_push_close'] = '关闭成功'; + +$L['send_too_many'] = '尝试次数过多,请稍后再试'; +$L['send_too_quick'] = '发送频率过快,请稍后再试'; +$L['send_bad_email'] = '邮件地址不存在'; +$L['send_bad_mobile'] = '认证手机号码不存在'; +?> \ No newline at end of file diff --git a/lang/zh-cn/message.inc.php b/lang/zh-cn/message.inc.php new file mode 100644 index 0000000..909f4fd --- /dev/null +++ b/lang/zh-cn/message.inc.php @@ -0,0 +1,85 @@ + \ No newline at end of file diff --git a/lang/zh-cn/misc.inc.php b/lang/zh-cn/misc.inc.php new file mode 100644 index 0000000..62376b6 --- /dev/null +++ b/lang/zh-cn/misc.inc.php @@ -0,0 +1,124 @@ +{V0}'; +$L['apply_success'] = '简历投递成功'; +$L['make_resume'] = '请先创建简历'; +$L['not_resume'] = '简历不存在'; +/* konw/answer.inc.php */ +$L['vote_end'] = '投票已经结束'; +$L['vote_answer'] = '问题投票'; +$L['vote_reject'] = '您已经投过票或无权投票'; +$L['min_answer'] = '至少需要保留两个答案'; +$L['record_reward'] = '[{V0}]最佳答案悬赏'; +$L['record_best'] = '[{V0}]最佳答案奖励'; +$L['record_thank'] = '[{V0}]最佳答案感谢'; +$L['record_addto'] = '[{V0}]追加悬赏'; +$L['record_expired'] = '[{V0}]问题过期'; +$L['select_credit'] = '请选择'.$DT['credit_name']; +$L['lack_credit'] = $DT['credit_name'].'不足'; +$L['type_answer'] = '请填写答案'; +$L['answer_title'] = '我来回答'; +$L['answer_question'] = '回答问题'; +$L['answer_msg_title'] = '您的提问[{V0}]收到新的回答'; +$L['answer_msg_content'] = ':{V0}
    :{V1}
    详见:{V2}
    如果回答没有显示出来,可能需要系统审核后显示'; +$L['answer_success'] = '回答成功,感谢参与'; +$L['answer_check'] = '回答成功,请等待审核'; +$L['expired_msg_title'] = '您的提问[{V0}]即将到期,请及时处理'; +$L['expired_msg_content'] = '详见:{V0}'; +$L['sms_inquiry'] = '询盘'; +$L['sms_price'] = '报价'; +$L['sms_message'] = '留言'; +/* mall/cart.inc.php */ +$L['cart_title'] = '购物车'; +/* mall|group/buy.inc.php */ +$L['buy_title'] = '提交订单'; +$L['post_free'] = '包邮'; +$L['msg_buy_success'] = '订单提交成功'; +/* group/buy.inc.php*/ +$L['group_expired'] = '团购已结束'; +/* exhibit/sign.inc.php*/ +$L['sign_title'] = '在线报名'; +$L['sign_again'] = '您已经报过名了,不能重复提交'; +$L['has_started'] = '展会已经开始'; +$L['msg_sign_success'] = '报名提交成功,请等待工作人员与您联系'; +?> \ No newline at end of file diff --git a/lang/zh-cn/mobile.inc.php b/lang/zh-cn/mobile.inc.php new file mode 100644 index 0000000..53adf8d --- /dev/null +++ b/lang/zh-cn/mobile.inc.php @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/lang/zh-cn/my.inc.php b/lang/zh-cn/my.inc.php new file mode 100644 index 0000000..3a82336 --- /dev/null +++ b/lang/zh-cn/my.inc.php @@ -0,0 +1,60 @@ +成团中', '团购中', '已结束'); +$L['group_orderby'] = array('结果排序方式', '订单数量降序', '订单数量升序', '销售量降序', '销售量升序', '团购价降序', '团购价升序', '市场价降序', '市场价升序', '节省费用降序', '节省费用升序', '享受折扣降序', '享受折扣升序', '最多人数降序', '最多人数升序', '最低人数降序', '最低人数升序', '浏览人次降序', '浏览人次升序'); +$L['mall_orderby'] = array('结果排序方式', '更新时间降序', '更新时间升序', '添加时间降序', '添加时间升序', '商品单价降序', '商品单价升序', '订单数量降序', '订单数量升序', '销售数量降序', '销售数量升序', '库存总量降序', '库存总量升序', '评论次数降序', '评论次数升序', '浏览人气降序', '浏览人气升序'); +?> \ No newline at end of file diff --git a/lang/zh-cn/order.inc.php b/lang/zh-cn/order.inc.php new file mode 100644 index 0000000..485630a --- /dev/null +++ b/lang/zh-cn/order.inc.php @@ -0,0 +1,217 @@ +未知', + '在途', + '派送中', + '已签收', + '退回', + '其他', + '无记录', +); +$L['send_dstatus'] = array( + '未知', + '在途', + '派送中', + '已签收', + '退回', + '其他', + '无记录', +); + +$L['group_status'] = array( + '已付款', + '已发货', + '已消费', + '交易成功', + '申请退款', + '已退款', + '待付款', +); +$L['group_dstatus'] = array( + '已付款', + '已发货', + '已消费', + '交易成功', + '申请退款', + '已退款', + '待付款', +); +$L['group_order_credit'] = '团购订单'; +$L['group_msg_deny'] = '您无权进行此操作'; +$L['group_msg_null'] = '订单不存在'; +$L['group_success'] = '恭喜!此订单交易成功'; +$L['group_detail_title'] = '订单详情'; +$L['group_express_title'] = '物流追踪'; +$L['group_title'] = '订单管理'; +$L['group_sfields'] = array('按条件', '商品', '金额', '密码', '买家', '买家姓名', '买家地址', '买家邮编', '买家手机', '买家电话', '发货方式', '物流号码', '备注'); +$L['group_order_title'] = '团购订单'; +$L['group_order_sfields'] = array('按条件', '商品', '金额', '密码', '卖家', '发货方式', '物流号码', '备注'); +$L['group_order_id'] = '团购单号'; +$L['group_send_title'] = '商家发货'; +$L['group_addtime_null'] = '请填写延长的时间'; +$L['group_addtime_success'] = '买家确认时间延长成功'; +$L['group_addtime_title'] = '延长买家确认时间'; +$L['group_record_pay'] = '交易成功'; +$L['group_order_id'] = '团购单号:'; +$L['group_buyer_timeout'] = '团购单号:{V0}[买家超时]'; +$L['group_pay_order_success'] = '订单支付成功'; +$L['group_pay_order_title'] = '订单支付'; + +$L['trade_status'] = array( + '待确认', + '待付款', + '待发货', + '已发货', + '交易成功', + '申请退款', + '已退款', + '货到付款', + '买家关闭', + '卖家关闭', +); +$L['trade_dstatus'] = array( + '待确认', + '待付款', + '待发货', + '已发货', + '交易成功', + '申请退款', + '已退款', + '货到付款', + '买家关闭', + '卖家关闭', +); +$L['trade_msg_deny'] = '您无权进行此操作'; +$L['trade_msg_null'] = '订单不存在'; +$L['trade_msg_pay_bind'] = '系统采用了{V0}担保交易,请先绑定您的{V0}帐号'; +$L['trade_msg_less_fee'] = '附加金额不能小于{V0}'; +$L['trade_msg_confirm'] = '此订单需要卖家确认'; +$L['trade_msg_deny_comment'] = '此订单不支持评价'; +$L['trade_msg_comment_again'] = '您已经评价过此交易'; +$L['trade_msg_comment_success'] = '评价提交成功'; +$L['trade_msg_empty_explain'] = '解释内容不能为空'; +$L['trade_msg_explain_again'] = '您已经解释过此评价'; +$L['trade_msg_explain_success'] = '解释成功'; +$L['trade_msg_secured_close'] = '系统未开启担保交易接口'; +$L['trade_msg_bind_edit'] = '您的帐号已经绑定,不可再修改
    如果需要修改,请与网站联系'; +$L['trade_msg_bind_exists'] = '帐号绑定已经存在,请检查您的帐号'; +$L['trade_msg_bind_success'] = '更新成功'; +$L['trade_msg_muti_choose'] = '请选择需要支付的订单'; +$L['trade_msg_muti_empty'] = '暂无符合条件的订单'; +$L['trade_msg_svae_note'] = '保存成功'; +$L['trade_bind_title'] = '绑定{V0}帐号'; +$L['trade_bind_error'] = '{V0}帐号格式不正确'; +$L['trade_muti_title'] = '批量付款'; +$L['trade_muti_send_title'] = '批量发货'; +$L['trade_comment_title'] = '交易评价'; +$L['trade_comment_show_title'] = '交易详情'; + +$L['trade_price_fee_null'] = '请填写附加金额'; +$L['trade_price_fee_name'] = '请填写附加金额名称'; +$L['trade_price_edit_success'] = '订单修改成功'; +$L['trade_price_title'] = '修改订单'; +$L['trade_detail_title'] = '订单详情'; +$L['trade_exprss_title'] = '物流追踪'; +$L['trade_confirm_success'] = '订单已确认,请等待买家付款'; +$L['trade_pay_order_success'] = '订单支付成功,请等待卖家发货'; +$L['trade_pay_order_title'] = '订单支付'; +$L['trade_refund_reason'] = '请填写退款原因'; +$L['trade_refund_success'] = '您的退款申请已经提交,请等待网站处理'; +$L['trade_refund_title'] = '申请退款'; +$L['trade_send_success'] = '已经确认发货,请等待买家确认收货'; +$L['trade_send_title'] = '确认发货'; +$L['trade_receive_title'] = '确认到货'; +$L['trade_addtime_null'] = '请填写延长的时间'; +$L['trade_addtime_success'] = '买家确认时间延长成功'; +$L['trade_addtime_title'] = '延长买家确认时间'; +$L['trade_success'] = '恭喜!此订单交易成功'; +$L['trade_close_success'] = '交易已关闭'; +$L['trade_delete_success'] = '订单删除成功'; +$L['trade_pay_seller'] = '请填写收款会员名'; +$L['trade_pay_self'] = '收款人不能是自己'; +$L['trade_pay_seller_bad'] = '收款会员名不存在,请确认'; +$L['trade_pay_amount'] = '请填写付款金额'; +$L['trade_pay_note'] = '请填写付款说明'; +$L['trade_pay_goods'] = '请填写商品或服务名称'; +$L['trade_pay_title'] = '我要付款'; +$L['trade_pay1_success'] = '直接付款成功,会员[{V0}]将直接收到您的付款'; +$L['trade_pay0_success'] = '订单已经发出,请等待卖家确认'; +$L['trade_order_sfields'] = array('按条件', '商品', '金额', '附加金额', '附加名称', '卖家', '发货方式', '物流号码', '备注'); +$L['trade_order_title'] = '我的订单'; +$L['trade_sfields'] = array('按条件', '商品', '金额', '附加金额', '附加名称', '买家', '买家姓名', '买家地址', '买家邮编', '买家手机', '买家电话', '发货方式', '物流号码', '买家备注', '商家备注'); +$L['trade_title'] = '订单管理'; +$L['trade_record_pay'] = '交易成功'; +$L['trade_record_payfor'] = '站内付款'; +$L['trade_record_receive'] = '站内收款'; +$L['trade_record_new'] = '通知卖家确认订单'; +$L['trade_refund'] = '订单退款'; +$L['trade_refund_reason'] = '请填写退款原因'; +$L['trade_refund_success'] = '您的退款申请已经提交,请等待网站处理'; +$L['trade_refund_title'] = '申请退款'; +$L['trade_refund_agree_title'] = '同意退款'; +$L['trade_refund_agree_success'] = '订单退款成功'; +$L['trade_refund_by_seller'] = '[卖家]'; +$L['trade_order_id'] = '订单号:'; +$L['trade_fee'] = '网站服务费'; +$L['trade_buyer_timeout'] = '单号:{V0}[买家超时]'; +$L['trade_sms_confirm'] = '通知买家付款'; +$L['trade_sms_pay'] = '通知卖家发货'; +$L['trade_sms_send'] = '通知买家已发货'; +$L['trade_sms_income'] = '站内付款通知'; +$L['trade_sms_receive'] = '通知卖家已收货'; +$L['trade_message_t1'] = '站内交易提醒,您有一笔交易需要付款(T{V0})'; +$L['trade_message_c1'] = '卖家 {V1}{V2} 更新了您的订单
    » 请点这里立即处理或查看详情'; +$L['trade_message_t2'] = '站内交易提醒,您有一笔交易需要发货(T{V0})'; +$L['trade_message_c2'] = '买家 {V1}{V2} 支付了您的订单
    » 请点这里立即处理或查看详情'; +$L['trade_message_t3'] = '站内交易提醒,您有一笔交易需要收货(T{V0})'; +$L['trade_message_c3'] = '卖家 {V1}{V2} 已经发货
    » 请点这里立即处理或查看详情'; +$L['trade_message_t4'] = '站内交易提醒,您有一笔交易已经成功(T{V0})'; +$L['trade_message_c4'] = '买家 {V1}{V2} 确认收货,交易完成
    » 请点这里立即处理或查看详情'; +$L['trade_message_t5'] = '站内收入提醒,您收到一笔付款'; +$L['trade_message_c5'] = '{V1}{V2} 向您支付了 {V3}'.$DT['money_unit'].' 的站内付款
    备注:{V4}'; +$L['trade_message_t6'] = '站内交易提醒,您有一笔交易需要确认(T{V0})'; +$L['trade_message_c6'] = '{V1}{V2} 向您订购了:
    {V3}
    订单编号:T{V4}  订单金额为:{V5}'.$DT['money_unit'].'
    » 请点这里立即处理或查看详情'; + +$L['purchase_title'] = '确认订单'; +$L['purchase_msg_address'] = '请先创建收货地址'; +$L['purchase_msg_goods'] = '商品不存在'; +$L['purchase_msg_self'] = '不能购买自己的商品'; +$L['purchase_msg_group_finish'] = '团购已结束'; +$L['purchase_msg_online_buy'] = '此商品不支持在线购买'; +$L['post_free'] = '包邮'; +$L['msg_express_no'] = '请填写快递单号'; +$L['msg_express_type'] = '请填写快递类型'; +$L['msg_express_no_error'] = '快递单号格式错误'; +$L['msg_express_date_error'] = '发货时间格式错误'; + +$L['express_sfields'] = array('按条件', '商品名称', '快递公司', '快递单号'); +$L['express_title'] = '我的快递'; + +$L['log_buy'] = '买家下单'; +$L['log_pay'] = '买家付款'; +$L['log_get'] = '买家收货'; +$L['log_use'] = '买家消费'; +$L['log_success'] = '交易成功'; +$L['log_refund'] = '申请退款'; +$L['log_remind'] = '提醒发货'; +$L['log_addtime'] = '延长收货'; +$L['log_buyer_coment'] = '买家评价'; +$L['log_buyer_close'] = '买家关闭'; +$L['log_seller_coment'] = '卖家评价'; +$L['log_seller_close'] = '卖家关闭'; +$L['log_send'] = '卖家发货'; +$L['log_getpay'] = '卖家收款'; +$L['log_agree'] = '卖家退款'; +$L['log_edit'] = '修改订单'; + +$L['stock_pay'] = '订单支付'; +$L['stock_refund'] = '订单退款'; +$L['stock_no'] = '单号:'; +$L['stock_less'] = '库存不足'; + +?> \ No newline at end of file diff --git a/lang/zh-cn/photo.inc.php b/lang/zh-cn/photo.inc.php new file mode 100644 index 0000000..b505f0e --- /dev/null +++ b/lang/zh-cn/photo.inc.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/lang/zh-cn/quote.inc.php b/lang/zh-cn/quote.inc.php new file mode 100644 index 0000000..e764eed --- /dev/null +++ b/lang/zh-cn/quote.inc.php @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/lang/zh-cn/search.inc.php b/lang/zh-cn/search.inc.php new file mode 100644 index 0000000..b8ca068 --- /dev/null +++ b/lang/zh-cn/search.inc.php @@ -0,0 +1,48 @@ + \ No newline at end of file diff --git a/lang/zh-cn/sell.inc.php b/lang/zh-cn/sell.inc.php new file mode 100644 index 0000000..a0e6681 --- /dev/null +++ b/lang/zh-cn/sell.inc.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/lang/zh-cn/sms.inc.php b/lang/zh-cn/sms.inc.php new file mode 100644 index 0000000..ebf9dc7 --- /dev/null +++ b/lang/zh-cn/sms.inc.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/lang/zh-cn/special.inc.php b/lang/zh-cn/special.inc.php new file mode 100644 index 0000000..55b71cb --- /dev/null +++ b/lang/zh-cn/special.inc.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/lang/zh-cn/video.inc.php b/lang/zh-cn/video.inc.php new file mode 100644 index 0000000..55b71cb --- /dev/null +++ b/lang/zh-cn/video.inc.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..c5dfb7e --- /dev/null +++ b/license.txt @@ -0,0 +1,36 @@ +版权所有(c)2008-2099,西安嘉客信息科技有限责任公司保留所有权利。 + +感谢您选择 DESTOON网站管理系统(以下简称DESTOON)。 + +希望我们的产品能为您提供一个高效、稳定和强大的开源建站系统解决方案。 + +西安嘉客信息科技有限责任公司为DESTOON产品的开发商,依法独立拥有DESTOON产品著作权(中国国家版权局计算机软件著作权登记号:2009SR037570)。西安嘉客信息科技有限责任公司网址为:https://www.destoon.com。 + +DESTOON著作权已在中华人民共和国国家版权局注册,著作权受到法律和国际公约保护。使用者:无论个人或组织、盈利与否、用途如何(包括以学习和研究为目的),均需仔细阅读本协议,在理解、同意、并遵守本协议的全部条款后,方可开始使用DESTOON软件。 + +I 协议许可的权利 + + 1. 企业用户(泛指非自然人的团体,如企业、协会等组织机构)必须购买软件授权后方可正式建站使用,个人用户、教育行业(限edu.cn域名)、政务部门(限gov.cn域名)可根据自己的实际情况选择是否购买授权及必要的技术支持。 + 2. 您可以在协议规定的约束和限制范围内修改DESTOON源代码或界面风格以适应您的网站要求。 + 3. 您拥有使用本软件构建的网站中全部会员资料及相关信息的所有权,并独立承担其内容的相关法律义务。 + 4. 获得商业授权之后,您可以依据所购买的授权类型中确定的技术支持期限、技术支持方式和技术支持内容,自购买时刻起,在技术支持期限内拥有通过指定的方式获得指定范围内的技术支持服务。 + +II 协议规定的约束和限制 + + 1. 未获商业授权之前,企业用户不得将本软件用于正式建站。购买商业授权请登录 https://www.destoon.com/buy/ 参考相关说明。 + 2. 不得对本软件或与之关联的商业授权进行出租、出售、抵押或发放子许可证。 + 3. 无论如何,即无论用途如何、是否经过修改或美化、修改程度如何,只要使用DESTOON的整体或任何部分,未经书面许可,网站页面页脚处的DESTOON名称和 https://www.destoon.com 的链接都必须保留,而不能清除或修改,除非您获得西安嘉客信息科技有限责任公司授权许可。 + 4. 禁止在DESTOON的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。 + 5. 如果您未能遵守本协议的条款,您的授权将被终止,所被许可的权利将被收回,并承担相应法律责任。 + +III 有限担保和免责声明 + + 1. 本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。 + 2. 用户出于自愿而使用本软件,您必须了解使用本软件的风险,在尚未购买产品授权和技术服务之前,我们不承诺提供任何形式的技术支持、使用担保,也不承担任何因使用本软件而产生问题的相关责任。 + 3. 西安嘉客信息科技有限责任公司不对使用本软件构建的网站中的信息承担责任。 + +有关DESTOON最终用户授权协议、商业授权与技术服务的详细内容,均由DESTOON官方网站独家提供。西安嘉客信息科技有限责任公司拥有在不事先通知的情况下,修改授权协议和服务价目表的权力,修改后的协议或价目表对自改变之日起的新授权用户生效。 + +电子文本形式的授权协议如同双方书面签署的协议一样,具有完全的和等同的法律效力。您一旦开始安装DESTOON,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的权力的同时,受到相关的约束和限制。协议许可范围以外的行为,将直接违反本授权协议并构成侵权,我们有权随时终止授权,责令停止损害,并保留追究相关责任的权力。 + +西安嘉客信息科技有限责任公司拥有对本授权协议的最终解释权。 \ No newline at end of file diff --git a/link/ajax.php b/link/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/link/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/link/index.php b/link/index.php new file mode 100644 index 0000000..f59c9af --- /dev/null +++ b/link/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/link/list.php b/link/list.php new file mode 100644 index 0000000..f59c9af --- /dev/null +++ b/link/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/mall/ajax.php b/mall/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/mall/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mall/compare.php b/mall/compare.php new file mode 100644 index 0000000..7613a63 --- /dev/null +++ b/mall/compare.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/mall/config.inc.php b/mall/config.inc.php new file mode 100644 index 0000000..6dcc05e --- /dev/null +++ b/mall/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mall/index.php b/mall/index.php new file mode 100644 index 0000000..fabb0a8 --- /dev/null +++ b/mall/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/mall/list.php b/mall/list.php new file mode 100644 index 0000000..380d60a --- /dev/null +++ b/mall/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/mall/search.php b/mall/search.php new file mode 100644 index 0000000..7d7928e --- /dev/null +++ b/mall/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/mall/show.php b/mall/show.php new file mode 100644 index 0000000..ff7a46a --- /dev/null +++ b/mall/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/mall/view.php b/mall/view.php new file mode 100644 index 0000000..859f72f --- /dev/null +++ b/mall/view.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/nginx.htaccess b/nginx.htaccess new file mode 100644 index 0000000..ef20bda --- /dev/null +++ b/nginx.htaccess @@ -0,0 +1,11 @@ +location / { + rewrite ^(.*)-htm-(.*)$ $1.php?$2 last; + rewrite ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2&page=$4 last; + rewrite ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ $1/list.php?catid=$2&page=$4 last; + rewrite ^(.*)/([A-Za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$ $1/list.php?catid=$3&catdir=$2&page=$4 last; + rewrite ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ $1/show.php?itemid=$2&page=$3 last; + rewrite ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ $1/list.php?catid=$2&page=$3 last; + rewrite ^(com)/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ index.php?homepage=$2&file=$3&rewrite=$4 last; + rewrite ^(com)/([a-z0-9_\-]+)/([a-z]+)([/])?$ index.php?homepage=$2&file=$3 last; + rewrite ^(com)/([a-z0-9_\-]+)([/])?$ index.php?homepage=$2 last; +} \ No newline at end of file diff --git a/photo/ajax.php b/photo/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/photo/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/photo/config.inc.php b/photo/config.inc.php new file mode 100644 index 0000000..401442e --- /dev/null +++ b/photo/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/photo/index.php b/photo/index.php new file mode 100644 index 0000000..0d19da6 --- /dev/null +++ b/photo/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/photo/list.php b/photo/list.php new file mode 100644 index 0000000..e2622cf --- /dev/null +++ b/photo/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/photo/private.php b/photo/private.php new file mode 100644 index 0000000..b31d17b --- /dev/null +++ b/photo/private.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/photo/search.php b/photo/search.php new file mode 100644 index 0000000..8d3964c --- /dev/null +++ b/photo/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/photo/show.php b/photo/show.php new file mode 100644 index 0000000..96bda1c --- /dev/null +++ b/photo/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/photo/view.php b/photo/view.php new file mode 100644 index 0000000..59faf4a --- /dev/null +++ b/photo/view.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/poll/ajax.php b/poll/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/poll/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/poll/index.php b/poll/index.php new file mode 100644 index 0000000..784f56e --- /dev/null +++ b/poll/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/poll/list.php b/poll/list.php new file mode 100644 index 0000000..784f56e --- /dev/null +++ b/poll/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/poll/show.php b/poll/show.php new file mode 100644 index 0000000..784f56e --- /dev/null +++ b/poll/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/quote/ajax.php b/quote/ajax.php new file mode 100644 index 0000000..2f5f7a1 --- /dev/null +++ b/quote/ajax.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/quote/config.inc.php b/quote/config.inc.php new file mode 100644 index 0000000..dae924d --- /dev/null +++ b/quote/config.inc.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/quote/index.php b/quote/index.php new file mode 100644 index 0000000..c61aba7 --- /dev/null +++ b/quote/index.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/quote/list.php b/quote/list.php new file mode 100644 index 0000000..a3c1880 --- /dev/null +++ b/quote/list.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/quote/price.php b/quote/price.php new file mode 100644 index 0000000..1056d3a --- /dev/null +++ b/quote/price.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/quote/product.php b/quote/product.php new file mode 100644 index 0000000..429c735 --- /dev/null +++ b/quote/product.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/quote/search.php b/quote/search.php new file mode 100644 index 0000000..c4373f3 --- /dev/null +++ b/quote/search.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/quote/show.php b/quote/show.php new file mode 100644 index 0000000..90016e3 --- /dev/null +++ b/quote/show.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..ac73dbe --- /dev/null +++ b/robots.txt @@ -0,0 +1,11 @@ +# Robots For DESTOON B2B +User-agent: * +Disallow: /api/ +Disallow: /install/ +Disallow: /member/ +Disallow: /skin/ +Disallow: /template/ +Disallow: /upgrade/ + +User-agent: GPTBot +Disallow: / \ No newline at end of file diff --git a/sitemaps.xml b/sitemaps.xml new file mode 100644 index 0000000..37ba0f5 --- /dev/null +++ b/sitemaps.xml @@ -0,0 +1,9693 @@ + + + +http://www.zhaobiaopai.com/ +2026-01-28 +always +1.0 + + +http://www.zhaobiaopai.com/sell/ +2026-01-28 +hourly +0.9 + + +http://www.zhaobiaopai.com/exhibit/ +2026-01-28 +hourly +0.9 + + +http://www.zhaobiaopai.com/news/ +2026-01-28 +hourly +0.9 + + +http://www.zhaobiaopai.com/jishu/ +2026-01-28 +hourly +0.9 + + +http://www.zhaobiaopai.com/sell/s375.html +2026-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s371.html +2025-12-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s369.html +2025-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s368.html +2025-12-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s361.html +2025-12-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s351.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s346.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s343.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s342.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s341.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s340.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s339.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s338.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s331.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s330.html +2025-10-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s329.html +2025-09-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s324.html +2025-09-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s321.html +2025-08-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s314.html +2025-08-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s291.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s273.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s272.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s271.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s252.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s251.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s249.html +2025-04-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s248.html +2025-04-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s247.html +2025-07-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s246.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s245.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s244.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s242.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s241.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s223.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s222.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s221.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s220.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s218.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s202.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s201.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s180.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s179.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s178.html +2025-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s177.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s176.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s175.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s173.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s172.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s171.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s170.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s169.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s167.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s166.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s164.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s163.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s162.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s161.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s160.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s159.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s158.html +2025-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s155.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s154.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s153.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s151.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s150.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s149.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s148.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s145.html +2023-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s144.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s143.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s142.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s141.html +2025-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s131.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s130.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s129.html +2024-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s128.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s127.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s126.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s125.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s124.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s123.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s122.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s121.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s120.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s119.html +2024-03-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s117.html +2022-06-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s116.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s115.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s114.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s113.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s112.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s111.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s110.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s109.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s108.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s107.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s106.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s105.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s104.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s103.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s102.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s101.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s100.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s99.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s98.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s97.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s96.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s95.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s94.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s93.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s92.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s91.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s90.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s89.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s88.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s87.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s86.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s85.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s84.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s83.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s82.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s81.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s80.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s79.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s78.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s77.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s76.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s75.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s74.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s73.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s72.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s71.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s70.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s69.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s68.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s67.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s66.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s65.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s64.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s63.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s62.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s61.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s60.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s59.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s58.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s57.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s56.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s55.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s54.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s53.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s52.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s51.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s50.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s49.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s48.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s47.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s46.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s45.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s44.html +2022-05-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s43.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s42.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s41.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s40.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s39.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s38.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s37.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s36.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s35.html +2022-05-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s34.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s33.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s32.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s31.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s30.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s29.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s28.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s27.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s26.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s25.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s24.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s23.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s22.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s21.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s20.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s19.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s18.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s17.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s16.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s15.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s14.html +2022-04-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s13.html +2022-04-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s12.html +2022-04-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s11.html +2022-04-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s10.html +2022-04-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s9.html +2022-04-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s8.html +2022-04-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s7.html +2022-04-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s6.html +2022-04-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s5.html +2022-04-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s4.html +2022-04-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s3.html +2022-04-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s2.html +2022-04-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/sell/s1.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s43.html +2026-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s42.html +2025-12-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s40.html +2025-07-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s39.html +2025-07-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s38.html +2025-07-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s15.html +2023-08-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s14.html +2023-07-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s10.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s9.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s8.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s7.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s6.html +2022-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s5.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s4.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s3.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/exhibit/s2.html +2022-04-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/321.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/320.html +2024-02-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/319.html +2024-02-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/318.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/317.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/316.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/315.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/314.html +2024-01-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/313.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/312.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/311.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/310.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/309.html +2024-01-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/308.html +2024-01-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/307.html +2023-12-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/306.html +2023-12-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/305.html +2023-12-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/304.html +2023-12-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/303.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/302.html +2023-12-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/301.html +2023-12-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/300.html +2023-12-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/299.html +2023-12-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/298.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/297.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/296.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/295.html +2023-12-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/294.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/293.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/292.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/291.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/290.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/289.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/288.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/287.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/286.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/285.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/284.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/283.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/282.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/281.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/280.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/279.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/278.html +2023-12-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/277.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/276.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/275.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/274.html +2023-10-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/273.html +2023-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/272.html +2023-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/271.html +2023-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/270.html +2023-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/269.html +2023-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/268.html +2023-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/267.html +2023-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/266.html +2023-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/265.html +2023-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/264.html +2023-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/263.html +2023-04-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/262.html +2023-04-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/261.html +2023-04-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/260.html +2023-04-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/259.html +2023-04-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/258.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/257.html +2023-04-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/256.html +2023-04-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/255.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/254.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/253.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/252.html +2023-04-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/251.html +2023-04-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/250.html +2023-04-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/249.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/248.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/247.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/246.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/245.html +2023-03-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/244.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/243.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/242.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/241.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/240.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/239.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/238.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/237.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/236.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/235.html +2023-03-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/234.html +2023-03-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/233.html +2023-03-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/232.html +2023-03-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/231.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/230.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/229.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/228.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/227.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/226.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/225.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/224.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/223.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/222.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/221.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/220.html +2023-03-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/219.html +2023-03-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/218.html +2023-03-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/217.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/216.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/215.html +2023-02-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/214.html +2023-02-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/213.html +2023-02-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/212.html +2023-02-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/211.html +2023-02-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/210.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/209.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/208.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/207.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/206.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/205.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/204.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/203.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/202.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/201.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/200.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/199.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/198.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/197.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/196.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/195.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/194.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/193.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/192.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/191.html +2023-02-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/190.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/189.html +2023-02-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/188.html +2023-02-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/187.html +2023-02-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/186.html +2023-02-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/185.html +2023-02-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/184.html +2023-02-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/183.html +2023-02-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/182.html +2023-02-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/181.html +2023-02-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/180.html +2023-02-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/179.html +2023-02-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/178.html +2023-02-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/177.html +2023-02-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/176.html +2023-02-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/175.html +2023-02-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/174.html +2023-02-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/173.html +2023-02-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/172.html +2023-02-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/171.html +2023-02-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/170.html +2023-02-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/169.html +2023-02-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/168.html +2023-02-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/167.html +2023-02-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/166.html +2023-02-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/165.html +2023-02-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/164.html +2023-02-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/163.html +2023-02-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/162.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/161.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/160.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/159.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/158.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/157.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/156.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/155.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/154.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/153.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/152.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/151.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/150.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/149.html +2023-01-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/148.html +2023-01-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/147.html +2023-01-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/146.html +2023-01-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/145.html +2023-01-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/144.html +2023-01-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/143.html +2023-01-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/142.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/141.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/140.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/139.html +2022-12-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/138.html +2022-12-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/137.html +2022-11-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/136.html +2022-11-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/135.html +2022-11-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/134.html +2022-11-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/133.html +2022-11-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/132.html +2022-11-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/131.html +2022-11-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/130.html +2022-11-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/129.html +2022-11-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/128.html +2022-11-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/127.html +2022-11-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/126.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/125.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/124.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/123.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/122.html +2022-11-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/121.html +2022-11-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/120.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/119.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/118.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/117.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/116.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/115.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/114.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/113.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/112.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/111.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/110.html +2022-10-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/109.html +2022-10-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/108.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/107.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/106.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/105.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/104.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/103.html +2022-09-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/102.html +2022-09-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/101.html +2022-09-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/100.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/99.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/98.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/97.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/96.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/95.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/94.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/93.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/92.html +2022-08-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/91.html +2022-08-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/90.html +2022-08-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/89.html +2022-08-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/88.html +2022-07-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/87.html +2022-07-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/86.html +2022-07-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/85.html +2022-07-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/84.html +2022-07-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/83.html +2022-07-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/82.html +2022-07-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/81.html +2022-07-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/80.html +2022-07-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/79.html +2022-07-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/78.html +2022-06-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/77.html +2022-06-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/76.html +2022-06-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/75.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/74.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/73.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/72.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/71.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/70.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/69.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/68.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/67.html +2022-06-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/66.html +2022-06-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/65.html +2022-06-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/64.html +2022-06-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/63.html +2022-06-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/62.html +2022-06-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/61.html +2022-06-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/60.html +2022-06-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/59.html +2022-06-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/58.html +2022-05-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/57.html +2022-05-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/56.html +2022-05-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/55.html +2022-05-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/54.html +2022-05-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/53.html +2022-05-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/52.html +2022-05-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/51.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/50.html +2022-05-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/49.html +2022-05-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/48.html +2022-05-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/47.html +2022-05-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/46.html +2022-05-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/45.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/44.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/43.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/42.html +2022-05-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/41.html +2022-05-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/40.html +2022-05-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/39.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/38.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/37.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/36.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/35.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/34.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/33.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/32.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/31.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/30.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/29.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/28.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/27.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/26.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/25.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/24.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/23.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/22.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/21.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/20.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/19.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/18.html +2022-05-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/17.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/16.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/15.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/14.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/13.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/12.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/11.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/10.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/9.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/8.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/7.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/6.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/5.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/4.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/3.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/2.html +2022-04-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/news/1.html +2022-04-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4283.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4282.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4281.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4280.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4279.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4278.html +2024-01-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4277.html +2023-12-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4276.html +2023-06-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4275.html +2023-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4274.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4273.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4272.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4271.html +2023-02-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4270.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4269.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4268.html +2023-02-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4267.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4266.html +2022-11-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4265.html +2022-11-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4264.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4263.html +2022-10-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4262.html +2022-10-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4261.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4260.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4259.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4258.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4231.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4230.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4228.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4218.html +2023-02-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4177.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4174.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4175.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4171.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4193.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4161.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4169.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4180.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4179.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4178.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4182.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4107.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4136.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4103.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4122.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4121.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4101.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4120.html +2023-02-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4109.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4081.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4093.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4089.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4017.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4007.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4037.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4031.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/4038.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3951.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3906.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3904.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3915.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3925.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3934.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3914.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3910.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3909.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3912.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3919.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3900.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3938.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3931.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3884.html +2023-02-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3881.html +2023-02-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3889.html +2023-02-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3869.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3892.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3868.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3891.html +2023-02-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3890.html +2023-02-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3817.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3816.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3807.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3815.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3812.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3814.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3804.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3806.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3805.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3811.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3803.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3802.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3808.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3810.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3798.html +2024-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3800.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3809.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3822.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3799.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3818.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3785.html +2024-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3753.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3793.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3751.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3769.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3760.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3788.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3770.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3746.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3707.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3706.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3717.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3743.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3722.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3721.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3733.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3713.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3735.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3712.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3725.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3703.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3724.html +2024-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3740.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3699.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3700.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3731.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3741.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3701.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3711.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3720.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3728.html +2024-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3709.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3719.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3698.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3677.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3695.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3657.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3676.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3656.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3686.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3652.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3666.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3684.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3655.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3665.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3672.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3671.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3683.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3694.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3663.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3653.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3692.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3650.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3680.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3668.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3681.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3691.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3659.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3670.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3669.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3688.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3649.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3690.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3661.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3678.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3648.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3651.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3658.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3660.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3647.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3617.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3637.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3627.html +2023-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3616.html +2023-03-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3626.html +2023-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3625.html +2023-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3636.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3646.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3604.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3615.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3635.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3607.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3643.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3614.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3642.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3613.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3623.html +2023-03-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3641.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3633.html +2023-03-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3606.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3632.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3644.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3603.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3624.html +2023-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3602.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3605.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3620.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3631.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3599.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3611.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3628.html +2023-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3601.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3629.html +2023-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3608.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3610.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3619.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3622.html +2023-06-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3618.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3640.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3639.html +2023-07-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3638.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3597.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3557.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3555.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3554.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3594.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3577.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3565.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3593.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3553.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3550.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3592.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3549.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3552.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3586.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3591.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3563.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3585.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3575.html +2023-03-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3566.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3574.html +2023-03-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3571.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3582.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3570.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3573.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3548.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3562.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3569.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3561.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3568.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3560.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3590.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3558.html +2023-03-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3559.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3580.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3581.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3578.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3589.html +2023-03-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3547.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3507.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3527.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3546.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3537.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3506.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3505.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3517.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3535.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3536.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3526.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3543.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3525.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3534.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3504.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3533.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3524.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3541.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3502.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3515.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3532.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3545.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3513.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3514.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3503.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3523.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3522.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3544.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3500.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3499.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3501.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3498.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3512.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3531.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3510.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3538.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3509.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3540.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3519.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3530.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3518.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3529.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3508.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3520.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3528.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3539.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3497.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3487.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3489.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3490.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3488.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/3494.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2957.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2967.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2937.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2956.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2966.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2955.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2936.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2965.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2934.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2953.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2973.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2961.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2964.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2932.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2975.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2935.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2945.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2944.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2963.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2962.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2972.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2931.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2943.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2946.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2974.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2939.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2942.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2960.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2952.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2969.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2959.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2971.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2930.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2929.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2941.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2948.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2940.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2958.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2970.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2938.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2951.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2927.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2887.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2895.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2926.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2886.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2917.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2907.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2906.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2884.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2905.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2924.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2902.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2915.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2894.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2912.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2893.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2904.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2914.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2923.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2922.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2901.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2903.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2913.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2883.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2911.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2921.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2879.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2882.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2881.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2899.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2880.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2889.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2892.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2888.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2910.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2918.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2920.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2900.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2878.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2909.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2891.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2898.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2877.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2857.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2876.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2837.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2864.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2846.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2835.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2834.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2852.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2872.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2832.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2854.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2830.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2859.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2860.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2869.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2838.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2850.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2829.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2827.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2796.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2826.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2795.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2816.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2794.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2814.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2785.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2786.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2803.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2783.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2806.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2784.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2821.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2820.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2782.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2805.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2781.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2822.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2823.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2790.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2812.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2778.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2811.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2780.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2809.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2792.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2798.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2819.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2800.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2808.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2789.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2791.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2779.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2788.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2777.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2767.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2766.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2765.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2775.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2762.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2772.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2770.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2769.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/2768.html +2023-02-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1777.html +2022-04-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1121.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1111.html +2023-12-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1131.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1120.html +2024-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1110.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1119.html +2024-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1117.html +2024-01-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1127.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1135.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1136.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1126.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1130.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1116.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1108.html +2023-12-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1129.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1134.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1107.html +2023-12-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1128.html +2024-03-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1109.html +2023-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1123.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1104.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1124.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1105.html +2023-12-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1132.html +2024-04-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1103.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1115.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1114.html +2024-01-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1122.html +2024-01-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1113.html +2023-12-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1075.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1074.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1095.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1085.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1094.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1084.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1061.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1060.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1080.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1099.html +2023-12-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1090.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1059.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1098.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1058.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1079.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1057.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1078.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1088.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1069.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1068.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1056.html +2023-09-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1097.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1096.html +2023-12-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1077.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1055.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1066.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1087.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1092.html +2023-12-15 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1054.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1072.html +2023-11-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1083.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1064.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1082.html +2023-11-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1063.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1062.html +2023-11-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1052.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1053.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1051.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1031.html +2023-05-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1041.html +2023-06-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1021.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1050.html +2023-07-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1049.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1011.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1030.html +2023-05-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1040.html +2023-06-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1020.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1046.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1037.html +2023-05-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1048.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1045.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1009.html +2023-04-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1010.html +2023-04-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1028.html +2023-05-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1018.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1047.html +2023-07-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1008.html +2023-04-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1039.html +2023-05-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1027.html +2023-05-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1044.html +2023-06-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1017.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1026.html +2023-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1019.html +2023-04-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1036.html +2023-05-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1025.html +2023-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1038.html +2023-05-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1024.html +2023-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1007.html +2023-04-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1014.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1006.html +2023-04-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1016.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1042.html +2023-06-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1004.html +2023-03-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1003.html +2023-03-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1043.html +2023-06-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1034.html +2023-05-25 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1005.html +2023-03-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1032.html +2023-05-19 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1012.html +2023-04-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1022.html +2023-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/997.html +2023-03-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1001.html +2023-03-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1000.html +2023-03-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/971.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/991.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/980.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/961.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/960.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/970.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/990.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/979.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/976.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/978.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/975.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/999.html +2023-03-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/959.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/988.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/989.html +2023-03-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/958.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/996.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/998.html +2023-03-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/957.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/968.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/974.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/977.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/955.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/984.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/995.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/963.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/987.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/973.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/986.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/983.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/994.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/985.html +2023-03-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/993.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/966.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/992.html +2023-03-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/954.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/982.html +2023-03-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/962.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/965.html +2023-03-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/964.html +2023-03-05 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/972.html +2023-03-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/940.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/949.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/921.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/952.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/932.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/951.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/950.html +2023-03-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/912.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/931.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/930.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/942.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/941.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/906.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/905.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/915.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/929.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/939.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/928.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/910.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/948.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/938.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/919.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/947.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/918.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/927.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/909.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/908.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/946.html +2023-03-02 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/937.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/945.html +2023-03-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/907.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/936.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/944.html +2023-03-01 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/917.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/926.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/904.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/925.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/935.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/914.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/924.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/903.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/916.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/933.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/913.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/943.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/902.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/882.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/862.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/892.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/901.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/881.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/860.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/900.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/899.html +2023-02-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/872.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/890.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/857.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/869.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/878.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/856.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/880.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/877.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/891.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/879.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/897.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/871.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/889.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/898.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/854.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/888.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/866.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/868.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/885.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/887.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/865.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/876.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/894.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/864.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/853.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/873.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/893.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/896.html +2023-02-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/867.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/884.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/883.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/863.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/895.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/852.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/813.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/823.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/833.html +2022-08-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/821.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/830.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/819.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/818.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/810.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/842.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/829.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/841.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/816.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/826.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/836.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/805.html +2022-05-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/824.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/827.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/837.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/815.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/759.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/797.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/774.html +2022-04-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/793.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/780.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/769.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/800.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/789.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/798.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/767.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/795.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/775.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/723.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/711.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/753.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/744.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/743.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/727.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/737.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/747.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/736.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/705.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/675.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/674.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/702.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/685.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/666.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/672.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/692.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/664.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/681.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/661.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/677.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/687.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/699.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/660.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/698.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/656.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/655.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/654.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/645.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/636.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/644.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/615.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/614.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/613.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/642.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/624.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/653.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/641.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/652.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/610.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/626.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/625.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/611.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/621.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/620.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/634.html +2022-05-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/619.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/647.html +2022-05-06 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/638.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/618.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/630.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/617.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/606.html +2022-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/601.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/600.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/591.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/570.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/599.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/590.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/586.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/605.html +2022-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/604.html +2023-02-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/566.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/584.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/577.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/583.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/563.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/593.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/565.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/576.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/575.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/602.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/520.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/521.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/531.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/551.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/541.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/519.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/518.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/556.html +2022-08-03 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/517.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/540.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/515.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/530.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/537.html +2023-02-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/527.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/528.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/526.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/536.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/545.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/552.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/553.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/525.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/532.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/548.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/535.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/513.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/546.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/524.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/522.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/533.html +2023-02-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/542.html +2023-02-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/471.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/501.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/510.html +2023-02-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/490.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/509.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/479.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/499.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/498.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/508.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/489.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/497.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/469.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/506.html +2022-09-22 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/487.html +2022-08-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/468.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/477.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/505.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/476.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/484.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/502.html +2023-01-31 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/464.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/483.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/463.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/493.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/472.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/485.html +2023-01-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/461.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/451.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/450.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/441.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/421.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/430.html +2022-11-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/440.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/439.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/420.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/427.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/459.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/419.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/460.html +2022-12-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/429.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/444.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/448.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/443.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/447.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/426.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/428.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/417.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/437.html +2022-11-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/425.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/442.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/416.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/455.html +2022-12-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/415.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/435.html +2022-11-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/433.html +2022-11-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/423.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/432.html +2022-11-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/453.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/413.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/414.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/452.html +2022-11-16 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/412.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/456.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/401.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/411.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/410.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/381.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/409.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/369.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/408.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/407.html +2022-10-28 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/397.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/399.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/380.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/394.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/393.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/389.html +2022-10-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/378.html +2022-08-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/388.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/373.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/365.html +2022-08-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/377.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/384.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/385.html +2022-10-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/376.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/404.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/403.html +2022-10-21 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/406.html +2022-11-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/374.html +2022-10-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/375.html +2022-10-27 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/405.html +2022-11-11 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/382.html +2022-08-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/361.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/341.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/321.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/340.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/351.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/339.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/350.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/338.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/346.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/319.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/327.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/335.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/317.html +2022-05-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/316.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/326.html +2022-05-24 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/353.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/334.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/325.html +2022-05-23 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/324.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/343.html +2022-05-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/345.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/310.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/271.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/289.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/280.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/285.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/267.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/278.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/269.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/308.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/268.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/297.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/306.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/296.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/274.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/294.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/302.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/293.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/292.html +2022-05-20 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/263.html +2022-05-18 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/238.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/237.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/244.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/257.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/227.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/234.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/216.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/226.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/222.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/232.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/213.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/223.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/243.html +2022-05-17 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/252.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/212.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/211.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/191.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/171.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/190.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/168.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/200.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/189.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/166.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/180.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/188.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/205.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/208.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/178.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/165.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/163.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/177.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/182.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/202.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/172.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/203.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/131.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/121.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/120.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/119.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/159.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/147.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/127.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/149.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/158.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/115.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/148.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/126.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/146.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/113.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/123.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/124.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/142.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/154.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/134.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/133.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/136.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/114.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/112.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/144.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/153.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/155.html +2022-05-14 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/111.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/70.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/81.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/69.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/68.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/88.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/91.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/107.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/65.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/66.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/89.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/108.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/100.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/97.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/96.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/105.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/62.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/95.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/73.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/83.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/104.html +2022-05-13 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/72.html +2022-05-10 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/75.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/82.html +2022-05-12 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/31.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/60.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/50.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/59.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/48.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/41.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/30.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/21.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/20.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/28.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/29.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/47.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/58.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/27.html +2022-05-04 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/40.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/36.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/18.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/39.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/46.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/56.html +2022-05-09 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/24.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/15.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/44.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/25.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/33.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/12.html +2022-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/14.html +2022-04-30 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/43.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/22.html +2022-04-29 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/53.html +2022-05-08 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/13.html +2022-04-26 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/32.html +2022-05-07 +monthly +0.8 + + +http://www.zhaobiaopai.com/jishu/1.html +2022-04-26 +monthly +0.8 + + \ No newline at end of file diff --git a/upload.php b/upload.php new file mode 100644 index 0000000..38d6c6f --- /dev/null +++ b/upload.php @@ -0,0 +1,238 @@ + $errmsg)); + if(isset($_GET['callback'])) { + if(preg_match("/^[\w_]+$/", $_GET['callback'])) { + exit(htmlspecialchars($_GET['callback']).'('.$result.')'); + } else { + exit(json_encode(array('state'=> 'Error callback'))); + } + } + exit($result); + } + if($errjs) dalert($errmsg, '', $errjs); + dalert($errmsg); +} +$upload_table = $DT_PRE.'upload_'.($_userid%10); +if(!in_array($from, array('thumb', 'album', 'photo', 'editor', 'attach', 'file'))) uperr('Error(1)'.'Access Denied'); +if(!$MG['upload']) uperr('Error(2)'.lang('message->upload_refuse')); +if($MG['uploadcredit'] > 0 && $_credit < $MG['uploadcredit']) uperr('Error(3)'.lang('message->upload_credit', array($MG['uploadcredit'], $_credit))); +$remote = isset($remote) ? trim($remote) : ''; +if(!$_FILES && !$remote) uperr('Error(4)'.lang('message->upload_fail')); +if($DT['uploadlog'] && $MG['uploadday']) { + $condition = 'addtime>'.($DT_TIME - 86400); + $condition .= $_username ? " AND username='$_username'" : " AND ip='$DT_IP'"; + $r = $db->get_one("SELECT COUNT(*) AS num FROM {$upload_table} WHERE $condition"); + if($r['num'] >= $MG['uploadday']) uperr('Error(5)'.lang('message->upload_limit_day', array($MG['uploadday'], $r['num']))); +} +require DT_ROOT.'/include/post.func.php'; +$uploaddir = 'file/upload/'.timetodate($DT_TIME, $DT['uploaddir']).'/'; +is_dir(DT_ROOT.'/'.$uploaddir) or dir_create(DT_ROOT.'/'.$uploaddir); +if($MG['uploadtype']) $DT['uploadtype'] = $MG['uploadtype']; +if($MG['uploadsize']) $DT['uploadsize'] = $MG['uploadsize']; +if($remote && strlen($remote) > 17 && strpos($remote, '://') !== false) { + require DT_ROOT.'/include/remote.class.php'; + $do = new remote($remote, $uploaddir); +} else { + require DT_ROOT.'/include/upload.class.php'; + $do = new upload($_FILES, $uploaddir); +} +$js = $errjs = ''; +if($from == 'thumb' || $from == 'album' || $from == 'photo' || $from == 'file') { + $errjs .= 'window.parent.cDialog();'; +} else if($from == 'editor' || $from == 'attach') { + if(DT_EDITOR == 'fckditor') $errjs .= 'window.parent.GetE("frmUpload").reset();'; +} +if($do->save()) { + $session = new dsession(); + $limit = intval($MG['uploadlimit']); + $total = isset($_SESSION['uploads']) ? count($_SESSION['uploads']) : 0; + if($limit && $total > $limit - 1) { + file_del(DT_ROOT.'/'.$do->saveto); + uperr('Error(6)'.lang('message->upload_limit', array($limit)), $errjs); + } + $img_info = @getimagesize(DT_ROOT.'/'.$do->saveto); + if(in_array($do->ext, array('jpg', 'jpeg', 'gif', 'png', 'bmp', 'swf'))) { + $upload_bad = 0; + if($img_info) { + $upload_mime = array('jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'bmp' => 'image/bmp', 'swf' => 'application/x-shockwave-flash'); + if($img_info['mime'] != $upload_mime[$do->ext]) $upload_bad = 1; + } else { + $upload_bad = 1; + } + if($upload_bad) { + file_del(DT_ROOT.'/'.$do->saveto); + uperr('Error(7)'.lang('message->upload_bad'), $errjs); + } + } + if(in_array($do->ext, array('jpg', 'jpeg')) && $img_info['channels'] == 4) { + file_del(DT_ROOT.'/'.$do->saveto); + uperr('Error(8)'.lang('message->upload_cmyk'), $errjs); + } + $img_w = $img_h = 0; + if($do->image) { + require DT_ROOT.'/include/image.class.php'; + if($do->ext == 'gif' && in_array($from, array('thumb', 'album', 'photo'))) { + if(!function_exists('imagegif') || !function_exists('imagecreatefromgif')) { + file_del(DT_ROOT.'/'.$do->saveto); + uperr('Error(9)'.lang('message->upload_jpg'), $errjs); + } + } + if($DT['gif_ani'] && $do->ext == 'gif') { + if(strpos(file_get(DT_ROOT.'/'.$do->saveto), chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0') !== false) { + $DT['max_image'] = $DT['water_type'] = $width = $height = 0; + } + } + if($DT['bmp_jpg'] && $do->ext == 'bmp') { + require DT_ROOT.'/include/bmp.func.php'; + $bmp_src = DT_ROOT.'/'.$do->saveto; + $bmp = imagecreatefrombmp($bmp_src); + if($bmp) { + $do->saveto = str_replace('.bmp', '.jpg', $do->saveto); + $do->ext = 'jpg'; + imagejpeg($bmp, DT_ROOT.'/'.$do->saveto); + file_del($bmp_src); + if(DT_CHMOD) @chmod(DT_ROOT.'/'.$do->saveto, DT_CHMOD); + } + } + $img_w = $img_info[0]; + $img_h = $img_info[1]; + if($DT['max_image'] && $img_w > $DT['max_image']) { + $img_h = intval($DT['max_image']*$img_h/$img_w); + $img_w = $DT['max_image']; + $image = new image(DT_ROOT.'/'.$do->saveto); + $image->thumb($img_w, $img_h); + } + if($from == 'thumb') { + if($width && $height) { + $image = new image(DT_ROOT.'/'.$do->saveto); + $image->thumb($width, $height, $DT['thumb_title']); + $img_w = $width; + $img_h = $height; + $do->file_size = filesize(DT_ROOT.'/'.$do->saveto); + } + } else if($from == 'album' || $from == 'photo') { + $saveto = $do->saveto; + $do->saveto = $do->saveto.'.thumb.'.$do->ext; + file_copy(DT_ROOT.'/'.$saveto, DT_ROOT.'/'.$do->saveto); + $middle = $saveto.'.middle.'.$do->ext; + file_copy(DT_ROOT.'/'.$saveto, DT_ROOT.'/'.$middle); + if($DT['water_type'] == 2) { + $image = new image(DT_ROOT.'/'.$saveto); + $image->waterimage(); + } else if($DT['water_type'] == 1) { + $image = new image(DT_ROOT.'/'.$saveto); + $image->watertext(); + } + if($DT['water_type'] && $DT['water_com'] && $MG['type']) { + $image = new image(DT_ROOT.'/'.$saveto); + $image->text = $_company; + $image->pos = 5; + $image->watertext(); + } + if($from == 'photo') $DT['thumb_album'] = 0; + $image = new image(DT_ROOT.'/'.$do->saveto); + $image->thumb($width, $height, $DT['thumb_album']); + $image = new image(DT_ROOT.'/'.$middle); + $image->thumb($DT['middle_w'], $DT['middle_h'], $DT['thumb_album']); + if($DT['water_middle'] && $DT['water_type']) { + if($DT['water_type'] == 2) { + $image = new image(DT_ROOT.'/'.$middle); + $image->waterimage(); + } else if($DT['water_type'] == 1) { + $image = new image(DT_ROOT.'/'.$middle); + $image->watertext(); + } + } + } else if($from == 'editor') { + if($_groupid == 1 && DT_EDITOR == 'fckeditor' && !isset($watermark)) $DT['water_type'] = 0; + if($DT['water_type']) { + $image = new image(DT_ROOT.'/'.$do->saveto); + if($DT['water_type'] == 2) { + $image->waterimage(); + } else if($DT['water_type'] == 1) { + $image->watertext(); + } + } + } + } + $saveto = linkurl($do->saveto); + if($DT['ftp_remote'] && $DT['remote_url']) { + require DT_ROOT.'/include/ftp.class.php'; + $ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']); + if($ftp->connected) { + $exp = explode("file/upload/", $saveto); + $remote = $exp[1]; + if($ftp->dftp_put($do->saveto, $remote)) { + $saveto = $DT['remote_url'].$remote; + $DT['ftp_save'] or file_del(DT_ROOT.'/'.$do->saveto); + if(strpos($do->saveto, '.thumb.') !== false) { + $local = str_replace('.thumb.'.$do->ext, '', $do->saveto); + $remote = str_replace('.thumb.'.$do->ext, '', $exp[1]); + $ftp->dftp_put($local, $remote); + $DT['ftp_save'] or file_del(DT_ROOT.'/'.$local); + $local = str_replace('.thumb.'.$do->ext, '.middle.'.$do->ext, $do->saveto); + $remote = str_replace('.thumb.'.$do->ext, '.middle.'.$do->ext, $exp[1]); + $ftp->dftp_put($local, $remote); + $DT['ftp_save'] or file_del(DT_ROOT.'/'.$local); + } + } + } + } + $fid = isset($fid) ? $fid : ''; + if(isset($old) && $old && in_array($from, array('thumb', 'photo'))) delete_upload($old, $_userid); + $_SESSION['uploads'][] = $saveto; + if($DT['uploadlog']) $db->query("INSERT INTO {$upload_table} (item,fileurl,filesize,fileext,upfrom,width,height,moduleid,username,ip,addtime,itemid) VALUES ('".md5($saveto)."','$saveto','$do->file_size','$do->ext','$from','$img_w','$img_h','$moduleid','$_username','$DT_IP','$DT_TIME','$itemid')"); + if($MG['uploadcredit'] > 0) { + require DT_ROOT.'/include/module.func.php'; + credit_add($_username, -$MG['uploadcredit']); + credit_record($_username, -$MG['uploadcredit'], 'system', $L['upload'], $from); + } + $pr = 'parent.document.getElementById'; + if($from == 'thumb') { + if($action == 'webuploader') exit('{"error":0,"url":"'.str_replace('/', '\/', $saveto).'"}'); + $js .= 'try{'.$pr.'("d'.$fid.'").src="'.$saveto.'";}catch(e){}'; + $js .= $pr.'("'.$fid.'").value="'.$saveto.'";'; + $js .= 'window.parent.cDialog();'; + } else if($from == 'album' || $from == 'photo') { + if($action == 'webuploader') exit('{"error":0,"url":"'.str_replace('/', '\/', $saveto).'"}'); + $js .= 'window.parent.getAlbum("'.$saveto.'", "'.$fid.'");'; + $js .= $from == 'photo' ? $pr.'("dform").submit();' : 'window.parent.cDialog();'; + } else if($from == 'editor') { + if($action == 'kindeditor' || $action == 'webuploader') exit('{"error":0,"url":"'.str_replace('/', '\/', $saveto).'"}'); + if(DT_EDITOR == 'ueditor' || DT_EDITOR == 'umeditor') exit('{"state":"SUCCESS","url":"'.str_replace('/', '\/', $saveto).'"}'); + $js .= 'window.parent.SetUrl("'.$saveto.'");'; + $js .= 'window.parent.GetE("frmUpload").reset();'; + } else if($from == 'attach') { + $js .= 'window.parent.GetE("txtUrl").value="'.$saveto.'";'; + $js .= 'window.parent.window.parent.Ok();'; + } else if($from == 'file') { + if($moduleid == 2 && $fid == 'chat') { + $js .= 'window.parent.chat_send("'.$saveto.'");'; + } else { + if($action == 'webuploader') exit('{"error":0,"url":"'.str_replace('/', '\/', $saveto).'","size":'.dround($do->file_size/1024/1024, 2).'}'); + $js .= $pr.'("'.$fid.'").value="'.$saveto.'";'; + if($module == 'down') $js .= 'window.parent.initd('.dround($do->file_size/1024/1024, 2).');'; + } + $js .= 'window.parent.cDialog();'; + } + dalert('', '', $js); +} else { + uperr('Error(10)'.$do->errmsg, $errjs); +} +?> \ No newline at end of file diff --git a/version.inc.php b/version.inc.php new file mode 100644 index 0000000..3aae6bf --- /dev/null +++ b/version.inc.php @@ -0,0 +1,5 @@ + \ No newline at end of file