Compare commits

...

552 Commits

Author SHA1 Message Date
cuixin 24cc152742 首页 热门数据 修改为 最新数据集 2017-04-24 11:02:20 +08:00
cuixin d8adb0aacd 修改平台介绍、站点介绍 2017-03-29 10:11:58 +08:00
wlx a40078d174 修复重复的导航条问题 2016-01-22 09:09:10 +08:00
wlx bb90e287f4 更新erc联系地址 2015-12-14 17:23:16 +08:00
wlx 813b9d84bb 替换三江源的图标与小照片 2015-12-14 08:12:30 +08:00
wlx e4678d4d8e fix westdc/westdc-zf1#26 issue: 更新离线申请协议模板 2015-12-10 14:28:39 +08:00
wlx 61a7bebab6 merge sanjiangyuan-sub r5224 - r5246 into sjy-erc 2015-02-02 01:25:33 +00:00
wlx 90d11af44e merge sanjiangyuan-sub r5227, r5228 into sjy-erq 2015-01-31 10:17:42 +00:00
wlx 25faa0fe72 merge sanjiangyuan-sub r5225 into sjy-erc 2015-01-31 09:23:56 +00:00
wlx aad2af30e7 merge sanjiangyuan-sub r5216, r5217 into sjy-erc 2015-01-31 08:34:32 +00:00
wlx ab170d968e merge sanjiangyuan-sub r5210 into sjy-erc 2015-01-31 07:28:58 +00:00
wlx 5dedc664ce change search parameter 2015-01-31 07:12:27 +00:00
wlx b5bee6c79f merge sanjiangyuan-sub r5151 - r5191 into sjy-erc 2015-01-30 15:18:54 +00:00
wlx f2650c528b 引入后台数据库入库系统,添加首页显示要素 2015-01-30 15:08:23 +00:00
wlx c234ad9f32 change logo 2015-01-27 08:46:21 +00:00
wlx a7c7b5a780 change config for sjy-erc 2015-01-27 06:17:55 +00:00
wlx 8a5cb2739d change config for sjy-erc 2015-01-27 06:10:17 +00:00
wlx 63bbf3147a merge sanjiangyuan-sub r4692 - r5150 into sjy-erc branch 2015-01-27 06:05:54 +00:00
wlx 2ff7d8ab89 fix db name error 2015-01-22 04:10:11 +00:00
wlx 8d06dd974f 合并总平台的可视化功能 2015-01-22 03:14:36 +00:00
wlx 676e44c313 add highcharts,update highstock 2015-01-22 02:36:41 +00:00
wlx d4a5275f74 merge sanjiangyuan branch r5038 - r5042, resolve the visual problem. 2014-12-22 06:25:58 +00:00
Li Jianxuan da78e56dc0 修改三江源子平台后台离线申请管理 2014-07-22 09:22:34 +00:00
Li Jianxuan 66c37925dd 修改数据删除时的bug 2014-07-22 03:33:26 +00:00
Li Jianxuan a2b4bfe397 修改子平台后台申请管理功能 2014-07-22 03:27:09 +00:00
wlx 6b2fb70d2f switch piwik code 2014-07-21 13:43:16 +00:00
wlx b355511a2e fix missed function 2014-07-16 08:33:15 +00:00
wlx e809f9e27f fix error 2014-07-16 08:28:37 +00:00
wlx 8342437350 更新安全认证 2014-07-16 08:24:16 +00:00
Li Jianxuan bcc7146f81 添加后台ftp上传数据的操作按钮 2014-07-16 02:28:38 +00:00
Li Heng 04064a2030 新闻详细页面样式 2014-07-15 23:39:31 +00:00
wlx 576b389bfa 移除支持项目管理功能 2014-07-15 06:45:23 +00:00
wlx 2d46a2be15 #624, remove the newdata link 2014-07-15 06:11:27 +00:00
wlx fc16907197 fix #621 2014-06-24 09:03:03 +00:00
Li Jianxuan 0526231290 修改数据可视化登录跳转页面 2014-06-23 04:08:50 +00:00
Li Heng e8df736d40 数据首页 数据最新更新 时间样式取消左对齐。 2014-06-23 03:51:31 +00:00
wlx 23dcdc035b remove unused file 2014-06-23 03:43:30 +00:00
wlx b23ed6614d 更新离线申请pdf功能 2014-06-23 03:42:57 +00:00
wlx 02e25a420b #615, 修正关键词浏览方式 2014-06-20 13:24:12 +00:00
wlx 2e4cb25293 #618, 用天地图实现空间浏览 2014-06-20 11:35:13 +00:00
wlx e8bdd36d0c 修正默认中心和缩放级别 2014-06-20 09:37:04 +00:00
wlx fc2cb61d8e 用天地图实现高级搜索功能 2014-06-20 06:41:44 +00:00
Li Heng c49cc92175 数据首页 最近更新数据,最多浏览数据 小图标与文字调整。 2014-06-20 02:39:44 +00:00
wlx 838c4c295d fix errors 2014-06-20 01:28:59 +00:00
wlx 64257824fa 增加特色浏览方式 2014-06-20 01:27:49 +00:00
wlx 12cfacdb9f 添加数据导航方式 2014-06-20 00:32:19 +00:00
wlx 482f3896df 增加验证码判断 2014-06-18 14:52:54 +00:00
wlx 8facb0cc68 fix rss feed problem 2014-06-18 14:44:16 +00:00
wlx 4e389f5c77 fix pdf metadata problem 2014-06-18 14:38:43 +00:00
wlx 471066a15a fix doc md problem 2014-06-18 14:23:20 +00:00
wlx cea0a78962 修复doc格式元数据问题 2014-06-18 14:20:45 +00:00
wlx 433c44e40d 修复qrcode的url问题,修复odt模板 2014-06-18 14:13:49 +00:00
wlx 91e1c0e007 remove unused var 2014-06-18 14:08:41 +00:00
wlx 471e0627f0 remove unused var 2014-06-18 14:07:58 +00:00
wlx c9fac5f258 修复odt格式元数据问题 2014-06-18 14:04:50 +00:00
wlx f231426111 修改新闻首页的布局 2014-06-18 13:46:43 +00:00
wlx 5421a8ff06 修复首页新闻的时间问题 2014-06-18 13:46:25 +00:00
wlx 3b2258357f remove text 2014-06-18 06:27:21 +00:00
wlx 6e9b2c81cc 修复缩略图浏览问题 2014-06-18 06:24:53 +00:00
wlx efc508c58c 增加可视化数据的排序方式 2014-06-18 06:19:54 +00:00
wlx 295728d7ff remove more link 2014-06-18 05:51:06 +00:00
wlx 265f09bb4d fix code error 2014-06-18 05:49:30 +00:00
wlx facbc0d5c4 更新数据首页布局 2014-06-18 05:48:26 +00:00
wlx 9d5c2d0c07 添加数据更新以及修复数据链接 2014-06-18 05:32:36 +00:00
wlx 3e9b768363 fix errors 2014-06-17 08:49:10 +00:00
Li Heng 4e59336d25 调整新闻列表页新闻标题与时间标记距离。 2014-06-17 00:07:35 +00:00
Li Heng 29e28b0be7 添加LOGO超连接。 2014-06-16 11:55:36 +00:00
wlx 288e64e0fc 添加日期显示 2014-06-16 02:30:53 +00:00
wlx e85fd5bf7d 移除不用的js内容 2014-06-16 02:25:51 +00:00
wlx 83c650c537 设定首页新闻条数为5条 2014-06-16 02:15:32 +00:00
wlx 60688ab09b 移除数据引用帮助 2014-06-16 02:12:32 +00:00
wlx 62a1eba0e6 更新联系信息 2014-06-15 08:44:37 +00:00
wlx 0bbdb6aa52 update config 2014-06-15 08:43:53 +00:00
wlx a43b45863d use tianditu 2014-06-15 07:22:56 +00:00
wlx 83a42c50b8 remove unused layout 2014-06-14 04:19:22 +00:00
wlx 707f2a85e3 fix error 2014-06-14 04:18:16 +00:00
Li Heng 5fa96f8825 1.LOGO更新;
2.header样式;
2014-06-14 03:59:37 +00:00
Li Heng 0d945c622a 头部导航位置调整。 2014-06-14 03:25:49 +00:00
Li Heng 1f3ae1b0c9 导航样式修改。 2014-06-14 03:23:38 +00:00
wlx b7b93a5781 add tianditu support 2014-06-14 01:44:23 +00:00
wlx 95f552bd3b change google maps to tianditu 2014-06-14 01:32:03 +00:00
wlx 901aeb4b5b update header.phtml 2014-06-13 14:44:47 +00:00
Li Heng 4f0e4d3bdd li 列表行高调整 2014-06-13 13:37:38 +00:00
Li Heng ac8d372f4d 1.页面头部留空
2.统一头部文件
2014-06-13 10:13:29 +00:00
Li Heng 28832cdf99 1.更新banner高度;
2.修改li行高;
3.banner图片新增
2014-06-13 08:46:59 +00:00
Li Heng a2673e8c03 更新引入CSS样式顺序 2014-06-13 08:45:06 +00:00
wlx c3130aa71d change thumb to bigthumb 2014-06-13 08:40:14 +00:00
Li Jianxuan 70778573d2 修改数据可视化页面js效果 2014-06-13 08:13:45 +00:00
Li Jianxuan 13e5e6be9b 修改AclManager,添加其它平台角色 2014-06-13 08:05:39 +00:00
Li Heng 47f3b3d828 联系我们页面调整 2014-06-13 07:37:28 +00:00
wlx 33c7c287bb create sjy erc branches 2014-06-13 03:28:07 +00:00
Li Jianxuan 775b0ee360 修改数据可视化中得bug,修改后台管理员数量统计功能 2014-06-13 03:21:57 +00:00
wlx 29604ab761 minor fix 2014-06-12 09:49:31 +00:00
wlx 557e119806 minor fix 2014-06-12 09:48:52 +00:00
wlx aea1b81207 更新展示 2014-06-12 09:47:38 +00:00
wlx ad966c6851 更新页面展示 2014-06-12 09:45:22 +00:00
wlx 5259a56a9f add js to active 2014-06-12 09:35:06 +00:00
Li Jianxuan 40f2fc8d04 修改三江源子平台后台UI 2014-06-12 09:16:30 +00:00
Li Heng d928c3f573 列表页样式及logo 2014-06-12 09:00:01 +00:00
Li Heng 51cbbdd51b 新闻列表页面样式 2014-06-12 08:59:00 +00:00
wlx e0fbdda367 change layout 2014-06-12 08:47:27 +00:00
wlx 12d40fc049 add url link 2014-06-12 08:45:50 +00:00
Li Jianxuan 5e61c301b7 添加了元数据概况页面 2014-06-12 08:39:57 +00:00
Li Heng 044acaf849 logo样式2 2014-06-12 07:55:56 +00:00
wlx a3d2103fdc 添加分平台介绍页面 2014-06-12 07:16:17 +00:00
wlx 0fe53a674b 更新前台关于部分的分平台控制 2014-06-12 07:07:47 +00:00
wlx 47f6483e69 更新分类新闻列表的分平台控制 2014-06-12 06:55:00 +00:00
wlx fb0bfea245 更新新闻首页的分平台限制 2014-06-12 06:53:09 +00:00
wlx 75ae4ff252 revert index.phtml 2014-06-12 06:46:42 +00:00
wlx 66032ef2f5 首页内容更改 2014-06-12 06:23:58 +00:00
wlx 8cd438a3f2 change index page 2014-06-12 06:20:01 +00:00
wlx 50d118b386 fix sql error 2014-06-12 03:43:20 +00:00
wlx f3bee97f82 update index page content 2014-06-12 03:41:38 +00:00
wlx 9bb1bc9ad8 fix config error 2014-06-12 03:28:48 +00:00
wlx 0dee17f92b change index page 2014-06-12 03:25:06 +00:00
wlx b6d34f1b43 change news config 2014-06-12 03:16:05 +00:00
wlx 4bf466aa58 change news url 2014-06-12 01:58:26 +00:00
Li Jianxuan f86001f75d 修改数据可视化时元数据读取来源 2014-06-12 01:51:59 +00:00
wlx 5791184f19 fix error 2014-06-11 14:17:11 +00:00
wlx 417e587dbc 修改前台数据页面的分平台控制 2014-06-11 14:14:14 +00:00
wlx 153a43956e add viewed field 2014-06-11 13:13:58 +00:00
wlx a6035e7f60 fix active problem 2014-06-11 13:01:51 +00:00
wlx b7f440a98f fix path error 2014-06-11 12:48:27 +00:00
Li Jianxuan dac5f6c791 添加了可视化数据列表 2014-06-11 12:06:09 +00:00
wlx 7c9568a01c change jquery to local 2014-06-11 10:12:09 +00:00
Li Jianxuan 85fd4c182c 修改头部用户操作按钮 2014-06-11 09:36:14 +00:00
Li Jianxuan 3af42da773 修改头部用户操作按钮 2014-06-11 09:34:30 +00:00
wlx dd8e2cf9f3 fix sql error 2014-06-11 09:12:21 +00:00
wlx 239554b3ac 更新后台统计功能 2014-06-11 09:08:11 +00:00
Li Heng 4a492a9589 logo调整 2014-06-11 08:51:01 +00:00
wlx 4d3bfa4444 更新后台评审的分平台功能 2014-06-11 08:50:10 +00:00
wlx 6b4682325f 修改后台待审的分平台功能 2014-06-11 08:43:01 +00:00
wlx 76c6725159 更新后台评审首页的分平台实现 2014-06-11 08:38:46 +00:00
Li Jianxuan 97402e262d 增加了三江源自平台的数据可是化管理功能和展示功能 2014-06-11 08:38:38 +00:00
wlx 0eeba0747c fix spell error 2014-06-11 08:35:37 +00:00
wlx c06a5d8508 移除后台用户编辑权限功能 2014-06-11 08:31:00 +00:00
wlx 5474d5e018 更新用户管理功能 2014-06-11 08:29:18 +00:00
Li Jianxuan 4b7e774867 修改页面头部用户操作按钮 2014-06-11 08:27:03 +00:00
wlx 47880eab18 修改分平台的管理员列表功能 2014-06-11 08:14:58 +00:00
Li Jianxuan f0f0e639b5 更新三江源子平台可视化模块文件 2014-06-11 08:12:05 +00:00
wlx a7b9e63e70 实现离线数据服务记录的分平台处理 2014-06-11 08:04:43 +00:00
Li Heng 3231524aa1 LOGO调整 2014-06-11 07:45:49 +00:00
wlx 04ebe29d8d 实现在线数据下载记录的分平台控制 2014-06-11 07:45:06 +00:00
wlx 90b75f1495 fix error 2014-06-11 07:43:18 +00:00
wlx 6665c20700 实现用户下载记录的分平台控制 2014-06-11 07:42:44 +00:00
wlx 0b9de786bb fix error 2014-06-11 07:36:20 +00:00
wlx e24d2472b6 后台数据下载记录的分平台限制 2014-06-11 07:35:28 +00:00
Li Heng bb5a48cd6d 三江源LOGO 2014-06-11 07:30:23 +00:00
Li Heng f634a217a5 LOGO及头部样式更改 2014-06-11 07:26:59 +00:00
wlx 18e4f5ab5a 实现离线申请待处理的分平台控制 2014-06-11 07:06:54 +00:00
wlx 9a2b70f1a9 remove unused link 2014-06-11 06:43:51 +00:00
wlx f7d88d414b 移除专题管理功能 2014-06-11 06:42:36 +00:00
wlx f8105975b1 更新附件管理功能 2014-06-11 06:36:03 +00:00
wlx 1a23c89ec2 更新数据评论管理的分平台限制 2014-06-11 06:21:53 +00:00
wlx 69e31efafc 更新后台数据版本管理限制 2014-06-11 06:07:28 +00:00
wlx ec3c7068c8 更新后台数据作者的分平台限制 2014-06-11 06:02:36 +00:00
wlx 610ebbe454 fix error 2014-06-11 05:33:04 +00:00
wlx e5a58d91bb 增加分平台数据限制 2014-06-11 05:17:28 +00:00
wlx 929ea3b114 remove unused function 2014-06-11 03:54:55 +00:00
wlx 6571f575c4 分平台移除栏目管理功能 2014-06-11 03:27:55 +00:00
wlx a254e495ca 增加删除新闻的限制 2014-06-11 03:25:53 +00:00
wlx 44119d6412 fix error 2014-06-11 03:18:18 +00:00
wlx a119f356b9 添加更新新闻的分站限制 2014-06-11 03:13:45 +00:00
wlx ab25f11718 remove unused link 2014-06-11 03:04:51 +00:00
wlx fc2a1ac56e fix error 2014-06-11 03:02:19 +00:00
wlx 0848fcb69b change for debug 2014-06-11 02:59:59 +00:00
wlx d75be5b0c8 后台新闻管理仅列出本站新闻 2014-06-11 02:56:12 +00:00
wlx 2a73b322c6 add sub news in config 2014-06-11 02:47:56 +00:00
wlx 24cddfc4e8 minor fix 2014-06-11 02:30:39 +00:00
wlx bab967037d remove br 2014-06-11 02:25:52 +00:00
wlx b438c42213 更新默认来源名称以及定时发布问题 2014-06-11 02:23:50 +00:00
wlx 84e4ba6bb4 add auth parameter 2014-06-11 01:42:02 +00:00
Li Jianxuan 1a6b0375a9 修改跨域登录功能 2014-06-11 01:39:18 +00:00
wlx f7fbbf4e64 remove duplicated nav bar 2014-06-11 01:32:50 +00:00
wlx dd95c140b1 增加分平台的搜索功能 2014-06-11 01:27:50 +00:00
Li Jianxuan f82733a57b 添加异步跨域登录代码 2014-06-10 02:16:50 +00:00
wlx 133566d9c2 revert zf1 path 2014-06-05 09:58:39 +00:00
Li Jianxuan 71fac4e412 修改子平台用户登录及管理的相关功能 2014-06-05 09:53:18 +00:00
wlx 4d8c3abbce 添加分平台用户组设置 2014-06-05 09:31:10 +00:00
Li Heng 5c945ea49d 数据页面搜索栏目 2014-05-29 03:56:05 +00:00
Li Jianxuan 308c247d0f #588 增加了新闻添加时分平台信息自动添加的功能 2014-05-29 02:06:42 +00:00
wlx 660c208abc 导航条完善 2014-05-28 23:56:42 +00:00
wlx af7cf44634 增加导航条 2014-05-28 14:56:21 +00:00
wlx 52983d4d4b 删除无用代码,添加分平台视图名称,增加index首页模板 2014-05-28 09:44:03 +00:00
Li Heng 0576ec8b2a banner样式 2014-05-28 09:40:39 +00:00
Li Heng cdde57dfb5 头部banner尺寸调整 2014-05-28 09:25:45 +00:00
Li Heng b5e8cf471c bootstrap响应式布局。 2014-05-28 08:54:12 +00:00
Li Heng 4e9dd4355e li{line-height:24px} 2014-05-28 08:52:21 +00:00
Li Heng e90c3d77ed 引入样式修改 2014-05-28 08:51:28 +00:00
Li Heng 85f9f5e45a 首页样式修改。 2014-05-28 08:50:35 +00:00
Li Heng 44879890c8 首部导航样式 2014-05-28 04:05:04 +00:00
wlx 00ba57a340 remove unused code 2014-05-28 03:29:19 +00:00
Li Heng 59a257112d 头部样式调整 2014-05-28 03:17:10 +00:00
Li Heng 61e5fa558c 更新样式文件 2014-05-27 09:59:42 +00:00
Li Heng ef5828b6d0 样式 2014-05-27 09:57:11 +00:00
Li Heng 82f111497c 草原总站 2014-05-27 09:56:38 +00:00
wlx 62e03d6044 remove unused file 2014-05-27 07:15:48 +00:00
wlx ef303cd08a remove unused file 2014-05-27 07:14:05 +00:00
wlx 736cc6e3b7 resolve conflicts by rm and copy 2014-05-27 07:04:25 +00:00
wlx b55e23cf2e merge sanjiangyuan branch r4109 - r4535 to sanjiangyuan-sub 2014-05-27 07:01:51 +00:00
wlx b953c286fe revert sanjiangyuan-sub to r4408 2014-05-27 06:26:20 +00:00
wlx 1d71ee178c merge sanjiangyuan branch r4410 - r4534 to sanjiangyuan-sub 2014-05-27 05:42:02 +00:00
Li Jianxuan be99136c68 change visual-add.phtml 2014-05-27 02:51:38 +00:00
Li Jianxuan 4120cda7aa 添加可视化要素后台管理功能 2014-05-26 03:38:36 +00:00
Li Jianxuan b9a9e44746 修改注释错误 2014-05-25 02:18:41 +00:00
Li Jianxuan 12b8b26338 增加09年含沙量数据可视化 2014-05-23 07:41:52 +00:00
Li Jianxuan a8df49bff7 加入可视化的链接地址,修改了数据集的展示名称 2014-05-22 08:59:35 +00:00
Li Jianxuan c986d6c535 调整数据可视化命名空间内部结构 2014-05-22 02:44:18 +00:00
Li Jianxuan 483da847cd 修改bug 2014-05-21 09:57:28 +00:00
Li Jianxuan c0703ccfa3 添加数据可视化相关模块 2014-05-21 09:26:15 +00:00
Li Jianxuan ae7ef85ae7 添加在线数据可视化框架 2014-05-12 06:53:21 +00:00
Li Jianxuan 8eda0c4498 添加可视化相关js和命名空间目录 2014-05-12 02:56:55 +00:00
wlx ef9948332e 取消默认的时间限制 2014-03-26 02:20:49 +00:00
wlx f74c9bde98 确保管理员的完整同步 2014-03-25 13:58:59 +00:00
Li Jianxuan 4381b008ae 添加同步管理员到geonetwork的功能 2014-03-25 09:21:28 +00:00
wlx 72c353f435 set debug off 2014-03-21 15:37:14 +00:00
wlx 609e5713c4 change email to gmail 2014-03-21 10:19:04 +00:00
Li Jianxuan 4678531450 开启debug 2014-03-21 08:23:36 +00:00
Li Heng fa9e604755 添加后台邮件模板删除功能。 2014-03-21 06:24:33 +00:00
wlx a14d2319d9 set debug off 2014-03-21 04:43:15 +00:00
Li Heng 2b01533e75 分平台链接地址更改。 2014-03-21 02:43:15 +00:00
wlx 45ed720fe3 add new class 2014-03-21 02:16:27 +00:00
wlx 54d6aa8f28 change config 2014-03-21 02:14:20 +00:00
wlx 68e445d4ff change config 2014-03-21 02:12:03 +00:00
Li Jianxuan 8d23d7c0c0 修改邮箱配置 2014-03-21 02:10:03 +00:00
wlx d35547febf set debug on 2014-03-21 02:03:58 +00:00
wlx 6618361e63 comment error 2014-03-21 01:58:57 +00:00
wlx 3f2aa11842 fix var error 2014-03-21 01:46:29 +00:00
wlx 3ca3469e40 fix var name 2014-03-21 01:45:19 +00:00
wlx 4a0307c1dd 处理在线资源的名称为空的错误 2014-03-21 01:43:25 +00:00
wlx 2225a3e7f6 change piwik code 2014-03-20 19:16:21 +00:00
wlx 4d99a64adf 不显示三江源相关链接 2014-03-20 19:08:50 +00:00
wlx c917703669 remove warn info 2014-03-20 19:05:31 +00:00
wlx 16a9e8aecd fix search problem 2014-03-20 18:42:56 +00:00
wlx ef5cab577b comment warn info 2014-03-20 10:24:29 +00:00
Li Heng aac03e6ea4 banner修改。 2014-03-20 09:22:32 +00:00
Li Heng 46e82a7b2d 2014-03-20 08:07:36 +00:00
wlx d4a54cf5bb change config 2014-03-07 03:29:33 +00:00
wlx 9a67a94fe1 change service email and header text 2014-03-07 03:07:35 +00:00
wlx 3d12553c6d fix logic error 2014-03-06 07:48:24 +00:00
wlx fbcdd9b9cb remove heihemetadata, fix index page error 2014-03-06 07:38:06 +00:00
wlx 325fa858e5 remove oauth 2014-03-06 07:32:41 +00:00
wlx 4100514816 remove unused statstics 2014-03-06 07:32:27 +00:00
wlx 06439a4300 调整后台功能 2014-03-06 07:02:32 +00:00
wlx 7a44e38903 merge heihedata updates: from r3970 to r4321. 2014-03-06 06:32:10 +00:00
wlx 3db63caac9 change var name 2014-03-04 16:00:08 +00:00
wlx 6ffe628c27 提升稳定性和效率 2014-03-03 13:37:10 +00:00
wlx 7a9d11a977 add elements to dci 2014-03-03 13:34:19 +00:00
wlx 8a4a5c4386 add DCI action 2014-02-27 14:11:54 +00:00
wlx a8f0424aa6 修改数据委员会地址 2014-02-27 07:46:10 +00:00
wlx 70eb46f541 修正docAction和odtAction中数据引用方式的逻辑错误 2014-02-25 04:12:57 +00:00
wlx f99e98f2c7 增加时间点的判断 2014-02-25 04:11:54 +00:00
wlx 334403081a 在元数据浏览中增加资助项目链接 2014-02-21 08:48:35 +00:00
wlx d57090d5bc 修改底部文字 2014-02-21 08:48:03 +00:00
wlx 6c3f3bf0c3 资助项目以编号进行排序 2014-02-21 08:47:39 +00:00
wlx 5f2f07207a change url 2014-02-17 03:24:32 +00:00
wlx fbd1876e15 修复邮件通知的问题,更精准提取 2014-01-29 04:39:36 +00:00
Li Jianxuan 622a0331a5 fixed a bug about upload folder path 2014-01-27 08:29:18 +00:00
wlx 9818347102 update glacier theme 2014-01-22 02:55:07 +00:00
wlx 8f8ffeee43 update glacier theme 2014-01-22 01:45:38 +00:00
Li Heng b3b09c1839 新注册用户按月统计 2014-01-16 03:15:24 +00:00
wlx 9954be07f9 add more link 2014-01-16 02:42:20 +00:00
wlx 4f7a2765b3 fix link problem 2014-01-14 02:22:56 +00:00
wlx ed6d450d4a 设置为分栏目显示 2014-01-14 02:16:49 +00:00
Li Jianxuan 3967c23ecb #569将标题设为默认不能修改 2014-01-13 07:28:36 +00:00
Li Jianxuan 7ccd999fd5 #569 添加了是否发布的情况区分,未发布时doi标题可修改,并且读取元数据的标题作为默认内容 2014-01-13 07:16:22 +00:00
Li Jianxuan fd1a7260af 统计数据中的按用户统计添加了新用户统计功能 2014-01-10 09:21:13 +00:00
wlx 8f8631ee2f fix logic error 2014-01-10 05:25:21 +00:00
wlx 2425f6304c fix link error 2014-01-10 05:06:02 +00:00
wlx c9cead9996 minor fix 2014-01-10 05:05:04 +00:00
wlx fffe4448c9 layout change 2014-01-10 05:04:03 +00:00
wlx 7871ebfb6a add breadcrump and reference link 2014-01-10 05:01:42 +00:00
wlx 51f3adfa79 更新海河标题 2014-01-10 04:09:50 +00:00
wlx 2c9632d841 add haihe theme 2014-01-09 14:25:27 +00:00
wlx a4530e6e02 merge trunk r4172 - r4175 to heihedata branch 2014-01-09 13:44:26 +00:00
wlx fc2ffc188b 增加排序 2014-01-09 02:47:14 +00:00
wlx dd9a48ddd3 更新后台评审的投稿操作 2014-01-09 02:34:33 +00:00
wlx 55df6a1352 add single quote 2014-01-07 12:37:27 +00:00
wlx e553375dce fix monthreport error 2014-01-07 12:36:19 +00:00
wlx 4408b36c34 修复离线上报跨年生成错误的问题 2014-01-07 12:33:15 +00:00
Li Jianxuan 124ad5263a 修改了离线数据申请页面的模板,删除了导航中新离线申请管理的链接 2014-01-07 07:43:07 +00:00
Li Jianxuan 024cfaef59 更新页面模板 2014-01-07 07:28:45 +00:00
Li Jianxuan 329a25b59e 添加了离线下载记录中更新PDF的功能 2014-01-07 07:01:25 +00:00
Li Jianxuan a6efab68c9 为wsn数据选择时间范围的添加了如果是多个点的话可以设置所有变量的时间 2014-01-03 06:19:04 +00:00
Li Jianxuan e2f2b2ae71 增加了裁图工具 2014-01-03 02:22:45 +00:00
Li Jianxuan f6b1acc273 修改用户名长度和规则判断的正则表达式 2013-12-27 06:21:12 +00:00
Li Jianxuan dd22a0fe70 修改错误提示方式 2013-12-27 05:54:27 +00:00
Li Jianxuan 1822a361cf 修改用户注册界面 2013-12-27 04:14:03 +00:00
Li Jianxuan 0288b30ab6 修改AccountController中返回消息的bug,提交AclManager中有关自动登录的代码,修改member类中关键字支持php5.5+ 2013-12-27 02:39:18 +00:00
Li Jianxuan a1f43ad574 修改了用户名判断的条件 2013-12-27 02:06:40 +00:00
Li Heng c6c7585269 验证码功能封装修改。 2013-12-26 09:10:00 +00:00
Li Heng 985272db6a 验证码功能封装! 2013-12-26 09:08:35 +00:00
Li Heng ba94ea7b7f 更新分站注册时跳转总站功能。
需要总站增加按登录跳转时的分站URL注册成功后转回分站登录的功能。
2013-12-26 09:07:29 +00:00
Li Heng 5529995c9c 新增分站登陆时的验证码功能。 2013-12-26 09:04:34 +00:00
Li Jianxuan 1c6a36d638 取消黑河专题jiathis的注释,解决重复访问登录页面时的死循环问题,修改验证码图片存放路径 2013-12-26 07:59:00 +00:00
Li Jianxuan 9a78f04113 修改函数写法兼容php5.3 2013-12-26 07:28:27 +00:00
Li Jianxuan b54c72b565 修改函数写法 2013-12-26 07:27:27 +00:00
Li Jianxuan e8aba81d7d 为邮件模板功能添加冗错判断,使用模块化封装的找回密码功能 2013-12-26 07:12:59 +00:00
Li Jianxuan 9779a0bebe 在三江源子站中添加验证码助手helpers\Captcha 2013-12-26 02:54:05 +00:00
Li Jianxuan 920b71add7 使用事件驱动的登录模块,修复cookie无法保存的bug,添加了验证码助手Helpers\Captcha 2013-12-26 02:50:10 +00:00
Li Jianxuan c2225d4e21 调整后台菜单的统一样式 2013-12-26 02:15:41 +00:00
Li Jianxuan 5483690395 修改form宽度超出页面的bug 2013-12-24 09:39:34 +00:00
Li Heng 543c8fcd2f 添加本地账户功能模块及表单 2013-12-19 07:47:57 +00:00
Li Jianxuan 88e29d711e 在hiwater中的多篇文献引用列表中加入了查看和下载功能 2013-12-18 02:43:10 +00:00
Li Jianxuan c0020d2aa1 添加本地用户列表 2013-12-16 08:45:15 +00:00
Li Jianxuan d8b42ac090 分离本地用户和所有用户的查看,增加本地用户添加窗口 2013-12-16 08:29:55 +00:00
wlx ac7245e603 change ftp url 2013-12-16 06:12:38 +00:00
Li Jianxuan 8d01826db3 修改了验证的用户名长度 2013-12-16 02:28:33 +00:00
wlx 72f4a0e09f change ftp url 2013-12-14 12:00:44 +00:00
wlx 7a6f34efcf switch ftp url to ftp.sanjiangyuan.org.cn 2013-12-14 04:19:58 +00:00
wlx 02ae9b9d85 change geonetwork url 2013-12-13 09:58:54 +00:00
Li Jianxuan 7e6ad54e7f submit user account register issue 2013-12-13 08:42:34 +00:00
Li Heng 65fc779e54 用户登录及分站重写cookie 2013-12-04 07:49:14 +00:00
Li Heng 1563870c5e 用户跨站登录及分站重写cookie. 2013-12-04 07:46:58 +00:00
Li Heng 2c50c49baf 重构管理员列表页adminlist.phtml,普通用户列表页list.phtml 2013-12-04 02:22:16 +00:00
Li Heng 48d2740a4b 账号、密码的检查 2013-12-02 03:39:02 +00:00
Li Jianxuan 311d67e493 三江源子平台系统增加了Users控制类 2013-11-29 03:07:54 +00:00
Li Jianxuan 8f208ef7c5 修改curl中不能初始化配置的bug 2013-11-29 02:26:06 +00:00
wlx 5ae05fb85d 修复成果展示中的错误 2013-11-29 01:47:32 +00:00
Li Jianxuan e6ed812e8d 添加了MCrypt加密助手 2013-11-28 09:01:11 +00:00
Li Jianxuan 2a37cec905 更新三江源子平台中的curl和accountcontroller中的功能 2013-11-28 02:30:13 +00:00
Li Jianxuan 35c0883355 添加了card.westgis.ac.cn的科技网通行证Appkey和Appsecret 2013-11-26 10:04:02 +00:00
Li Jianxuan eb98d79dfc 修改了重置申请表的功能,添加了修改状态代码的部分 2013-11-26 09:40:33 +00:00
Li Jianxuan 603dfd8781 创建三江源子平台的主分支 2013-11-26 02:23:58 +00:00
Li Jianxuan 74a5e3f5fc 修改了Oauth登录时密码重复md5的bug 2013-11-22 03:29:30 +00:00
wlx 580e97cc9d change acl 2013-11-22 03:16:53 +00:00
Li Jianxuan c0642c240a oauth登录部分删除测试用的代码 2013-11-22 02:31:25 +00:00
Li Jianxuan 6ab8c24f94 增加了OpenController,增加了accountController中关于Oauth交互登录的功能 2013-11-21 06:21:22 +00:00
Li Jianxuan 0e11fd37d7 修改 \Open\server 为 \Open\Server 2013-11-21 03:56:00 +00:00
Li Jianxuan 580cc39411 增加了开放平台中Oauth客户端和服务器端部分 2013-11-21 03:54:26 +00:00
Li Jianxuan dbe4d9d728 更新Helper\Curl和Helper\Table类 2013-11-21 02:14:36 +00:00
Li Jianxuan 608b8f29f4 更新Users操作类 2013-11-21 02:09:45 +00:00
wlx 1c3075584e change link css 2013-11-20 10:10:18 +00:00
wlx 6d5397273e 不限制heihe上的order项 2013-11-20 09:53:33 +00:00
wlx 1edecd120a fix #567, 限定施引文献的显示数量 2013-11-20 09:50:41 +00:00
Li Jianxuan 69d3a94ef8 #566 修改查重时的单引号bug,修改Ris导入时作者为字符串时发生错误的bug 2013-11-19 01:56:39 +00:00
wlx afd7f13418 fix problem when generate the reference 2013-11-17 12:07:15 +00:00
wlx ff2c52cfeb fix spell error 2013-11-16 11:28:50 +00:00
wlx 5de71572bb 有数据作者才发信 2013-11-16 11:14:45 +00:00
wlx cd8fe1ca87 fix single author could generate reference problem. 2013-11-16 07:43:30 +00:00
wlx 9512051737 add css 2013-11-15 14:47:36 +00:00
wlx 2bc695660b fix var error 2013-11-15 14:46:28 +00:00
wlx 1ccb1300b0 add ris download function for literatures 2013-11-15 14:41:56 +00:00
Li Jianxuan beb002b648 为Curl类添加自定义头信息功能 2013-11-15 03:44:52 +00:00
wlx 2ca99a2de3 fix spell error 2013-11-15 02:31:03 +00:00
wlx 1c147a88c2 实现后台编辑离线记录功能(补充项目信息) 2013-11-14 06:45:21 +00:00
Li Jianxuan 2eda702362 #563 修改了导入时单个author的bug 2013-11-14 02:49:15 +00:00
wlx 24f253c027 fix single author problem 2013-11-13 18:24:53 +00:00
wlx 7a36469b62 区分数据中心的施引文献展示方式 2013-11-13 18:16:31 +00:00
wlx 7acc24754d change literature view 2013-11-12 13:09:02 +00:00
wlx 98985efc84 修复同作者文章的问题 2013-11-12 12:35:12 +00:00
wlx d7eec24005 重新整理知识积累平台 2013-11-12 07:02:40 +00:00
wlx 9260c03a60 change template name 2013-11-11 10:06:03 +00:00
wlx 747b356901 change template name 2013-11-11 10:02:29 +00:00
Li Jianxuan 6cd975a861 修改了用户注册的邮件模板功能,增加了用户操作的类文件 2013-11-11 08:39:55 +00:00
Li Jianxuan 3ef2748dd1 Account controller修复验证码无法生成的bug 2013-11-11 02:53:34 +00:00
Li Jianxuan 5d80b35553 增加了已通过的服务记录的搜索,增加了操作时的确认按钮 2013-11-05 07:57:17 +00:00
wlx ed711d9a3b change mount to Mount 2013-11-05 04:09:26 +00:00
Li Jianxuan d007786fb1 将Order/mount改为Order/Mount 2013-11-05 04:01:05 +00:00
Li Jianxuan cd2be09bf7 将Order/listener改为Order/Listener 2013-11-05 03:59:35 +00:00
Li Jianxuan ff2f657cb6 规范文件名和namespace命名,修改小心为大些,增加Application类用来处理申请相关事务 2013-11-05 03:57:01 +00:00
Li Jianxuan 8c3d9cf760 添加了数据中心文献的功能 2013-11-05 02:23:49 +00:00
wlx 3cd2e16766 优化RIS输出 2013-11-04 13:27:32 +00:00
wlx 3325569970 不输出已经有RIS内容的文献 2013-11-04 13:26:00 +00:00
wlx 838afc1d5d 优化文献输出方式 2013-11-04 12:09:57 +00:00
Li Jianxuan 8d89e9f435 添加了ris导出功能 2013-11-04 09:04:07 +00:00
Li Jianxuan 6ae3223a84 修改文献列表显示方式,添加按年显示的功能 2013-11-04 07:08:58 +00:00
wlx 075ff2b2c0 放宽批量导入的限制 2013-11-01 09:14:13 +00:00
wlx fff01b40ce 修改参考文献格式生成代码;修改批量导入 2013-11-01 09:13:35 +00:00
wlx e3a6acc635 fix logic error 2013-10-31 05:17:00 +00:00
Li Jianxuan 8e1db6cd3d 删除没用的代码 2013-10-30 06:51:28 +00:00
Li Jianxuan c1f5c7de56 #558 增加了从表中读取信息的功能 2013-10-28 09:45:48 +00:00
wlx 475f67534a add water theme literatures; add paper detail view; 2013-10-28 07:59:40 +00:00
Li Jianxuan 0e87bf7d35 文件类中添加reference类型 2013-10-28 07:32:19 +00:00
Li Jianxuan 40547de3c7 添加头部引用 2013-10-28 06:55:31 +00:00
Li Jianxuan 36a363c354 添加了ris修改单篇文献的功能 2013-10-28 03:26:44 +00:00
Li Jianxuan 2239dfc991 增加了/Helper/View::setUserStorage()方法 2013-10-28 02:15:52 +00:00
wlx f2836ea683 change the reference type 2013-10-27 15:33:14 +00:00
wlx 9a1a5d8f82 #556, add westdc literatures show function 2013-10-27 06:04:30 +00:00
wlx 0a412c9aa4 #555, 移除姓名中的分号 2013-10-27 05:38:13 +00:00
wlx fcf96d5973 #554, 实现挂载目录的定时移除,每月运行一次,清除之前4个月到3个月之间的目录挂载 2013-10-27 05:29:22 +00:00
Li Jianxuan f31402c7be model/Review中添加注释 2013-10-26 09:24:03 +00:00
Li Jianxuan a83c3ee18f 修改RIS中导入处格式处理的bug 2013-10-24 09:54:24 +00:00
Li Jianxuan dacbff71c5 重命名Open/open.php 为 Open/Open.php 2013-10-24 09:23:31 +00:00
Li Jianxuan dc8074c1ac 修改Open/app.php 为 Open/App.php 2013-10-24 09:22:51 +00:00
wlx a4f5c42739 fix sql error 2013-10-22 14:42:10 +00:00
wlx 3628ece4c1 添加待处理文献功能 2013-10-22 13:40:41 +00:00
wlx 4c95532808 add LibRIS code 2013-10-22 12:12:24 +00:00
Li Jianxuan 768eb4d5fc 添加气科所网站链接 2013-10-18 09:40:33 +00:00
Li Jianxuan 9dbf7c54a2 添加了单位的链接 2013-10-18 09:35:01 +00:00
Li Jianxuan 9f749c11f9 修改首页数据的链接 2013-10-18 03:21:17 +00:00
Li Jianxuan a3551b20e8 添加了文献附件的下载功能 2013-10-18 02:33:40 +00:00
wlx 6330596132 fix error 2013-10-17 13:10:31 +00:00
wlx 31b5d91a3c 移除专题数据 2013-10-17 13:09:49 +00:00
wlx b3cb533382 change heihemetadata to normalmetadata 2013-10-17 13:08:23 +00:00
Li Jianxuan dda5be5a23 修改了导航内容 2013-10-17 08:23:39 +00:00
Li Jianxuan 1f5cf9aca8 修改首页排版 2013-10-17 03:15:08 +00:00
wlx 7be9301869 change config 2013-10-16 13:07:14 +00:00
wlx b85c97ae82 change include path 2013-10-16 13:01:00 +00:00
Li Jianxuan 3acef46848 更新了附件上传中的方法 2013-10-16 08:07:54 +00:00
Li Jianxuan 4f6750c7d2 修改关于我们等页面的文字 2013-10-16 06:24:39 +00:00
wlx 29557c14c1 fix condition judgement 2013-10-15 10:06:42 +00:00
Li Jianxuan f615c51fd0 修改search form位置,修改页脚 2013-10-15 10:06:42 +00:00
wlx c30f1c6826 修改文献类型的限制 2013-10-15 10:04:41 +00:00
Li Jianxuan cacf667bb5 更改三江源项目首页的布局和内容 2013-10-15 09:38:52 +00:00
Li Jianxuan 4d259cd05b 创建三江源项目代码分支 2013-10-15 06:42:22 +00:00
Li Jianxuan db7faba594 添加了单篇编辑的相关字段的添加和编辑 2013-10-15 06:30:51 +00:00
Li Jianxuan 3269c2fd8c 完善ris导入文献时的update功能 2013-10-15 01:36:49 +00:00
wlx d5034346f3 文献参数修改,调整入库策略 2013-10-13 14:41:35 +00:00
Li Jianxuan f06a9ef590 文献管理中添加了按记录时间排序的功能 2013-10-12 09:36:13 +00:00
Li Jianxuan c0a3ee9e35 文献管理中添加了ris格式导入功能 2013-10-12 09:26:10 +00:00
wlx 3d90704b51 修正文献类型编码 2013-10-12 04:10:22 +00:00
Li Jianxuan 4b98d2787f 修改参数bug 2013-10-12 03:59:53 +00:00
wlx 88c058854c 修复生成脚本中的路径错误 2013-10-11 01:34:00 +00:00
Li Jianxuan e5172936f0 添加了序号显示 2013-10-10 02:32:43 +00:00
Li Jianxuan d978e0e8c7 添加了数据文献的编辑功能,在文献列表页面添加了快速添加数据文献的按钮 2013-10-10 02:19:46 +00:00
Li Jianxuan e1f1a30f98 增加了数据文献的添加和移除功能 2013-10-09 10:02:11 +00:00
wlx e322e0cbe2 修改文字说明 2013-10-09 07:58:46 +00:00
Li Jianxuan 8caeae6913 修改了生成pdf时限制数量的判断规则 2013-10-09 03:46:33 +00:00
Li Jianxuan 7760e3fea6 view类中增加新功能,在生成pdf的时候添加数量控制 2013-10-09 03:22:27 +00:00
wlx ef18c978fe fix sql error 2013-10-08 10:34:14 +00:00
Li Jianxuan 99088092ac #552 修改状态读取字段 2013-10-08 08:45:58 +00:00
Li Jianxuan 5d2010ba1d #552 添加待处理列表功能 2013-10-08 03:35:49 +00:00
wlx 01f2117dbd 取消已发布数据的版本发布邮件通知 2013-10-01 06:26:03 +00:00
wlx 2b8c958bfa 修复数据文献管理错误 2013-09-30 04:21:11 +00:00
Li Jianxuan b6bf8b1d40 完善后台文献管理的相关代码 2013-09-30 03:20:50 +00:00
wlx d5e1dbcbee 修改离线服务记录的限定条件 2013-09-30 03:18:06 +00:00
Li Jianxuan 6a9bdd0109 添加了搜索和排序功能 2013-09-30 03:09:21 +00:00
Li Jianxuan 3f216e98bc 添加了文献管理中的备注字段,修改bibtex为ris 2013-09-30 02:16:30 +00:00
Li Jianxuan 2c5a014a47 修改申请查看的后台页面地址 2013-09-30 02:10:57 +00:00
Li Jianxuan 60da9b5ea6 修改了登录后自动跳转的链接. 2013-09-30 02:00:43 +00:00
Li Jianxuan 737a967a51 优化post页面的功能 2013-09-29 10:18:25 +00:00
Li Jianxuan 8ab7186eab 添加了多个上传自动提取文件名作为文献名称的功能,添加了文献删除的功能,优化页面跳转 2013-09-29 10:06:49 +00:00
Li Jianxuan 579a204c0f 更改view::addPaginator的调用参数 2013-09-29 07:02:23 +00:00
wlx 3f303c9b10 修改分类为literature 2013-09-28 06:16:55 +00:00
wlx 7aafcc16d1 change water sql 2013-09-28 03:24:44 +00:00
wlx b918763486 fix spell error 2013-09-28 03:23:34 +00:00
wlx 9a72b44369 fix error 2013-09-28 03:22:48 +00:00
wlx 10937d4d0d 添加WATER文献查看功能 2013-09-28 03:21:40 +00:00
wlx 512ec4b98c 修复无文献的编辑错误 2013-09-28 02:17:33 +00:00
wlx 0fc75d13f5 set no time limit 2013-09-27 08:10:03 +00:00
Li Jianxuan 3edc580c14 文献管理中添加了批量上传功能和文件管理功能 2013-09-27 07:21:14 +00:00
wlx f78bc77e7f comment the unused 2013-09-26 10:38:59 +00:00
Li Jianxuan 1118dca7ce 在数据管理导航中添加了文献管理 2013-09-26 08:33:52 +00:00
Li Jianxuan 31cd51a825 更新文件操作类,添加数据表对象 2013-09-26 08:29:28 +00:00
Li Jianxuan d7d7037a24 后台添加文献管理界面,添加了单篇文献添加和编辑功能 2013-09-26 08:26:29 +00:00
Li Jianxuan cd2c1c831e 修改重置申请表后用户点击的链接地址 2013-09-26 07:16:43 +00:00
wlx 7010683a9d 处理wsn数据生成 2013-09-26 05:11:12 +00:00
wlx 39720be5ad 添加判断是否存在wsn数据的函数 2013-09-26 05:10:30 +00:00
wlx 74ed000c6c 说明文字修改 2013-09-26 05:09:53 +00:00
wlx 7a3dcab48c 修改wsn数据处理地址 2013-09-26 04:11:27 +00:00
wlx f89fd45706 修改文字说明 2013-09-26 04:08:08 +00:00
wlx d5312fe506 修复后台显示多个相同申请表的错误 2013-09-26 03:42:05 +00:00
wlx 19ac21f7c2 修复订单处理中的逻辑错误,修改数据蓝中的相关文字说明 2013-09-26 03:28:43 +00:00
wlx 77efed4024 change search to heihe 2013-09-26 03:27:01 +00:00
wlx 32b2d59015 web执行与cli二合一 2013-09-25 15:19:16 +00:00
wlx c653459536 添加wsndata数据处理支持 2013-09-25 14:07:28 +00:00
Li Jianxuan 013b2cdb32 修改签字版pdf文件读取路径 2013-09-25 09:48:22 +00:00
Li Jianxuan 68004bd83e 增加提取UUID的流程 2013-09-25 09:44:21 +00:00
Li Jianxuan 1cbbb12f8f 修改生成数据的操作进行的流程,修改传递的参数 2013-09-25 09:30:39 +00:00
wlx 1fbbafd719 add use 2013-09-25 09:26:41 +00:00
Li Jianxuan a47bdff70b 删除错误的代码 2013-09-23 02:14:00 +00:00
Li Jianxuan ac3a194a34 修改了pdf生成页面的提示文字 2013-09-17 06:49:01 +00:00
wlx 35ede84804 修复后台错误 2013-09-16 04:13:53 +00:00
Li Jianxuan 9ed360237c 将数据生成接口移动到后台。 2013-09-12 08:06:05 +00:00
Li Jianxuan 256c4a3bc9 修改了导航内容 2013-09-11 08:12:29 +00:00
Li Jianxuan 03ca27e589 注释了数据收藏功能,修复待处理申请中的逻辑错误 2013-09-11 03:56:13 +00:00
wlx b63ab17ab3 change order to Order 2013-09-11 03:33:28 +00:00
wlx a1d032b371 add module path 2013-09-11 03:25:06 +00:00
Li Jianxuan e5cde968b7 已上传pdf后也添加了生成pdf的按钮 2013-09-11 01:42:47 +00:00
Li Jianxuan 0e4e1111f5 修改离线申请的pdf上传流程 2013-09-09 08:46:54 +00:00
Li Jianxuan 3ae66dd5fb 后台添加了申请表的查看和下载功能 2013-09-09 03:11:29 +00:00
wlx 9f7b4ff0f9 更新保密协议抬头 2013-09-09 03:04:24 +00:00
Li Jianxuan 232a08eeb2 修改了列表中applicationform字段的调用位置 2013-09-06 09:20:51 +00:00
Li Jianxuan b2b627c8db 修改了后台操作中相关申请表字段的读取 2013-09-06 08:15:16 +00:00
Li Jianxuan e93fe95ed6 将申请表上传的文件路径保存位置移动到offlineapp表 2013-09-06 07:56:41 +00:00
Li Jianxuan b0cb441d47 修改了project_leader在pdf中读取的bug,添加了提交离线申请后更新信息到用户表的功能 2013-09-06 07:05:33 +00:00
wlx e73480fb38 add smtp.name 2013-09-06 06:18:39 +00:00
Li Jianxuan b2a756cd87 修改了项目负责人字段的名称,在线申请表中也添加了项目负责人字段 2013-09-06 03:41:46 +00:00
Li Jianxuan c5503be20a 视图中删除了项目负责人信息的填写框 2013-09-05 09:14:26 +00:00
Li Jianxuan 3e881ec267 删除了项目负责人职称的填写 2013-09-05 09:14:00 +00:00
Li Jianxuan 7b150ee8ac 添加了作者同意用户申请时的wsn数据生成功能 2013-09-05 04:00:07 +00:00
Li Jianxuan 14c012c78f 添加了重置申请表的确认按钮 2013-09-05 01:57:37 +00:00
Li Jianxuan 04dbd9eeb9 后台离线申请管理中添加了上传申请表、重置申请表,查看申请表的功能 2013-09-05 01:56:30 +00:00
Li Jianxuan 3f4c945dbf 添加了用户上传申请表的功能 2013-09-05 01:54:50 +00:00
Li Jianxuan b062e86e04 文件类中添加了申请表上传的操作,完善Mail、View、dbh助手,完善Order中相关功能,添加Open模块 2013-09-05 01:52:27 +00:00
Li Jianxuan 48ea533412 在PDF类中添加了dataservice相关数据的页面操作,dataservice中添加了wsn数据读取时登录的判断 2013-09-05 01:50:29 +00:00
Li Jianxuan dc7be636fa 添加了后台的申请表上传和前台申请表上传控件的通用操作JS 2013-09-05 01:46:26 +00:00
Li Jianxuan 7c131daf89 完善了dataservice与wsn的对接,在pdf生成中,如果有子集选择数据,则添加到附件中 2013-08-29 07:53:31 +00:00
Li Jianxuan 6152c36246 对数据篮的数据提交过程进行了模块化改造 2013-08-28 09:50:08 +00:00
Li Jianxuan f66616d0dc hiwater\view中添加了dataservice判定 2013-08-28 02:50:40 +00:00
Li Jianxuan 643ccaad7a 在data/view页面中添加了dataservice 2013-08-28 02:49:07 +00:00
Li Jianxuan 849918408b 修改namespace 小写为大写,添加了历史offlineapp信息记录的调用 2013-08-28 01:49:27 +00:00
wlx 8329e665a8 move order directory to module 2013-08-28 01:45:09 +00:00
Li Jianxuan 9552d51276 修改了 namespace order中的若干操作,增加了pdf里的项目负责人和项目负责人职称字段 2013-08-28 01:41:49 +00:00
Li Jianxuan 7c6f3e3f0c 完成了dataservice中wsn接口的开发和调用。在heihe\view中添加了wsn数据选择子集的功能 2013-08-26 02:39:22 +00:00
Li Jianxuan a9a92ffacb 添加了时间选择插件 2013-08-26 02:35:28 +00:00
Li Jianxuan c4effc6c45 修改模块的命名空间,全面采用新模块名称 2013-08-26 02:33:44 +00:00
Li Jianxuan 644baf0a20 创建了新的邮件类,方便操作,并且添加了事件功能 2013-08-22 08:08:45 +00:00
Li Jianxuan 87f2aaa67d 更新助手类 2013-08-22 07:59:09 +00:00
Li Jianxuan e4ef7119fb 完善了文件输出类,修改了csv格式和乱码的问题 2013-08-19 08:17:50 +00:00
Li Jianxuan 5848e2206d 添加了Theme中的uploadify对象 2013-08-16 10:04:18 +00:00
Li Jianxuan 6c21107cc7 增加了后台上传申请表的功能 2013-08-16 09:59:59 +00:00
Li Jianxuan f217f41059 增加了有命名空间和事件驱动模式的新文件模块 2013-08-16 09:59:11 +00:00
Li Jianxuan 1353d1753c 增加了新版本uploadify,由于api与旧版不同,不能直接覆盖旧版,修改了dataservice获取时ajax状态的判断 2013-08-16 09:57:39 +00:00
Li Jianxuan 3f896af13f 增加Dataservice中关于WSN数据的操作,增加CURL类 2013-07-26 10:44:59 +00:00
Li Jianxuan b1abdbf7e9 更新了view页面JS,修改wsn数据交换方式为后台CURL方式 2013-07-26 10:43:30 +00:00
Li Jianxuan 53c820faa0 添加wsn数据选择弹窗控件和数据服务选择功能 2013-07-25 09:13:57 +00:00
Li Jianxuan eac0d60036 更新数据的PDF生成功能,更改添加到数据篮的后台处理 2013-07-24 10:11:14 +00:00
Li Jianxuan 7fe66c8b4b 更新助手类,添加新功能 getHostLink() 2013-07-24 10:09:19 +00:00
Li Jianxuan d33d9934be 修改表单验证流程 2013-07-22 09:16:18 +00:00
wlx 5bf297cb14 添加支持项目的排序功能 2013-07-22 05:23:41 +00:00
wlx 7df336092d 更新黑河协议 2013-07-22 04:12:11 +00:00
Li Jianxuan 77c95fde76 修改离线申请表,增加wsn数据来源判定 2013-07-19 10:19:59 +00:00
Li Jianxuan a0c8be3a73 初步完成数据收藏功能 2013-07-19 10:18:07 +00:00
wlx 57990bcd4a 修正doi操作逻辑 2013-07-19 09:06:37 +00:00
Li Jianxuan a7462e4921 #546 添加数据篮操作的相关类,初步模块化数据篮功能,修改视图中链接bug 2013-07-17 09:53:44 +00:00
wlx 8eee6b352a fix gn url error 2013-07-17 08:21:01 +00:00
wlx 985120fe69 #545, 初步实现黑河数据的协议分离 2013-07-17 08:04:33 +00:00
wlx 0cfab6f6aa fix url link error 2013-07-15 15:51:28 +00:00
Li Jianxuan 4d78dbd2ff 更新邮件模板类,将set簇方法和send() 进行了整合 2013-07-15 08:39:31 +00:00
Li Jianxuan 0a2f5cc4d1 修改后台元数据评审功能 2013-07-15 03:44:50 +00:00
wlx b7b62a9960 更新在线、离线视图 2013-07-14 10:04:11 +00:00
wlx b71f0c79e9 #539, 实现heihe专题的在线、离线列表查看 2013-07-14 09:58:14 +00:00
wlx 7f529491da #537,修复首页统计不准确的问题 2013-07-12 07:00:39 +00:00
Li Jianxuan 27082e4a26 #536 修改一处逻辑错误 2013-07-11 06:59:16 +00:00
Li Jianxuan 3f3198b355 #536 修改元数据默认的doi显示 2013-07-11 06:57:17 +00:00
Li Jianxuan e393f8085a 修改后台我负责的元数据管理功能,增加了分字段排序功能 2013-07-10 09:04:43 +00:00
Li Jianxuan c94f452eb6 删除了等待评审和我评审过的中的测试代码,增加登录跳转 2013-07-09 01:35:21 +00:00
Li Jianxuan 68d6f6a0bd 数据评审中增加了等待我评审的和我评审过的元数据查看功能 2013-07-08 10:15:39 +00:00
wlx ff27b69a51 修改默认使用声明中的数据中心名称 2013-07-08 01:40:46 +00:00
wlx 92971d651f 更新数据引用信息以及项目信息的支持 2013-07-02 06:44:01 +00:00
wlx 36ab07c9ea 更新数据保密协议以及使用协议 2013-07-02 03:32:51 +00:00
wlx d9d6177a91 增加doi的搜索功能 2013-06-29 16:15:23 +00:00
wlx 734327fa82 修改数据排序方式 2013-06-29 14:49:03 +00:00
wlx d8d1eb9135 更新专题数据展示 2013-06-29 14:37:27 +00:00
Li Jianxuan 790922246b 添加文献编辑中修改链接和类型的功能 2013-06-27 06:27:59 +00:00
wlx bf2e91f2c7 修改文字说明 2013-06-26 14:04:19 +00:00
wlx 196db663b2 次序调整 2013-06-26 02:35:00 +00:00
wlx 56fc5d0b13 修改数据协议模板,添加黑河计划数据管理中心 2013-06-26 02:32:52 +00:00
wlx 2d4c668c88 修改hiwater页面 2013-06-25 00:49:31 +00:00
Li Jianxuan 4e1b6e8241 修改了文献添加部分的操作 2013-06-24 08:58:21 +00:00
wlx 065d5988cf 列出所有待审数据 2013-06-21 09:27:55 +00:00
wlx 2c474145f5 修复不能发邮件的错误 2013-06-21 09:05:21 +00:00
wlx 2b369ef8c2 fix type error 2013-06-21 08:49:38 +00:00
wlx 2034f79a65 fix url error 2013-06-21 08:48:51 +00:00
wlx 0281f7f1b1 实现 #511, #514, #516. 问题数据检查 2013-06-20 15:20:29 +00:00
Li Jianxuan 97b8d9292f 修改登录页面表单,增加鼠标单击切换验证码的功能 2013-06-20 08:59:32 +00:00
wlx 7ec4679db8 切换normalmetadata为heihemetadata,并做页面的修改 2013-06-20 07:34:53 +00:00
wlx 7e77feb16d 添加了空白数据的处理 2013-06-20 06:52:40 +00:00
wlx bec46a5b16 修复右箭头乱跑的问题 2013-06-19 13:58:18 +00:00
wlx bbbe84061c #513, 修改站点名及logo 2013-06-19 13:40:46 +00:00
736 changed files with 48479 additions and 23603 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,13 @@
<?php
use Helpers\View as view;
use Files\Files;
use Files\Output;
use Files\Listener\FileListener;
use Order\Manager\Offlineapp;
use Order\Manager\Application;
use data\DataService;
use Mail\Mail;
class Admin_DownController extends Zend_Controller_Action
{
function preDispatch()
@ -8,6 +17,7 @@ class Admin_DownController extends Zend_Controller_Action
$this->messenger=$this->_helper->getHelper('FlashMessenger');
$this->view->messages = $this->messenger->getMessages();
$this->_helper->layout->setLayout('administry');
$this->view->Theme = new Theme();
}
function postDispatch()
{
@ -21,352 +31,35 @@ class Admin_DownController extends Zend_Controller_Action
//离线数据申请管理
function offlineappAction()
{
set_time_limit(0);
include_once("Dataorder.php");
$DO = new Dataorder($this->db);
$view =(int)$this->_getParam('view');
$start =(int)$this->_getParam('start');
$finish =(int)$this->_getParam('finish');
$cancel =(int)$this->_getParam('cancel');
$deny =(int)$this->_getParam('deny');
$page =(int)$this->_getParam('page');
$reset =(int)$this->_getParam('reset');
$status =(int)$this->_getParam('status');
$ac = $this->_getParam('ac');
$q = $this->_getParam('q');
if (!$page) $page=1;
if ($view) {
//查看此次申请的pdf
$sql="select * from offlineapp where id=?";
$row=$this->db->fetchRow($sql,array($view));
$content=file_get_contents($this->view->config->offline->savepath."/".$row['pdflink']);
header("Content-Disposition: inline; filename=".$row['pdflink']);
header("Content-Type:application/pdf");
echo $content;
die(); // do not change current html output
} elseif ($start) {
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$submd=$this->view->config->sub->metadata;
$page = $this->_request->getParam('page');
$sql="update dataorder set status=4,ts_received=now() where offlineappid=?";
$this->db->query($sql,array($start));
$sql="select * from offlineapp where id=?";
$row=$this->db->fetchRow($sql,array($start));
$username=$row['username'];
//发送用户邮件进行信息提示和说明
$mail = new WestdcMailer($this->view->config->smtp);
$datalist=str_replace(";","\n",$row['datalist']);
$mailtp=new EmailText($this->db,'offline-start',array('user'=>$username,'datalist'=>$datalist));
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$mail->addTo($row['email']);
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->send();
$sql="select pdflink from offlineapp where id=?";
$row=$this->db->fetchRow($sql,array($start));
$filecontent=file_get_contents($this->view->config->offline->savepath."/".$row['pdflink']);
//对每条数据的管理员用户发送相应的邮件通知,同一用户的邮件需要合并
//需要取出对应数据的标题、uuid以及对应的作者的email一条数据可能有多个作者一次申请可能有多条数据对应同一个作者
//邮件中应提示用户可以选择是否委托给数据中心进行管理(这样以后就不接受相应的管理邮件,但用户仍然可以自主取消此选择)
$uuid_done="";
// 0. 处理专题数据集
$sql="select s.admin_email as email,m.title,d.uuid,s.title as sourcetitle from dataorder d left join datasource ds on d.uuid=ds.uuid
left join source s on ds.sourceid=s.id left join metadata m on d.uuid=m.uuid
where d.offlineappid=? and s.admin_status=1 and d.uuid<>all(s.exclude_data)
order by s.admin_email,m.title";
$rows=$this->db->fetchAll($this->db->quoteInto($sql,$start));
$tmp_email='';
$data='';
$source='';
foreach($rows as $row)
if($ac == "pending")
{
if ($tmp_email!=$row['email'])
$keyword = "";
if(!empty($q))
{
if (!empty($data))
{
//发送之前的用户申请审核邮件
unset($mail);
$mail = new WestdcMailer($this->view->config->smtp);
$mailtp=new EmailText($this->db,'offline-start-subject',array('user'=>$username,'datalist'=>$data,'source'=>$source));
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$mail_addrs=explode(",",substr($tmp_email,1,-1));
$mail->addTo($mail_addrs);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf');
$mail->send();
$data="";
$source="";
}
$tmp_email=$row['email'];
$source=$row['sourcetitle'];
}
$data.=" 数据名称:".$row['title']."\n";
$data.=" \t数据地址http://westdc.westgis.ac.cn/data/".$row['uuid']."\n\n";
$uuid_done.="'".$row['uuid']."',";
}
//发送最后一封邮件
if (!empty($data))
{
unset($mail);
$mail = new WestdcMailer($this->view->config->smtp);
$mailtp=new EmailText($this->db,'offline-start-author',array('user'=>$username,'datalist'=>$data,'source'=>$source));
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$mail_addrs=explode(",",substr($tmp_email,1,-1));
$mail->addTo($mail_addrs);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf');
$mail->send();
$keyword = $q;
}
// 1. 处理有数据作者且自行管理的数据并且未被0处理过的
$sql="select u.email,m.title,d.uuid,a.activation from dataorder d left join mdstatus s on d.uuid=s.uuid left join users u on s.userid=u.id
left join metadata m on m.uuid=d.uuid left join mdauthor a on a.uuid=d.uuid
where d.offlineappid=? and s.status=6 and a.userid=s.userid ";
if (!empty($uuid_done)) $sql.=" and d.uuid not in (".substr($uuid_done,0,-1).") ";
$sql.=" order by u.email,m.title";
$rows=$this->db->fetchAll($this->db->quoteInto($sql,$start));
$tmp_email='';
$data='';
foreach($rows as $row)
{
if ($tmp_email!=$row['email'])
{
if (!empty($data))
{
//发送之前的用户申请审核邮件
unset($mail);
$mail = new WestdcMailer($this->view->config->smtp);
$mailtp=new EmailText($this->db,'offline-start-author',array('user'=>$username,'datalist'=>$data));
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$mail->addTo($tmp_email);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf');
$mail->send();
$data="";
}
$tmp_email=$row['email'];
}
$data.=" 数据名称:".$row['title']."\n";
$data.=" \t数据地址http://westdc.westgis.ac.cn/data/".$row['uuid']."\n";
$data.=" \t如您不想收到此类数据申请审核的邮件,您可以将该数据委托给数据中心代为审核,委托后您也可以随时撤销此委托以便继续自行管理。\n";
$data.=" \t如想委托给数据中心请访问此网址http://westdc.westgis.ac.cn/author/delegate/uuid/".$row['uuid']."\n";
$data.=" \t撤销委托方法:进入数据中心->数据作者->我的数据,在该数据条上撤销委托。\n\n";
$uuid_done.="'".$row['uuid']."',";
}
//发送最后一封邮件
if (!empty($data))
{
unset($mail);
$mail = new WestdcMailer($this->view->config->smtp);
$mailtp=new EmailText($this->db,'offline-start-author',array('user'=>$username,'datalist'=>$data));
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$mail->addTo($tmp_email);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf');
$mail->send();
}
$rows = $DO->fetchAllOfflineApp(3,$keyword);
// 2. 处理委托数据中心进行管理的数据
$sql="select m.title,d.uuid from dataorder d left join mdstatus s on d.uuid=s.uuid left join metadata m on m.uuid=d.uuid
left join datasource ds on ds.uuid=d.uuid left join source on ds.sourceid=source.id
where d.offlineappid=? and (s.status=7 or source.admin_status=2) ";
if (!empty($uuid_done)) $sql.=" and d.uuid not in (".substr($uuid_done,0,-1).") ";
$sql.=" order by m.title";
$rows=$this->db->fetchAll($this->db->quoteInto($sql,$start));
$data="";
foreach($rows as $row)
{
$data.=" 数据名称:".$row['title']."\n";
$data.=" \t数据地址http://westdc.westgis.ac.cn/data/".$row['uuid']."\n\n";
$uuid_done.="'".$row['uuid']."',";
}
if (!empty($data))
{
unset($mail);
$mail = new WestdcMailer($this->view->config->smtp);
$mailtp=new EmailText($this->db,'offline-start-dcadmin',array('user'=>$username,'datalist'=>$data));
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$addrs=array();
$addrs[] = 'nztong@lzb.ac.cn';
$addrs[] = 'wjian@lzb.ac.cn';
$addrs[] = 'lixin@lzb.ac.cn';
$mail->addTo($addrs);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf');
$mail->send();
}
// 3. 未认证的数据即无明确的数据管理者从元数据提取对应管理者的email信息进行管理
//无数据作者的数据,根据元数据中的联系人信息发送相应的管理邮件,发送策略是多发还是少发?
//发送管理邮件同时建议用户认证为数据的作者,可以有更多的管理选择,同时邮件中应该有详细的说明为什么会收到此邮件
$sql="select distinct res.email,d.uuid,m.title,role.role from dataorder d left join role on d.uuid=role.uuid left join responsible res on role.resid=res.id
left join metadata m on d.uuid=m.uuid where length(res.email)>4 and d.offlineappid=?
and role.role in ('pointOfContact','custodian','resourceProvider','owner','distributor','publisher','author')";
if (!empty($uuid_done)) $sql.=" and d.uuid not in (".substr($uuid_done,0,-1).") ";
$sql.=" order by m.title,res.email";
$rows=$this->db->fetchAll($this->db->quoteInto($sql,$start));
unset($addrs);
$md=array();
$tmp_title='';
$role=array();
$role['pointOfContact']=array();
$role['custodian']=array();
$role['resourceProvider']=array();
$role['owner']=array();
$role['distributor']=array();
$role['publisher']=array();
$role['author']=array();
$single=array();
foreach($rows as $row)
{
if ($tmp_title!=$row['title'])
{
if (count($role))
{
$single['role']=$role;
$md[]=$single;
}
$single['title']=$row['title'];
$single['uuid']=$row['uuid'];
$tmp_title=$row['title'];
$role=array();
$role['pointOfContact']=array();
$role['custodian']=array();
$role['resourceProvider']=array();
$role['owner']=array();
$role['distributor']=array();
$role['publisher']=array();
$role['author']=array();
}
if ($row['role']=='resourceProvider')
{
$role['resourceProvider'][]=$row['email'];
} elseif ($row['role']=='custodian') {
$role['custodian'][]=$row['email'];
} elseif ($row['role']=='pointOfContact') {
$role['pointOfContact'][]=$row['email'];
} elseif ($row['role']=='owner') {
$role['owner'][]=$row['email'];
} elseif ($row['role']=='distributor') {
$role['distributor'][]=$row['email'];
} elseif ($row['role']=='publisher') {
$role['publisher'][]=$row['email'];
} elseif ($row['role']=='author') {
$role['author'][]=$row['email'];
}
}
if (count($role))
{
$single['role']=$role;
$md[]=$single;
}
//再循环一次提取最高权限email组并发送管理邮件
$newmd=array();
$single=array();
foreach($md as $row)
{
if (count($row['role']))
{
$addrs=array();
if (count($row['role']['pointOfContact']))
{
$addrs=$row['role']['pointOfContact'];
} elseif (count($row['role']['custodian'])) {
$addrs=$row['role']['custodian'];
} elseif (count($row['role']['resourceProvider'])) {
$addrs=$row['role']['resourceProvider'];
} elseif (count($row['role']['owner'])) {
$addrs=$row['role']['owner'];
} elseif (count($row['role']['distributor'])) {
$addrs=$row['role']['distributor'];
} elseif (count($row['role']['publisher'])) {
$addrs=$row['role']['publisher'];
} elseif (count($row['role']['author'])) {
$addrs=$row['role']['author'];
}
$single['uuid']=$row['uuid'];
$single['title']=$row['title'];
foreach($addrs as $email)
{
$single['email']=$email;
//$newmd[]=$single;
$newmd['uuid'][]=$row['uuid'];
$newmd['title'][]=$row['title'];
$newmd['email'][]=$email;
}
}
}
//按照email排序
array_multisort($newmd['email'],$newmd['uuid'],$newmd['title']);
$tmp_email='';
$data='';
foreach($newmd['email'] as $k=>$row)
{
if ($tmp_email!=$row)
{
if (!empty($data))
{
unset($mail);
$mail = new WestdcMailer($this->view->config->smtp);
$mailtp=new EmailText($this->db,'offline-start-mdadmin',array('user'=>$username,'datalist'=>$data));
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$mail->addTo($tmp_email);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf');
$mail->send();
$data='';
}
$tmp_email=$row;
}
$data.=" 数据名称:".$newmd['title'][$k]."\n";
$data.=" \t数据地址http://westdc.westgis.ac.cn/data/".$newmd['uuid'][$k]."\n";
$data.=" \t如您不想收到此类数据申请审核的邮件您可以在按如下操作办法进行处理1. 申请成为该数据作者2. 将该数据委托给数据中心代为审核,委托后您也可以随时撤销此委托以便继续自行管理。\n";
$data.=" \t如要申请成为该数据作者:进入数据中心->数据作者->数据认证,查找到对应的数据后,在其下方点击申请认证即可。\n\n";
}
if (!empty($data))
{
unset($mail);
$mail = new WestdcMailer($this->view->config->smtp);
$mailtp=new EmailText($this->db,'offline-start-mdadmin',array('user'=>$username,'datalist'=>$data));
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setBodyText($mailtp->getBody());
$mail->setSubject($mailtp->getSubject());
$mail->addTo($tmp_email);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->createAttachment($filecontent,'application/octet-stream',Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'offlineapp.pdf');
$mail->send();
}
//提示信息
$data = array(
'started' => $start,
'msg' => "该离线数据已经开始处理,并发送邮件给申请人以及数据管理委员会,请在处理完成后点击“完成”。"
);
$this->jsonexit($data);
view::addPaginator($rows,$this,10);
return true;
}
//$this->messenger->addMessage('提示信息:该离线数据已经开始处理,并发送邮件给申请人以及数据管理委员会,请在处理完成后点击“完成”。');
//$this->_redirect('/admin/down/offlineapp/'.$page);
} elseif ($finish) {
if (!$page) $page=1;
if ($finish) {
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
@ -388,9 +81,14 @@ class Admin_DownController extends Zend_Controller_Action
//$this->_redirect('/admin/down/offlineapp/'.$page);
}
//如果是wsn数据则生成数据
//wsn数据在ftp服务器端进行处理
/*$dataservice = new DataService();
@$dataservice->makeWsnData();*/
$sql="update dataorder set status=5,ts_approved=now() where offlineappid=?";
$this->db->query($sql,array($finish));
$sql="update offlineapp set ts_approved=now() where id=? and ts_approved is null";
$sql="update offlineapp set ts_approved=now(),status=5 where id=? and ts_approved is null";
$this->db->query($sql,array($finish));
$sql="select * from offlineapp where id=?";
$row=$this->db->fetchRow($sql,array($finish));
@ -401,19 +99,20 @@ class Admin_DownController extends Zend_Controller_Action
foreach($rs as $data) {
if ($data['host']=='ftp1.westgis.ac.cn')
$has_ftp1=true;
if ($data['host']=='ftp2.westgis.ac.cn')
if ($data['host']=='ftp.sanjiangyuan.org.cn')
$has_ftp2=true;
// deal with ftp.westgis.ac.cn, use g6 to add path
// todo ...
}
//deal with ftp1&ftp2 account, for offline data
if ($has_ftp1 || $has_ftp2) {
$password=md5('westdc'.$row['userid'].rand(1000,9999));
if ($has_ftp1)
{
$user=(object)array("id"=>$row['userid'],
"username"=>"westdc_".$row['userid'],
"username"=>"sjy_".$row['userid'],
"password"=>$password,
"time"=>date('Y-m-d H:i:s', strtotime('+2 week')),
//"path"=>$path,
@ -440,12 +139,12 @@ class Admin_DownController extends Zend_Controller_Action
if ($has_ftp2)
{
$user=(object)array("id"=>$row['userid'],
"username"=>"westdc_".$row['userid'],
"username"=>"sjy_".$row['userid'],
"password"=>$password,
"time"=>date('Y-m-d H:i:s', strtotime('+2 week')),
//"path"=>$path,
"param"=>"offlineappid=".$finish,
"host"=>'ftp2.westgis.ac.cn',
"host"=>'ftp.sanjiangyuan.org.cn',
"maxdata"=>$this->view->config->download->max,
"datacount"=>1 //represent one offline application
);
@ -468,10 +167,10 @@ class Admin_DownController extends Zend_Controller_Action
$ftphost='ftp://ftp1.westgis.ac.cn';
} else if (!$has_ftp1 && $has_ftp2)
{
$ftphost='ftp://ftp2.westgis.ac.cn';
$ftphost='ftp://ftp.sanjiangyuan.org.cn';
} else if ($has_ftp1 && $has_ftp2)
{
$ftphost='ftp://ftp1.westgis.ac.cn 以及 ftp://ftp2.westgis.ac.cn';
$ftphost='ftp://ftp1.westgis.ac.cn 以及 ftp://ftp.sanjiangyuan.org.cn';
}
//发送用户邮件进行信息提示和说明
$mail = new WestdcMailer($this->view->config->smtp);
@ -480,9 +179,9 @@ class Admin_DownController extends Zend_Controller_Action
array('user'=>$row['username'],'datalist'=>str_replace(";","\n",$row['datalist']),
'ftpuser'=>$user->username,'ftppwd'=>$proftp->pwd,'ftptime'=>$proftp->time,'ftphost'=>$ftphost));
$mail->setBodyText($mailtp->getBody());
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setFrom($this->view->config->service->email,'数据服务组');
$mail->addTo($row['email']);
$mail->addCc($this->view->config->service->email,'西部数据中心服务组');
$mail->addCc($this->view->config->service->email,'数据服务组');
$mail->setSubject($mailtp->getSubject());
$mail->send();
} //offline deal
@ -508,85 +207,25 @@ class Admin_DownController extends Zend_Controller_Action
return true;
}
//$this->_redirect('/admin/down/offlineapp/'.$page);
} elseif ($cancel) {
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
//取消=删除?
//用户提出申请的取消操作
//$sql="update dataorder set status=-1 where (status=3 or status=4) and userid=?";
$sql="delete from dataorder where offlineappid=? and (status=3 or status=4)";
$this->db->query($sql,array($cancel));
$sql="delete from offlineapp where id=?";
$this->db->query($sql,array($cancel));
$data = array(
'msg' => '已删除该用户离线申请',
'finish' =>$cancel
);
} //通过
$this->jsonexit($data);
return true;
//$this->messenger->addMessage('提示信息:已删除该用户离线申请。');
//$this->_redirect('/admin/down/offlineapp/'.$page);
} elseif ($deny) {
elseif ($deny) {
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$sql="update dataorder set status=-1 where offlineappid=? and (status=3 or status=4)";
$this->db->query($sql,array($deny));
$sql="update offlineapp set ts_approved=now(),status=-1 where id=? and ts_approved is null";
$this->db->query($sql,array($deny));
$data = array(
'msg' => '已删除该用户离线申请',
'finish' =>$cancel
'finish' => $deny
);
$this->jsonexit($data);
return true;
//$this->messenger->addMessage('提示信息:已拒绝该用户离线申请。');
//$this->_redirect('/admin/down/offlineapp/'.$page);
} else if($reset){
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
if($reset < 0)
{
$fortime = date('Y-m-d',(time()-24*3600*365));
$sql="update dataorder set status=1 where status=3 and ts_created < '$fortime'";
if($this->db->exec($sql)>0)
{
$this->messenger->addMessage('已经成功重置了 '.$fortime.' 前的所有申请');
$this->_redirect('/admin/down/offlineapp/');
}
}
else if($reset > 0)
{
$sql="update dataorder set status='1' where (status='3' or status='4') and offlineappid='$reset'";
if($this->db->exec($sql)>0)
{
$data = array(
'msg' => '已经成功对该申请重置',
);
$this->jsonexit($data);
return true;
//$this->messenger->addMessage('已经成功对该申请重置');
//$this->_redirect('/admin/down/offlineapp/');
}
else {
$data = array(
'error' => '没有找到对应数据,无法进行重置,可能是旧记录没有匹配数据造成的',
);
$this->jsonexit($data);
return true;
//$this->messenger->addMessage('没有找到对应数据,无法进行重置,可能是旧记录没有匹配数据造成的');
//$this->_redirect('/admin/down/offlineapp/');
}
}//elseif
//if
}//reset
}//拒绝
$keyword = "";
if(!empty($q))
@ -594,13 +233,8 @@ class Admin_DownController extends Zend_Controller_Action
$keyword = $q;
}
$sta_def = 0;
if(!empty($status))
{
$sta_def = $status;
}
$rows = $DO->fetchAllOfflineApp($sta_def,$keyword);
$application = new \Order\Manager\Application;
$rows = $application->fetchByData($keyword);
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($page);
@ -610,6 +244,68 @@ class Admin_DownController extends Zend_Controller_Action
$this->view->paginator=$paginator;
}
//上传申请表
function uploadapplicationformAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$id = $this->_getParam('orderid');
if(empty($id))
{
$this->jsonexit(array('error'=>"参数错误"));
return true;
}
$files = new Files();
$FileListener = new FileListener();
@$files->events()->attachAggregate($FileListener);
$statu = $files->uploadApplicationForm($_FILES['Filedata'],$id);
if(isset($statu['error']))
{
$this->jsonexit($statu);
return true;
}else{
$sql = "UPDATE offlineapp SET applicationform='{$statu['file']}' WHERE id=$id";
if($this->db->exec($sql))
{
$this->jsonexit(array("success"=>1));
return true;
}else{
$this->jsonexit(array('error'=>"数据库记录更新失败".$sql));
return true;
}
}
}
public function applicationformAction()
{
$ac = $this->_getParam('ac');
if($ac == "view")
{
$link = $this->_getParam('link');
$content=file_get_contents($link);
header("Content-Disposition: inline; filename=applicationform.pdf");
header("Content-Type:application/pdf");
echo $content;
exit();
}
if($ac == "download")
{
$link = $this->_getParam('link');
$content=file_get_contents($link);
$output = new Output();
$output->pushDownload($content,"申请表.pdf",'pdf');
exit();
}
}
//离线数据服务记录
function offlineAction()
{
@ -622,6 +318,7 @@ class Admin_DownController extends Zend_Controller_Action
$undelete=$this->_getParam('undelete');
$emaillist=$this->_getParam('emaillist');
$monthreport=$this->_getParam('monthreport');
$submd=$this->view->config->sub->metadata;
if ($add) {
$form=new OfflinelogForm();
@ -631,8 +328,10 @@ class Admin_DownController extends Zend_Controller_Action
if ($form->isValid($formdata)) {
$uploadedData = $form->getValues();
$pdf = basename($form->pdf->getFileName());
$sql="insert into offlineapp (username,email,unit,phone,address,postcode,project,pdflink,datalist,ts_created,ts_approved) values(?,?,?,?,?,?,?,?,?,?,now())";
$this->db->query($sql,array($formdata['username'],$formdata['email'],$formdata['unit'],$formdata['phone'],$formdata['address'],$formdata['postcode'],$formdata['project'],$pdf,$formdata['datalist'],$formdata['ts_approved']));
$sql="insert into offlineapp (username,email,unit,phone,address,postcode,project,pdflink,datalist,ts_created,ts_approved,project_id,project_title,project_type) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$this->db->query($sql,array($formdata['username'],$formdata['email'],$formdata['unit'],$formdata['phone'],$formdata['address'],$formdata['postcode'],
$formdata['project'],$pdf,$formdata['datalist'],$formdata['ts_approved']),$formdata['ts_approved'],
$formdata['project_id'],$formdata['project_title'],$formdata['project_type']);
$this->messenger->addMessage('提示信息:您已经成功添加该离线服务记录。');
$this->_redirect('/admin/down/offline');
} else {
@ -653,11 +352,14 @@ class Admin_DownController extends Zend_Controller_Action
$pdf = basename($form->pdf->getFileName());
$sql="update offlineapp set username=?,email=?,unit=?,phone=?,address=?,postcode=?,project=?,";
if ($form->pdf->isUploaded()) $sql.="pdflink=?,";
$sql.="datalist=?,ts_approved=? where id=?";
$sql.="datalist=?,ts_approved=?,project_id=?,project_title=?,project_type=? where id=?";
$param=array($formdata['username'],$formdata['email'],$formdata['unit'],$formdata['phone'],$formdata['address'],$formdata['postcode'],$formdata['project']);
if ($form->pdf->isUploaded()) $param[]=$pdf;
$param[]=$formdata['datalist'];
$param[]=$formdata['ts_approved'];
$param[]=$formdata['project_id'];
$param[]=$formdata['project_title'];
$param[]=$formdata['project_type'];
$param[]=$edit;
$this->db->query($sql,$param);
$this->messenger->addMessage('提示信息:您已经编辑添加该记录。');
@ -708,21 +410,13 @@ class Admin_DownController extends Zend_Controller_Action
$this->_helper->viewRenderer->setNoRender();
$sql="select * from offlineapp where ts_approved is not null and pdflink is not null order by ts_created desc";
$rows=$this->db->fetchAll($sql);
foreach($rows as $row){
$content.='"'.$row['username'].'","'.$row['unit'].'","'.$row['phone'].'","'.$row['address'].'","'.$row['postcoe'].'","'.str_replace("\"","'",$row['project']).'","'.str_replace("\"","'",$row['datalist']).'","'.$row['email'].'",'.$row['ts_created']."\n";
}
$this->getResponse()->setHeader('Content-Type', 'application/octet-stream')
->setHeader('Content-Disposition','attachment; filename="offlineapp.csv"')
->setHeader('Content-Length', strlen($content))
->setHeader('Content-Type','application/force-download')
->setHeader('Content-Type','application/download')
->setHeader('Content-Description','File Transfer')
->setHeader('Content-Transfer-Encoding','binary')
->setHeader('Expires',0)
->setHeader('Cache-Control','must-revalidate, post-check=0, pre-check=0')
->setHeader('Pragma','public')
->setBody($content);
foreach($rows as $row){
$content.='"'.$row['username'].'","'.$row['unit'].'","'.$row['phone'].'","'.$row['address'].'","'.$row['postcode'].'","'.str_replace("\"","'",$row['project']).'","'.str_replace("\"","'",$row['datalist']).'","'.$row['email'].'",'.$row['ts_created']."\r\n";
}
$output = new Output($this->db);
$output->Download("offlineapp.csv",$content,"string");
} //下载离线服务记录
else if ($update) {
@ -765,9 +459,9 @@ class Admin_DownController extends Zend_Controller_Action
{
$sql = "select distinct(t.*) from
(
select u.email from dataorder d left join users u on d.userid=u.id where (d.status=0 or d.status=5)
select u.email from dataorder d left join users u on d.userid=u.id where (d.status=0 or d.status=5) and d.uuid in (select uuid from $submd)
union
select o.email from offlineapp o where o.userid is null and o.email is not null
select o.email from offlineapp o where o.userid is null and o.email is not null and o.id in (select offlineappid from dataorder where uuid in (select uuid from $submd))
) as t";
$re = $this->db->query($sql);
$rows = $re->fetchAll();
@ -814,9 +508,15 @@ class Admin_DownController extends Zend_Controller_Action
//设置当前活动sheet的名称
$objActSheet->setTitle('离线服务记录');
if (date('m')==1)
{
$ym=(date('Y')-1).'-12-1';
} else {
$ym=date('Y-').(date('m')-1).'-1';
}
$sql="select o.username,o.unit,o.phone,o.address,o.postcode,o.project,regexp_replace(o.datalist,'\(.+?MB\)','','g') as datalist,date(o.ts_approved) as date,o.email,o.project_id,o.project_type,o.project_title,sum(m.filesize) as filesize
from offlineapp o left join dataorder d on o.id=d.offlineappid left join metadata m on d.uuid=m.uuid
where o.ts_approved>='".date('Y-').(date('m')-1)."-1' and o.ts_approved<'".date('Y-m')."-1' and o.pdflink is not null and o.ts_approved is not null and d.status=5 group by o.id order by o. ts_approved
where o.ts_approved>='".$ym."' and o.ts_approved<'".date('Y-m')."-1' and o.pdflink is not null and o.ts_approved is not null and d.status=5 group by o.id order by o. ts_approved
";
$re = $this->db->query($sql);
$rows = $re->fetchAll();
@ -845,7 +545,7 @@ class Admin_DownController extends Zend_Controller_Action
$objActSheet->setTitle('在线服务记录');
$sql="select o.username,o.unit,o.phone,o.address,o.postcode,o.project,date(o.ts_created) as date,o.email,o.project_id,o.project_type,o.project_title,m.filesize,m.title
from onlineapp o left join dataorder d on o.id=d.onlineappid left join metadata m on d.uuid=m.uuid
where o.ts_created>='".date('Y-').(date('m')-1)."-1' and o.ts_created<'".date('Y-m')."-1' and d.status=0 order by o. ts_created
where o.ts_created>='".$ym."' and o.ts_created<'".date('Y-m')."-1' and d.status=0 order by o. ts_created
";
$re = $this->db->query($sql);
$rows = $re->fetchAll();
@ -902,28 +602,28 @@ class Admin_DownController extends Zend_Controller_Action
->setBody($objWriter->save('php://output'));*/
}
$select=$this->db->select();
$select->from('offlineapp')->where('ts_approved is not null')->where('pdflink is not null')->where('status=0')->order('ts_created desc');
$paginator = Zend_Paginator::factory($select);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage($this->view->config->page->max);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
$this->view->paginator=$paginator;
$this->view->page = $this->_getParam('page');
$application = new Application();
$this->view->q = $application->keyword = $this->_getParam('q');
$application->filter = $this->_getParam('filter');
view::addPaginator($application->passed(),$this,20);
return true;
}
//在线数据下载情况仅针对onlineapp表自2011-9-8开始记录。
function onlineAction()
{
$show=(int)$this->_getParam('show');
$delete=(int)$this->_getParam('delete');
$submd=$this->view->config->sub->metadata;
if(empty($show) && empty($delete))
{
$select=$this->db->select();
$select->from('onlineapp as o',array('id','userid','unit','username','ts_created','project','project_id','project_type','project_title'))
->join('metadata as m', 'o.uuid = m.uuid', array('title','uuid'))
->join($submd.' as m', 'o.uuid = m.uuid', array('title','uuid'))
->where('o.id in (select distinct(onlineappid) from dataorder)')
->order('o.id desc');
$paginator = Zend_Paginator::factory($select);
@ -956,7 +656,7 @@ class Admin_DownController extends Zend_Controller_Action
$sql ="select o.*,u.username as uname,u.id as uid,m.title,m.uuid
from onlineapp as o
left join users as u on u.id = o.userid
left join metadata as m on o.uuid = m.uuid
left join $submd as m on o.uuid = m.uuid
where o.id=?";
$result =$this->db->query($sql,$show);
$rows = $result->fetch();
@ -971,6 +671,7 @@ class Admin_DownController extends Zend_Controller_Action
$show =(int)$this->_getParam('show');
$search = $this->_getParam('search');
$keyword = $this->view->keyword = $this->_getParam('keyword');
$submd=$this->view->config->sub->metadata;
if(empty($show))
{
@ -978,6 +679,7 @@ class Admin_DownController extends Zend_Controller_Action
$select->from('dataorder as o','count(o.id) as num')
->join('users as u', 'u.id = o.userid', array('realname','id as uid','unit'))
->where('o.status=0 or o.status=5')
->where("o.uuid in (select uuid from $submd)")
->where('o.userid = u.id');
if(!empty($search) && !empty($keyword))
{
@ -1003,7 +705,7 @@ class Admin_DownController extends Zend_Controller_Action
{
$select=$this->db->select();
$select->from('dataorder as o',array('id','ts_created','userid','offlineappid','onlineappid'))
->joinLeft('metadata as m', 'o.uuid = m.uuid', array('title','uuid','filesize'))
->joinLeft($submd.' as m', 'o.uuid = m.uuid', array('title','uuid','filesize'))
->joinLeft('users as u','u.id=o.userid',array('realname as username'))
->where('o.userid = ?', $show)
->where('o.status=0 or o.status=5')
@ -1030,12 +732,13 @@ class Admin_DownController extends Zend_Controller_Action
$show = $this->_getParam('show');
$search = $this->_getParam('search');
$keyword = $this->view->keyword = $this->_getParam('keyword');
$submd=$this->view->config->sub->metadata;
if(empty($show))
{
$select=$this->db->select();
$select->from('dataorder as o','count(o.id) as num')
->join('metadata as m', 'o.uuid = m.uuid', array('title','uuid'))
->join($submd.' as m', 'o.uuid = m.uuid', array('title','uuid'))
->where('o.uuid = m.uuid and (o.status=0 or o.status=5)');
if(!empty($search) && !empty($keyword))
{
@ -1061,7 +764,7 @@ class Admin_DownController extends Zend_Controller_Action
{
$select=$this->db->select();
$select->from('dataorder as o',array('ts_created','ts_created','offlineappid','onlineappid'))
->join('metadata as m', 'o.uuid = m.uuid', array('title','uuid'))
->join($submd.' as m', 'o.uuid = m.uuid', array('title','uuid'))
->join('users as u', 'o.userid=u.id',array('id as userid','username','realname'))
->where('m.uuid = ? and (o.status=0 or o.status=5)', $show)
->order('o.id desc');
@ -1072,7 +775,7 @@ class Admin_DownController extends Zend_Controller_Action
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
$this->view->paginator=$paginator;
$sql="select title,uuid from metadata where uuid='$show'";
$sql="select title,uuid from $submd where uuid='$show'";
$re=$this->db->query($sql);
$t=$re->fetch();
$this->view->infos=$t;
@ -1129,7 +832,7 @@ class Admin_DownController extends Zend_Controller_Action
$sql = "select distinct u.email
from dataorder d
LEFT JOIN users u on d.userid = u.id
WHERE u.email IS NOT NULL
WHERE u.email IS NOT NULL and d.status in (0,5) and d.ts_approved is not null
AND d.uuid=?
GROUP BY u.email";
@ -1150,7 +853,7 @@ class Admin_DownController extends Zend_Controller_Action
foreach($mails as $k=>$v)
{
$mail=new WestdcMailer($this->view->config->smtp);
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->setFrom($this->view->config->service->email,'数据服务组');
$mail->setBodyText($body);
$mail->setSubject($title);
$mail->addTo($v['email']);

View File

@ -42,7 +42,7 @@ class Admin_NewsController extends Zend_Controller_Action
left join ".$News->tbl_catalog." ct on ct.aid=n.id
left join ".$News->tbl_categorys." c on c.id = ct.cid
LEFT JOIN users u ON n.userid=u.id
WHERE c.id='$type' AND n.title IS NOT NULL order by n.ts_created desc";
WHERE c.id='$type' AND n.title IS NOT NULL and n.sub='".$this->view->config->sub->news."' order by n.ts_created desc";
}else
{
$sql = "select
@ -51,7 +51,7 @@ class Admin_NewsController extends Zend_Controller_Action
left join ".$News->tbl_catalog." ct on ct.aid=n.id
left join ".$News->tbl_categorys." c on c.id = ct.cid
LEFT JOIN users u ON n.userid=u.id
WHERE n.title IS NOT NULL
WHERE n.title IS NOT NULL and n.sub='".$this->view->config->sub->news."'
GROUP BY n.id
ORDER BY n.ts_created desc
";
@ -85,186 +85,6 @@ class Admin_NewsController extends Zend_Controller_Action
$this->view->deepField = $category->DeepTitle;
}//newslistAction 新闻列表
function catlogAction()
{
$add = $this->_request->getParam('add');
$submit = $this->_request->getParam('submit');
$delete = $this->_request->getParam('delete');
$edit = $this->_request->getParam('edit');
$News = new Archive($this->db);
if($add)
{
$this->view->ptype = $News->ptype;
$this->_helper->viewRenderer('category-add');
$category = new ArchiveCategory($this->db);
$catlogs = $category->GetFullCategory();
$this->view->categories=$catlogs;
$this->view->deepField = $category->DeepTitle;
if(empty($submit)){
//$this->_helper->viewRenderer('category-add');
}else{
$data = array();
$data['title'] = $this->_request->getParam('ctitle');
$data['code'] = $this->_request->getParam('code');
$data['fid'] = $this->_request->getParam('fid');
$data['ptype'] = $this->_request->getParam('ptype');
$data['is_pub'] = 1;
$this->view->info = $data;
if(empty($data['title']))
{
$this->view->error = "请输入标题";
return true;
}
if(empty($data['code']))
{
$this->view->error = "请输入栏目连接如http://westdc.westgis.ac.cn/news/notice则只需要输入notice";
return true;
}
if(!preg_match("/^[a-z]+$/",$data['code']))
{
$this->view->error = "url格式不正确仅允许26个小写字母";
return true;
}
$LftRgt = $category->Insert($data['fid']);
$data['tid'] = $data['fid'];
$data['lft'] = $LftRgt['left'];
$data['rgt'] = $LftRgt['right'];
unset($data['fid']);
if($this->db->insert($category->CategoryTable,$data))
{
$this->view->msg = '提示信息:栏目添加成功!';
$this->view->jump_url = '/admin/news/catlog';
return true;
}else{
$this->view->error = "添加失败,请重试";
return true;
}
}
}//栏目添加
if($delete>0)
{
$sql = "delete from ".$News->tbl_categorys." where id='$delete'";
if($this->db->exec($sql)>0)
{
$this->messenger->addMessage('提示信息:栏目删除成功!');
$this->_redirect('/admin/news/catlog');
}
}//栏目删除
if($edit>0)
{
$submit = $this->_getParam('submit');
$this->_helper->viewRenderer('category-edit');
$this->view->ptype = $News->ptype;
$category = new ArchiveCategory($this->db);
$this->view->info = $category->GetOne($edit);
$this->view->categories = $category->GetFullCategory();
$this->view->deepField = $category->DeepTitle;
if(!empty($submit))
{
$data = array();
$data['title'] = $this->_request->getParam('ctitle');
$data['code'] = $this->_request->getParam('code');
$data['fid'] = $this->_request->getParam('fid');
$data['ptype'] = $this->_request->getParam('ptype');
$data['is_pub'] = $this->_request->getParam('is_pub');
$this->view->info = $data;
if(empty($data['title']))
{
$this->view->error = "请输入标题";
return true;
}
if(empty($data['code']))
{
$this->view->error = "请输入栏目连接如http://westdc.westgis.ac.cn/news/notice则只需要输入notice";
return true;
}
if(!preg_match("/^[a-z]+$/",$data['code']))
{
$this->view->error = "url格式不正确仅允许26个小写字母";
return true;
}
$LftRgt = $category->Insert($data['fid']);
$data['tid'] = $data['fid'];
$data['lft'] = $LftRgt['left'];
$data['rgt'] = $LftRgt['right'];
unset($data['fid']);
if($this->db->update($News->tbl_categorys,$data,"id=$edit"))
{
$this->view->msg = '提示信息:栏目添加成功!';
$this->view->jump_url = '/admin/news/catlog';
return true;
}else{
$this->view->error = "添加失败,请重试";
return true;
}
}
}//栏目编辑
else
{
$category = new ArchiveCategory($this->db);
$News = new Archive($this->db);
$catlogs = $category->GetFullCategory();
$ptype = $News->ptype;
foreach($catlogs as $k=>$v)
{
$url_parts = array(
"ptype"=>$v['ptype'],
"type_code"=>$v['code']
);
$catlogs[$k]['url'] = $News->makeCategoryUrl($url_parts);
foreach($ptype as $kk=>$vv)
{
if($catlogs[$k]['ptype'] == $vv)
{
$catlogs[$k]['ptype'] = $kk;
}
}
}
$this->view->catlogs=$catlogs;
$this->view->deepField = $category->DeepTitle;
}//栏目列表
}//栏目管理
function getSubCategory($fid)
{

View File

@ -8,6 +8,8 @@ class Admin_ReviewController extends Zend_Controller_Action
$this->view->theme = new Theme();
$this->_helper->layout->setLayout('administry');
$this->view->pageID = "review-".$this->_request->getActionName();
$this->submd=$this->view->config->sub->metadata;
$this->subsearch=$this->view->config->sub->search;
}
/*
@ -17,7 +19,7 @@ class Admin_ReviewController extends Zend_Controller_Action
function indexAction()
{
$sql = "select m.id,md.title,u.username,u.realname,m.status from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
order by m.id desc limit 10 ";
$re = $this->db->query($sql);
@ -39,7 +41,7 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select m.id,md.title,u.username,u.realname,m.status from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
where u.id='$userid'";
@ -123,6 +125,24 @@ class Admin_ReviewController extends Zend_Controller_Action
}
}//changestatus 更改状态
function editorAction()
{
include_once("helper/view.php");
include_once("data/Review.php");
$this->view->keyword = $keyword = $this->_request->getParam('keyword');
$review = new Review();
if(!empty($keyword))
{
$filter['keyword'] = $keyword;
$data = $review->needEditor($filter);
}else{
$data = $review->needEditor();
}
\view::addPaginator($data,$this,NULL,20);
}
/*
* acceptAction()待审元数据
@ -170,9 +190,9 @@ class Admin_ReviewController extends Zend_Controller_Action
if(!empty($keyword))
{
$sql = "select m.*,md.title,u.username,u.realname from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
where m.status=1
where m.status in (1,2,3,4)
and md.title like '%$keyword%'
";
$re = $this->db->query($sql);
@ -189,18 +209,14 @@ class Admin_ReviewController extends Zend_Controller_Action
else
{
$sql = "select m.*,md.title,u.username,u.realname from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
where m.status=1 order by m.ts_created desc";
where m.status in (1,2,3,4)
order by m.ts_created desc";
$re = $this->db->query($sql);
$rows = $re->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage($this->view->config->page->max);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
\view::addPaginator($rows,$this,NULL,20);
}//列表
}//acceptAction
@ -226,7 +242,7 @@ class Admin_ReviewController extends Zend_Controller_Action
{
$sql = "select m.*,md.*,u.realname from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
where m.id=$show
";
@ -282,7 +298,7 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select m.id,md.title,m.status,m.uuid,u.username,u.realname from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
where m.status in (2,3,4) $searchjoin order by m.ts_accepted desc";
$rs = $this->db->query($sql);
@ -586,6 +602,8 @@ class Admin_ReviewController extends Zend_Controller_Action
$search=$this->_request->getParam('search');
$filter['keyword'] = $this->_request->getParam('keyword');
$filter['code'] = $this->_request->getParam('code');
$filter['order'] = $this->_request->getParam('order');
$filter['sort'] = $this->_request->getParam('sort');
$review = new Review($this->db);
if(!empty($search) && !empty($filter))
@ -593,6 +611,9 @@ class Admin_ReviewController extends Zend_Controller_Action
$rows = $review->adminReviews($filter);
$this->view->keyword = $filter['keyword'];
$this->view->code = $filter['code'];
}if(!empty($filter))
{
$rows = $review->adminReviews($filter);
}else{
$rows = $review->adminReviews();
}
@ -730,7 +751,7 @@ class Admin_ReviewController extends Zend_Controller_Action
//update search document
$search=new Search();
//create search view in xunsearch
$sql="select * from xunsearch where uuid in (select uuid from mdstatus where id in (".$ids."))";
$sql="select * from $this->subsearch where uuid in (select uuid from mdstatus where id in (".$ids."))";
$sth = $this->db->prepare($sql);
$sth->execute();
while ($data = $sth->fetch())
@ -741,8 +762,8 @@ class Admin_ReviewController extends Zend_Controller_Action
//仅对单条数据发送email信息
if (is_numeric($ids))
{
$sql="select distinct u.email,m.title,m.uuid from mdstatus s left join metadata m on s.uuid=m.uuid
left join mdauthor a on s.uuid=a.uuid left join users u on a.userid=u.id where s.id=? order by u.email";
$sql="select distinct u.email,m.title,m.uuid from mdstatus s left join $this->submd m on s.uuid=m.uuid
right join mdauthor a on s.uuid=a.uuid left join users u on a.userid=u.id where s.id=? order by u.email";
$rs=$this->db->query($sql,array($ids));
$rows=$rs->fetchAll();
if ($rows)
@ -786,9 +807,10 @@ class Admin_ReviewController extends Zend_Controller_Action
$this->view->keyword = $keyword;
}
$sql = "select m.id,md.title,md.uuid,u.username,u.realname,m.status,m.ts_created from mdstatus m
right join metadata md on md.uuid=m.uuid
$sql = "select m.id,md.title,md.uuid,u.username,u.realname,m.status,m.ts_created,gn.id as gnid from mdstatus m
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
left join geonetworkmetadata gn on m.uuid=gn.uuid
where status=0 $searchjoin order by m.ts_created desc";
$re = $this->db->query($sql);
@ -848,7 +870,7 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select m.id,md.title,md.uuid,u.username,u.realname,m.status from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
where status=-1 $searchjoin";
@ -888,9 +910,9 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select m.id,md.title,md.uuid,u.username,u.realname,m.status,m.ts_finished from mdstatus m
right join metadata md on md.uuid=m.uuid
right join $this->submd md on md.uuid=m.uuid
left join users u on u.id=m.userid
where status=5 $searchjoin";
where status=5 $searchjoin order by m.ts_finished desc";
$re = $this->db->query($sql);
$rows = $re->fetchAll();
@ -1177,7 +1199,7 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select r.*,md.title,u.realname,u.id as uid from mdreview r
left join metadata md on md.uuid=r.uuid
left join $this->submd md on md.uuid=r.uuid
left join users u on u.id=r.userid
where r.id='$id'
";
@ -1262,7 +1284,7 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select md.title,md.uuid,u.realname,r.id,r.ts_created,r.is_expert from mdreview r
left join metadata md on md.uuid=r.uuid
left join $this->submd md on md.uuid=r.uuid
left join users u on u.id=r.userid
$wheresql
order by r.ts_created desc
@ -1313,7 +1335,7 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select u.id,u.realname as title,count(r.id) as c from mdreview r
left join metadata md on md.uuid=r.uuid
left join $this->submd md on md.uuid=r.uuid
left join users u on u.id=r.userid
$wheresql
GROUP BY u.id,u.realname
@ -1443,7 +1465,7 @@ class Admin_ReviewController extends Zend_Controller_Action
}
$sql = "select md.title,md.uuid,count(r.id) as c from mdreview r
left join metadata md on md.uuid=r.uuid
left join $this->submd md on md.uuid=r.uuid
$wheresql
GROUP BY md.title,md.uuid
";

View File

@ -9,6 +9,7 @@ class Admin_StatController extends Zend_Controller_Action
$this->view->messages = $this->messenger->getMessages();
$this->view->theme = new Theme();
$this->_helper->layout->setLayout('administry');
$this->submd=$this->view->config->sub->metadata;
}
function postDispatch()
{
@ -17,37 +18,31 @@ class Admin_StatController extends Zend_Controller_Action
function indexAction()
{
$sql="select (select count(id) from users) as alluser,
(select count(id) from normalmetadata) as alldata,
(select count(id) as num from dataorder where status=0) as onlinedown,
(select count(id) as num from dataorder where status=5) as offlinedown,
(select count(id) as num from offlineapp where ts_approved is not null) as offlinepass,
(select count(id) as num from offlineapp where ts_approved is null) as offlineunfinished,
(select count(id) as num from dataorder where offlineappid>0 and status=-1) as offlinedenied,
(select count(id) as num from onlineapp) as onlineapp";
(select count(id) from $this->submd) as alldata,
(select count(id) as num from dataorder where status=0 and uuid in (select uuid from $this->submd)) as onlinedown,
(select count(id) as num from dataorder where status=5 and uuid in (select uuid from $this->submd)) as offlinedown,
(select count(id) as num from offlineapp where ts_approved is not null and id in (select offlineappid from dataorder where uuid in (select uuid from $this->submd))) as offlinepass,
(select count(id) as num from offlineapp where ts_approved is null and id in (select offlineappid from dataorder where uuid in (select uuid from $this->submd))) as offlineunfinished,
(select count(id) as num from dataorder where offlineappid>0 and status=-1 and uuid in (select uuid from $this->submd)) as offlinedenied,
(select count(id) as num from onlineapp where id in (select onlineappid from dataorder where uuid in (select uuid from $this->submd))) as onlineapp";
$this->view->stat=$this->db->fetchRow($sql);
//下载量统计
$sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join metadata m on d.uuid=m.uuid where (d.status=0 or d.status=5) and m.filesize>0 group by m.title,d.userid,m.filesize) as t";
$sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join $this->submd m on d.uuid=m.uuid where (d.status=0 or d.status=5) and m.filesize>0 group by m.title,d.userid,m.filesize) as t";
$res = $this->db->query($sql);
$allsize = $res->fetch();
$this->view->allsize = $allsize;
$sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join metadata m on d.uuid=m.uuid where d.status=5 and m.filesize>0 group by m.title,d.userid,m.filesize) as t";
$sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join $this->submd m on d.uuid=m.uuid where d.status=5 and m.filesize>0 group by m.title,d.userid,m.filesize) as t";
$res = $this->db->query($sql);
$offlinesize = $res->fetch();
$this->view->offlinesize = $offlinesize;
$sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join metadata m on d.uuid=m.uuid where d.status=0 and m.filesize>0 group by m.title,d.userid,m.filesize) as t";
$sql = "select sum(num) as num from (select m.filesize/1024 as num,m.title,d.userid from dataorder d left join $this->submd m on d.uuid=m.uuid where d.status=0 and m.filesize>0 group by m.title,d.userid,m.filesize) as t";
$res = $this->db->query($sql);
$onlinesize = $res->fetch();
$this->view->onlinesize = $onlinesize;
$sql="select sum(configvalue::real)/1024/1024/1024 as num from g6ftpusersettings where userid in (select id from g6ftpusers where name like 'westdc%' or name='newwestdc') and configname='StatsDownloaded'";
$res = $this->db->query($sql);
$onlinesize = $res->fetch();
$this->view->onlineg6size = $onlinesize;
}//indexAction 首页
function unitAction()
@ -71,7 +66,7 @@ class Admin_StatController extends Zend_Controller_Action
where d.offlineappid>0 and o.unit is not null and d.status>4";*/
//各单位下载情况,统计的离线申请数据次数
$sql = "select count(o.id) as num,o.unit from offlineapp o
where o.unit is not null ";
where o.unit is not null and o.id in (select offlineappid from dataorder where uuid in (select uuid from $this->submd))";
if ($y)
$sql.=" and extract(year from o.ts_created)='$y'";
$sql.=" group by o.unit";
@ -81,7 +76,8 @@ class Admin_StatController extends Zend_Controller_Action
//各单位在线下载情况
$sql = "select count(d.id) as num,o.unit from dataorder d
left join onlineapp o on o.id=d.onlineappid
where d.onlineappid>0 and o.unit is not null";
where d.onlineappid>0 and o.unit is not null
and d.uuid in (select uuid from $this->submd)";
if ($y)
$sql.=" and extract(year from o.ts_created)='$y'";
$sql.=" group by o.unit";
@ -195,7 +191,32 @@ class Admin_StatController extends Zend_Controller_Action
//按用户统计
function userAction(){
$ac = $this->_getParam('ac');
$this->view->ac = $ac = $this->_getParam('ac');
if($ac == "new")
{
$this->_helper->viewRenderer('user-new');
$this->view->year = $year = !empty($this->_getParam('year')) ? $this->_getParam('year'):date("Y");
$this->view->by = $by = !empty($this->_getParam('by')) ? $this->_getParam('by'):"month";
$userStatistics = new \Statistics\User();
if($by == "month")
{
$this->view->data = $userStatistics->getNewUsersByMonth($year);
}
if($by == "year")
{
$this->view->data = $userStatistics->getNewUsersByYear($year);
}
if($by == "monthavg")
{
$this->view->data = $userStatistics->getAverageSingupByMonth($year);
}
return true;
}
if($ac == "get")
{

View File

@ -1,4 +1,6 @@
<?php
use Helpers\View as view;
class Admin_SysController extends Zend_Controller_Action
{
function preDispatch()
@ -86,6 +88,15 @@ class Admin_SysController extends Zend_Controller_Action
}//模板编辑
else if($ac=='del'&& !empty($id))
{
$sql="delete from emailtext where id='$id' ";
$rs = $this->db->query($sql);
view::Post($this,'模板已删除',-1);
return;
}
else if($ac=='test'&& !empty($id))
{
if(!empty($submit))
@ -640,6 +651,71 @@ where t.filesize<1024*5)
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
$this->view->paginator=$paginator;
} else if ($ac=='heihefund')
{
$sql = "SELECT m.title,m.uuid,g.id as gid
from metadata m
LEFT JOIN mdstatus s ON m.uuid=s.uuid
left join datasource on datasource.uuid=m.uuid
left join source on datasource.sourceid=source.id
left join mdfund mf on mf.uuid=m.uuid
left join geonetworkmetadata g on m.uuid=g.uuid
where s.status>4 and source.code='heihe' and mf.fid is null
ORDER BY m.title DESC;";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage($pages);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
$this->view->paginator=$paginator;
$this->_helper->viewRenderer('problem-md');
} else if ($ac=='noemail')
{
$sql = "SELECT distinct m.title,m.uuid,g.id as gid
from metadata m
LEFT JOIN mdstatus s ON m.uuid=s.uuid
left join role on role.uuid=m.uuid
left join geonetworkmetadata g on m.uuid=g.uuid
where m.datatype=1 and s.status>4 and m.uuid not in (
select role.uuid from role left join responsible res on role.resid=res.id
where res.email is not null and role.role in ('resourceProvider','owner','pointOfContact','custodian')
)
ORDER BY m.title DESC;";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage($pages);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
$this->view->paginator=$paginator;
$this->_helper->viewRenderer('problem-md');
} else if ($ac=='unmoved')
{
$sql = "SELECT distinct m.title,m.uuid,g.id as gid
from metadata m
LEFT JOIN mdstatus s ON m.uuid=s.uuid
left join geonetworkmetadata g on m.uuid=g.uuid
left join dataset ds on ds.uuid=m.uuid
where s.status>4 and ds.path like '%upload%'
ORDER BY m.title DESC;";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage($pages);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
$this->view->paginator=$paginator;
$this->_helper->viewRenderer('problem-md');
}
$this->view->activeID="btn-".$ac;
}

View File

@ -1,4 +1,8 @@
<?php
use Helpers\View as view;
use Helpers\PDO;
use Users\Users;
class Admin_UserController extends Zend_Controller_Action
{
function preDispatch()
@ -20,7 +24,7 @@ class Admin_UserController extends Zend_Controller_Action
$uq=$this->db->query($sql);
$row=$uq->fetch();
$sqlt="select count(id) as total from users where usertype='administrator'";
$sqlt="select count(id) as total from users where usertype='{$this->view->config->auth->identifier}'";
$uqt=$this->db->query($sqlt);
$adminrow=$uqt->fetch();
@ -44,7 +48,7 @@ class Admin_UserController extends Zend_Controller_Action
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(30);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}//listAction
@ -115,14 +119,48 @@ class Admin_UserController extends Zend_Controller_Action
{
$select=$this->db->select();
$select->from('users')
->where('usertype = ?', 'administrator')
->where('usertype = ?', $this->view->config->auth->identifier)
->order('users.id desc');
$paginator = Zend_Paginator::factory($select);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(30);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
$ac = $this->_getParam('ac');
if($ac == 'sync')
{
$sql = "SELECT id FROM users WHERE usertype='administrator'";
$rs = $this->db->query($sql);
$ids = $rs->fetchAll();
$data = array();
foreach($ids as $v)
{
$data[] = $v['id'];
}
unset($ids);
$ids = join(",",$data);
$gn_sql = "update users set profile='Administrator' where id in ($ids)";
$gn_db = new PDO(array(
'host'=> $this->view->config->geonetwork->params->host,
'port' => 5432,
'user' => $this->view->config->geonetwork->params->username,
'pwd' => $this->view->config->geonetwork->params->password ,
'db' => $this->view->config->geonetwork->params->dbname
));
$gn_db->exec("update users set profile='Editor' where id>1 and profile='Administrator'");
$gn_db->exec($gn_sql);
view::Post($this,"同步成功!",-1);
}
}
function showAction()
@ -131,10 +169,10 @@ class Admin_UserController extends Zend_Controller_Action
if (isset($id))
{
try {
$sql="select * from users where id=?";
$result=$this->db->query($sql,$id);
$rows = $result->fetch();
$this->view->infos=$rows;
$user = new \Users\Users;
$this->view->infos=$user->getUser($id);
$this->view->usertypes = $user->getUserType();
} catch (Exception $e) {
$this->messenger->addMessage($e->getMessage());
}
@ -203,6 +241,7 @@ class Admin_UserController extends Zend_Controller_Action
$updates=array();
if (isset($id))
{
if(!empty($newpwd)&&!empty($cfnewpwd))
{
if($newpwd==$cfnewpwd)
@ -230,6 +269,7 @@ class Admin_UserController extends Zend_Controller_Action
} catch (Exception $e) {
$this->messenger->addMessage($e->getMessage());
}
$this->_redirect("/admin/user/show/id/$id");
}
else {

View File

@ -7,12 +7,7 @@
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('数据管理');
$this->breadcrumb()->setSeparator(' > ');
$this->headLink()->appendStylesheet('/static/js/uploadify/uploadify.css');
$this->headScript()->appendFile('/static/js/jquery-1.7.2.min.js');
$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
$this->headLink()->appendStylesheet('/css/colorbox.css');
$this->headScript()->appendFile('/static/js/uploadify/swfobject.js');
$this->headScript()->appendFile('/static/js/uploadify/jquery.uploadify.v2.1.4.min.js');
$this->theme->AppendPlus($this,"uploadify");
?>
<div id="leftPanel">
<?= $this->partial('data/left.phtml'); ?>
@ -30,73 +25,87 @@
<input type="hidden" name="submit" value="1" />
<p>注:可选择多个文件<br />
<ul id="datalist"></ul>
<div id="datalist">
</div>
<input id="file_upload" name="Filedata" type="file" />
<input type="button" class="btn btn-small" onclick="$('#file_upload').uploadifyUpload();" value="上传" />
</p>
</form>
</div>
<script>
$(document).ready(function() {
var _this = {
SessionID : '<?php echo session_id(); ?>'
};
var uploader;
var param;
param = {
"PHPSESSID" : _this.SessionID,
"multi" : 'yes'
};
$(function() {
$('#file_upload').uploadify({
'uploader' : '/static/js/uploadify/uploadify.swf',
'scriptData': {'PHPSESSID' : '<?php echo session_id(); ?>'},
'script' : '/admin/data/upload/<?php if(!empty($this->uuid)) echo "uuid/".$this->uuid; ?>',
'cancelImg' : '/static/js/uploadify/cancel.png',
'folder' : '/uploads',
'swf' : '/js/lib/uploadify/uploadify.swf',
'uploader' : '/admin/data/upload/<?php if(!empty($this->uuid)) echo "uuid/".$this->uuid; ?>',
'multi' : true,
'auto' : false,
'displayData' : 'speed',
'buttonImg' : '/static/js/uploadify/selectfile.gif',
'onComplete' : function(event, ID, fileObj, response, data) {
var obj = jQuery.parseJSON(response);
var html;
if(obj.error=='')
{html = obj.html;}else{html = obj.error;}
$('<li/>', {
"id":'uploadedItem_'+obj.attid,
"class":'uploadifyQueueItem',
"html": html
}).appendTo('#datalist');
$('#deletebtn_'+obj.attid).bind('click', function() {
deleteatt(obj.attid);
});
'auto' : true,
'fileTypeExts' : '*',
'onUploadSuccess' : function(file, data, response) {
upload.onsuccess(file, data, response);
},
'onError' : function (event,ID,fileObj,errorObj) {
alert(errorObj.type + ' Error: ' + errorObj.info);
'onUploadStart' : function(file) {
$('#file_upload').uploadify('settings','formData',param);
}
});
function deleteatt(id){
});
var upload = {
onsuccess : function(file, data, response){
_data = $.parseJSON(data);
if(!$.isEmptyObject(_data.error))
{
alert(_data.error);
}else{
$('#datalist').append(upload.makeFileHtml(_data));
}
},
makeFileHtml : function(data){
return '<div class="alert alert-success">'
+ '<button type="button" class="close" data-dismiss="alert" onclick="upload.deleteFile('+data.id+')"><i class="icon-trash icon-white"></i></button>'
+ '<a href="/service/attach/id/' + data.id + '">' +data.realname + '</a>'
+'<input type="hidden" name="attid" value="'+data.id+'"></input>'
+'</div>';
},
deleteFile : function(id){
$.ajax({
'type':"POST",
'url': "/admin/data/attachments/",
'url':'/admin/data/attachments/',
'data':'uuid=<?php echo $this->uuid?>&mdattdel='+id,
'success':function(data){
if(data==null){Alert('遇到错误,请重试');return false;}
if(data.error!=null){Alert(data.error);return false;}
if(data.status==1){$('#uploadedItem_'+id).fadeOut("slow");}
},
'beforeSend':function(){},
'complete':function(){},
'timeout': 20000,
'dataType': 'json',
'error': function(){Alert('处理中出现问题,请重试');}
});
if(typeof(data) == 'undefined')
{
alert("数据源错误,请联系管理员");
return false;
}
if(!$.isEmptyObject(data.error))
{
alert(data.error);
return false;
}
},
'timeout': 30000,
'error': function(){
alert('附件删除出错');
}
});
}
};
$(document).ready(function() {
$.getJSON("/admin/data/getatts/uuid/<?php echo $this->uuid;?>", function(data) {
if(data)
{
$.each(data, function(key, val) {
$('<li/>', {
"id":'uploadedItem_'+val['id'],
"class":'uploadifyQueueItem',
"html": val['html']
}).appendTo('#datalist');
$('#deletebtn_'+val['id']).bind('click', function() {
deleteatt(val['id']);
});
$('#datalist').append(upload.makeFileHtml(val));
});
}
});

View File

@ -0,0 +1,72 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
?>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<h3>数据导入<small>文件预处理</small></h3>
<hr />
处理文件:<?= $this->file ?>...
<h5>文件信息</h5>
<ul>
<li>文件行數:<?= $this->Count ?></li>
<li>文件大小:<?= $this->Size ?></li>
<li>文件类型:<?= $this->Type ?></li>
</ul>
<hr />
<h5 class="error-alerts" style="display: none;">错误消息</h5>
<ul id="errors" class="error-alerts" style="display: none;">
</ul>
<h6 id="error-loading"></h6>
<a href="javascript:void(0);" id="clt-next" class="btn btn-success disabled">下一步</a>
</div>
</div>
<script>
$(document).ready(function(){
$.ajax({
'type':"POST",
'url':'/admin/data/dataimport/ac/check',
'data':'file=<?= $this->file ?>',
'success':function(data){
if (data!=null)
{
if(data.status == true)
{
$('#clt-next').removeClass('disabled');
$('#clt-next').attr('href','/admin/data/dataimport/ac/target?file=<?= $this->file ?>');
alert("數據完整性檢查成功,可以進行下一步");
return true;
}
$('.error-alerts').show();
$.each(data.status,function(index,value){
$('#errors').append("<li>"+value+"</li>");
});
}else{
alert('处理中出现错误');
}
},
'timeout': 30000,
'beforeSend' : function(){
$('#error-loading').html("正在對文件進行初始化檢查......");
$('#error-loading').show();
},
'complete' : function(){
$('#error-loading').hide();
}
});
});
</script>

View File

@ -0,0 +1,238 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
?>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<h3>数据导入<small>选择导入目标</small></h3>
<hr />
导入文件:<?= $this->file ?>
<div class="row-fluid">
<div class="span3">
<h5>数据库:</h5>
<label class="radio">
<input type="radio" class="ctl-schema-btn" value="<?= $this->schema ?>" name="schema" selected readonly> <?= $this->schema ?>
</label>
</div>
<div class="span3" id="table-list">
</div>
<div class="span4" id="field-list">
</div>
</div>
<hr class="clear" />
<h5 class="error-alerts" style="display: none;">消息</h5>
<ul id="errors" class="error-alerts" style="display: none;">
</ul>
<h6 id="error-loading"></h6>
<form action="/admin/data/dataimport/ac/checktables" id="schema-form">
<input type="hidden" name="file" value="<?= $this->file ?>">
<input type="hidden" name="schema" value="">
<input type="hidden" name="table" value="" id="input-table">
<button type="button" id="ctl-next" class="btn btn-success disabled" disabled>下一步</button>
<button type="button" id="ctl-import" class="btn btn-info" disabled="disabled" style="display: none;">导入数据表</button>
</form>
</div>
</div>
<script>
$(document).ready(function(){
$('#ctl-next').click(function(){
ctl.checkTable();
});
$("#ctl-import").click(function(){
$.ajax({
'type':"POST",
'url':'/admin/data/dataimport/ac/import',
'data':$('#schema-form').serialize(),
'success':function(data){
if (data!=true)
{
if(!$.isEmptyObject(data))
$(".error-alerts").show();
$("#errors").html(data.join("<br />"));
return true;
}else{
$('#ctl-import').remove();
$("#errors").html("数据导入成功!页面将自动跳转到数据可视化管理页面");
setTimeout("top.location = '/admin/data/visual';",3000);
}
},
'timeout': 30000,
'beforeSend' : function(){
$('#error-loading').html("正在进行数据导入......");
$('#error-loading').show();
$('#ctl-import').attr('disabled','disabled');
},
'complete' : function(){
$('#error-loading').hide();
},
'error' : function(){
$('#ctl-import').removeAttr('disabled');
}
});
});
$('.ctl-schema-btn').click(function(){
$('#schema-form input[name=schema]').val($(this).val());
$.ajax({
'type':"POST",
'url':'/admin/data/dataimport/ac/gettables',
'data':'schema=' + $(this).val(),
'success':function(data){
if (data!=null)
{
if($.isEmptyObject(data))
{
ctl.disableNext();
alert("此数据库中尚无数据表");
return true;
}
$('#table-list').html('<h5>选择数据表</h5>');
$.each(data,function(index,value){
$('#table-list').append('<label class="radio">'
+ '<input type="radio" value="'+value.tablename+'" name="table" class="ctl-table-name">'
+ value.tablename
+"</label>"
);
});
$('.ctl-table-name').click(function(){
$('#schema-form input[name=table]').val($(this).val());
if($('#schema-form input[name=schema]').val() != '' && $('#schema-form input[name=table]').val() != '')
{
ctl.enableNext();
}
ctl.getFields();
});
$('#clt-next').removeClass('disabled');
$('#clt-next').attr('href','/admin/data/dataimport/ac/target?file=<?= $this->file ?>');
return true;
}else{
alert('处理中出现错误');
}
},
'timeout': 30000,
'beforeSend' : function(){
$('#error-loading').html("正在加载数据表......");
$('#error-loading').show();
$('#table-list').html('');
$('.ctl-table-name').unbind();
},
'complete' : function(){
$('#error-loading').hide();
}
});
});
});
var ctl = {
enableNext : function(){
$('#ctl-next').removeClass("disabled");
$('#ctl-next').removeAttr("disabled");
},
disableNext : function(){
$('#ctl-next').addClass("disabled");
$('#ctl-next').attr("disabled","disabled");
},
checkTable : function(){
$.ajax({
'type':"POST",
'url':'/admin/data/dataimport/ac/checktables',
'data':$('#schema-form').serialize(),
'success':function(data){
if (data!=true)
{
if(!$.isEmptyObject(data))
$(".error-alerts").show();
$("#errors").html(data.join("<br />"));
return true;
}else{
$(".error-alerts").show();
$('#errors').html('数据准备完成,可以进行导入操作');
$('.ctl-schema-btn').attr("disabled","disabled");
$('.ctl-table-name').attr("disabled","disabled");
$('#ctl-next').hide();
$('#ctl-show-table').hide();
$('#ctl-import').show();
$('#ctl-import').removeAttr("disabled");
}
},
'timeout': 30000,
'beforeSend' : function(){
$('#error-loading').html("正在校验数据是否可以导入......");
$('#error-loading').show();
},
'complete' : function(){
$('#error-loading').hide();
},
'error' : function(){
$(".error-alerts").show();
$("#errors").html("数据表字段检测失败,请检查导入得文件是否于数据表中得字段对应");
}
});
},
getFields : function (){
$.ajax({
'type':"POST",
'url':'/admin/data/dataimport/ac/getfields',
'data':$('#schema-form').serialize(),
'success':function(data){
if($.isEmptyObject(data))
{
return true;
}
$(".error-alerts").show();
var html = new Array();
html.push('<span>数据表字段信息</span>');
html.push('<table class="table table-striped table-bordered" style="width:300px;">');
html.push('<thead><th>排序</th><th>列名</th><th>数据类型</th></thead>');
$.each(data,function(index,value){
html.push("<tr><td>"+value.dtd_identifier+"</td><td>" + value.column_name + "</td><td>" + value.data_type + "</td></tr>");
});
html.push('</table>');
$('#errors').html(html.join(""));
},
'timeout': 30000,
'beforeSend' : function(){
$('#error-loading').html("正在获取数据表信息......");
$('#error-loading').show();
},
'complete' : function(){
$('#error-loading').hide();
}
});
}
}
</script>

View File

@ -0,0 +1,151 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->theme->AppendPlus($this,"jquery-fileupload");
?>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<h3>数据导入</h3>
<hr />
<label>上传文件,请选择CSV文件进行上传</label>
<span class="btn btn-success fileinput-button file-upload-ctls">上传文件<input id="fileupload" type="file" name="FileData"></span>
<a href="javascript:void(0);" class="btn btn-info" id="ctl-show-files">查看已上传的文件</a>
<div class="progress" id="pdf-upload-progress" style="display: none;">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
</div>
</div>
<div id="uploadedFile"></div>
</div>
</div>
<script>
$(function () {
'use strict';
var jqXHR = $('#fileupload').fileupload({
url: '/admin/data/dataimport/ac/upload',
dataType: 'json',
done: function (e, data) {
if(typeof(data.result.error) != 'undefined' && data.result.error != 0)
{
alert(data.result.error);
return false;
}
if($('#uploadedFile').html() == "")
$('#uploadedFile').html(upload.makeFileHtml(data.result));
else
$('#uploadedFile').append(upload.makeFileHtml(data.result));
return true;
},
stop : function (e) {
$('#pdf-upload-progress').hide();
$('.file-upload-ctls').show();
},//stop
start : function (e) {
$('.file-upload-ctls').hide();
$('#pdf-upload-progress .progress-bar').css('width', 0 + '%');
$('#pdf-upload-progress').show();
},//start
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#pdf-upload-progress .progress-bar').css(
'width',
progress + '%'
);
},//progressall
add: function (e, data) {
if($('input[name=attid]').length >= 1)
{
upload.deleteFile($('input[name=attid]').val());
$('file-alert').alert('close')
}
data.process().done(function () {
data.submit();
});
}//add
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
//file upload end
$('#ctl-show-files').click(function(){
$.ajax({
'type':"POST",
'url':'/admin/data/dataimport/ac/files',
'data':'',
'success':function(data){
if (data!=null)
{
if($.isEmptyObject(data))
{
alert("目前沒有文件");
return;
}
if($('#uploadedFile').html() == "")
$('#uploadedFile').html(upload.makeFileList(data));
else
$('#uploadedFile').append(upload.makeFileList(data));
$('#ctl-show-files').attr('disabled','disabled');
$("#ctl-show-files").unbind( "click" );
}else{
alert('处理中出现错误');
}
},
'timeout': 30000
});
});//show files
});
var upload = {
makeFileHtml : function(data){
return '<div class="alert alert-success">'
+ '<span class="ctl-files">'+data.file+'</span>'
+ ' <a href="/admin/data/dataimport/ac/prepare/?file='+ encodeURI(data.file) +'">导入数据</a>'
+ '<a href="javascript:void(0)" onclick="upload.delete(this,\''+data.file+'\')" class="pull-right">删除</a>'
+ "</div>";
},
makeFileList : function(data){
var li = [];
$.each(data,function(k,v){
li.push('<div class="alert alert-success ctl-files">'
+ '<span class="ctl-files">'+v+'</span>'
+ ' <a href="/admin/data/dataimport/ac/prepare/?file='+ encodeURI(v) +'">导入数据</a>'
+ '<a href="javascript:void(0);" onclick="upload.delete(this,\''+v+'\')" class="pull-right">删除</a>'
+ "</div>");
});
return li.join("");
},
delete : function(dom,file){
$.ajax({
'type':"POST",
'url':'/admin/data/dataimport/ac/delete',
'data':'file='+file,
'success':function(data){
if(data.success == true)
$(dom).parent('div').remove();
else
alert("failed");
},
'timeout': 30000
});
}
};
</script>

View File

@ -29,41 +29,47 @@ $this->theme->AppendPlus($this,'colorbox');
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<div class="alert alert-info">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<h4>提示</h4>
如果元数据中标题发生了变更在DOI中也需要变更时需要在这里点击“提交”按钮才能生效
</div>
<form class="form-horizontal" method="post">
<div class="control-group">
<label class="control-label" for="doi">doi</label>
<div class="controls">
<input type="text" id="doi" name="doi" readonly="readonly" value="<?= (isset($this->data['doi'])&&!empty($this->data['doi'])) ? $this->data['doi']:"doi:10.3972/westdc.x.2013.db" ?>" />
<input type="text" id="doi" name="doi" readonly="readonly" class="input-block-level"
value="<?= (isset($this->data['doi'])&&!empty($this->data['doi'])) ? $this->data['doi']:"doi:10.3972/westdc.x.2013.db" ?>" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="uuid">uuid</label>
<div class="controls">
<input type="text" id="uuid" name="uuid" readonly="readonly" value="<?= isset($this->data['uuid']) ? $this->data['uuid']:"" ?>" />
<input type="text" id="uuid" name="uuid" readonly="readonly" value="<?= isset($this->data['uuid']) ? $this->data['uuid']:"" ?>" class="input-block-level" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="publisher">发布者</label>
<div class="controls">
<input type="text" id="publisher" name="publisher" value="<?= isset($this->data['publisher']) ? $this->data['publisher']:"" ?>" />
<input type="text" id="publisher" name="publisher" value="<?= isset($this->data['publisher']) ? $this->data['publisher']:"" ?>" class="input-block-level" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="url">url</label>
<div class="controls">
<input type="text" id="url" name="url" value="<?= isset($this->data['url']) ? $this->data['url']:"" ?>" />
<input type="text" id="url" name="url" value="<?= isset($this->data['url']) ? $this->data['url']:"" ?>" class="input-block-level"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="title">标题</label>
<div class="controls">
<input type="text" id="title" name="title" readonly="readonly" value="<?= isset($this->data['title']) ? $this->data['title']:"" ?>" />
<input type="text" id="title" name="title" readonly="readonly" value="<?= isset($this->data['title']) ? $this->data['title']:"" ?>" class="input-block-level"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="title_en">英文标题</label>
<div class="controls">
<input type="text" id="title_en" name="title_en" readonly="readonly" value="<?= isset($this->data['title_en']) ? $this->data['title_en']:"" ?>" />
<input type="text" id="title_en" name="title_en" readonly="readonly" value="<?= isset($this->data['title_en']) ? $this->data['title_en']:"" ?>" class="input-block-level" />
</div>
</div>
<div class="control-group">

View File

@ -59,7 +59,9 @@ table thead tr th {background:#EBF2F6;}
<a href="/admin/data/doi/ac/edit/uuid/<?= $item['uuid']?>">编辑</a>
<a href="/admin/data/doi/ac/convert/uuid/<?= $item['uuid']?>">导出</a>
<a href="javascript:void(0);" rel="/admin/data/doi/ac/verified/uuid/<?= $item['uuid']?>" class="verified_btn">验证</a>
<?php if(empty($item['ts_published'])) {?>
<a href="javascript:void(0);" onclick="onedel(<?= $item['id']?>)" id="delbtn_<?= $item['id']?>">删除</a>
<?php } ?>
</td>
</tr>
<?php endforeach; ?>

View File

@ -91,7 +91,7 @@ table thead tr th {background:#EBF2F6;}
<td><?= $item['fund_type'] ?></td>
<th><?= $item['mds'] ?></th>
<td>
<a href="/author/fund/ac/dataview/id/<?= $item['id'] ?>">查看数据</a>
<a href="/data/fund/ac/dataview/id/<?= $item['id'] ?>">查看数据</a>
</td>
</tr>
<?php endforeach; ?>

View File

@ -2,17 +2,87 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('数据管理');
$this->breadcrumb()->setSeparator(' > ');
$Theme = new Theme;
$Theme->AppendPlus($this,'highstock');
?>
<div id="divContent">
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<h2>元数据管理 <small>概况</small></h2>
<hr />
<ul class="unstyled">
<li>元数据总条数:<?= $this->total ?></li>
<li>待评审的元数据:<a href="/admin/review/accept"><?= $this->review_accept ?></a></li>
<li>已评审的元数据:<a href="/admin/review/reviewed"><?= $this->review_finish ?></a></li>
<li>可视化数据:<a href="/admin/data/visual"><?= $this->visual ?></a></li>
</ul>
<div id="container">
</div>
</div>
</div>
<script>
$(function () {
Highcharts.setOptions({
lang: {
months : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
//months : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
weekdays: ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
}
});
$('#container').highcharts('StockChart', {
title : {
text : '元数据数量增加情况'
},
rangeSelector : {
selected : 1,
inputEnabled: $('#container').width() > 480
},
credits : {
enabled : false
},
tooltip : {
dateTimeLabelFormats :{
day:"%A, %b %e, %Y-%m-%d",
}
},
xAxis : {
dateTimeLabelFormats : {
day:"%Y/%m/%d",
}
}
});
var chart = $('#container').highcharts();
$.ajax({
'url': '?time=<?= time() ?>',
'data': '',
'method': 'GET',
'dataType': 'json',
'success': function(data){
chart.addSeries({
name: "元数据个数",
data: data,
type : 'line'
});
},
'timeout': 30000,
'global' : true
});
});
</script>

View File

@ -1,22 +1,13 @@
<ul>
<li class="title">数据管理</li>
<div class="well" style="padding:8px 0">
<ul class="nav nav-list">
<li class="nav-header"><h4>数据管理</h4></li>
<li class="divider"></li>
<li><a href="/admin/data/md">元数据管理</a></li>
<li><a href="/admin/data/newdata">新建元数据</a></li>
<li><a href="/admin/data/author">数据作者管理</a></li>
<li><a href="/admin/data/version">数据版本管理</a></li>
<li><a href="/admin/data/comment">数据反馈管理</a></li>
<li><a href="/admin/data/reference">数据文献管理</a></li>
<li><a href="/admin/data/attachments">数据附件管理</a></li>
<!--
<li><a href="/admin/data/import">上传元数据文件</a></li>
<li><a href="/admin/data/batchimport">导入服务器元数据目录</a></li>
<li><a href="/admin/data/datafileimport">导入数据目录</a></li>
<li><a href="/admin/data/sync">同步GeoNetwork元数据</a></li>
<li><a href="/admin/data/datasetcd">特色数据集管理</a></li>
<li><a href="/admin/data/newsletter">数据中心通讯管理</a></li>
<li><a href="/admin/data/feature">特色推荐</a></li> -->
<li><a href="/admin/data/source">专题管理</a></li>
<li><a href="/admin/data/project">汇交计划</a></li>
<li><a href="/admin/data/fund">支持项目</a></li>
<li><a href="/admin/data/doi">DOI</a></li>
<li><a href="/admin/data/visual">数据可视化管理</a></li>
<li><a href="/admin/data/dataimport">数据入库处理</a></li>
</ul>
</div>

View File

@ -2,7 +2,6 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
@ -10,10 +9,15 @@
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<h3>元数据管理</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
@ -24,32 +28,36 @@
</div>
<?php endif; ?>
<div class="right_title">元数据管理</div>
<div class="search">
<form action="" method="get">
<div class="input-prepend">
<div class="search" style="overflow:hidden;">
<div class="span6">
<form action="" method="get" class="form-search">
<div class="input-append">
<input type="hidden" name="search" value='1' />
<input class="span2 search-query" type="text" name="keyword" value="<?php echo $this->keyword; ?>" placeholder="搜索关键字"/>
<input type="submit" class="btn" value="搜索" />
<input class="span12" type="text" name="keyword" value="<?php echo $this->keyword; ?>" placeholder="搜索关键字"/>
<button type="submit" class="btn">搜索</button>
</div>
</form>
</div>
<div class="span6 text-right">
<a href="/admin/data/md/down/1">下载全部xml元数据</a>
</div>
</div><!-- search DIV -->
<a href="/admin/data/md/down/1">下载全部xml元数据</a>
<?php if (count($this->paginator)): ?>
<div class="datalist">
<ul>
<ul class="unstyled">
<?php foreach ($this->paginator as $item): ?>
<li class="well well-small">
<h4><a href="/data/<?= $item['uuid']; ?>" class="title"><?= $item['title']; ?></a></h4>
<p>大小:<?= $item['filesize']; ?>M创建时间<?= date('Y-m-d',strtotime($item['ts_created'])); ?>,查看:<?= $item['viewed']; ?>次。</p>
<?php if($item['author']) :?>
<p>数据贡献者:<?= $item['author']; ?></p>
<?php endif;?>
<p class="content"><?= $item['description']; ?></p>
<p>
操作:
<a href="/service/geonetwork?url=metadata.edit?id=<?= $item['gid']; ?>" target="_blank">编辑</a> |
<a href="/admin/data/md/delete/<?= $item['uuid']; ?>">删除</a> |
<a href="/admin/data/sync/uuid/<?= $item['uuid']; ?>">同步</a> |
<a href="/admin/data/reference/show/<?php echo $item['uuid'];?>">文献管理</a> |
<a href="/admin/data/md/att/1/uuid/<?php echo $item['uuid'];?>">附件管理</a> |
<a href="/admin/data/comment/uuid/<?php echo $item['uuid'];?>">反馈管理</a> |
<a href="/admin/data/author/uuid/<?php echo $item['uuid'];?>">作者管理</a> |
@ -57,7 +65,6 @@
<?php if (@!is_numeric($item['mdstatus'])) : ?>
<a href="/admin/review/addon/uuid/<?php echo $item['uuid'];?>">放入元数据评审</a> |
<?php endif; ?>
<a href="/admin/data/source/do/datasource/uuid/<?php echo $item['uuid'];?>">编辑数据来源</a> |
<?php if(!empty($item['datasetid'])):?>
<a href="/admin/data/dataset/ac/getdataset/uuid/<?php echo $item['uuid'];?>" class="iframe">数据路径</a> |
<a href="/admin/data/dataset/ac/import/uuid/<?php echo $item['uuid'];?>" class="iframe">重新导入数据目录</a> |
@ -66,12 +73,9 @@
<?php endif;?>
<a href="/admin/down/sendmail/uuid/<?php echo $item['uuid'];?>" title="向数据下载者发送通知邮件">邮件通知</a> |
<a href="/admin/data/fund/uuid/<?php echo $item['uuid'];?>">支持项目</a> |
<a href="/admin/data/doi/uuid/<?php echo $item['uuid'];?>">DOI</a>
<a href="/admin/data/visual/uuid/<?php echo $item['uuid'];?>">数据可视化</a> |
<a href="javascript:void(0);" onclick="getFtp('<?= $item['uuid'] ?>')">FTP数据管理</a>
</p>
<?php if($item['author']) :?>
<p>数据贡献者:<?= $item['author']; ?></p>
<?php endif;?>
<p class="content"><?= $item['description']; ?></p>
</li>
<?php endforeach; ?>
</ul>
@ -79,10 +83,43 @@
<?php endif; ?>
<?php echo $this->paginator; ?>
</div>
</div>
<script>
$(".iframe").colorbox({iframe:true, width:"50%", height:"50%"});
$(".inline").colorbox({inline:true, width:"50%"});
function Alert(html){
$.colorbox({'innerWidth':'50%','html':'<h4 style="font-size:16px;font-weight:bold;">'+html+'</h4>'});
}
function getFtp(uuid){
$.ajax({
'type':"POST",
'url':'/admin/data/ftp/uuid/'+uuid,
'data':'',
'success':function(data){
if (typeof(data)=='object')
{
if(typeof(data.error)!='undefined')
{Alert(data.error);return false;}
if(typeof(data.statu)!='undefined')
{
if(data.statu > 0)
{
var html = '<p>临时FTP帐号信息<b>(此帐号仅对应当前数据集!)</b></p><p>ftp://ftp.sanjiangyuan.org.cn/</p>'+
'<p>用户名:'+data.user+
'</p><p>密码:'+data.passwd+'</p>'
+'<p><a href="ftp://'+data.user+':'+data.passwd+'@ftp.sanjiangyuan.org.cn/">或直接点击此链接</a></p>';
Alert(html);
}
}
}
else{
Alert('出现错误,请稍候再试</h4>');
}
},
'timeout': 30000,
'error': function(){
Alert('处理中出现错误,请刷新页面后重试</h4>');
}
});
}
</script>

View File

@ -0,0 +1,198 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,"uploadify");
$this->theme->AppendPlus($this,'admin_plugin');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<form class="form-horizontal" method="post">
<div class="control-group">
<label class="control-label" for="inputTitle">文章标题</label>
<div class="controls">
<input type="text" name="title" id="inputTitle" class="input-block-level" value="<?= isset($this->data['title']) ? $this->data['title']:"" ?>">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputYear">出版年份</label>
<div class="controls">
<input type="text" name="year" id="inputYear" value="<?= isset($this->data['year']) ? $this->data['year']:"" ?>">
<select class="span2">
<?php for($i=2000;$i<=(int)date("Y");$i++) {?>
<option value="<?= $i ?>" onclick="$('#inputYear').val(this.value)"><?= $i ?></option>
<?php } ?>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputYear">出版社/期刊</label>
<div class="controls">
<input type="text" name="publisher" id="inputYear" class="input-block-level" value="<?= isset($this->data['publisher']) ? $this->data['publisher']:"" ?>">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputReference">引用方式(前台显示)</label>
<div class="controls">
<textarea name="reference" id="inputReference" class="input-block-level"><?= isset($this->data['reference']) ? $this->data['reference']:"" ?></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputLink">链接(自动填写请留空)</label>
<div class="controls">
<input type="text" name="link" id="inputLink" class="input-block-level" value="<?= isset($this->data['link']) ? $this->data['link']:"" ?>"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputType">类型</label>
<div class="controls">
<input type="text" name="type" id="inputType" class="input-block-level" value="<?= isset($this->data['type']) ? $this->data['type']:"" ?>">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputLanguage">语言</label>
<div class="controls">
<input type="text" name="language" id="inputLanguage" class="input-block-level" value="<?= isset($this->data['language']) ? $this->data['language']:"" ?>">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputDoi">DOI</label>
<div class="controls">
<input type="text" name="doi" id="inputDoi" class="input-block-level" value="<?= isset($this->data['doi']) ? $this->data['doi']:"" ?>">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputBibtex">ris</label>
<div class="controls">
<textarea name="ris" id="inputBibtex" class="input-block-level"><?= isset($this->data['ris']) ? $this->data['ris']:"" ?></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputAbstract">摘要</label>
<div class="controls">
<textarea name="abstract" id="inputAbstract" class="input-block-level"><?= isset($this->data['abstract']) ? $this->data['abstract']:"" ?></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputNote">备注</label>
<div class="controls">
<textarea name="note" id="inputNote" class="input-block-level"><?= isset($this->data['note']) ? $this->data['note']:"" ?></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPDF">PDF</label>
<div class="controls">
<input type="file" name="Filedata" id="file_upload" />
<div id="uploadedFile"></div>
</div>
</div>
<div class="form-actions">
<input type="hidden" name="submit" value="1" />
<button type="submit" class="btn btn-primary">Save changes</button>
<button type="reset" class="btn">Cancel</button>
</div>
</form>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->
<script>
$(document).ready(function(e) {
$('#btn-add-author').click(function(e) {
html = '';
$('#author_inputs').append('');
});
});
var _this = {
SessionID : '<?php echo session_id(); ?>'
};
var uploader;
var param;
param = {
"PHPSESSID" : _this.SessionID,
};
$(function() {
$('#file_upload').uploadify({
'swf' : '/js/lib/uploadify/uploadify.swf',
'uploader' : '/admin/data/ref/ac/pdfupload',
'multi' : false,
'auto' : true,
'fileTypeExts' : '*.pdf',
'onUploadSuccess' : function(file, data, response) {
upload.onsuccess(file, data, response);
},
'onUploadStart' : function(file) {
$('#file_upload').uploadify('settings','formData',param);
}
});
});
var upload = {
onsuccess : function(file, data, response){
_data = $.parseJSON(data);
if(!$.isEmptyObject(_data.error))
{
alert(_data.error);
}else{
$('#uploadedFile').html(upload.makeFileHtml(_data));
}
},
makeFileHtml : function(data){
return '<div class="alert alert-success">'
+'<button type="button" class="close" data-dismiss="alert" onclick="upload.deleteFile('+data.id+')"><i class="icon-trash icon-white"></i></button>'
+ data.realname
+'<input type="hidden" name="attid" value="'+data.id+'"></input>'
+'</div>';
},
deleteFile : function(id){
$.ajax({
'type':"POST",
'url':'/admin/data/ref/ac/delete',
'data':'attid=' + id,
'success':function(data){
if(typeof(data) == 'undefined')
{
alert("数据源错误,请联系管理员");
return false;
}
if(!$.isEmptyObject(data.error))
{
alert(data.error);
return false;
}
},
'timeout': 30000,
'error': function(){
alert('附件删除出错');
}
});
}
};
</script>
<?php if(isset($this->data['attid']) && !empty($this->data['attid'])){ ?>
<input type="hidden" id="reference_file_content" value='<?= json_encode($this->data['file']) ?>' />
<script>
upload.onsuccess('',$('#reference_file_content').val(),"");
</script>
<?php } ?>

View File

@ -0,0 +1,105 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,'admin_plugin');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<div>
<div class="input-append">
<form id="datasearch" class="search_form" action="">
<input type="text" id="keyword" name="q" value="<?php if(!empty($this->q)) echo $this->q; ?>" />
<button type="submit" class="btn" id="search_btn">搜索</button>
</form>
</div>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<div id="datalist">
<?php if (count($this->paginator)): ?>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>文件名</th>
<th>状态</th>
<th width="140">操作</th>
</tr>
</thead>
<tbody>
<?php $autoindex=0;
foreach ($this->paginator as $item):
$autoindex++;?>
<tr id="DataLine_<?= $item['id']?>">
<td><?= $item['realname'] ?></td>
<td><?= empty($item['attid']) ? '<font color="#CC0000">未编辑</font>':"已编辑" ?></td>
<td>
<a class="file-editor" href="/admin/data/ref/ac/add/<?= empty($item['attid']) ? 'attid/'.$item['id'] : 'id/'.$item['refid']?>">编辑</a>
<a href="javascript:void(0);" onclick="file.delete(<?= $item['id']?>)" id="delbtn_<?= $item['id']?>">删除</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->
<script>
$(document).ready(function(e) {
});
var file = {
delete : function(id){
if(confirm("是否确定删除?") == false)
{
return false;
}
$.ajax({
'type':"POST",
'url':'/admin/data/ref/ac/delete',
'data':'attid=' + id,
'success':function(data){
if(typeof(data) == 'undefined')
{
alert("数据源错误,请联系管理员");
return false;
}
if(!$.isEmptyObject(data.error))
{
alert(data.error);
return false;
}
$('#DataLine_'+id).fadeOut();
},
'timeout': 30000,
'error': function(){
alert('附件删除出错');
}
});
}
}
</script>

View File

@ -0,0 +1,49 @@
<div class="modal hide fade" id="mdref-form">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3>添加数据文献</h3>
</div>
<div class="modal-body">
<form id="mdref" method="post" class="form-horizontal">
<div class="control-group">
<label class="control-label" for="inputRefid">文献ID</label>
<div class="controls">
<input type="text" name="refid" id="inputRefid" placeholder="文献ID" value="<?= empty($this->refid) ? "":$this->refid ?>">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputUuid">元数据UUID</label>
<div class="controls">
<input type="text" name="uuid" id="inputUuid" placeholder="UUID">
<span class="help-block"><a href="javascript:void(0);" onclick="$(this).parent('span').prev('input').val('e31f5ea7-a4af-4ae3-9ac1-1a84132c4338')">设为数据中心文献</a></span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPlace">排序数值(数字)</label>
<div class="controls">
<input type="text" name="place" id="inputPlace" placeholder="排序">
</div>
</div>
<div class="control-group">
<label class="control-label">文献类型</label>
<div class="controls">
<?php foreach($this->referenceType as $k=>$v) { ?>
<label class="radio">
<input type="radio" name="reftype" value="<?= $k ?>" /> <?= $v ?>
</label>
<?php } ?>
</div>
</div>
<input type="hidden" name="id" value="" />
</form>
</div>
<div id="alert-info"></div>
<div class="modal-footer">
<div class="progress progress-striped active" id="submit-loading" style="display:none;">
<div class="bar" style="width:100%;"></div>
</div>
<button onclick="$('#mdref')[0].reset();" class="btn">Reset</button>
<button onclick="$('#mdref-form').modal('hide');" class="btn">Close</button>
<button onclick="mdref.create()" class="btn btn-primary" id="submit_btn">Save changes</button>
</div>
</div>

View File

@ -0,0 +1,69 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,'admin_plugin');
$this->theme->AppendModel($this,'admin-data-ref');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<button type="button" class="btn btn-primary" onclick="$('#mdref')[0].reset();$('#mdref-form').modal('show');">添加一条</button>
<div id="datalist">
<?php if (count($this->paginator)): ?>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>元数据</th>
<th>类型</th>
<th>排序</th>
<th width="140">操作</th>
</tr>
</thead>
<tbody>
<?php $autoindex=0;
foreach ($this->paginator as $item):
$autoindex++;?>
<tr id="DataLine_<?= $item['id']?>">
<td><?= $item['title'] ?></td>
<td><?= isset($this->referenceType[$item['reftype']]) ? $this->referenceType[$item['reftype']]:"" ?></td>
<td><?= $item['place'] ?></td>
<td>
<a href="javascript:void(0);" onclick="mdref.edit(<?= $item['id'] ?>,<?= $item['refid']?>,'<?= $item['uuid'] ?>',<?= $item['reftype'] ?>,<?= $item['place'] ?>)">编辑</a>
<a href="/admin/data/ref/ac/delmdref/id/<?= $item['id']?>">移除</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->
<?= $this->partial('data/ref-mdref-form.phtml',array('referenceType'=>$this->referenceType,'refid'=>$this->refid)); ?>
<script>
$(document).ready(function(e) {
});
</script>

View File

@ -0,0 +1,120 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,"uploadify");
$this->theme->AppendPlus($this,'admin_plugin');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<form class="form-horizontal" method="post">
<div class="control-group">
<label class="control-label" for="inputPassword">PDF</label>
<div class="controls">
<input type="file" name="Filedata" id="file_upload" />
<div id="uploadedFile"></div>
</div>
</div>
<div class="form-actions">
<a class="btn btn-primary" href="/admin/data/ref/ac/files">文件管理</a>
</div>
</form>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->
<script>
var _this = {
SessionID : '<?php echo session_id(); ?>'
};
var uploader;
var param;
param = {
"PHPSESSID" : _this.SessionID,
"multi" : 'yes'
};
$(function() {
$('#file_upload').uploadify({
'swf' : '/js/lib/uploadify/uploadify.swf',
'uploader' : '/admin/data/ref/ac/pdfupload',
'multi' : true,
'auto' : true,
'fileTypeExts' : '*.pdf',
'onUploadSuccess' : function(file, data, response) {
upload.onsuccess(file, data, response);
},
'onUploadStart' : function(file) {
$('#file_upload').uploadify('settings','formData',param);
}
});
});
var upload = {
onsuccess : function(file, data, response){
_data = $.parseJSON(data);
if(!$.isEmptyObject(_data.error))
{
alert(_data.error);
}else{
$('#uploadedFile').append(upload.makeFileHtml(_data));
}
},
makeFileHtml : function(data){
return '<div class="alert alert-success">'
//+'<button type="button" class="close" data-dismiss="alert" onclick="upload.deleteFile('+data.id+')"><i class="icon-trash icon-white"></i></button>'
+ data.realname
+'<input type="hidden" name="attid" value="'+data.id+'"></input>'
+'</div>';
},
deleteFile : function(id){
$.ajax({
'type':"POST",
'url':'/admin/data/ref/ac/delete',
'data':'attid=' + id,
'success':function(data){
if(typeof(data) == 'undefined')
{
alert("数据源错误,请联系管理员");
return false;
}
if(!$.isEmptyObject(data.error))
{
alert(data.error);
return false;
}
},
'timeout': 30000,
'error': function(){
alert('附件删除出错');
}
});
}
};
</script>
<?php if(isset($this->data['attid']) && !empty($this->data['attid'])){ ?>
<input type="hidden" id="reference_file_content" value='<?= json_encode($this->data['file']) ?>' />
<script>
upload.onsuccess('',$('#reference_file_content').val(),"");
</script>
<?php } ?>

View File

@ -0,0 +1,11 @@
<ul class="nav nav-tabs">
<li <?= empty($this->ac) ? 'class="active"':"" ?>><a href="/admin/data/ref">浏览所有</a></li>
<li <?= $this->ac=="water" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/water">WATER文献</a></li>
<li <?= $this->ac=="westdc" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/westdc">数据中心文献</a></li>
<li <?= $this->ac=="todo" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/todo">待处理文献</a></li>
<li <?= $this->ac=="add" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/add">单篇添加</a></li>
<li <?= $this->ac=="multiupload" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/multiupload">批量上传</a></li>
<li <?= $this->ac=="files" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/files">文件管理</a></li>
<li <?= $this->ac=="ris" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/ris">RIS导入</a></li>
<li <?= $this->ac=="risoutput" ? 'class="active"':"" ?>><a href="/admin/data/ref/ac/risoutput">RIS导出</a></li>
</ul>

View File

@ -0,0 +1,67 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,"uploadify");
$this->theme->AppendPlus($this,'admin_plugin');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<?php if(empty($this->data)) { ?>
<form class="form-horizontal" method="post" enctype="multipart/form-data">
<div class="control-group">
<label class="control-label" for="inputPassword">RIS文件</label>
<div class="controls">
<input type="file" name="Filedata" id="file_upload" />
<div id="uploadedFile"></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPassword">RIS文本</label>
<div class="controls">
<textarea class="input-block-level" name="ristext" rows="5"></textarea>
</div>
</div>
<div class="form-actions">
<input type="hidden" name="submit" value="1" />
<button type="submit" class="btn btn-primary">导入</button>
</div>
</form>
<?php }else{ ?>
<?php
foreach($this->data as $k=>$ref)
{
echo '<ul>';
foreach($ref as $index=>$value)
{
$v = is_array($value) ? join("|",$value) : $value;
echo '<li>'.$index .":". $v .'</li>';
}
echo "</ul>";
}
?>
<?php } ?>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->

View File

@ -0,0 +1,50 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,"uploadify");
$this->theme->AppendPlus($this,'admin_plugin');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<h3>RIS导出</h3>
<hr />
<div>
<?php if(!empty($this->years)) { ?>
按年份 :
<?php foreach($this->years as $k=>$v){ ?>
<a class="btn btn-info" href="?field[year]=<?= $v['year'] ?>"><?= empty($v['year']) ? "未知":$v['year'] ?>(<?= $v['num'] ?>)</a>
<?php } ?>
<hr />
<?php } ?>
</div>
<div>
其它方式:<a class="btn btn-info" href="?submit=1&mode=all">全部</a>
</div>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->

View File

@ -0,0 +1,63 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,"uploadify");
$this->theme->AppendPlus($this,'admin_plugin');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<h3><?= empty($this->referenceData['title']) ? $this->referenceData['reference'] : $this->referenceData['title'] ?></h3>
<hr />
<?php if(empty($this->data)) { ?>
<form class="form-horizontal" method="post" enctype="multipart/form-data">
<div class="control-group">
<label class="control-label" for="inputPassword">RIS文本</label>
<div class="controls">
<textarea class="input-block-level" name="ristext" rows="5"><?= $this->ristext ?></textarea>
<span class="help-block">* 此功能是使用单个文献的 RIS 文本导入并覆盖以前填写过的信息</span>
</div>
</div>
<div class="form-actions">
<input type="hidden" name="submit" value="1" />
<button type="submit" class="btn btn-primary">导入</button>
</div>
</form>
<?php }else{ ?>
<?php
foreach($this->data as $k=>$ref)
{
echo '<ul>';
foreach($ref as $index=>$value)
{
$v = is_array($value) ? join("|",$value) : $value;
echo '<li>'.$index .":". $v .'</li>';
}
echo "</ul>";
}
?>
<?php } ?>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->

View File

@ -0,0 +1,111 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('文献管理');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendPlus($this,'admin_plugin');
$this->theme->AppendModel($this,'admin-data-ref');
?>
<style>
table thead tr th {background:#EBF2F6;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<div>
<?= $this->partial('data/ref-nav.phtml',array('ac'=>$this->ac)); ?>
</div>
<div>
<div class="input-append">
<form id="datasearch" class="search_form" action="">
<input type="text" id="keyword" name="q" value="<?php if(!empty($this->q)) echo $this->q; ?>" />
<input type="hidden" name="order" value="<?php if(!empty($this->search_order)) echo $this->search_order; ?>" />
<input type="hidden" name="sort" value="<?php if(!empty($this->search_sort)) echo $this->search_sort; ?>" />
<button type="submit" class="btn" id="search_btn">搜索</button>
</form>
</div>
</div>
<?php if(!empty($this->error)) { ?>
<?= $this->error ?>
<?php } ?>
<?php if(!empty($this->msg)) { ?>
<?= $this->msg ?>
<?php } else{ ?>
<?php if($this->ac == 'westdc'){ ?>
<button type="button" class="btn btn-success" onclick="$('#mdref')[0].reset();mdref.edit('','','e31f5ea7-a4af-4ae3-9ac1-1a84132c4338',0,0)">添加数据中心文献</button>
<?php } ?>
<?php if(!empty($this->years)) { ?>
<?php foreach($this->years as $k=>$v){ ?>
<a class="btn btn-info" href="?field[year]=<?= $v['year'] ?>"><?= empty($v['year']) ? "未知":$v['year'] ?>(<?= $v['num'] ?>)</a>
<?php } ?>
<?php } ?>
<div id="datalist">
<?php if (count($this->paginator)): ?>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>标题
<a href="?order=title&sort=ASC&q=<?php if(!empty($this->q)) echo $this->q; ?>"><i class="icon-arrow-up"></i></a>
<a href="?order=title&sort=DESC&q=<?php if(!empty($this->q)) echo $this->q; ?>"><i class="icon-arrow-down"></i></a>
年份
<a href="?order=year&sort=ASC&q=<?php if(!empty($this->q)) echo $this->q; ?>"><i class="icon-arrow-up"></i></a>
<a href="?order=year&sort=DESC&q=<?php if(!empty($this->q)) echo $this->q; ?>"><i class="icon-arrow-down"></i></a>
</th>
<th>记录创建
<a href="?order=ts_created&sort=ASC&q=<?php if(!empty($this->q)) echo $this->q; ?>"><i class="icon-arrow-up"></i></a>
<a href="?order=ts_created&sort=DESC&q=<?php if(!empty($this->q)) echo $this->q; ?>"><i class="icon-arrow-down"></i></a>
</th>
<th width="140">操作</th>
</tr>
</thead>
<tbody>
<?php
if($this->page > 1)
{
$autoindex = ($this->page - 1) * $this->pagelimit;
}else{
$autoindex=0;
}
foreach ($this->paginator as $item):
$autoindex++;?>
<tr id="DataLine_<?= $item['id']?>">
<td>
[<?= $autoindex ?>]&nbsp;
<?php if ($item['ris']) :
echo $item['reference'];
else :
?>
{<?php $authors = $this->reference->getAuthorByReference($item['id'],true); echo count($authors) ? join(",",$authors):'<font color="#CC0000">未知作者</font>'; ?>}&nbsp;
{<?= empty($item['title']) ? '<font color="#CC0000">未知标题</font>':$item['title'] ?>}&nbsp;
{<?= empty($item['publisher']) ? '<font color="#CC0000">未知期刊</font>':$item['publisher'] ?>}&nbsp;
{<?= empty($item['year']) ? '<font color="#CC0000">未知年份</font>':$item['year'] ?>}&nbsp;
<?php endif; ?>
</td>
<td><?= date("Y-m-d H:i",strtotime($item['ts_created'])) ?></td>
<td>
<a href="/admin/data/ref/ac/add/id/<?= $item['id']?>">编辑</a>
<a href="/admin/data/ref/ac/singleris/id/<?= $item['id'] ?>">RIS编辑</a>
<a href="/admin/data/ref/ac/data/id/<?= $item['id'] ?>">数据</a>(<a href="javascript:void(0);" onclick="$('#mdref')[0].reset();mdref.edit('',<?= $item['id']?>,'',0,0)">+</a>)
<a href="/admin/data/ref/ac/deleteref/id/<?= $item['id']?>">删除</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
<?php } ?>
</div>
</div>
<!-- //页面内容 -->
<?= $this->partial('data/ref-mdref-form.phtml',array('referenceType'=>$this->referenceType)); ?>

View File

@ -56,7 +56,7 @@ foreach ($this->paginator as $item):
$i=0;
$u=$item['uuid'];
endif;
if ($i==0) echo '<div class="well"><h4>元数据:<a href="/data/'.$item['uuid'].'">'.$item['title'].'</a><a href="/admin/data/reference/add/1/uuid/'.$item['uuid'].'">添加</a></h4><ol>';
if ($i==0) echo '<div class="well"><h4>元数据:<a href="/data/'.$item['uuid'].'">'.$item['mdtitle'].'</a><a href="/admin/data/reference/add/1/uuid/'.$item['uuid'].'">添加</a></h4><ol>';
echo '<li>文献(<a href="/admin/data/reference/edit/'.$item['mdid'].'">编辑</a> <a href="/admin/data/reference/delete/'.$item['mdid'].'">删除</a> <a href="javascript:void(0);" class="order" rel="'.$item['mdid'].'" rev="'.$item['place'].'">排序</a>'.$item['place'].'. '.$item['reference'].'</li>';
endforeach;
echo '</ul>';

View File

@ -27,7 +27,6 @@
<div class="ctrlplan">
<a href="/admin/data/source">项目来源管理</a>
<a href="/admin/data/source/do/add">添加项目来源</a>
<a href="/admin/data/source/do/sync">同步项目来源(以此处为准)</a>
</div>
<div class="search">

View File

@ -0,0 +1,275 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<h3>添加可视化要素</h3>
<hr />
<?php if(!empty($this->error)) {?>
<div class="alert alert-error">
<?= $this->error ?>
</div>
<?php }?>
<form class="form-horizontal" method="post" action="">
<div class="control-group">
<label class="control-label" for="inputUUID">UUID</label>
<div class="controls">
<input type="text" id="inputUUID" placeholder="UUID" value="<?= $this->data['uuid'] ?>" class="input-block-level" name="uuid">
</div>
</div>
<div class="control-group">
<label class="control-label">状态</label>
<div class="controls">
<label class="radio inline">
<?php $checked = function(){
if(isset($this->info['status']))
{
if($this->info['status'] == 1)
{
return 'checked="checked"';
}
}else{
return 'checked="checked"';
}
}; ?>
<input type="radio" name="status" id="optionsRadios1" value="1" <?= $checked() ?>>
启用
</label>
<label class="radio inline">
<input type="radio" name="status" id="optionsRadios2" value="0"
<?= isset($this->info['status']) && $this->info['status'] == 0 ? 'checked="checked"':"" ?>>
禁用
</label>
</div>
</div>
<div class="control-group">
<label class="control-label">绘图插件</label>
<div class="controls">
<label class="radio inline">
<input type="radio" name="chartjs" id="optionsRadios1" value="highcharts" <?= (isset($this->info['chartjs']) && $this->info['chartjs']=='highcharts') ? "checked":"" ?>>
Highcharts适合分类数据展示和三维展示
</label>
<label class="radio inline">
<input type="radio" name="chartjs" id="optionsRadios2" value="highstock"
<?= (isset($this->info['chartjs']) && $this->info['chartjs'] == 'highstock') || empty($this->info['chartjs']) ? 'checked="checked"':"" ?>>
Highstock适合时间序列数据可视化
</label>
</div>
</div>
<div class="control-group">
<label class="control-label">默认绘制类型</label>
<div class="controls">
<label class="radio inline">
<input type="radio" name="charttype" id="optionsRadios1" value="line" <?= (isset($this->info['charttype']) && $this->info['charttype']=='line') || empty($this->info['charttype']) ? "checked":"" ?>>
折线图
</label>
<label class="radio inline">
<input type="radio" name="charttype" id="optionsRadios2" value="column"
<?= isset($this->info['charttype']) && $this->info['charttype'] == 'column' ? 'checked="checked"':"" ?>>
柱状图
</label>
<label class="radio inline">
<input type="radio" name="charttype" id="optionsRadios3" value="spline"
<?= isset($this->info['charttype']) && $this->info['charttype'] == 'spline' ? 'checked="checked"':"" ?>>
样条线图
</label>
<label class="radio inline">
<input type="radio" name="charttype" id="optionsRadios4" value="area"
<?= isset($this->info['charttype']) && $this->info['charttype'] == 'area' ? 'checked="checked"':"" ?>>
面积图
</label>
</div>
</div>
<div class="control-group" style="display: none;">
<label class="control-label">数据表</label>
<div class="controls">
<select name="visual_datatable" id="data-table">
<option value="0">请选择</option>
<?php foreach($this->visualTable as $k=>$v){ ?>
<?php if(isset($this->info['visual_datatable']) && $this->info['visual_datatable']==$v){ ?>
<option value="<?= $v ?>" selected="selected"><?= $v ?></option>
<?php }else{ ?>
<option value="<?= $v ?>"><?= $v ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputData">数据读取SQL或表名</label>
<div class="controls">
<textarea name="data" rows="4" class="input-block-level" id="inputData"><?= !isset($this->info['data']) ? "":$this->info['data']?></textarea>
<p class="help-block">如果设置了某个字段的读取sql会自动忽略此项设置</p>
</div>
</div>
<div class="control-group time-field-select">
<label class="control-label">X轴取值</label>
<div class="controls">
<input type="text" name="xaxis" placeholder="时间字段读取SQL" class="input-block-level" value="<?= isset($this->info['xaxis']) ? $this->info['xaxis']:'' ?>" />
<p class="help-block">例如: utctime, times , (year||'-'||month||'-1')::timestamp without time zone ,不需要在最外层加括号或者双引号。如果是制作分类图则X轴必须是category请在数据读取SQL中用将所需字段命名为category。</p>
</div>
</div>
<?php if(!empty($this->info['variable'])) { ?>
<?php $vars = array() ?>
<?php $encoder = new \Westdc\Visual\VariableEncoder; ?>
<?php $vars = $encoder->decode($this->info['variable']);?>
<?php foreach($vars as $index=>$value) { ?>
<div class="control-group var-group">
<label class="control-label" for="inputVariable">可视化要素 <small><a href="javascript:void(0);" onclick="delVar(this)">删除</a></small></label>
<div class="controls">
<input type="text" placeholder="字段名" class="" name="var[<?= $index ?>][name]" value="<?= $value['name'] ?>">
<input type="text" placeholder="显示名" class="" name="var[<?= $index ?>][title]" value="<?= $value['title'] ?>">
<input type="text" placeholder="字段sql" class="" name="var[<?= $index ?>][sql]" value="<?= (isset($value['sql']))?$value['sql']:'' ?>">
<input type="text" placeholder="查询条件" name="var[<?= $index ?>][condition]" value="<?= isset($value['condition']) && is_string($value['condition']) ? $value['condition']:"" ?><?= isset($value['condition']) && is_array($value['condition']) ? join(";",$value['condition']):"" ?>">
</div>
</div>
<?php } ?>
<?php } ?>
<div class="control-group" id="last-control-group">
<div class="controls">
<button type="button" class="btn btn-defualt" id="addVariable">添加要素</button>
</div>
</div>
<div class="control-group" id="last-control-group">
<div class="controls">
<input type="hidden" name="submit" value="1" />
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</form>
</div>
</div>
<script type="text/javascript">
var fieldData,fieldHtml,varHtml,current_count;
function makeVarSelectHtml(field_data){
current_count = $('.var-group').length;
fieldHtml = []
varHtml = '<input type="text" placeholder="字段名" class="" name="var['+current_count+'][name]">'
+ '<input type="text" placeholder="显示名" class="" name="var['+current_count+'][title]">'
+ '<input type="text" placeholder="字段sql" class="" name="var['+current_count+'][sql]">'
+ '<input type="text" placeholder="查询条件" class="" name="var['+current_count+'][condition]">';
html = '<div class="control-group var-group">'
+ '<label class="control-label" for="inputVariable">可视化要素 <small><a href="javascript:void(0);" onclick="delVar(this)">删除</a></small></label>'
+ '<div class="controls">'
+ varHtml
+ '</div>'
+'</div>';
return html;
}
function delVar(dom){
$(dom).parent().parent().parent('.control-group').remove();
};
$(document).ready(function(){
$('#data-table').change(function(){
$('.var-group').remove();
$.ajax({
type:"POST",
url:'',
data:'tablename='+ $(this).val(),
success:function(data){
fieldData = data;
html = [];
for(i in data)
{
html.push('<option value="' + data[i] + '">' + data[i] + '</option>');
}
html = '<select name="visual_timefield">' + html.join('')+'</select>';
$('#field-time').html(html);
},
beforeSend:function(){
$('#field-time').html('加载中');
}
});
});
<?php if(!empty($this->info['ts_created']) && !empty($this->info['visual_datatable'])) { ?>
$.ajax({
type:"POST",
url:'',
data:'tablename=<?= $this->info['visual_datatable'] ?>',
success:function(data){
fieldData = data;
html = [];
for(i in data)
{
if('<?= $this->info['visual_timefield'] ?>' == data[i])
html.push('<option value="' + data[i] + '" selected="selected">' + data[i] + '</option>');
else
html.push('<option value="' + data[i] + '">' + data[i] + '</option>');
}
html = '<select name="visual_timefield">' + html.join('')+'</select>';
$('#field-time').html(html);
},
beforeSend:function(){
$('#field-time').html('加载中');
}
});
<?php } ?>
$('#addVariable').click(function(e) {
if($('#var-group').length > 0)
$('#var-group').append(makeVarSelectHtml(fieldData));
else
$('#last-control-group').prepend(makeVarSelectHtml(fieldData));
});
$('#open-field-helper').click(function(){
if(null == fieldData || $('#data-table').val() == '0')
{
alert('请先选择数据表和时间字段');
return false;
}
$('.modal-body p').html(fieldData.join(','));
$('#modal-show-field').modal('show');
});
});
</script>
<div id="modal-show-field" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">字段列表</h3>
</div>
<div class="modal-body">
<p></p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">关闭</button>
</div>
</div>

View File

@ -0,0 +1,40 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('<a href="/admin/data">数据管理</a>');
$this->breadcrumb('同步GEONETWORK元数据</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span10">
<?php if (count($this->paginator)): ?>
<div class="datalist">
<ul class="unstyled">
<?php foreach ($this->paginator as $item): ?>
<li class="well well-small">
<h4><a href="/data/<?= $item['uuid']; ?>" class="title"><?= $item['title']; ?></a></h4>
<p>大小:<?= $item['filesize']; ?>M创建时间<?= date('Y-m-d',strtotime($item['ts_created'])); ?></p>
<?php if($item['author']) :?>
<p>数据贡献者:<?= $item['author']; ?></p>
<?php endif;?>
<p class="content"><?= $item['description']; ?></p>
<p>
操作:
<a href="/admin/data/visual/uuid/<?php echo $item['uuid'];?>">编辑可视化要素</a> |
<a href="/visual/view/uuid/<?= $item['uuid'] ?>">前台预览</a>
</p>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<?php echo $this->paginator; ?>
</div>
</div>

View File

@ -2,7 +2,6 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台管理首页</a>');
$this->breadcrumb('<a href="/admin/down">申请管理</a>');
@ -10,13 +9,17 @@
$this->breadcrumb()->setSeparator(' > ');
$this->headScript()->appendFile('/js/prototype.js');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<h3><?php if(!empty($this->title)) echo $this->title;?><?php echo $this->count;?> 数据下载记录</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<div class="alert">
<?php if ($this->msg) : ?>
<p><?php echo $this->msg; ?></p>
<?php endif; if ($this->messages): foreach($this->messages as $msg): ?>
@ -25,24 +28,26 @@
</div>
<?php endif; ?>
<div class="right_title"><?php if(!empty($this->title)) echo $this->title;?><?php echo $this->count;?> 数据下载记录</div>
<div class="search">
<form action="/admin/down/data/" method="get">
<div class="row-fluid">
<div class="span12">
<form action="/admin/down/data/" method="get" class="form-search">
<div class="input-append">
<input type="hidden" name="search" value='1' />
<ul>
<li><label>搜索关键字</label><input type="text" name="keyword" value="<?php echo $this->keyword; ?>" /></li>
<li><input type="submit" class="searchbtn" value="搜索" /></li>
</ul>
<input type="text" name="keyword" value="<?php echo $this->keyword; ?>" class="span8 search-query"/>
<button type="submit" class="btn">搜索</button>
</div>
</form>
</div>
</div><!-- search DIV -->
<table><thead>
<table class="table table-hover">
<thead>
<tr>
<td width='350'>数据</td>
<td width='150'>下载次数</td>
<td width='150'>操作</td>
</tr></thead>
</tr>
</thead>
<?php if (count($this->paginator)): ?>
<?php $autoindex=0;?>
<?php foreach ($this->paginator as $item): ?>
@ -60,3 +65,4 @@
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div>

View File

@ -2,15 +2,16 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('申请管理');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
</div>
</div>

View File

@ -1,9 +1,11 @@
<ul>
<li class="title">申请管理与在线下载记录</li>
<div class="well" style="padding:8px 0">
<ul class="nav nav-list">
<li class="nav-header"><h4>申请管理与记录</h4></li>
<li class="divider"></li>
<li><a href="/admin/down/offlineapp">离线数据申请管理</a></li>
<li><a href="/admin/down/offline">离线数据服务记录</a></li>
<li><a href="/admin/down/fixoffline">手动同步离线申请用户与网站帐号</a></li>
<li><a href="/admin/down/online">在线数据下载记录从20110908开始</a></li>
<li><a href="/admin/down/online">在线数据下载记录</a></li>
<li><a href="/admin/down/user">用户下载记录</a></li>
<li><a href="/admin/down/data">数据下载记录</a></li>
</ul>
</div>

View File

@ -2,21 +2,27 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('<a href="/admin/down">申请管理</a>');
$this->headScript()->appendFile('/js/jquery-1.7.min.js');
$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
$this->headLink()->appendStylesheet('/css/author.css');
$this->headLink()->appendStylesheet('/css/colorbox.css');
$this->Theme->AppendPlus($this,'colorbox');
$this->Theme->AppendPlus($this,'uploadify');
$this->breadcrumb('离线数据申请管理</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<h3>离线数据服务记录</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
@ -26,39 +32,47 @@
<?php endforeach;endif; ?>
</div>
<?php endif; ?>
<div class="right_title">离线数据服务记录</div>
<a href="/admin/down/offline/add/1">添加新的离线服务记录</a> | <a href="/admin/down/offline/down/1">下载所有离线服务记录</a> | <a href="/admin/down/offline/update/1" onclick="return confirm('该操作需要较长时间,请不要中途刷新页面,是否确定继续?')">自动匹配离线下载用户与网站用户</a> | <a href="/admin/down/offline/emaillist/1">下载服务用户邮箱列表</a>
| <a href="/admin/down/offline/monthreport/1">下载上月服务记录(科技部上报)</a>
<div class="pull-left">
<a href="/admin/down/offline/add/1" class="btn btn-info">添加新的离线服务记录</a>
<a href="/admin/down/offline/down/1" class="btn btn-info">下载所有离线服务记录</a>
<a href="/admin/down/offline/emaillist/1" class="btn btn-info">下载服务用户邮箱列表</a>
</div>
<div class="input-append pull-right">
<form id="datasearch" class="search_form" action="">
<input type="text" id="keyword" name="q" value="<?php if(!empty($this->q)) echo $this->q; ?>" />
<input type="hidden" name="order" value="<?php if(!empty($this->search_order)) echo $this->search_order; ?>" />
<input type="hidden" name="sort" value="<?php if(!empty($this->search_sort)) echo $this->search_sort; ?>" />
<button type="submit" class="btn" id="search_btn">搜索</button>
</form>
</div>
<?php if (count($this->paginator)): ?>
<table>
<thead><tr>
<th width='70'>姓名</th>
<th width='150'>单位</th>
<th width='150'>地址</th>
<th width='50'>邮编</th>
<th width='300'>用途</th>
<th width='300'>数据清单</th>
<th width='120'>申请时间</th>
<th width='100'>操作</th>
<table class="table table-bordered table-hover">
<thead>
<tr>
<th width="52">姓名</th>
<th>单位</th>
<th>地址</th>
<th>邮编</th>
<th>用途</th>
<th>数据清单</th>
<th>申请时间</th>
<th>操作</th>
</tr></thead>
<tbody>
<?php $autoindex=0;?>
<?php foreach ($this->paginator as $item): ?>
<?php $autoindex++;?>
<tr class="<?php if($autoindex%2 == 0) echo 'even'; else echo 'odd'; ?>">
<td><a href="/admin/user/show/id/<?php echo $item['userid'];?>"><img src="/images/user.gif" /></a> <a href="/admin/down/user/show/<?php echo $item['userid'];?>"><?= $item['username']?></a> </td>
<td><a href="/admin/down/user/show/<?php echo $item['userid'];?>"><?= $item['username']?></a></td>
<td><?= $item['unit']; ?></td>
<td><?= $item['address']; ?></td>
<td><?= $item['postcode']; ?></td>
<td><textarea readonly="readonly" style="width:300px;height:100px;border:none;font-size:12px;<?php if($autoindex%2 == 0) echo 'background:#CCCCCC;'; else echo 'background:#FFF;'; ?>"><?= $item['project'].'['.$item['project_title'].' | '.$item['project_type'].' | '.$item['project_id'].']'; ?></textarea></td>
<td><textarea readonly="readonly" style="width:300px;height:100px;border:none;font-size:12px;<?php if($autoindex%2 == 0) echo 'background:#CCCCCC;'; else echo 'background:#FFF;'; ?>"><?= $item['datalist']; ?></textarea></td>
<td><textarea readonly="readonly" style="width:280px;height:100px;border:none;font-size:12px;"><?= $item['project'].'['.$item['project_title'].' | '.$item['project_type'].' | '.$item['project_id'].']'; ?></textarea></td>
<td><textarea readonly="readonly" style="width:280px;height:100px;border:none;font-size:12px;"><?= $item['datalist']; ?></textarea></td>
<td><?= date('Y-m-d',strtotime($item['ts_created'])); ?></td>
<td>
<a href="/admin/down/offline/edit/<?= $item['id']; ?><?php if(empty($this->page)) "" ; else echo "/page/".$this->page; ?>">编辑</a> |
<a href="/admin/down/offline/delete/<?= $item['id']; ?>" title="该操作将删除此记录并且删除与此记录有关的申请记录!请谨慎操作" onclick="return confirm('请仅删除测试用途的离线服务记录!')">删除</a> |
<a href="/admin/down/offlineapp/view/<?= $item['id']; ?>">PDF</a> |
<a href="/admin/down/offline/show/<?= $item['id']; ?>">详细</a> |
<a href="javascript:action('finish',<?= $item['id']; ?>);" onclick="return confirm('确定确定重新通过该申请?')">重新通过</a>
</td>
</tr>
<?php endforeach; ?>
@ -66,6 +80,64 @@
<?php endif; ?>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div><!-- row -->
<div id="upload-form" class="modal hide fade" tabindex="-1" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">申请表上传</h3>
</div>
<div class="modal-body">
<form id="application-form">
<div id="fsUploadProgress">允许上传30M以内的 PDF 文件</div>
<input type="file" name="Filedata" id="file_upload" />
</form>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">取消上传</button>
<button class="btn btn-primary">上传完成</button>
</div>
</div>
<script>
//var param = {};
//var upload_count = 0;
var uploader;
var param;
$(function() {
$('#file_upload').uploadify({
'swf' : '/js/lib/uploadify/uploadify.swf',
'uploader' : '/admin/down/uploadapplicationform',
'multi' : false,
'auto' : true,
'fileTypeExts' : '*.pdf; *.jpg',
'onUploadSuccess' : function(file, data, response) {
upload.onsuccess(file, data, response);
},
'onUploadStart' : function(file) {
$('#file_upload').uploadify('settings','formData',param);
}
});
});
var upload = {
onsuccess : function(file, data, response){
_data = $.parseJSON(data);
if(!$.isEmptyObject(_data.error))
{
alert(_data.error);
}else{
$('#upload-form').modal('hide');
window.location = window.location;
}
},
showUploadForm : function(id){
$('#upload-form').modal('show');
param = {
"PHPSESSID" : "<?php echo session_id(); ?>",
'orderid' : id
};
}
};
</script>
<script>
function action(name,id){
var url;

View File

@ -2,21 +2,21 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('<a href="/admin/down">申请管理</a>');
$this->headScript()->appendFile('/js/jquery-1.7.min.js');
$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
$this->headLink()->appendStylesheet('/css/author.css');
$this->headLink()->appendStylesheet('/css/colorbox.css');
$this->Theme->AppendPlus($this,'colorbox');
$this->Theme->AppendPlus($this,'uploadify');
$this->breadcrumb('离线数据申请管理</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<h3>离线数据申请管理</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
@ -28,34 +28,35 @@
</div>
<?php endif; ?>
<div class="right_title">离线数据申请管理</div>
<div style="overflow:hidden">
<div class="pull-left">
<a href="/admin/down/offline" class="btn btn-info">已通过的申请(离线服务记录)</a>
</div>
<a href="/admin/down/offlineapp/reset/-1" onclick="return confirm('是否重置该申请?')">重置1年前的所有未收到申请表的记录</a>
| <a href="/admin/down/offlineapp/status/4">已收到的申请</a>
| <a href="/admin/down/offlineapp/status/-1">已拒绝的申请</a>
| <a href="/admin/down/offlineapp">待处理的申请</a>
| <a href="/admin/down/offline">已通过的申请(离线服务记录)</a>
<div class="search">
<form action="/admin/down/offlineapp" method="get">
<input name="search" value="1" type="hidden">
<ul>
<li><input name="q" value="" type="text" placeholder="搜索关键字"></li>
<li><input class="searchbtn" value="搜索" type="submit"></li>
</ul>
<div class="input-append pull-right">
<form id="datasearch" class="search_form" action="">
<input type="text" id="keyword" name="q" value="<?php if(!empty($this->q)) echo $this->q; ?>" />
<input type="hidden" name="order" value="<?php if(!empty($this->search_order)) echo $this->search_order; ?>" />
<input type="hidden" name="sort" value="<?php if(!empty($this->search_sort)) echo $this->search_sort; ?>" />
<button type="submit" class="btn" id="search_btn">搜索</button>
</form>
</div>
<div id="datalist">
</div>
<div id="datalist" style="overflow:hidden">
<?php
if (count($this->paginator)):
echo "<ul>";
echo '<ul class="unstyled">';
$autoindex=0;
foreach ($this->paginator as $item):
$autoindex++;?>
<li id="list_<?php echo $item['id'];?>">
<li id="list_<?php echo $item['id'];?>" class="well well-small">
<p>
<a href="mailto:<?= $item['email']; ?>?subject=答复数据申请问题"><?= $item['username']; ?></a> |
<?= $autoindex ?>.
申请人: <a href="mailto:<?= $item['email']; ?>?subject=答复数据申请问题"><?= $item['username']; ?></a> |
申请时间: <?= date('Y-m-d',strtotime($item['ts_created'])); ?>
<?php if(!empty($item['ts_received'])) echo " | 收到时间:".date('Y-m-d',strtotime($item['ts_received']));?>
<?php if(!empty($item['ts_received'])) echo " | 收到时间:".date('Y-m-d',strtotime($item['ts_received']));?> |
数据名称:<a href="/data/<?= $item['uuid'] ?>" target="_blank"><?= $item['title'] ?></a>
</p>
<p>
单位:<?= $item['unit']; ?> |
@ -67,17 +68,11 @@
<p style="width:95%;margin:0px auto;"><q><cite><?= $item['project'].'['.$item['project_title'].' | '.$item['project_type'].' | '.$item['project_id'].']'; ?></cite></q></p>
</p>
<p>
数据清单:<?= $item['datalist']; ?>
</p>
<p>
<a href="/admin/down/offlineapp/view/<?= $item['id']; ?>">申请表</a> |
<?php if ($item['datastatus']==3) : ?>
<span id="start_<?= $item['id']; ?>"><a href="javascript:action('start',<?= $item['id']; ?>);" onclick="return confirm('确定收到该申请?')">收到</a></span> |
<?php endif; ?>
<a href="javascript:action('finish',<?= $item['id']; ?>);" onclick="return confirm('确定确定通过该申请?')">通过</a> |
<a href="javascript:action('deleted',<?= $item['id']; ?>);" onclick="return confirm('确定将此记录删除?')">删除</a> |
<a href="javascript:action('deny',<?= $item['id']; ?>);" onclick="return confirm('确定拒绝该申请?')">拒绝</a> |
<a href="javascript:action('reset',<?= $item['id']; ?>);" onclick="return confirm('是否重置该申请?')">重置</a>
<a href="javascript:action('deny',<?= $item['id']; ?>);" onclick="return confirm('确定拒绝该申请?')">拒绝</a>
<?php if(!empty($item['applicationform'])) { ?>
| <a href="/admin/down/applicationform/ac/view/?link=<?= urlencode($item['applicationform'])?>">查看签字申请表</a>
<?php }?>
</p>
</li>
<?php endforeach;
@ -86,8 +81,64 @@
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div>
</div>
<div id="upload-form" class="modal hide fade" tabindex="-1" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">申请表上传</h3>
</div>
<div class="modal-body">
<form id="application-form">
<div id="fsUploadProgress">允许上传30M以内的 PDF 文件</div>
<input type="file" name="Filedata" id="file_upload" />
</form>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">取消上传</button>
<button class="btn btn-primary">上传完成</button>
</div>
</div>
<script>
//var param = {};
//var upload_count = 0;
var uploader;
var param;
$(function() {
$('#file_upload').uploadify({
'swf' : '/js/lib/uploadify/uploadify.swf',
'uploader' : '/admin/down/uploadapplicationform',
'multi' : false,
'auto' : true,
'fileTypeExts' : '*.pdf; *.jpg',
'onUploadSuccess' : function(file, data, response) {
upload.onsuccess(file, data, response);
},
'onUploadStart' : function(file) {
$('#file_upload').uploadify('settings','formData',param);
}
});
});
var upload = {
onsuccess : function(file, data, response){
_data = $.parseJSON(data);
if(!$.isEmptyObject(_data.error))
{
alert(_data.error);
}else{
$('#upload-form').modal('hide');
window.location = window.location;
}
},
showUploadForm : function(id){
$('#upload-form').modal('show');
param = {
"PHPSESSID" : "<?php echo session_id(); ?>",
'orderid' : id
};
}
};
function action(name,id){
var url;
if(name == "start")

View File

@ -0,0 +1,15 @@
<ul class="nav nav-pills">
<li class="<?= $this->navIn == "notreceived" ? "active":"" ?>">
<a href="/admin/down/offlineapps/ac/notreceived">未接收</a>
</li>
<li class="<?= $this->navIn == "nopdf" ? "active":"" ?>">
<a href="/admin/down/offlineapps/ac/nopdf">已接收未上传申请表</a>
</li>
<li class="<?= $this->navIn == "notpassed" ? "active":"" ?>">
<a href="/admin/down/offlineapps/ac/notpassed">待审批</a>
</li>
<li class="<?= $this->navIn == "passed" ? "active":"" ?>">
<a href="/admin/down/offlineapps/ac/passed">已上传申请表已通过</a>
</li>
</ul>

View File

@ -0,0 +1,73 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb()->setSeparator(' > ');
$this->Theme->AppendPlus($this,'colorbox');
$this->Theme->AppendPlus($this,'uploadify');
$this->Theme->AppendModel($this,'admin-down-offlineapps');
$this->Theme->AppendModel($this,'sfadmin');
function applicationform($form)
{
if(empty($form))
{
return "未提交";
}else{
return '<a href="/admin/down/applicationform/ac/download">点击下载</a>';
}
}
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span9">
<?= $this->partial('down/offlineapps-navpills.phtml',array('navIn'=>$this->navIn)); ?>
<form action="" method="get" class="search input-append">
<input type="hidden" name="search" value='1' />
<input type="text" name="keyword" class="q" value="<?php echo $this->keyword; ?>" />
<button type="submit" class="btn">搜索</button>
</form>
<table class="table table-bordered table-hover"><thead>
<tr>
<th><input type="checkbox" class="select_rows" data-tbody="list" /></th>
<th>申请者</th>
<th>提交时间</th>
<th>申请表</th>
<th>操作</th>
</tr></thead>
<?php if (count($this->paginator)): ?>
<tbody id="list">
<?php foreach ($this->paginator as $item): ?>
<tr>
<td><input type="checkbox" class="select_item" value="<?= $item['orderid']?>" /></td>
<td><?php echo $item['realname'].'['.$item['username'].'] <span title="'.$item['title'].'">'.mb_substr($item['title'],0,15,"UTF-8")."</span>";echo mb_strlen($item['title'],"UTF-8") > 15 ? "...":"";?></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_created']));?></td>
<td><?= applicationform($item['applicationform']) ?></td>
<td>
<a href="/admin/down/offlineapps/ac/view/?offlineappid=<?= $item['id'] ?>">查看详细</a>
<a href="/admin/down/offlineapps/ac/receive/?offlineappid=<?= $item['id'] ?>">接收</a>
<a href="/admin/down/offlineapps/ac/return/?offlineappid=<?= $item['id'] ?>">退回</a>
<a href="javascript:void(0);" onclick="upload.showUploadForm(<?= $item['id'] ?>);">上传申请表</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<?php endif; ?>
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div><!-- span9 -->
</div>
<script>
var _this = {};
sfadmin.init();
</script>
<?= $this->partial('down/offlineapps-uploaderform.phtml'); ?>

View File

@ -0,0 +1,73 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb()->setSeparator(' > ');
$this->Theme->AppendPlus($this,'colorbox');
$this->Theme->AppendPlus($this,'uploadify');
$this->Theme->AppendModel($this,'admin-down-offlineapps');
$this->Theme->AppendModel($this,'sfadmin');
function applicationform($form)
{
if(empty($form))
{
return "未提交";
}else{
return '<a href="/admin/down/applicationform/ac/view?link='.$form.'">查看</a>';
}
}
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span9">
<?= $this->partial('down/offlineapps-navpills.phtml',array('navIn'=>$this->navIn)); ?>
<form action="" method="get" class="search input-append">
<input type="hidden" name="search" value='1' />
<input type="text" name="keyword" class="q" value="<?php echo $this->keyword; ?>" />
<button type="submit" class="btn">搜索</button>
</form>
<table class="table table-bordered table-hover"><thead>
<tr>
<th><input type="checkbox" class="select_rows" data-tbody="list" /></th>
<th>申请者</th>
<th>提交时间</th>
<th>申请表</th>
<th>操作</th>
</tr></thead>
<?php if (count($this->paginator)): ?>
<tbody id="list">
<?php foreach ($this->paginator as $item): ?>
<tr>
<td><input type="checkbox" class="select_item" value="<?= $item['orderid']?>" /></td>
<td><?php echo $item['realname'].'['.$item['username'].'] <span title="'.$item['title'].'">'.mb_substr($item['title'],0,15,"UTF-8")."</span>";echo mb_strlen($item['title'],"UTF-8") > 15 ? "...":"";?></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_created']));?></td>
<td><?= applicationform($item['applicationform']) ?></td>
<td>
<a href="/admin/down/offlineapps/ac/view/?offlineappid=<?= $item['id'] ?>">查看详细</a>
<a href="/admin/down/offlineapps/ac/toauthor/?offlineappid=<?= $item['id'] ?>">发给作者</a>
<a href="javascript:void(0);" onclick="upload.showUploadForm(<?= $item['id'] ?>);">上传申请表</a>
<a href="/admin/down/offlineapps/ac/resetappform/?offlineappid=<?= $item['id'] ?>" onclick="return confirm('是否确认重置该用户的申请表?')">重置申请表</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<?php endif; ?>
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div><!-- span9 -->
</div>
<script>
var _this = {};
sfadmin.init();
</script>
<?= $this->partial('down/offlineapps-uploaderform.phtml'); ?>

View File

@ -0,0 +1,74 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb()->setSeparator(' > ');
$this->Theme->AppendPlus($this,'colorbox');
$this->Theme->AppendPlus($this,'uploadify');
$this->Theme->AppendModel($this,'admin-down-offlineapps');
$this->Theme->AppendModel($this,'sfadmin');
function applicationform($form)
{
if(empty($form))
{
return "未提交";
}else{
return '<a href="/admin/down/applicationform/ac/view?link='.$form.'">查看</a> <a href="/admin/down/applicationform/ac/download?link='.$form.'">下载</a>';
}
}
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span9">
<?= $this->partial('down/offlineapps-navpills.phtml',array('navIn'=>$this->navIn)); ?>
<form action="" method="get" class="search input-append">
<input type="hidden" name="search" value='1' />
<input type="text" name="keyword" class="q" value="<?php echo $this->keyword; ?>" />
<button type="submit" class="btn">搜索</button>
</form>
<table class="table table-bordered table-hover"><thead>
<tr>
<th><input type="checkbox" class="select_rows" data-tbody="list" /></th>
<th>申请者</th>
<th>提交时间</th>
<th>申请表</th>
<th>操作</th>
</tr></thead>
<?php if (count($this->paginator)): ?>
<tbody id="list">
<?php foreach ($this->paginator as $item): ?>
<tr>
<td><input type="checkbox" class="select_item" value="<?= $item['orderid']?>" /></td>
<td><?php echo $item['realname'].'['.$item['username'].'] <span title="'.$item['title'].'">'.mb_substr($item['title'],0,15,"UTF-8")."</span>";echo mb_strlen($item['title'],"UTF-8") > 15 ? "...":"";?></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_created']));?></td>
<td><?= applicationform($item['applicationform']) ?></td>
<td>
<a href="/admin/down/offlineapps/ac/view/?offlineappid=<?= $item['id'] ?>">查看详细</a>
<a href="/admin/down/offlineapps/ac/receive/?offlineappid=<?= $item['id'] ?>">接收</a>
<a href="/admin/down/offlineapps/ac/deny/offlineappid/<?= $item['id'] ?>">退回</a>
<a href="javascript:void(0);" onclick="upload.showUploadForm(<?= $item['id'] ?>);">上传申请表</a>
<a href="/admin/down/offlineapps/ac/resetappform/?offlineappid=<?= $item['id'] ?>" onclick="return confirm('是否确认重置该用户的申请表?')">重置申请表</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<?php endif; ?>
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div><!-- span9 -->
</div>
<script>
var _this = {};
sfadmin.init();
</script>
<?= $this->partial('down/offlineapps-uploaderform.phtml'); ?>

View File

@ -0,0 +1,42 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb()->setSeparator(' > ');
$this->Theme->AppendPlus($this,'colorbox');
$this->Theme->AppendPlus($this,'uploadify');
$this->Theme->AppendModel($this,'admin-down-offlineapps');
$this->Theme->AppendModel($this,'sfadmin');
function applicationform($form)
{
if(empty($form))
{
return "未提交";
}else{
return '<a href="/admin/down/applicationform/ac/download">点击下载</a>';
}
}
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span9">
<?= $this->partial('down/offlineapps-navpills.phtml',array('navIn'=>$this->navIn)); ?>
<h2>发给作者</h2>
</div><!-- span9 -->
</div>
<script>
var _this = {};
sfadmin.init();
</script>
<?= $this->partial('down/offlineapps-uploaderform.phtml'); ?>

View File

@ -0,0 +1,19 @@
<div id="upload-form" class="modal hide fade" tabindex="-1" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">申请表上传</h3>
</div>
<div class="modal-body">
<form id="application-form">
<div id="fsUploadProgress">允许上传20M以内的 PDF 文件</div>
<input type="file" name="Filedata" id="file_upload" />
</form>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">取消上传</button>
<button class="btn btn-primary">上传完成</button>
</div>
</div>
<script>
_this.SessionID = '<?php echo session_id(); ?>';
</script>

View File

@ -0,0 +1,63 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb()->setSeparator(' > ');
$this->Theme->AppendPlus($this,'colorbox');
$this->Theme->AppendPlus($this,'uploadify');
$this->Theme->AppendModel($this,'admin-down-offlineapps');
$this->Theme->AppendModel($this,'sfadmin');
function applicationform($form)
{
if(empty($form))
{
return "未提交";
}else{
return '<a href="/admin/down/applicationform/ac/download">点击下载</a>';
}
}
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span9">
<?= $this->partial('down/offlineapps-navpills.phtml',array('navIn'=>$this->navIn)); ?>
<h2>查看详细</h2>
<ul>
<li>申请者:<?= $this->data[0]['username'] ?></li>
<li>单位:<?= $this->data[0]['unit'] ?></li>
<li>电话:<?= $this->data[0]['phone'] ?></li>
<li>地址:<?= $this->data[0]['address'] ?></li>
<li>邮编:<?= $this->data[0]['postcode'] ?></li>
<li>未签字pdf<?= $this->data[0]['pdflink'] ?></li>
<li>签字pdf<?= ( isset($this->data[0]['applicationform']) && !empty($this->data[0]['applicationform'])) ? '<a href="">查看</a> <a href="">下载</a>':"未提交"?></li>
<li>数据列表:<?= $this->data[0]['datalist'] ?></li>
<li>邮箱:<?= $this->data[0]['email'] ?></li>
<li>项目编号:<?= $this->data[0]['project_id'] ?></li>
<li>项目类型:<?= $this->data[0]['project_type'] ?></li>
<li>项目名称:<?= $this->data[0]['project_title'] ?></li>
<li>项目负责人:<?= $this->data[0]['leader'] ?></li>
<li>项目负责人职称:<?= $this->data[0]['leadertitle'] ?></li>
<li>项目介绍:<?= $this->data[0]['project'] ?></li>
<li>申请时间:<?= $this->data[0]['ts_created'] ?></li>
<li>接收时间:<?= $this->data[0]['ts_received'] ?></li>
<li>通过时间:<?= $this->data[0]['ts_approved'] ?></li>
</ul>
</div><!-- span9 -->
</div>
<script>
var _this = {};
sfadmin.init();
</script>
<?= $this->partial('down/offlineapps-uploaderform.phtml'); ?>

View File

@ -0,0 +1,50 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb()->setSeparator(' > ');
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span9">
<?= $this->partial('down/offlineapps-navpills.phtml',array('navIn'=>$this->navIn)); ?>
<form action="" method="get" class="search input-append">
<input type="hidden" name="search" value='1' />
<input type="text" name="keyword" class="q" value="<?php echo $this->keyword; ?>" />
<button type="submit" class="btn">搜索</button>
</form>
<table class="table table-bordered table-hover"><thead>
<tr>
<th width='600'>元数据标题</th>
<th width='120'>责任编辑</th>
<th width='120'>接收时间</th>
<th width='180'>操作</th>
</tr></thead>
<?php if (count($this->paginator)): ?>
<tbody id="list">
<?php foreach ($this->paginator as $item): ?>
<tr>
<td><a href="/data/<?php echo $item['uuid'];?>"><?= $item['title']?></a></td>
<td><?php echo $item['realname'].'['.$item['username'].']'; ?></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_accepted']));?></td>
<td>
<a href="/admin/review/changeadmin/?id=<?php echo $item['id'];?>">分配编辑</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<?php endif; ?>
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div><!-- span9 -->
</div>

View File

@ -2,16 +2,22 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('<a href="/admin/down">申请管理</a>');
$this->breadcrumb('在线数据下载记录</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span10">
<h3><?php if(!empty($this->title)) echo $this->title;?>共有 <?php echo $this->count;?> 条在线下载记录</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
@ -22,22 +28,17 @@
</div>
<?php endif; ?>
<div id="rightPanel">
<div class="right_title"><?php if(!empty($this->title)) echo $this->title;?>共有 <?php echo $this->count;?> 条在线下载记录</div>
<div class="search">
<form action="/admin/down/search/" method="get">
<div class="input-append">
<input type="hidden" name="search" value='1' />
<ul>
<li><label>搜索关键字</label><input type="text" name="keyword" value="<?php echo $this->keyword; ?>" /></li>
<li><input type="submit" class="searchbtn" value="搜索" /></li>
</ul>
<input type="text" name="keyword" value="<?php echo $this->keyword; ?>" />
<button class="btn" type="submit">搜索</button>
</div>
</form>
</div><!-- search DIV -->
<table>
<table class="table table-hover">
<thead>
<tr>
<td width='100'>姓名</td>
@ -68,3 +69,4 @@
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div>

View File

@ -2,7 +2,6 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台管理首页</a>');
$this->breadcrumb('<a href="/admin/down">申请管理</a>');
@ -10,12 +9,17 @@
$this->breadcrumb()->setSeparator(' > ');
$this->headScript()->appendFile('/js/prototype.js');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<h3><?php if(!empty($this->title)) echo $this->title;?><?php echo $this->count;?> 数据下载记录</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<div class="alert">
<?php if ($this->msg) : ?>
<p><?php echo $this->msg; ?></p>
<?php endif; if ($this->messages): foreach($this->messages as $msg): ?>
@ -24,19 +28,19 @@
</div>
<?php endif; ?>
<div class="right_title"><?php if(!empty($this->title)) echo $this->title;?><?php echo $this->count;?> 数据下载记录</div>
<div class="search">
<form action="/admin/down/user/" method="get">
<div class="row-fluid">
<div class="span12">
<form action="/admin/down/user/" method="get" class="form-search">
<div class="input-append">
<input type="hidden" name="search" value='1' />
<ul>
<li><label>搜索关键字</label><input type="text" name="keyword" value="<?php echo $this->keyword; ?>" /></li>
<li><input type="submit" class="searchbtn" value="搜索" /></li>
</ul>
<input type="text" name="keyword" value="<?php echo $this->keyword; ?>" class="span8 search-query"/>
<button type="submit" class="btn">搜索</button>
</div>
</form>
</div>
</div><!-- search DIV -->
<table><thead>
<table class="table table-hover"><thead>
<tr>
<td width='150'>姓名</td>
<td width='350'>单位</td>
@ -60,3 +64,4 @@
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div>

View File

@ -12,7 +12,6 @@
<li><a href="/admin/review"><span>元数据评审</span></a></li>
<li><a href="/admin/news"><span>新闻中心</span></a></li>
<li><a href="/admin/stat"><span>统计数据</span></a></li>
<li><a href="/admin/sys"><span>系统管理</span></a></li>
</ul>
<p class="navbar-text pull-right">
<?php

View File

@ -2,7 +2,6 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->headLink()->appendStylesheet('/static/css/jquery.jgrowl.css');
$this->headScript()->appendFile('/js/jquery-1.7.min.js');
$this->headScript()->appendFile('/static/js/jquery.jgrowl_minimized.js');
@ -10,19 +9,25 @@
$this->breadcrumb('后台管理首页');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="OneColumn">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('data/left.phtml'); ?>
</div>
<div class="span2">
<?= $this->partial('down/left.phtml'); ?>
</div>
<div class="span2">
<?= $this->partial('user/left.phtml'); ?>
</div>
<div class="span2">
<?= $this->partial('review/left.phtml'); ?>
</div>
<div class="span2">
<?= $this->partial('news/left.phtml'); ?>
</div>
<div class="span2">
<?= $this->partial('stat/left.phtml'); ?>
<?= $this->partial('sys/left.phtml'); ?>
<ul>
<li class="title">其他工具</a></li>
<li><a href="/admin/watermd">WATER元数据处理工具</a></li>
<li><a href="/admin/test">数据测试管理</a></li>
</ul>
</div>
</div>
<!--
<script>

View File

@ -3,7 +3,6 @@
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headScript()->appendFile('/js/jquery-1.7.min.js');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('<a href="/admin/news">新闻中心</a>');
@ -12,27 +11,20 @@
.listingDetails{position:absolute;width:650px; z-index:999;}
.pad{position:absolute;background:#FFF;border:2px solid #444;border-radius:5px;padding:5px;display:none;}
</style>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('news/left.phtml'); ?>
</div>
<div id="rightPanel">
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
<p><?php echo $this->msg; ?></p>
<?php endif; if ($this->messages): foreach($this->messages as $msg): ?>
<p><?php echo $msg; ?></p>
<?php endforeach;endif; ?>
</div>
<?php endif; ?>
<div class="span10">
<h3>统计</h3>
<hr/>
<ul>
<ul class="unstyled">
<li><?php echo $this->totle['c'];?> 条档案</li>
<li>栏目 <?php echo $this->typec['c'];?></li>
</ul>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.title').bind('click', function() {

View File

@ -1,8 +1,9 @@
<div class="well" style="padding:8px 0">
<ul class="nav nav-list">
<li class="title">新闻中心</li>
<li class="nav-header"><h4>新闻中心</h4></li>
<li class="divider"></li>
<li><a href="/admin/news">新闻中心首页</a></li>
<li><a href="/admin/news/catlog">栏目管理</a></li>
<li><a href="/admin/news/catlog/add/1">栏目添加</a></li>
<li><a href="/admin/news/newslist">新闻管理</a></li>
<li><a href="/admin/news/newsadd">新闻发布</a></li>
</ul>
</div>

View File

@ -79,7 +79,7 @@ $(document).ready(function(){
<div class="control-group">
<label class="control-label" for="source">来源</label>
<div class="controls">
<input type="text" id="source" class="span12" name="source" value="寒区旱区科学数据中心" />
<input type="text" id="source" class="span12" name="source" value="<?= $this->config->title->site ?>" />
</div>
</div>
<div class="control-group">
@ -123,7 +123,7 @@ $(document).ready(function(){
<option value="true">立即发布</option>
<option value="false">存草稿</option>
</select>
<input type="checkbox" id="pubtimeturn" name="pubtimer" value="1" />定时发布?
<input type="checkbox" id="pubtimeturn" name="pubtimer" value="1" <?php if($this->ev['is_pub']==true && !empty($this->ev['ts_published'])) echo 'checked="checked"'; ?>/>定时发布?
<input type="text" name="pubtime" id="pubtime" value="<?php echo date("Y-m-d H:i",time()+3600*24);?>" readonly="readonly" />
</div>
</div>

View File

@ -2,7 +2,6 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
$this->headLink()->appendStylesheet('/css/author.css');
$this->headLink()->appendStylesheet('/css/colorbox.css');
@ -18,10 +17,16 @@
<script>
$('#divFooter').css('position','absolute');
</script>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('news/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<h3>新闻管理</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
@ -31,7 +36,9 @@ $('#divFooter').css('position','absolute');
<?php endforeach;endif; ?>
</div>
<?php endif; ?>
<div>
<select id="navigation">
<option>按栏目查看</option>
<?php
@ -53,7 +60,7 @@ $('#divFooter').css('position','absolute');
&nbsp;
<a href="/admin/news/newslist">所有新闻列表</a>
</div>
<table id="report" class="stylized full">
<table id="report" class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th width="50%">新闻标题</th>
@ -72,7 +79,7 @@ $('#divFooter').css('position','absolute');
$list .= '
<tr>
<td>
<a id="titlebtn'.$v['id'].'" class="title"><b>'.$v['title'].'</b></a>
'.$v['title'].'
</td>
<td>
<a href="'.$v['type_url'].'"><b>'.$v['type_title'].'</b></a>
@ -116,6 +123,7 @@ $('#divFooter').css('position','absolute');
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.title').bind('click', function() {

View File

@ -10,9 +10,9 @@ if(!empty($this->pageTitle))
<div class="hero-unit">
<h2><?= $this->content ?><?php if(!empty($this->url)) echo ",系统正在为您跳转..."?></h2>
<?php if(!empty($this->url)) {?>
<?php if($this->url == -1) { ?>
<?php if(is_numeric($this->url)) { ?>
<a href="javascript:history.go(-1);">如果没有跳转请点击这样</a>
<script language="javascript">setTimeout("history.go(-1)",3000);</script>
<script language="javascript">setTimeout("history.go(<?= $this->url ?>)",3000);</script>
<?php }else {?>
<a href="<?= $this->url ?>">如果没有跳转请点击这样</a>
<script language="javascript">setTimeout("self.location='<?= $this->url?>'",3000);</script>

View File

@ -36,7 +36,7 @@ table thead tr th {background:#EBF2F6;color:#444;}
<table class="table table-bordered table-hover"><thead>
<tr>
<th width='600'>元数据标题</th>
<th width='120'>责编辑</th>
<th width='120'>编辑</th>
<th width='120'>接收时间</th>
<th width='180'>操作</th>
</tr></thead>
@ -48,7 +48,7 @@ table thead tr th {background:#EBF2F6;color:#444;}
<td><?php echo $item['realname'].'['.$item['username'].']'; ?></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_accepted']));?></td>
<td>
<a href="/admin/review/changeadmin/?id=<?php echo $item['id'];?>">分配编辑</a>
<a href="/admin/review/changeadmin/?id=<?php echo $item['id'];?>">更改责任编辑</a>
</td>
</tr>
<?php endforeach; ?>

View File

@ -12,9 +12,7 @@ table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('review/left.phtml'); ?>
</div>
<div class="span3"><?= $this->partial('review/left.phtml'); ?></div>
<div class="span9">
<?php if ($this->msg or $this->messages) :?>
<div id="message">
@ -44,9 +42,10 @@ table thead tr th {background:#EBF2F6;color:#444;}
<?php foreach ($this->paginator as $item): ?>
<tr>
<td><input type="checkbox" name="update[]" value="<?php echo $item['id']; ?>"/></td>
<td><a href="/data/<?php echo $item['uuid'];?>"><?php echo $item['title']; ?></a></td>
<td><?php echo $item['title']; ?><a href="/service/geonetwork?url=metadata.show?id=<?php echo $item['gnid'];?>">GeoNetwork查看</a></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_created']));?></td>
<td><a href="/admin/review/draft/update/<?php echo $item['id']; ?>">接收</a>
<td><a href="/admin/review/draft/update/<?php echo $item['id']; ?>">接收</a> |
<a href="/admin/review/accept/cancel/<?php echo $item['id']; ?>">取消评审</a>
</td>
</tr>
<?php endforeach; ?>

View File

@ -0,0 +1,60 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('元数据评审');
$this->breadcrumb()->setSeparator(' > ');
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<div class="row-fluid">
<div class="span3">
<?= $this->partial('review/left.phtml'); ?>
</div>
<div class="span9">
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
<p><?php echo $this->msg; ?></p>
<?php endif; if ($this->messages): foreach($this->messages as $msg): ?>
<p><?php echo $msg; ?></p>
<?php endforeach;endif; ?>
</div>
<?php endif; ?>
<form action="" method="get" class="search input-append">
<input type="hidden" name="search" value='1' />
<input type="text" name="keyword" class="q" value="<?php echo $this->keyword; ?>" />
<button type="submit" class="btn">搜索</button>
</form>
<table class="table table-bordered table-hover"><thead>
<tr>
<th width='600'>元数据标题</th>
<th width='120'>责任编辑</th>
<th width='120'>接收时间</th>
<th width='180'>操作</th>
</tr></thead>
<?php if (count($this->paginator)): ?>
<tbody id="list">
<?php foreach ($this->paginator as $item): ?>
<tr>
<td><a href="/data/<?php echo $item['uuid'];?>"><?= $item['title']?></a></td>
<td><?php echo $item['realname'].'['.$item['username'].']'; ?></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_accepted']));?></td>
<td>
<a href="/admin/review/changeadmin/?id=<?php echo $item['id'];?>">分配编辑</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<?php endif; ?>
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div><!-- span9 -->
</div>

View File

@ -2,16 +2,16 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb('元数据评审');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('review/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
@ -22,8 +22,9 @@
</div>
<?php endif; ?>
最近十条元数据
<table><thead>
<h3>最近十条元数据</h3>
<hr />
<table class="table table-bordered"><thead>
<tr>
<td width='500'>元数据标题</td>
<td width='150'>管理员</td>
@ -42,8 +43,9 @@
<?php endif; ?>
</table>
<br />
我管理的最近十条元数据
<table><thead>
<h3>我管理的最近十条元数据</h3>
<hr />
<table class="table table-bordered"><thead>
<tr>
<td width='500'>元数据标题</td>
<td width='150'>状态</td>
@ -60,3 +62,4 @@
<?php endif; ?>
</table>
</div>
</div>

View File

@ -1,6 +1,9 @@
<ul class="nav nav-pills nav-stacked well">
<span class="label"><h4>元数据评审</h4></span>
<div class="well" style="padding:8px 0">
<ul class="nav nav-list">
<li class="nav-header"><h4>元数据评审</h4></li>
<li class="divider"></li>
<li id="Nav-review-draft"><a href="/admin/review/draft">投稿元数据</a></li>
<li id="Nav-review-editor"><a href="/admin/review/editor">分配责任编辑</a></li>
<li id="Nav-review-accept"><a href="/admin/review/accept">待审元数据</a></li>
<!-- <li id="Nav-review-inreview"><a href="/admin/review/inreview">在审元数据</a></li> -->
<li id="Nav-review-myreview"><a href="/admin/review/myreview">我负责的元数据</a></li>
@ -9,3 +12,4 @@
<li id="Nav-review-canceled"><a href="/admin/review/canceled">已取消评审的元数据</a></li>
<li id="Nav-review-comments"><a href="/admin/review/comments">元数据评审管理</a></li>
</ul>
</div>

View File

@ -7,6 +7,7 @@
$this->breadcrumb('元数据评审');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'colorbox');
$this->theme->AppendModel($this,'sfadmin');
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
@ -50,10 +51,27 @@ table thead tr th {background:#EBF2F6;color:#444;}
<thead>
<tr>
<th style="width:13px;"><input type="checkbox" class="select_rows" data-tbody="list" /></th>
<th width='500'>元数据标题</th>
<th width='80'>状态</th>
<th>接收时间</th>
<th>作者</th>
<th width='500'>元数据标题<br />
<a href="?order=title&sort=desc" data-order="title" data-sort="desc"></a>
<a href="?order=title&sort=asc" data-order="title" data-sort="asc"></a>
</th>
<th width='80'>
状态<br />
<a href="?order=status&sort=desc" data-order="status" data-sort="desc"></a>
<a href="?order=status&sort=asc" data-order="status" data-sort="asc"></a>
</th>
<th>意见<br />
<a href="?order=reviews&sort=desc" data-order="reviews" data-sort="desc"></a>
<a href="?order=reviews&sort=asc" data-order="reviews" data-sort="asc"></a>
</th>
<th>接收时间<br />
<a href="?order=ts_accepted&sort=desc" data-order="ts_accepted" data-sort="desc"></a>
<a href="?order=ts_accepted&sort=asc" data-order="ts_accepted" data-sort="asc"></a>
</th>
<th>投稿人<br />
<a href="?order=author&sort=desc" data-order="author" data-sort="desc"></a>
<a href="?order=author&sort=asc" data-order="author" data-sort="asc"></a>
</th>
<th width="300">操作</th>
</tr>
</thead>
@ -75,6 +93,7 @@ table thead tr th {background:#EBF2F6;color:#444;}
if($item['status'] == 4) echo "专家反馈";
if($item['status'] == 5) echo "已发布";
?></td>
<td style="text-align:center"><a href="/admin/review/comments/ac/list/uuid/<?php echo $item['uuid'];?>"><?= $item['reviews'] ?></a></td>
<td><?php echo date("Y-m-d H:i",strtotime($item['ts_accepted']));?></td>
<td><?= $item['author']?></td>
<td>
@ -97,41 +116,6 @@ table thead tr th {background:#EBF2F6;color:#444;}
</div>
</div>
<script>
var sfadmin = {
def_data_tag : 'tbody',
def_select_input : '.select_item',
init: function() {
$('.select_rows').click(function () {
var tableid = $(this).data(sfadmin.def_data_tag);
$('#'+tableid).find(sfadmin.def_select_input).attr('checked', this.checked);
});
sfadmin.ajax.error();
},
getSelected : function(tableid){
if(tableid == "")
{
dom = $(sfadmin.def_select_input + ':checked');
}else{
dom = $(sfadmin.def_select_input + ':checked', '#'+tableid);
}
datas = new Array();
dom.each(function(index, element) {
datas.push($(this).val());
});
return datas;
},
ajax : {
error : function(){
$(document).ajaxError(function(event, request, settings) {
sfadmin.Alert("请求中发生错误");
})
}
},
Alert : function(content){
$.colorbox({width:'50%',html:'<div class="ajax_error"><div class="text"><h2>'+content+'</h2></div></div>'});
}
}
$(document).ready(function(e) {
$('.version').click(function(){
$(this).getversion({'id':$(this).attr('rel')});
@ -167,6 +151,37 @@ function getids(){
return data;
}
(function( $ ){
$.fn.changeorder = function( options ) {
var settings = $.extend( {
order:'',
srt: '',
}, options);
var methods = {
change : function(dom)
{
href = window.location.href + "?order="+settings.order+'&sort';
}
}
this.each(function() {
settings.order = $(this).data('order');
settings.srt = $(this).data('sort');
if( settings.order == '' || settings.srt == "")
{
alert('参数错误');
}
methods.change(this);
});
};
})( jQuery );
(function( $ ){
$.fn.getversion = function( options ) {

View File

@ -2,52 +2,80 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb()->setSeparator(' > ');
$this->headScript()->appendFile('/js/jquery-1.6.4.min.js');
$this->headScript()->appendFile('/js/jquery.masonry.min.js');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('stat/left.phtml'); ?>
<ul>
<li class="title">概况</li>
<li>用户总数:<?php echo $this->stat['alluser']; ?></li>
<li>元数据条数:<?php echo $this->stat['alldata']; ?></li>
<li>在线数据下载数:<?php echo $this->stat['onlinedown']; ?></li>
<li>离线数据下载数:<?php echo $this->stat['offlinedown']; ?></li>
<li>已通过的离线申请:<?php echo $this->stat['offlinepass']; ?></li>
<li>未完成的离线申请:<?php echo $this->stat['offlineunfinished']; ?></li>
<li>被拒绝的离线数据:<?php echo $this->stat['offlinedenied']; ?></li>
<li>有记录的在线下载数:<?php echo $this->stat['onlineapp']; ?></li>
</ul>
</div>
<div id="rightPanel">
<div class="tables">
<div class="stitle">数据下载量概况</div>
<table>
<div class="span10">
<div class="row-fluid">
<div class="span6">
<h3>概况</h3>
<hr />
<table class="table table-bordered">
<tr>
<td>用户总数:</td>
<td><?php echo $this->stat['alluser']; ?></td>
</tr>
<tr>
<td>元数据条数:</td>
<td><?php echo $this->stat['alldata']; ?></td>
</tr>
<tr>
<td>在线数据下载数:</td>
<td><?php echo $this->stat['onlinedown']; ?></td>
</tr>
<tr>
<td>离线数据下载数:</td>
<td><?php echo $this->stat['offlinedown']; ?></td>
</tr>
<tr>
<td>已通过的离线申请:</td>
<td><?php echo $this->stat['offlinepass']; ?></td>
</tr>
<tr>
<td>未完成的离线申请:</td>
<td><?php echo $this->stat['offlineunfinished']; ?></td>
</tr>
<tr>
<td>被拒绝的离线数据:</td>
<td><?php echo $this->stat['offlinedenied']; ?></td>
</tr>
<tr>
<td>有记录的在线下载数:</td>
<td><?php echo $this->stat['onlineapp']; ?></td>
</tr>
</table>
</div>
<div class="span6">
<h3>数据下载量概况</h3>
<hr />
<table class="table table-bordered">
<thead>
<tr><td width="200"></td><td width="100">单位:GB</td></tr>
</thead>
<tr>
<td>总下载数据量(估计量,偏大)</td>
<td>总下载数据量</td>
<td><?php echo round($this->allsize['num'],2);?></td>
</tr>
<tr>
<td>离线下载数据量从09年4月</td>
<td>离线下载数据量</td>
<td><?php echo round($this->offlinesize['num'],2);?></td>
</tr>
<tr>
<td>在线下载数据量(估计量,偏大)</td>
<td>在线下载数据量</td>
<td><?php echo round($this->onlinesize['num'],2);?></td>
</tr>
<tr>
<td>G6在线下载数据量精确量</td>
<td><?php echo round($this->onlineg6size['num'],2);?></td>
</tr>
</table>
</div>
</div>
</div>

View File

@ -1,13 +1,10 @@
<ul>
<li class="title">信息统计</li>
<div class="well" style="padding:8px 0">
<ul class="nav nav-list">
<li class="nav-header"><h4>信息统计</h4></li>
<li class="divider"></li>
<li><a href="/admin/stat/">统计概况</a></li>
<li><a href="/admin/stat/unit">分单位统计</a></li>
<li><a href="/admin/stat/month">分月统计</a></li>
<li><a href="/admin/stat/user">按用户统计</a></li>
<li><a href="/admin/stat/awstatsweb">awstats westdc统计</a></li>
<li><a href="/admin/stat/awstatsweb2">awstats geodata统计</a></li>
<li><a href="/admin/stat/awstatsftp">awstats ftp1统计</a></li>
<li><a href="/admin/stat/awstatsftp2">awstats ftp2统计</a></li>
<li><a href="/admin/stat/webalizer">webalizer统计</a></li>
<li><a href="/admin/stat/water">WATER项目</a></li>
</ul>
</div>

View File

@ -31,15 +31,8 @@
<div class="cp">
<span>选择年份:</span>
<a href="/admin/stat/month/">所有年份</a>
<a href="/admin/stat/month/y/2004">2004</a>
<a href="/admin/stat/month/y/2005">2005</a>
<a href="/admin/stat/month/y/2006">2006</a>
<a href="/admin/stat/month/y/2007">2007</a>
<a href="/admin/stat/month/y/2008">2008</a>
<a href="/admin/stat/month/y/2009">2009</a>
<a href="/admin/stat/month/y/2010">2010</a>
<a href="/admin/stat/month/y/2011">2011</a>
<a href="/admin/stat/month/y/2012">2012</a>
<a href="/admin/stat/month/y/2014">2014</a>
<a href="/admin/stat/month/y/2015">2015</a>
</div>
<div class="charts">
<div class="title" id="title_online"><?php echo $this->y.'年按月在线下载条数(有用途记录,且无数据重复)统计';?></div>

View File

@ -30,7 +30,7 @@
<li><a href="/admin/stat/unit/" class="<?= $active?>">总体查看(默认)</a></li>
<?php
$active="";
for($i=2004; $i<=date("Y",time()); $i++)
for($i=2014; $i<=date("Y",time()); $i++)
{
if(!empty($this->y))
{

View File

@ -0,0 +1,4 @@
<ul class="nav nav-tabs">
<li <?= empty($this->ac) ? 'class="active"':"" ?>><a href="/admin/stat/user">概况</a></li>
<li <?= $this->ac == "new" ? 'class="active"':"" ?>><a href="/admin/stat/user/ac/new">新用户</a></li>
</ul>

View File

@ -0,0 +1,190 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->theme->AppendPlus($this,'jquery');
$this->theme->AppendPlus($this,'colorbox');
$this->headLink()->appendStylesheet('/css/jquery.jqplot.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<script language="javascript" type="text/javascript" src="/static/js/plot/jquery.jqplot.js"></script>
<script language="javascript" type="text/javascript" src="/static/js/plot/plugins/jqplot.barRenderer.js"></script>
<script language="javascript" type="text/javascript" src="/static/js/plot/plugins/jqplot.pieRenderer.js"></script>
<script language="javascript" type="text/javascript" src="/static/js/plot/plugins/jqplot.categoryAxisRenderer.js"></script>
<script language="javascript" type="text/javascript" src="/static/js/plot/plugins/jqplot.highlighter.js"></script>
<script language="javascript" type="text/javascript" src="/static/js/plot/plugins/jqplot.pointLabels.js"></script>
<div class="row-fluid">
<div class="span2">
<?= $this->partial('stat/left.phtml'); ?>
</div>
<div class="span10">
<?= $this->partial('stat/user-nav.phtml',array('ac'=>$this->ac)); ?>
<div class="cp">
方式:
<a href="/admin/stat/user/ac/new/by/month<?= $this->year ? "/year/".$this->year:"" ?>" class="btn btn-info <?= $this->by == "month" ? "disabled":"" ?>">按月</a>
<a href="/admin/stat/user/ac/new/by/year<?= $this->year ? "/year/".$this->year:"" ?>" class="btn btn-info <?= $this->by == "year" ? "disabled":"" ?>">按年</a>
<a href="/admin/stat/user/ac/new/by/monthavg<?= $this->year ? "/year/".$this->year:"" ?>" class="btn btn-info <?= $this->by == "monthavg" ? "disabled":"" ?>">月均值</a>
</div>
<div>
年份:
<?php if(in_array($this->by,array("year","monthavg") )) {?><a href="/admin/stat/user/ac/new/by/<?= $this->by ?>/year/-1" class="btn btn-info">所有</a><?php } ?>
<?php for($i = (int)date("Y");$i>=2004 ;$i--)
{
$active = $this->year == $i ? "disabled":"";
echo '<a href="/admin/stat/user/ac/new/by/'.$this->by.'/year/'.$i.'" class="btn btn-info '.$active.'">'.$i.'</a>';
}
?>
</div>
<?php if($this->by == 'month' && !empty($this->data)){ ?>
<hr />
<h4><?= $this->year ?>的按月新用户注册量统计</h4>
<div class="row-fluid">
<div class="span3">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>月份</th>
<th>增量</th>
</tr>
</thead>
<tbody>
<?php foreach($this->data as $k=>$v) {?>
<tr><td><?= $v['date_part'] ?></td><td><?= $v['count'] ?></td></tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="span9">
<!-- 统计图表 -->
<script type="text/javascript">
$(function () {
<?php
$vars = array();
$month = array();
foreach ($this->data as $v)
{
$vars[] = $v['count'];
$month[]= "'".$v['date_part']."'";
}
?>
var s1 = [<?php echo join(',',$vars); ?>];
var ticks = [<?php echo join(',',$month); ?>];
plot1 = $.jqplot('chart_div_year_seq', [s1], {
seriesDefaults:{
renderer:$.jqplot.BarRenderer,
pointLabels: { show: true }
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: ticks
}
},
highlighter: { show: false }
});
});
</script>
<div class="content" id="chart_div_year_seq"></div>
</div>
</div>
<?php } ?>
<?php if($this->by == 'year' && !empty($this->data)){ ?>
<hr />
<h4><?= $this->year == -1 ? "所有":$this->year ?>的新用户注册量统计</h4>
<div class="row-fluid">
<div class="span3">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>年份</th>
<th>增量</th>
</tr>
</thead>
<tbody>
<?php foreach($this->data as $k=>$v) {?>
<tr><td><?= $v['date_part'] ?></td><td><?= $v['count'] ?></td></tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="span9">
<!-- 统计图表 -->
<script type="text/javascript">
$(function () {
<?php
$vars = array();
$month = array();
foreach ($this->data as $v)
{
$vars[] = $v['count'];
$month[]= "'".$v['date_part']."'";
}
?>
var s1 = [<?php echo join(',',$vars); ?>];
var ticks = [<?php echo join(',',$month); ?>];
plot1 = $.jqplot('chart_div_year_seq', [s1], {
seriesDefaults:{
renderer:$.jqplot.BarRenderer,
pointLabels: { show: true }
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: ticks
}
},
highlighter: { show: false }
});
});
</script>
<div class="content" id="chart_div_year_seq"></div>
</div>
</div>
<?php } ?>
<?php if($this->by == 'monthavg' && !empty($this->data)){ ?>
<hr />
<h4><?= $this->year ?>的月均用户注册量</h4>
<div class="row-fluid">
<div class="span3">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>年份</th>
<th>月均</th>
</tr>
</thead>
<tbody>
<?php foreach($this->data as $k=>$v) {?>
<tr><td><?= $v['date_part'] ?></td><td><?= $v['count'] ?></td></tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="span9">
<!-- 统计图表 -->
</div>
</div>
<?php } ?>
</div>
</div>

View File

@ -10,28 +10,17 @@
$this->breadcrumb('<a href="/admin">后台首页</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<style>
.charts{margin:30px 0px;}
.charts .title{color:#003366;}
.cp {line-height:24px;}
.cp ul li{float:left;margin:0px 0px;}
.cp a{color:#4bb2c5;line-height:24px;padding:5px;}
.cp a.active,.cp a:hover{color:#FFF;background:#4bb2c5;}
</style>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('stat/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="span10">
<?= $this->partial('stat/user-nav.phtml',array('ac'=>$this->ac)); ?>
<div class="cp">
<ul>
<li>
<a href="/admin/stat/user/ac/get/down/csv">导出csv格式</a>
</li>
<li>
<a href="/admin/stat/user/ac/get/down/json">导出JSON格式</a>
</li>
</ul>
<a href="/admin/stat/user/ac/get/down/csv" class="btn btn-info">导出csv格式</a>
<a href="/admin/stat/user/ac/get/down/json" class="btn btn-info">导出JSON格式</a>
</div>
<div id="unitdata">
<b>点击列名进行排序</b>
@ -54,6 +43,7 @@
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('#datatable').dataTable( {

View File

@ -1,10 +1,6 @@
<ul>
<li class="title">系统管理</li>
<ul class="nav nav-pills nav-stacked well">
<span class="label"><h4>系统管理</h4></span>
<li><a href="/admin/sys/emailtext">邮件模板管理</a></li>
<!--<li><a href="/admin/sys/seekspace">文献平台同步</a></li>-->
<li><a href="/admin/sys/message">管理消息</a></li>
<li><a href="/admin/sys/ftptest">数据FTP测试</a></li>
<li><a href="/admin/sys/recovery">数据恢复进展</a></li>
<li><a href="/admin/sys/problem">问题数据检查</a></li>
<li><a href="/admin/sys/regions">GN地点管理</a></li>
</ul>

View File

@ -0,0 +1,47 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->theme->AppendPlus($this,'colorbox');
?>
<div id="leftPanel">
<?= $this->partial('sys/left.phtml'); ?>
</div>
<div id="rightPanel">
<a id="btn-ref" class="btn" href="/admin/sys/problem/ac/ref">数据引用方式错误</a>
<a id="btn-file" class="btn" href="/admin/sys/problem/ac/file">缺少文件列表</a>
<a id="btn-tiny" class="btn" href="/admin/sys/problem/ac/tiny">数据实体大小不匹配</a>
<a id="btn-heihefund" class="btn" href="/admin/sys/problem/ac/heihefund">黑河计划数据的项目信息缺失</a>
<a id="btn-unmoved" class="btn" href="/admin/sys/problem/ac/unmoved">数据目录未从upload中转移</a>
<a id="btn-noemail" class="btn" href="/admin/sys/problem/ac/noemail">缺少审核人email</a>
<table><thead><tr>
<th>数据标题</th>
<th>uuid</th>
<th>操作</th>
</tr></thead><tbody>
<?php
if (count($this->paginator)):
$autoindex=0;
foreach ($this->paginator as $item):
$autoindex++;?>
<tr class="<?php if($autoindex%2 == 0) echo 'even'; else echo 'odd'; ?>">
<td><a href="/data/<?php echo $item['uuid'];?>"><?php echo $item['title'];?></a></td>
<td><?php echo $item['uuid'];?></td>
<td><a href="/service/geonetwork?url=metadata.edit?id=<?= $item['gid']; ?>" target="_blank">编辑</a></td>
</tr>
<?php endforeach; endif; ?>
</tbody></table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
<?php if(!empty($this->activeID)) : ?>
<script>$('#<?= $this->activeID?>').addClass("btn-primary");</script>
<?php endif; ?>
<script>
$(".iframe").colorbox({iframe:true, width:"50%", height:"50%"});
$(".inline").colorbox({inline:true, width:"50%"});
function Alert(html){
$.colorbox({'innerWidth':'50%','html':'<h4 style="font-size:16px;font-weight:bold;">'+html+'</h4>'});
}
</script>

View File

@ -13,7 +13,9 @@
<a id="btn-ref" class="btn" href="/admin/sys/problem/ac/ref">数据引用方式错误</a>
<a id="btn-file" class="btn" href="/admin/sys/problem/ac/file">缺少文件列表</a>
<a id="btn-tiny" class="btn" href="/admin/sys/problem/ac/tiny">数据实体大小不匹配</a>
<a id="btn-heihefund" class="btn" href="/admin/sys/problem/ac/heihefund">黑河计划数据的项目信息缺失</a>
<a id="btn-unmoved" class="btn" href="/admin/sys/problem/ac/unmoved">数据目录未从upload中转移</a>
<a id="btn-noemail" class="btn" href="/admin/sys/problem/ac/noemail">缺少审核人email</a>
<table><thead><tr>
<th>数据标题</th>
<th>引用</th>

View File

@ -13,6 +13,9 @@
<a id="btn-ref" class="btn" href="/admin/sys/problem/ac/ref">数据引用方式错误</a>
<a id="btn-file" class="btn" href="/admin/sys/problem/ac/file">缺少文件列表</a>
<a id="btn-tiny" class="btn" href="/admin/sys/problem/ac/tiny">数据实体过小</a>
<a id="btn-heihefund" class="btn" href="/admin/sys/problem/ac/heihefund">黑河计划数据的项目信息缺失</a>
<a id="btn-unmoved" class="btn" href="/admin/sys/problem/ac/unmoved">数据目录未从upload中转移</a>
<a id="btn-noemail" class="btn" href="/admin/sys/problem/ac/noemail">缺少审核人email</a>
<table><thead><tr>
<th>数据标题</th>
<th>UUID</th>

View File

@ -2,19 +2,20 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/">后台首页</a>');
$this->breadcrumb('<a href="/admin/user">用户管理</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('user/left.phtml'); ?>
</div>
<div id="rightPanel">
<div class="title">管理员列表</div>
<table>
<div class="span10">
<h3>管理员列表</h3>
<hr />
<table class="table table-bordered table-hover">
<thead>
<tr>
<td width='150'>用户名</td>
@ -44,3 +45,4 @@
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div>

View File

@ -2,24 +2,42 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('后台管理首页');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('user/left.phtml'); ?>
</div>
<div id="rightPanel">
<div>用户总数: <?php echo $this->su['total'];?>,其中管理员: <?php echo $this->suadmin['total'];?></div>
<div>搜索用户
<div class="span10">
<h3>用户总数: <?php echo $this->su['total'];?>,其中管理员: <?php echo $this->suadmin['total'];?></h3>
<hr />
<form action="/admin/user/search/" method="get">
<input type="hidden" name="search" value='1' />
<div>姓名 <input type="text" name="realname" /></div>
<div>单位 <input type="text" name="unit" /></div>
<div>项目 <input type="text" name="project" /></div>
<div><input type="submit" value="搜索" /></div>
<div class="control-group">
<label class="control-label" for="inputName">姓名/用户名</label>
<div class="controls">
<input type="text" id="inputName" placeholder="Name or Username" name="realname" class="input-xxlarge">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputUnit">单位</label>
<div class="controls">
<input type="text" id="inputUnit" placeholder="Unit" name="unit" class="input-xxlarge">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputProject">项目</label>
<div class="controls">
<input type="text" id="inputProject" placeholder="Project" name="project" class="input-xxlarge">
</div>
</div>
<div class="control-group">
<input type="hidden" name="search" value="1" />
<button type="submit" class="btn">搜索</button>
</div>
</form>
</div>
</div>

View File

@ -1,11 +1,9 @@
<ul>
<li class="title">用户管理</li>
<div class="well" style="padding:8px 0">
<ul class="nav nav-list">
<li class="nav-header"><h4>用户管理</h4></li>
<li class="divider"></li>
<li><a href="/admin/user/">用户管理首页</a></li>
<li><a href="/admin/user/list">普通用户列表</a></li>
<li><a href="/admin/user/adminlist">管理员列表</a></li>
<li><a href="/admin/user/group">用户组管理</a></li>
<li><a href="/admin/review/experts">元数据评审专家库</a></li>
<li><a href="/admin/user/sendmail/">长时间未登录用户</a></li>
<li><a href="/admin/user/sendmail/ac/heihe">数字黑河用户</a></li>
<li><a href="/admin/user/sendmail/ac/holiday">节日祝贺邮件</a></li>
<li><a href="/admin/user/list">查看所有账户</a></li>
</ul>
</div>

View File

@ -2,46 +2,49 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/">后台首页</a>');
$this->breadcrumb('<a href="/admin/user">用户管理</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span2">
<?= $this->partial('user/left.phtml'); ?>
</div>
<div class="span10">
<h3>用户列表</h3>
<hr />
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<?php if ($this->msg) : ?>
<p><?php echo $this->msg; ?></p>
<?php echo $this->msg; ?>
<?php endif; if ($this->messages): foreach($this->messages as $msg): ?>
<p><?php echo $msg; ?></p>
<?php echo $msg; ?>
<?php endforeach;endif; ?>
</div>
<?php endif; ?>
<div id="rightPanel">
<div style="font-size:16px;line-height:30px;">用户列表</div>
<div class="search">
<div class="search form-inline">
<form action="/admin/user/search/" method="get">
<input type="hidden" name="search" value='1' />
<ul>
<li><label>姓名</label><input type="text" name="realname" value="<?php echo $this->realname; ?>" /></li>
<li><label>单位</label><input type="text" name="unit" value="<?php echo $this->unit; ?>" /></li>
<li><label>项目</label><input type="text" name="project" value="<?php echo $this->project; ?>" /></li>
<li><input type="submit" class="searchbtn" value="搜索" /></li>
</ul>
<label>姓名</label><input type="text" name="realname" value="<?php echo $this->realname; ?>" />
<label>单位</label><input type="text" name="unit" value="<?php echo $this->unit; ?>" />
<label>项目</label><input type="text" name="project" value="<?php echo $this->project; ?>" />
<button type="submit" value="搜索" class="btn btn-success">搜索</button>
</form>
</div><!-- search DIV -->
<table>
<hr />
<table class="table table-hover">
<thead>
<tr>
<td width='150'>用户名</td>
<td width='250'>电子邮箱</td>
<td width='100'>用户类型</td>
<td width='100'>用户组</td>
<td width='200'>单位</td>
<td width='100'>真实姓名</td>
<td width='150'>操作</td>
@ -58,15 +61,12 @@
<td><?= $item['unit']; ?></td>
<td><?= $item['realname']; ?></td>
<td>
<a href='/admin/user/delete/id/<?= $item['id'];?>/uname/<?= $item['username'];?>' onclick="return confirm('确定将此记录删除?')">删除</a>
<a href='/admin/user/show/id/<?= $item['id'];?>'>查看详细</a>
<a href='/admin/user/fetchpwd/email/<?= $item['email'];?>/id/<?= $item['id'];?>' onclick="return confirm('是否确定为他重置密码?')">重置密码</a>
<a href='/admin/user/up/id/<?= $item['id'];?>' onclick="return confirm('确定将该用户提升为评审专家?')">提升为评审专家</a>
<a href="/admin/user/userauth/uid/<?= $item['id'];?>">编辑权限</a>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div><!-- span9 -->
</div>

View File

@ -0,0 +1,147 @@
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/">后台首页</a>');
$this->breadcrumb('<a href="/admin/user">用户管理</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<style>
table thead tr th {background:#EBF2F6;color:#444;}
.high{background:#444;color:#FFF;}
</style>
<script>
var configure = {
modalid : 'xform-Modal',
formid : 'user_local_add',
requesturl : '/admin/user/local/ac/addLocal'
}
$(document).ready(function(e) {
$('#xform-submit').click(function(e) {
xform.submit();
});
$('#xform-reset').click(function(e) {
$('#'+configure.formid)[0].reset();
});
$('#xform-close').click(function(e) {
$('#'+configure.modalid).modal('hide');
});
$('.xform-edit').click(function(e) {
xform.edit($(this).data('field'));
$('#'+configure.modalid).modal('show');
});
$('#'+configure.modalid).on('hide', function () {
$('#'+configure.formid)[0].reset();
})
});
</script>
<script type="text/javascript" src="/js/lib/custom/models/admin-xform.js"></script>
<div class="row-fluid">
<div class="span3">
<div id="leftPanel"><?= $this->partial('user/left.phtml'); ?></div>
</div>
<div class="span9">
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
<p><?php echo $this->msg; ?></p>
<?php endif; if ($this->messages): foreach($this->messages as $msg): ?>
<p><?php echo $msg; ?></p>
<?php endforeach;endif; ?>
</div>
<?php endif; ?>
<div id="rightPanel">
<h3>用户列表</h3>
<hr />
<div class="search">
<form action="/admin/user/search/" method="get" class="search input-append">
<input type="hidden" name="search" value='1' />
<ul class="inline">
<li><label>姓名</label><input type="text" name="realname" value="<?php echo $this->realname; ?>" class="search-query"/></li>
<li><label>单位</label><input type="text" name="unit" value="<?php echo $this->unit; ?>" class="search-query"/></li>
<li><label>项目</label><input type="text" name="project" value="<?php echo $this->project; ?>" class="search-query"/></li>
<li><input type="submit" class="btn" value="搜索" /></li>
</ul>
</form>
<!-- Button to trigger modal -->
<a href="#xform-Modal" role="button" class="btn btn-primary pull-right xform-show" data-toggle="modal">添加本地用户</a>
<!-- Modal -->
<div id="xform-Modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">添加本地用户</h3>
</div>
<div class="modal-body">
<form class="form-horizontal" method="post" id="user_local_add">
<div class="control-group">
<label for="inputRefid" class="control-label">用户ID</label>
<div class="controls">
<input type="text" value="" placeholder="用户ID" id="inputUserid" name="userid" />
</div>
</div>
<div class="control-group">
<label class="control-label">用户类型</label>
<div class="controls">
<label class="radio"><input type="radio" value="member" name="usertype" checked="checked" /> 普通用户</label>
<label class="radio"><input type="radio" value="administrator" name="usertype" /> 管理员</label>
</div>
</div>
<input type="hidden" value="addLocal" name="ac" />
<input type="hidden" value="submit" name="submit" />
</form>
</div>
<div id="alert-info"></div>
<div class="modal-footer">
<div class="progress progress-striped active" id="submit-loading" style="display:none;">
<div class="bar" style="width:100%;"></div>
</div>
<button class="btn" id="xform-reset">Reset</button>
<button class="btn" id="xform-close">Close</button>
<button class="btn btn-primary" id="xform-submit">Save changes</button>
</div>
</div><!-- xformpartinal -->
</div><!-- search DIV -->
<table class="table table-bordered table-hover table-condensed"><thead>
<tr>
<th>用户名</th>
<th>电子邮箱</th>
<th>用户类型</th>
<th>单位</th>
<th>真实姓名</th>
<th>操作</th>
</tr>
</thead><!-- table's head -->
<?php if (count($this->paginator)): ?>
<?php $autoindex=0;?>
<?php foreach ($this->paginator as $item): ?>
<?php $autoindex++;?>
<tr>
<td><?= $item['username']?></td>
<td><?= $item['email']; ?></td>
<td><?= $item['usertype']; ?></td>
<td><?= $item['unit']; ?></td>
<td><?= $item['realname']; ?></td>
<td>
<a href='/admin/user/local/ac/delete/id/<?= $item['id'];?>' onclick="return confirm('确定将此记录删除?')">删除</a>
<a href='/admin/user/show/id/<?= $item['id'];?>'>查看详细</a>
<a href='/admin/user/fetchpwd/email/<?= $item['email'];?>/id/<?= $item['id'];?>' onclick="return confirm('是否确定为他重置密码?')">重置密码</a>
<a href='/admin/user/up/id/<?= $item['id'];?>' onclick="return confirm('确定将该用户提升为评审专家?')">提升为评审专家</a>
<a href="javascript:void(0);" class="xform-edit" data-field='<?= json_encode(array('userid'=>$item['id'],'usertype'=>$item['usertype']),JSON_NUMERIC_CHECK) ?>'>编辑权限</a>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<div class="pagenavi"><?= $this->paginator; ?></div>
</div>
</div>
</div>

View File

@ -2,29 +2,19 @@
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/admin.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/admin/">后台首页</a>');
$this->breadcrumb('<a href="/admin/user">用户管理</a>');
$this->breadcrumb()->setSeparator(' > ');
?>
<div id="leftPanel">
<div class="row-fluid">
<div class="span3">
<?= $this->partial('user/left.phtml'); ?>
</div>
<?php if ($this->msg or $this->messages) :?>
<div id="message">
<?php if ($this->msg) : ?>
<p><?php echo $this->msg; ?></p>
<?php endif; if ($this->messages): foreach($this->messages as $msg): ?>
<p><?php echo $msg; ?></p>
<?php endforeach;endif; ?>
</div>
<?php endif; ?>
<div id="rightPanel">
<div class="span9">
<form name="form1" method="post" action="/admin/user/edit">
<table>
<table class="table">
<tr><td width="100">ID</td><td width="600"><?= $this->infos['id'];?></td></tr>
<tr><td>用户名</td><td><?= $this->infos['username'];?></td></tr>
<tr><td>真实姓名</td><td><?= $this->infos['realname'];?></td></tr>
@ -35,39 +25,18 @@
<tr><td>地址</td><td><?= $this->infos['address'];?></td></tr>
<tr><td>电话</td><td><?= $this->infos['phone'];?></td></tr>
<tr><td>项目</td><td><?= $this->infos['project'];?></td></tr>
<tr><td>用户权限</td><td>
<tr><td>用户</td><td>
<select name="usertype">
<?php
if ($this->infos['usertype']=='member')
{ echo "
<option value='member' selected='selected'>普通会员</option>
<option value='administrator'>系统管理员</option>
";}
else if($this->infos['usertype']=='administrator')
{ echo "<option value='administrator' selected='selected'>系统管理员</option>
<option value='member'>普通会员</option>
";}
?>
<?php foreach($this->usertypes as $k=>$v){ ?>
<option value="<?= $v ?>" <?= $this->infos['usertype'] == $v ? 'selected="selected"':"" ?>><?= $k ?></option>
<?php } ?>
</select>
</td></tr>
<tr><td>用户密码</td><td><input type='password' name="newpwd" /></td></tr>
<tr><td>确认用户密码</td><td><input type='password' name="cfnewpwd" /></td></tr>
</table>
<input type='hidden' value="<?php echo $this->infos['id'];?>" name='id' />
<input type="submit" value="提交" />
<input type="submit" value="提交" class="btn btn-primary" />
</form>
<form name="lostpwd" action="/admin/user/fetchpwd">
<input type="hidden" name="id" value="<?= $this->infos['id'];?>" />
<input type="hidden" name="email" value="<?= $this->infos['email'];?>" />
<input type="submit" value="为他执行Eamil重置密码"/>
</form>
<form name="lostpwd" action="/admin/user/delete">
<input type="hidden" name="id" value="<?= $this->infos['id'];?>" />
<input type="hidden" name="uname" value="<?= $this->infos['username'];?>" />
<input type="submit" value="删除该用户"/>
</form>
<a href="/admin/user/userauth/uid/<?= $this->infos['id'];?>">编辑权限</a>
</div>
</div>

View File

@ -1,4 +1,4 @@
<ul>
<ul class="nav nav-pills nav-stacked well">
<li><a href="/admin/watermd/replace">正则替换工具</a></li>
<li><a href="/admin/watermd/citetitle">引用的标题替换</a></li>
<li><a href="/admin/watermd/filesize">文件大小处理</a></li>

View File

@ -5,22 +5,31 @@ db.params.username = gis
db.params.password = gispassword
db.params.dbname = metadata
geonetwork.url=http://www.heihedata.org/geonetwork/
geonetwork.url=http://www.sanjiangyuan.org.cn/geonetwork/
geonetwork.adapter = PDO_PGSQL
geonetwork.params.host = localhost
geonetwork.params.username = gis
geonetwork.params.password = gispassword
geonetwork.params.dbname = geonetwork
watergeonetwork.url=http://210.77.68.237:8080/geonetwork/
waterdb.adapter = PDO_PGSQL
waterdb.params.host = 210.77.68.237
waterdb.params.username = postgres
waterdb.params.password = "test@))("
waterdb.params.dbname = geonetwork252
visual_db.adapter = PDO_PGSQL
visual_db.hostname = localhost
visual_db.username = gis
visual_db.password = gispassword
visual_db.database = sanjiangyuan
visual_db.port = 5432
auth.identifier = qherc
auth.groupname = 青海省生态环境遥感监测中心
auth.mcryptcode = C21x9#1bi1ev5
auth.certmix = $JkXDF354Lf
auth.domain = .sanjiangyuan.org.cn
sub.metadata = qhercmd
sub.news = qherc
sub.search = qhercmd
sub.schema = qherc
dataimport.path = ../data/dbupload/
seekspace.url=http://seekspace.resip.ac.cn/
seekspace.handleurl=http://seekspace.resip.ac.cn/handle
google.maps.api=ABQIAAAACD-MqkkoOm60o_dvwdcKVhRBSKpgcP88GYi6r2Of16IkMX_4YhSBQsywCi4J2_fh4nBuWmK7gyRjLg
bing.api=4BC90E1E9ED351ECE0D9FB71509BC3CC1264340C
bigthumb.path=../geonetwork/data/
@ -31,34 +40,32 @@ paths.newsletter=images/newsletter/
logging.file = /var/www/test.westgis.ac.cn/data/logs/debug.log
page.limit=10
import.dir=../data/import
title.site=西部数据中心
title.site=青海省生态环境遥感监测中心
title.data=数据产品与服务
title.heihe=黑河计划数据管理中心
title.yrnmr=黄河上游宁蒙河段综合数据平台
title.glacier=中国冰川资源及其变化调查
title.review=数据评审
title.author=数据作者
title.knowledge=知识积累
title.netkites=移动文献查询服务
supportemail=westdc@lzb.ac.cn
supportemail=support@sanjiangyuan.org.cn
reportemail=westdc-report-subscribe@lists.westgis.ac.cn
smtp.username=westdc@lzb.ac.cn
smtp.password=ilovewestdc
smtp.host=smtp.cstnet.cn
smtp.ssl=TLS
smtp.username=support@sanjiangyuan.org.cn
smtp.password=qherc@123
smtp.host=smtp.sanjiangyuan.org.cn
smtp.ssl=SSL
smtp.auth=login
smtp.name=三江源生态监测综合数据服务平台
ftp.user=newwestdc
ftp.password=westdcforsmall
download.max=5 //最多同时申请下载个数
page.max=10 //每页显示条目数
offline.template=../data/offline.pdf
offline.heihetemplate=../data/heihe.pdf
offline.security=../data/security.pdf
offline.water_template=../data/water_offline.pdf
offline.font=../data/simhei.ttf
offline.savepath=../data/offlineapp
service.email=westdc@lzb.ac.cn
service.email=support@sanjiangyuan.org.cn
offline.email.template=../data/offline-email.txt
offline.email.start_template=../data/offline-start-email.txt
offline.email.finish_template=../data/offline-finish-email.txt

View File

@ -12,6 +12,10 @@ class AboutController extends Zend_Controller_Action
$this->view->messages = $this->messenger->getMessages();
$this->db=Zend_Registry::get('db');
$this->view->pageID = "about-".$this->_request->getActionName();
$this->view->nav = array(
array('link'=>'/','title'=>'<i class="icon-home"></i>'),
array('link'=>'/about','title'=>'关于'),
);
}
function contactAction()
{
@ -80,13 +84,18 @@ class AboutController extends Zend_Controller_Action
$archives=new Archive($this->db);
$this->view->item=$archives->getOneArchive('支持项目','about');
}
function subAction()
{
$archives=new Archive($this->db);
$this->view->item=$archives->getOneArchive('本站介绍','about');
}
function publicationAction()
{
$ac = $this->_request->getParam("ac");
$siteid="e31f5ea7-a4af-4ae3-9ac1-1a84132c4338";//site uuid from geonetowrk
if(empty($ac))
{
$sql="select * from mdref mr left join reference r on mr.refid=r.id where mr.uuid=? order by r.id desc";
$sql="select * from mdref mr left join reference r on mr.refid=r.id where mr.uuid=? and mr.reftype=0 order by r.year desc,r.title asc";
$sth = $this->db->prepare($sql);
$sth->execute(array($siteid));
$rows = $sth->fetchAll();

View File

@ -1,4 +1,11 @@
<?php
use Helpers\View;
use Helpers\Curl;
use Helpers\Captcha;
use Users\Member;
use Users\Account;
use Users\Users;
class AccountController extends Zend_Controller_Action
{
function preDispatch()
@ -244,89 +251,163 @@ class AccountController extends Zend_Controller_Action
function registerAction()
{
$form = new RegisterForm();
$this->view->form = $form;
$request = new \Zend_Controller_Request_Http();
if($request->isXmlHttpRequest())
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
$ut = new UsersTable();
$u = $ut->createRow();
$u->username = $form->getValue('username');
$u->password = $form->getValue('password');
$u->email=$form->getValue('email');
if ($form->getValue('realname')) $u->realname=$form->getValue('realname');
if ($form->getValue('phone')) $u->phone=$form->getValue('phone');
if ($form->getValue('address')) $u->address=$form->getValue('address');
if ($form->getValue('unit')) $u->unit=$form->getValue('unit');
if ($form->getValue('project')) $u->project=$form->getValue('project');
if ($u->save()) {
//发送欢迎邮件
$mail=new WestdcMailer($this->view->config->smtp);
$body=file_get_contents($this->view->config->register->email->template);
$body=str_replace("[username]",$formData['username'],$body);
$mail->setBodyText($body);
$mail->setFrom($this->view->config->service->email,'西部数据中心服务组');
$mail->addTo($formData['email']);
//中文标题有乱码在1.5版本中尚未解决
//ref: http://framework.zend.com/issues/browse/ZF-2532
$mail->setSubject('欢迎使用中国西部环境与生态数据中心');
$mail->send();
$account = new Account();
$data = $account->getParam($this->_request);
//自动登录系统
$this->login($formData['username'],$formData['password']);
$result = $account->register($data);
if(!empty($result))
{
$this->jsonexit($result);
return true;
}
$this->jsonexit(array('error'=>'|o| 服务器掉链子了,请重试'));
return true;
}else{
//$this->_helper->layout->disableLayout();
}
$success=false;
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity())
$this->_redirect('/');
$submit = $this->_getParam('submit');
if(!empty($submit))
{
$account = new Account();
$this->view->data = $data = $account->getParam($this->_request);
$result = $account->register($data);
if(!empty($result))
{
if(isset($result['error']))
{
$this->view->place = $result['place'];
$this->view->error = $result['error'];
return true;
}
if(isset($result['success']))
{
$this->_redirect('/');
return true;
}
}else{
$form->populate($formData);
}
$this->view->error = "处理中出现问题";
return true;
}
}
}//用户注册
function loginAction()
{
$form = new LoginForm();
$request = new \Zend_Controller_Request_Http();
if($request->isXmlHttpRequest())
{
}
$captcha = new Captcha();
$success=false;
$message='';
$this->view->form = $form;
$options = array(
'module' => $this->_request->getModuleName(),
'controller' => $this->_request->getControllerName(),
'action' => $this->_request->getActionName(),
);
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) $this->_redirect('/account');
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
if (!$this->login($formData['username'],$formData['password']))
if ($auth->hasIdentity())
{
$this->messenger->addMessage('登录失败,请检查您的用户名和密码。');
} else $success=true;
}
if(!$success) {
$flashMessenger = $this->_helper->getHelper('FlashMessenger');
$flashMessenger->setNamespace('actionErrors');
$flashMessenger->addMessage($message);
$this->_redirect('/account/login');
} else
if($options['module']=="default" && $options['controller'] == "account" && $options['action'] == "login")
{
$tohref = $this->_request->getParam('href');
if(!empty($tohref))
{
$this->_redirect($tohref);
$this->_redirect("/");
}else{
$this->_redirect($this->_request->getParam('return'));
}
if($_SERVER['REQUEST_URI']!='/account/login')
{
$this->_redirect($_SERVER['REQUEST_URI']);
}
}
$tohref = $this->_request->getParam('href');
if($_SERVER['REQUEST_URI'] !== "/account/login")
{
$this->view->href = $_SERVER['REQUEST_URI'];
}else{
$this->view->href = "/";
}
if(!empty($tohref))
{
$this->view->href = $tohref;
}
$submit = $this->_getParam("submit");
if(!empty($submit))
{
$captchaword = trim($this->_request->getParam('captcha'));
if($captcha->isValid($captchaword) !== true)
{
$this->view->error = view::Error("验证码错误");
$this->view->captcha = $captcha->setCaptcha();
return true;
}
$data = array(
'username' => $this->_getParam('username'),
'password' => $this->_getParam('password')
);
$account = new Account();
$result = $account->login($data);
if(!empty($result))
{
if(isset($result['error']))
{
$this->view->error = $result['error'];
$this->view->captcha = $captcha->setCaptcha();
return true;
}
if(isset($result['success']))
{
$this->_redirect($this->view->href);
return true;
}
}else{
//$formData['redirect'] = $redirect;
//$form->populate($formData);
$this->view->captcha = $captcha->setCaptcha();
$this->view->error = "处理中出现问题";
return true;
}
}
$this->view->captcha = $captcha->setCaptcha();
}//登陆
function captchaAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$captcha = $this->loadCaptcha();
$url = $this->setCaptcha($captcha,true);
echo $url;
return true;
}
function logoutAction()
{
$auth = Zend_Auth::getInstance();
@ -489,6 +570,31 @@ class AccountController extends Zend_Controller_Action
}
}
} //找回密码
/*
//westdc cross doamin login
public function wcdloginAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$id = $this->_getParam('id');
$cert = $this->_getParam('cert');
$account = new Account;
$status = $account->wcdLogin($id,$cert);
if($status == true)
{
echo "login success!";
}else{
echo "error";
}
return;
}
*/
}

View File

@ -9,11 +9,11 @@ class ArchivesController extends Zend_Controller_Action
$this->view->config = Zend_Registry::get('config');
$this->db=Zend_Registry::get('db');
$this->view->theme = new Theme();
}
function testAction()
{
$this->_helper->viewRenderer('archive-view-player');
$this->view->nav = array(
array('link'=>'/','title'=>'<i class="icon-home"></i>'),
array('link'=>'/archives','title'=>'新闻'),
);
$this->subnews=$this->view->config->sub->news;
}
function indexAction()
@ -49,6 +49,7 @@ class ArchivesController extends Zend_Controller_Action
left join ".$News->tbl_catalog." ct on ct.aid=n.id
left join ".$News->tbl_categorys." c on c.id = ct.cid
WHERE n.ts_published<'$time' AND ct.cid={$v['id']} AND n.is_pub=true
and n.sub='$this->subnews'
ORDER BY ts_published DESC
LIMIT 10";
@ -131,6 +132,7 @@ class ArchivesController extends Zend_Controller_Action
left join ".$News->tbl_catalog." ct on ct.aid=n.id
left join ".$News->tbl_categorys." c ON ct.cid=c.id
WHERE c.id='{$row['id']}' AND n.ts_published<'".$time."' AND n.is_pub=true
and n.sub='$this->subnews'
ORDER BY n.ts_published DESC";
$rs = $this->db->query($sql);

View File

@ -6,6 +6,9 @@
@license http://
@link http://
*/
use data\DataService;
include_once("data/Author.php");
class AuthorController extends Zend_Controller_Action
{
private $limit=10;
@ -2373,7 +2376,7 @@ class AuthorController extends Zend_Controller_Action
// 2. 保存变化记录 save changelog & userid for the latest version
$sql = "UPDATE mdversion SET changelog=?,userid=? WHERE id in (select id from mdversion where uuid=? order by ts_created desc limit 1)";
$this->db->query($sql,array($changelog,$u_id,$row['uuid']));
file_get_contents("http://ftp2.westgis.ac.cn/proftp_upload.php?uuid=".$row['uuid']."&filelist=1");
file_get_contents("http://ftp.sanjiangyuan.org.cn/proftp_upload.php?uuid=".$row['uuid']."&filelist=1");
// 3. 保存数据评审状态
//导入元数据
@$iso->saveDB($this->db);
@ -2469,10 +2472,10 @@ class AuthorController extends Zend_Controller_Action
}
//ftp 用户名
$uname = 'westdc'.$u_id.'upload';
$uname = 'sjy'.$u_id.'upload';
//ftp路径
$homedir = "/disk1/WestDC/upload/".$uuid."/";
$homedir = "/data/upload/".$uuid."/";
//ftp用户表
$ftptable=' pureftp ';//ftp2.westgis.ac.cn
$uid = 1002;
@ -2488,7 +2491,7 @@ class AuthorController extends Zend_Controller_Action
//$old=umask(0);
//@mkdir($homedir,0777);
//umask($old);
$page=file_get_contents('http://ftp2.westgis.ac.cn/proftp_upload.php?uuid='.$uuid);
$page=file_get_contents('http://ftp.sanjiangyuan.org.cn/proftp_upload.php?uuid='.$uuid);
if (!empty($page)) die($page);//there are errors in visit ftp page
@ -2565,7 +2568,7 @@ class AuthorController extends Zend_Controller_Action
function literatureAction()
{
$ac = $this->_request->getParam('ac');
$uuid = $this->_request->getParam('uuid');
$this->view->uuid = $uuid = $this->_request->getParam('uuid');
$id = $this->_request->getParam('id');
$auth = Zend_Auth::getInstance();
@ -2596,9 +2599,14 @@ class AuthorController extends Zend_Controller_Action
$this->_helper->viewRenderer->setNoRender();
$id = $this->_getParam('id');
$refid = $this->_getParam('refid');
$content = $this->_getParam('content');
$link = $this->_getParam('link');
$reftype = $this->_getParam('reftype');
$uuid = $this->_getParam('uuid');
if(empty($id))
if(empty($id) || empty($uuid))
{
$this->jsonexit(array('error'=>'参数错误'));
return true;
@ -2610,7 +2618,13 @@ class AuthorController extends Zend_Controller_Action
return true;
}
$s = $author->Literature->edit($id,$content);
if(empty($reftype))
{
$this->jsonexit(array('error'=>'请选择文献类型'));
return true;
}
$s = $author->Literature->edit($id,$refid,$uuid,$content,$link,$reftype);
if($s !== true)
{
$this->jsonexit(array('error'=>'出现错误'));
@ -2744,6 +2758,17 @@ class AuthorController extends Zend_Controller_Action
$this->_helper->viewRenderer('literature-byliter');
}
//单条文献的信息
else if ($ac == "get")
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$id = $this->_getParam('id');
$data = $author->Literature->getOne($id);
$this->jsonexit($data);
return true;
}
//按数据浏览
else if($ac=="bydata")
{
@ -2775,6 +2800,7 @@ class AuthorController extends Zend_Controller_Action
$ref=$this->_request->getParam('ref');
$reftype=$this->_request->getParam('reftype');
$url = $this->_request->getParam('url');
if(empty($uuid) || empty($ref) || !is_numeric($reftype))
{
$data = array("error"=>"参数错误");
@ -2782,11 +2808,8 @@ class AuthorController extends Zend_Controller_Action
return true;
}
$sql="select * from mdauthor where userid=? and uuid=? and status=1";
$sth = $this->db->prepare($sql);
$sth->execute(array($u_id,$uuid));
$row = $sth->fetch();
if (empty($row))
$author = new Author($this->db);
if(!$author->checkAuthor($uuid))
{
$data = array("error"=>$this->alertbox('warning','您不是该数据作者,无法添加对应文献信息。'));
$this->jsonexit($data);
@ -2797,7 +2820,8 @@ class AuthorController extends Zend_Controller_Action
$sth = $this->db->prepare($sql);
$sth->execute(array($ref));
$row = $sth->fetch();
if (!$row)
if(empty($row['id']))
{
$sql="insert into reference (reference,link) values(?,?)";
$sth = $this->db->prepare($sql);
@ -2821,8 +2845,9 @@ class AuthorController extends Zend_Controller_Action
$this->jsonexit($data);
return true;
}
}catch(Exception $e) {
$msg = "提交失败,请确认权限后重试";
$msg = "提交失败,您提交的数据可能已经存在";
if($this->debug>0)
{$msg .= $e->getMessage();}
$data = array("error"=>$this->alertbox('error',$msg));

View File

@ -1,13 +0,0 @@
<?php
class CommunityController extends Zend_Controller_Action
{
function indexAction()
{
//$this->_redirect('/metadata');
}
function preDispatch()
{
$this->view->config = Zend_Registry::get('config');
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,391 +0,0 @@
<?php
class GlacierController extends DataController
{
private $limit=20;
function preDispatch()
{
parent::preDispatch();
//$this->_helper->layout->setLayout('glacier');
$acName = $this->_request->getActionName();
if(in_array($acName,array("rs","dem")))
{
$this->view->pageIn = "collapse1";
}
if(in_array($acName,array("glacier","lake")))
{
$this->view->pageIn = "collapse2";
}
if(in_array($acName,array("meteo","hydro","gps",'lidar','material','movement','physical','photogrammetry','frozensoil','vegetation','quatemary')))
{
$this->view->pageIn = "collapse3";
}
$this->view->pageID = "glacier-".$acName;
}
function indexAction()
{
$sql="select m.uuid,m.title,m.id,m.description from normalmetadata m left join thumbnail t on m.id=t.id where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and length(t.data)>2 order by random() limit 3";
$this->view->meatdata=$this->db->fetchAll($sql);
}
/*
* 数据浏览
*/
function browseAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') ");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$select=$this->db->select();
$select->from('normalmetadata','*')->where(" uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') ")->order('title desc')->limitPage($page,$this->limit);
$this->view->metadata = $this->db->fetchAll($select);
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function thumbAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') ");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$select=$this->db->select();
$select->from('normalmetadata as m','m.*')
->where(" uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') ")
->order('m.title desc')->limitPage($page,$this->limit);
$this->view->metadata = $this->db->fetchAll($select);
$this->view->page=new Pagination($sum,$page,$this->limit);
}
function documentAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from reference where id in (select refid from mdref where uuid in (select uuid from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') ))");
$sum=$row[0]['count'];
$sql="select * from reference where id in (select refid from mdref where uuid in (select uuid from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') )) order by reference limit ? offset ?";
$this->view->refs=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit,"文献");
$this->view->offset=$offset+1;
}
function geobaseAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='遥感影像' or keyword='DEM'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='遥感影像' or keyword='DEM')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function demAction()
{
$this->getmd('DEM');
}
function rsAction()
{
$this->getmd('遥感影像');
}
function inventoryAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='冰川编目' or keyword='冰湖编目'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='冰川编目' or keyword='冰湖编目')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function glacierAction()
{
$this->getmd('冰川编目');
}
function lakeAction()
{
$this->getmd('冰湖编目');
}
function fieldAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme'
and (keyword='水文' or keyword='流量' or keyword='水质' or keyword='同位素' or keyword='径流' or keyword='水位' or keyword='气象' or keyword='雨量' or keyword='GPS'
or keyword='雷达' or keyword='雷达测厚' or keyword='冰川厚度' or keyword='物质平衡' or keyword='花杆' or keyword='运动速度' or keyword='花杆消融观测' or keyword='冰舌'
or keyword='冰雪物理过程' or keyword='冰温' or keyword='摄影测量' or keyword='照片' or keyword='第四纪' or keyword='冻土' or keyword='植被' ))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='水文' or keyword='流量' or keyword='水质' or keyword='同位素' or keyword='径流' or keyword='水位' or keyword='气象' or keyword='雨量' or keyword='GPS'
or keyword='雷达' or keyword='雷达测厚' or keyword='冰川厚度' or keyword='物质平衡' or keyword='花杆' or keyword='运动速度' or keyword='花杆消融观测' or keyword='冰舌'
or keyword='冰雪物理过程' or keyword='冰温' or keyword='摄影测量' or keyword='照片' or keyword='第四纪' or keyword='冻土' or keyword='植被' )) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function meteoAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='气象' or keyword='雨量'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='气象' or keyword='雨量')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function hydroAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='水文' or keyword='流量' or keyword='水质' or keyword='同位素' or keyword='径流' or keyword='水位'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='水文' or keyword='流量' or keyword='水质' or keyword='同位素' or keyword='径流' or keyword='水位')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function gpsAction()
{
$this->getmd('GPS','theme');
}
function lidarAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='雷达' or keyword='雷达测厚' or keyword='冰川厚度'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='雷达' or keyword='雷达测厚' or keyword='冰川厚度')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function materialAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='物质平衡' or keyword='花杆'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='物质平衡' or keyword='花杆')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function movementAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='运动速度' or keyword='花杆消融观测' or keyword='冰舌'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='运动速度' or keyword='花杆消融观测' or keyword='冰舌')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function physicalAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='冰雪物理过程' or keyword='冰温'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='冰雪物理过程' or keyword='冰温')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function photogrammetryAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='摄影测量' or keyword='照片'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='theme' and (keyword='摄影测量' or keyword='照片')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function vegetationAction()
{
$this->getmd('植被');
}
function frozensoilAction()
{
$this->getmd('冻土');
}
function quatemaryAction()
{
$this->getmd('第四纪');
}
function listAction()
{
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') order by timebegin,title";
$this->view->metadata=$this->db->fetchAll($sql);
}
function tagAction()
{
$key = $this->_request->getParam('key');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
if (!empty($key)) {
$this->view->codename=$key;
$sql=$this->db->quoteInto('select count(id) from keyword where keyword=?',$key);
$state=$this->db->query($sql);
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keyword='".$key."') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
} else {
$state=$this->db->query("select keyword.keyword,count(*) from keyword left join normalmetadata m on keyword.id=m.id where keyword.keytype='place' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') group by keyword.keyword order by count desc");
$k1=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='theme' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') group by k.keyword order by k.keyword");
$k2=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='discipline' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') group by k.keyword order by k.keyword");
$k3=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='stratum' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') group by k.keyword order by k.keyword");
$k4=$state->fetchAll();
$state=$this->db->query("select keyword.keyword,count(*) from keyword left join normalmetadata m on keyword.id=m.id where keyword.keytype='temporal' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') group by keyword.keyword order by keyword.keyword");
$k5=$state->fetchAll();
$this->view->keywords=array('place'=>$k1,'theme'=>$k2,'discipline'=>$k3,'stratum'=>$k4,'temporal'=>$k5);
}
}
function searchAction()
{
$this->view->addHelperPath('helper','Zend_View_Helper_');
$form=new SearchForm();
$this->view->form=$form;
//$form->submit->setLabel('快速搜索');
$key=$this->_request->getParam('q');
if (!empty($key)) {
$search=new Search($key);
$where=$search->sql_expr(array("title","description"));
$page=@(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and ".$where);
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and ".$where." order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->key=$key;
$this->view->offset=$offset+1;
}
}
function timemapAction()
{
$sql="select id,uuid,west,south,north,east,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and timebegin is not null";
$this->view->rows=$this->db->fetchAll($sql);
}
function timelineAction()
{
$fn="glaciertime.xml";
$rows=$this->db->fetchAll("select ts_created from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') order by ts_created desc limit 1");
$last_update=strtotime($rows[0]['ts_created']);
if (!file_exists($fn) || (filemtime($fn)<$last_update))
{
$dateformat="M j Y";
$rows=$this->db->fetchAll("select id,uuid,description,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and timebegin is not null order by timebegin,title");
$timexml='<data>';
foreach($rows as $row) {
$timexml.='<event start="'.date($dateformat,strtotime($row['timebegin'])).' GMT+0800" ';
if ($row['timeend']!='' && $row['timeend']!=$row['timebegin']) $timexml.=' end="'.date($dateformat,strtotime($row['timeend'])).'" isDuration="true"';
$timexml.= ' title="'.htmlspecialchars($row['title']).'" image="/images/westdc_40w.gif" link="/glacier/view/uuid/'.$row['uuid'].'">';
$desc_length=mb_strlen($row['description'],"UTF-8");
$desc=mb_substr($row['description'],0,($desc_length>300)?300:$desc_length,"UTF-8");
if ($desc_length>300) $desc.=" ...";
$timexml.=htmlspecialchars($desc);
$timexml.="</event>\n";
}
$timexml.='</data>';
$fp=fopen($fn,'w');
fwrite($fp,$timexml);
fclose($fp);
}
}
function categoryAction()
{
$code = (int)$this->_request->getParam('code');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$this->view->category=$this->db->fetchAll("select c.code,name,name_zh,count(*) from category c left join normalmetadata m on c.id=m.id,categorycode cc where c.code=cc.code and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') group by c.code,cc.name,cc.name_zh");
if ($code>0 && $code<20) {
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from category where code=".$code.")");
$sum=$row[0]['count'];
$sql="select uuid,title,description,id from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select distinct id from category where code=".$code.") order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
$row=$this->db->fetchRow("select name,name_zh from categorycode where code=?",$code);
$this->view->codename=(empty($row['name_zh'])?$row['name']:$row['name_zh']);
} else {
//提供全部分类列表
}
}
private function getmd($keyword,$type='theme')
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(m.*) from normalmetadata m left join datasource d on m.uuid=d.uuid left join source s on d.sourceid=s.id where s.code='glacier' and m.id in (select id from keyword where keytype='".$type."' and keyword='".$keyword."')");
$row=$state->fetchAll();
$sum=$row[0]['count'];
//@todo: add order with title
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='glacier') and id in (select id from keyword where keytype='".$type."' and keyword='".$keyword."') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,660 +0,0 @@
<?php
class HiwaterController extends DataController
{
private $limit=20;
function preDispatch()
{
parent::preDispatch();
//$this->_helper->layout->setLayout('hiwater');
$this->debug = 1;
$acName = $this->_request->getActionName();
if(in_array($acName,array("aviation","radiometer","lidar","widas",'ccd',"nearvis","thermal")))
{
$this->view->pageIn = "collapse1";
}
else if(in_array($acName,array("airborne","vegstructure","vegparam","temperature","soilmoisture")))
{
$this->view->pageIn = "collapse2";
}
else if(in_array($acName,array("hmon",'super','normal','prec')))
{
$this->view->pageIn = "collapse3";
}
else if(in_array($acName,array("cgs","calibration","ground",'sync')))
{
$this->view->pageIn = "collapse4";
}
else if(in_array($acName,array("wsn","waternet","soilnet","bnunet",'bnulai')))
{
$this->view->pageIn = "collapse5";
}
else if(in_array($acName,array("mso","autometeo","ec",'las',"cosmos","tdp","isotope")))
{
$this->view->pageIn = "collapse6";
}
else if(in_array($acName,array("rsproduct","dem","precipitation",'sm',"snow","vegtype","vegcov",'phenology','npp')))
{
$this->view->pageIn = "collapse7";
}
else if(in_array($acName,array("browse","thumb","fund","tag","timeline","timemap",'author','organization')))
{
$this->view->pageIn = "collapse10";
}
else if(in_array($acName,array("other")))
{
$this->view->pageIn = "collapse9";
}
$this->view->pageID = "hiwater-".$acName;
$this->_helper->layout->setLayout('heihe');
}
function indexAction()
{
$sql="select m.uuid,m.title,m.id,m.description from normalmetadata m left join thumbnail t on m.id=t.id where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and length(t.data)>2 order by random() limit 3";
$this->view->meatdata=$this->db->fetchAll($sql);
$archive = new Archive($this->db);
$this->view->info = $archive->getOneArchive('HiWATER黑河流域生态-水文过程综合遥感观测联合试验','about');
}
/*
* 数据浏览
*/
function browseAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') ");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$select=$this->db->select();
$select->from('normalmetadata','*')->where(" uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') ")->order('title desc')->limitPage($page,$this->limit);
$this->view->metadata = $this->db->fetchAll($select);
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function thumbAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') ");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$select=$this->db->select();
$select->from('normalmetadata as m','m.*')
->where(" uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') ")
->order('m.title desc')->limitPage($page,$this->limit);
$this->view->metadata = $this->db->fetchAll($select);
$this->view->page=new Pagination($sum,$page,$this->limit);
}
function documentAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from reference where id in (select refid from mdref where uuid in (select uuid from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') ))");
$sum=$row[0]['count'];
$sql="select * from reference where id in (select refid from mdref where uuid in (select uuid from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') )) order by reference limit ? offset ?";
$this->view->refs=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit,"文献");
$this->view->offset=$offset+1;
}
function aviationAction()
{
$this->getmdlimited(array('WiDAS','PLMR','Lidar','CASI','热红外高光谱数据'),'航空遥感');
$this->_helper->viewRenderer('base');
}
function radiometerAction()
{
$this->getmdlimited('PLMR','航空遥感');
$this->_helper->viewRenderer('base');
}
function lidarAction()
{
$this->getmdlimited('激光雷达','航空遥感');
$this->_helper->viewRenderer('base');
}
function widasAction()
{
$this->getmdlimited('WIDAS','航空遥感');
$this->_helper->viewRenderer('base');
}
function ccdAction()
{
$this->getmdlimited('CCD','航空遥感');
$this->_helper->viewRenderer('base');
}
function nearvisAction()
{
$this->getmdlimited('CASI','航空遥感');
$this->_helper->viewRenderer('base');
}
function thermalAction()
{
$this->getmdlimited('热红外高光谱数据','航空遥感');
$this->_helper->viewRenderer('base');
}
function airborneAction()
{
$this->getmd(array('航空遥感产品','种植结构图','植被类型图','植被结构参数','数字高程模型','数字表面模型','地表温度','地表土壤水文'));
$this->_helper->viewRenderer('base');
}
function vegstructureAction()
{
$this->getmd(array('','种植结构图'));
$this->_helper->viewRenderer('base');
}
function vegparamAction()
{
$this->getmd(array('','植被结构参数'));
$this->_helper->viewRenderer('base');
}
function dsmAction()
{
$this->getmd(array('','数字表面模型'));
$this->_helper->viewRenderer('base');
}
function temperatureAction()
{
$this->getmd(array('','地表温度'));
$this->_helper->viewRenderer('base');
}
function hmonAction()
{
$this->getmdlimited(array('西支','黄藏寺','黄草沟','峨堡','景阳岭','阿柔阳坡','阿柔阴坡','戈壁站','神沙窝沙漠站','花寨子荒漠站','张掖湿地站','阿柔超级站','大满超级站','四道桥超级站'),'水文气象');
$md=$this->view->metadata;
$this->getmd(array('','河川径流观测'));
$this->view->metadata=array_merge($md,$this->view->metadata);
$this->_helper->viewRenderer('base');
}
function superAction()
{
$this->getmdlimited(array('阿柔超级站','大满超级站','四道桥超级站'),'水文气象');
$this->_helper->viewRenderer('base');
}
function normalAction()
{
$this->getmdlimited(array('西支','黄藏寺','黄草沟','峨堡','景阳岭','阿柔阳坡','阿柔阴坡','戈壁站','神沙窝沙漠站','花寨子荒漠站','张掖湿地站'),'水文气象');
$this->_helper->viewRenderer('base');
}
function autometeoAction()
{
$this->getmd(array('','自动气象站'));
$this->_helper->viewRenderer('base');
}
function ecAction()
{
$this->getmd(array('','涡动相关仪'));
$this->_helper->viewRenderer('base');
}
function lasAction()
{
$this->getmd(array('','大孔径闪烁仪'));
$this->_helper->viewRenderer('base');
}
function precAction()
{
$this->getmd(array('','河川径流观测'));
$this->_helper->viewRenderer('base');
}
function cgsAction()
{
$this->getmd(array('定标观测','地基遥感观测','地面同步观测'));
$this->_helper->viewRenderer('base');
}
function calibrationAction()
{
$this->getmd(array('','定标观测'));
$this->_helper->viewRenderer('base');
}
function groundAction()
{
$this->getmd(array('','地基遥感观测'));
$this->_helper->viewRenderer('base');
}
function syncAction()
{
$this->getmd(array('','地面同步观测'));
$this->_helper->viewRenderer('base');
}
function wsnAction()
{
$this->getmd(array('WATERNET','SoilNET','BNUNET','BNULAI'));
$this->_helper->viewRenderer('base');
}
function waternetAction()
{
$this->getmd(array('','WATERNET'));
$this->_helper->viewRenderer('base');
}
function soilnetAction()
{
$this->getmd(array('','SoilNET'));
$this->_helper->viewRenderer('base');
}
function bnunetAction()
{
$this->getmd(array('','BNUNET'));
$this->_helper->viewRenderer('base');
}
function bnulaiAction()
{
$this->getmdlimited('LAI','生态水文无线传感器网络');
$this->_helper->viewRenderer('base');
}
function satelliteAction()
{
$this->getmd(array('','卫星遥感'));
$this->_helper->viewRenderer('base');
}
function soilAction()
{
$this->getmd(array('','卫星遥感'));
$this->_helper->viewRenderer('base');
}
function meteoAction()
{
$this->getmd('气象','theme');
}
function hydroAction()
{
$this->getmd('水文观测','theme');
}
function irragationAction()
{
$this->getmd('灌溉','theme');
}
function obsAction()
{
$this->getmd('试验','theme');
}
function msoAction()
{
$this->getmd(array('自动气象站','涡动相关仪','大孔径闪烁仪','稳定同位素观测系统','热扩散液流计TDP','宇宙射线土壤水分'));
$this->_helper->viewRenderer('base');
}
function isotopeAction()
{
$this->getmd(array('','稳定同位素观测系统'));
$this->_helper->viewRenderer('base');
}
function tdpAction()
{
$this->getmd(array('','热扩散液流计TDP'));
$this->_helper->viewRenderer('base');
}
function cosmosAction()
{
$this->getmd(array('','宇宙射线土壤水分'));
$this->_helper->viewRenderer('base');
}
function rsproductAction()
{
$this->getmdlimited(array('DEM','DOM','降水','土壤水分','积雪','植被类型','植被覆盖度','物候期','NPP'),'数据产品');
$this->_helper->viewRenderer('base');
}
function demAction()
{
$this->getmdlimited(array('DEM','DOM'),'数据产品');
$this->_helper->viewRenderer('base');
}
function precipitationAction()
{
$this->getmdlimited(array('降水',''),'数据产品');
$this->_helper->viewRenderer('base');
}
function smAction()
{
$this->getmdlimited(array('土壤水分'),'数据产品');
$this->_helper->viewRenderer('base');
}
function snowAction()
{
$this->getmdlimited(array('积雪'),'数据产品');
$this->_helper->viewRenderer('base');
}
function vegtypeAction()
{
$this->getmdlimited(array('植被类型','种植结构'),'数据产品');
$this->_helper->viewRenderer('base');
}
function vegcovAction()
{
$this->getmdlimited(array('植被覆盖度',''),'数据产品');
$this->_helper->viewRenderer('base');
}
function phenologyAction()
{
$this->getmdlimited(array('物候期',''),'数据产品');
$this->_helper->viewRenderer('base');
}
function nppAction()
{
$this->getmdlimited(array('NPP',''),'数据产品');
$this->_helper->viewRenderer('base');
}
function listAction()
{
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') order by timebegin,title";
$this->view->metadata=$this->db->fetchAll($sql);
}
function tagAction()
{
$key = $this->_request->getParam('key');
$keytype = $this->_request->getParam('keytype');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
if (!empty($key)) {
$this->view->codename=$key;
$sql=$this->db->quoteInto("select count(k.id) from keyword k left join normalmetadata m on k.id=m.id where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and k.keyword=?",$key);
$state=$this->db->query($sql);
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and id in (select id from keyword where keyword='".$key."') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
} else {
$sql="select k.keyword,count(*),k.keytype from keyword k left join normalmetadata m on k.id=m.id where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') ";
if (!empty($keytype) && ($keytype=='place' || $keytype=='theme' || $keytype=='discipline'||$keytype=='temporal')) $sql.=" and k.keytype='".$keytype."'";
$sql.=' group by k.keyword,k.keytype order by k.keytype,k.keyword,count desc';
$state=$this->db->query($sql);
$this->view->keytype=$keytype;
$this->view->keywords=$state->fetchAll();
}
}
function searchAction()
{
$this->view->addHelperPath('helper','Zend_View_Helper_');
$form=new SearchForm();
$this->view->form=$form;
//$form->submit->setLabel('快速搜索');
$key=$this->_request->getParam('q');
if (!empty($key)) {
$search=new SimpleSearch($key);
$where=$search->sql_expr(array("title","description"));
$page=@(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and ".$where);
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and ".$where." order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->key=$key;
$this->view->offset=$offset+1;
}
}
function timemapAction()
{
$sql="select id,uuid,west,south,north,east,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and timebegin is not null";
$this->view->rows=$this->db->fetchAll($sql);
}
function timelineAction()
{
$fn="hiwatertime.xml";
$rows=$this->db->fetchAll("select ts_created from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') order by ts_created desc limit 1");
$last_update=strtotime($rows[0]['ts_created']);
if (!file_exists($fn) || (filemtime($fn)<$last_update))
{
$dateformat="M j Y";
$rows=$this->db->fetchAll("select id,uuid,description,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and timebegin is not null order by timebegin,title");
$timexml='<data>';
foreach($rows as $row) {
$timexml.='<event start="'.date($dateformat,strtotime($row['timebegin'])).' GMT+0800" ';
if ($row['timeend']!='' && $row['timeend']!=$row['timebegin']) $timexml.=' end="'.date($dateformat,strtotime($row['timeend'])).'" isDuration="true"';
$timexml.= ' title="'.htmlspecialchars($row['title']).'" image="/images/westdc_40w.gif" link="/hiwater/view/uuid/'.$row['uuid'].'">';
$desc_length=mb_strlen($row['description'],"UTF-8");
$desc=mb_substr($row['description'],0,($desc_length>300)?300:$desc_length,"UTF-8");
if ($desc_length>300) $desc.=" ...";
$timexml.=htmlspecialchars($desc);
$timexml.="</event>\n";
}
$timexml.='</data>';
$fp=fopen($fn,'w');
fwrite($fp,$timexml);
fclose($fp);
}
}
function categoryAction()
{
$code = (int)$this->_request->getParam('code');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$this->view->category=$this->db->fetchAll("select c.code,name,name_zh,count(*) from category c left join normalmetadata m on c.id=m.id,categorycode cc where c.code=cc.code and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') group by c.code,cc.name,cc.name_zh");
if ($code>0 && $code<20) {
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and id in (select id from category where code=".$code.")");
$sum=$row[0]['count'];
$sql="select uuid,title,description,id from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and id in (select distinct id from category where code=".$code.") order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
$row=$this->db->fetchRow("select name,name_zh from categorycode where code=?",$code);
$this->view->codename=(empty($row['name_zh'])?$row['name']:$row['name_zh']);
} else {
//提供全部分类列表
}
}
function viewAction()
{
parent::viewAction();
$this->_helper->viewRenderer('hiwater/view');
}
private function getmd($keyword,$type='theme')
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
if (!is_array($keyword))
{
$keyword=array($keyword);
}
$key="(";
foreach($keyword as $k)
{
$key.="'".$k."',";
}
$key=substr($key,0,-1);
$key.=")";
$keyword=$key;
$state=$this->db->query("select count(m.*) from normalmetadata m left join datasource d on m.uuid=d.uuid left join source s on d.sourceid=s.id where s.code='hiwater' and m.id in (select id from keyword where keytype='".$type."' and keyword in ".$keyword.")");
$row=$state->fetchAll();
$sum=$row[0]['count'];
//@todo: add order with title
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and id in (select id from keyword where keytype='".$type."' and keyword in ".$keyword.") order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
//获取多项条件并列关系的数据并必须满足limited条件
//$keyword:字符串或字符串数组
//$limited:限制字符串
private function getmdlimited($keyword,$limited)
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
if (!is_array($keyword))
{
$keyword=array($keyword);
}
$key="(";
foreach($keyword as $k)
{
$key.="'".$k."',";
}
$key=substr($key,0,-1);
$key.=")";
$keyword=$key;
$state=$this->db->query("select count(m.*) from normalmetadata m left join datasource d on m.uuid=d.uuid left join source s on d.sourceid=s.id where s.code='hiwater' and m.id in (select id from keyword where keyword='".$limited."') and m.id in (select id from keyword where keyword in ".$keyword.")");
$row=$state->fetchAll();
$sum=$row[0]['count'];
//@todo: add order with title
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and id in (select id from keyword where keyword='".$limited."') and id in (select id from keyword where keyword in ".$keyword.") order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
//基于数据作者的浏览(包括认证后的数据作者以及未认证的数据作者)
function authorAction()
{
$ac = $this->_request->getParam('ac');
$id = (int)$this->_request->getParam('id');
if ($ac=='verified') {
//已经认证过的数据作者
$this->view->tabID='author-verified';
$this->view->ac='verified';
if ($id) {
//列出作者的数据
$sql="select username,realname from users where id=?";
$this->view->author=$this->db->fetchRow($sql,array($id));
$sql="select m.* from normalmetadata m left join mdauthor a on a.uuid=m.uuid where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and a.userid=?";
$sth = $this->db->prepare($sql);
$sth->execute(array($id));
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(10);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
} else {
//已经认证过的数据作者
$sql="select u.username,u.realname,u.id,count(u.id) as count from mdauthor a left join users u on a.userid=u.id where a.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and a.status=1 and a.uuid in (select uuid from normalmetadata) group by u.id,u.username,u.realname";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(50);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}
} else if ($ac=='unverified' || empty($ac)) {
//未认证的数据作者
$this->view->tabID='author-unverified';
$this->view->ac='unverified';
if ($id) {
//列出数据
$sql="select individual as username from responsible where id=?";
$this->view->author=$this->db->fetchRow($sql,array($id));
$sql="select distinct m.* from normalmetadata m left join role r on m.uuid=r.uuid left join responsible s on r.resid=s.id where r.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and r.role in ('pointOfContact','resourceProvider','owner') and s.id=?";
$sth = $this->db->prepare($sql);
$sth->execute(array($id));
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(10);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
} else {
//列出所有作者
$sql="select distinct responsible.individual as username,responsible.id from responsible left join role on role.resid=responsible.id where role.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and role.role in ('pointOfContact','resourceProvider','owner')";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(50);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}
}
}
function fundAction()
{
$id = (int)$this->_request->getParam('id');
if (!empty($id)) {
$sql="select * from fund where id=?";
$this->view->fund=$this->db->fetchRow($sql,array($id));
if ($this->view->fund) {
$sql="select distinct m.* from normalmetadata m left join mdfund mf on m.uuid=mf.uuid where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and mf.fid=?";
$sth = $this->db->prepare($sql);
$sth->execute(array($id));
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(10);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}
} else {
//提供全部分类列表
$sql="select f.id,f.title,f.fund_id,f.fund_type,f.ts_created,count(m.id) as datacount,sum(md.filesize) as filesize from fund f left join mdfund m on f.id=m.fid left join metadata md on m.uuid=md.uuid where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') group by f.id,f.title,f.fund_id,f.fund_type,f.ts_created order by f.ts_created desc";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(10);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
$this->_helper->viewRenderer('fund-list');
}
}
function organizationAction()
{
$page = $this->_request->getParam('page');
$name = $this->_request->getParam('name');
$state=$this->db->query("select distinct responsible.organisation from responsible left join role on role.resid=responsible.id where role.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and role.role in ('pointOfContact','resourceProvider','owner')");
$this->view->organisation=$state->fetchAll();
if (!empty($name)) {
$this->view->codename=$name;
$sql="select distinct m.* from normalmetadata m left join role r on m.uuid=r.uuid left join responsible s on r.resid=s.id where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='hiwater') and r.role in ('pointOfContact','resourceProvider','owner') and s.organisation=?";
$sth = $this->db->prepare($sql);
$sth->execute(array($name));
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(10);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
} else {
//提供全部分类列表
}
}
}

View File

@ -1,53 +1,44 @@
<?php
class IndexController extends Zend_Controller_Action
{
function preDispatch()
{
class IndexController extends Zend_Controller_Action {
function preDispatch () {
$this->view->config = Zend_Registry::get('config');
$this->db = Zend_Registry::get('db');
$this->view->theme = new Theme();
$this->view->main_nav_pageID = "index";
$this->submd = $this->view->config->sub->metadata;
$this->subnews = $this->view->config->sub->news;
# $this->_helper->layout->setLayout('index');
//$this->view->main_nav_pageID = "index";
}
function indexAction()
{
//数据通讯
$l=new mydir($this->view->config->paths->newsletter,"newsletter_*.pdf");
$this->view->newsletter=$l->getLast();
$name=basename($this->view->newsletter,'.pdf');
list(,$this->view->newsletterno)=explode("_",$name);
function indexAction () {
//统计数据
$sql='select (select count(*) from users) as usernum,(select count(*) from metadata) as metanum,(select count(*) from offlineapp where ts_approved is not null ) as offlinenum';
$sql = "select (select count(*) from users) as usernum,(select count(*) from {$this->submd}) as metanum,
(select count(distinct d.uuid) from dataorder d left join offlineapp f on d.offlineappid=f.id where d.uuid in (select uuid from meteorologymd) and d.ts_approved is not null and d.status in (0,5) ) as offlinenum,
(select count(*) from datavisual where uuid in (select uuid from {$this->submd}) and status=1) as visualnum";
$row = $this->db->fetchRow($sql);
$this->view->usernum = $row['usernum'];
$this->view->metanum = $row['metanum'];
$this->view->offlinenum = $row['offlinenum'];
$this->view->visualnum = $row['visualnum'];
/*$sql='select count(*) from metadata';
$row=$this->db->fetchRow($sql);
$this->view->metanum=$row['count'];*/
$sql="select sum(filesize) as sum,datatype from metadata group by datatype";
$sql = "select sum(filesize) as sum,datatype from {$this->submd} group by datatype";
$rows = $this->db->fetchAll($sql);
foreach($rows as $row)
{
if ($row['datatype'])
$this->view->offlinesize=$row['sum'];
else
foreach ($rows as $row) {
if ($row['datatype']) $this->view->offlinesize = $row['sum']; else
$this->view->onlinesize = $row['sum'];
}
//特色推荐
$sql="select * from datafeature order by id desc";
$this->view->feature=$this->db->fetchRow($sql);
//特色数据集
$sql="select * from datasetcd order by random()";
$this->view->datasetcd=$this->db->fetchRow($sql);
//下载最多数据(top 5)
$sql="select uuid,title,id from normalmetadata where id in (select m.id from normalmetadata m left join dataorder d on m.uuid=d.uuid where m.datatype=0 group by m.id order by count(d.uuid) desc limit 5)";
$this->db->setFetchMode(Zend_Db::FETCH_OBJ);
$sql = "select uuid,title,id from {$this->submd} where id in (select m.id from {$this->submd} m left join dataorder d on m.uuid=d.uuid where m.datatype=0 group by m.id order by count(d.uuid) desc limit 5)";
//最新数据
$sql = "select id,uuid,title,ts_created from {$this->submd} order by ts_created desc limit 5";
$this->db->setFetchMode(Zend_Db::FETCH_BOTH);
$this->view->mdtop = $this->db->fetchAll($sql);
$sql="select uuid,title,id from normalmetadata where id in (select m.id from normalmetadata m left join dataorder d on m.uuid=d.uuid where m.datatype=1 group by m.id order by count(d.uuid) desc limit 5)";
$sql = "select uuid,title,id from {$this->submd} where id in (select m.id from {$this->submd} m left join dataorder d on m.uuid=d.uuid where m.datatype=1 group by m.id order by count(d.uuid) desc limit 5)";
$this->view->offlinemdtop = $this->db->fetchAll($sql);
$sql="select m.uuid,m.title,m.id,m.description from normalmetadata m left join thumbnail t on m.id=t.id where length(t.data)>2 order by random()";
$sql = "select m.uuid,m.title,m.id,m.description from {$this->submd} m left join thumbnail t on m.id=t.id where length(t.data)>2 order by random()";
$this->view->mdrandom = $this->db->fetchRow($sql);
//搜索
$this->view->addHelperPath('helper', 'Zend_View_Helper_');
@ -58,12 +49,12 @@ class IndexController extends Zend_Controller_Action
$News = new Archive($this->db);
$time = date("Y-m-d H:i:s", time());
$sql = "SELECT * FROM archive WHERE is_pub=true AND ts_published<'$time' AND image!='' and id in (select ar_catalog.aid from ar_category left join ar_catalog on ar_category.id=ar_catalog.cid where ar_category.code='featured') order by ts_published desc LIMIT 5";
$sql = "SELECT * FROM archive WHERE is_pub=true and sub='$this->subnews' AND ts_published<'$time' AND image!=''
and id in (select ar_catalog.aid from ar_category left join ar_catalog on ar_category.id=ar_catalog.cid where ar_category.code='featured') order by ts_published desc LIMIT 5";
$sth = $this->db->query($sql);
$rows = $sth->fetchAll(PDO::FETCH_BOTH);
foreach($rows as $k=>$v)
{
foreach ($rows as $k => $v) {
$url = $News->getArchiveUrlByCid($v['id']);
$rows[$k]['url'] = $url['archive_url'];
}
@ -71,12 +62,13 @@ class IndexController extends Zend_Controller_Action
$this->view->news = $rows;
//$time = date("Y-m-d H:i:s",time());
$sql = "SELECT * FROM archive WHERE is_pub=true AND ts_published<now() and id in (select ar_catalog.aid from ar_catalog left join ar_category on ar_catalog.cid=ar_category.id where ar_category.ptype='news') order by ts_published desc LIMIT 12 ";
$sql = "SELECT * FROM archive WHERE is_pub=true and sub='$this->subnews' AND ts_published<now()
and id in (select ar_catalog.aid from ar_catalog left join ar_category on ar_catalog.cid=ar_category.id where ar_category.ptype='news')
order by ts_published desc LIMIT 5 ";
$sth = $this->db->query($sql);
$rows = $sth->fetchAll(PDO::FETCH_BOTH);
foreach($rows as $k=>$v)
{
foreach ($rows as $k => $v) {
$url = $News->getArchiveUrlByCid($v['id']);
$rows[$k]['url'] = $url['archive_url'];
$rows[$k]['type_title'] = $url['type_title'];
@ -85,10 +77,9 @@ class IndexController extends Zend_Controller_Action
$this->view->list_news = $rows;
$sql="select d.*,m.ts_published as publish_year from datadoi d left join metadata m on d.uuid=m.uuid where d.ts_published is not null order by ts_published desc limit 4";
$sql = "select * from $this->submd where uuid in (select uuid from datavisual) order by ts_created desc limit 5";
$sth = $this->db->query($sql);
$this->view->dois = $sth->fetchAll();
$this->view->visualdata = $sth->fetchAll(PDO::FETCH_BOTH);
}
}

View File

@ -15,7 +15,7 @@ class KnowledgeController extends Zend_Controller_Action
function datacenterAction()
{
$siteid="e31f5ea7-a4af-4ae3-9ac1-1a84132c4338";//site uuid from geonetowrk
$sql="select * from mdref mr left join reference r on mr.refid=r.id where mr.uuid=? order by r.id desc";
$sql="select * from mdref mr left join reference r on mr.refid=r.id where mr.uuid=? order by r.year desc, reference desc";
$sth = $this->db->prepare($sql);
$sth->execute(array($siteid));
$rows = $sth->fetchAll();
@ -26,9 +26,9 @@ class KnowledgeController extends Zend_Controller_Action
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}
function userAction()
function waterAction()
{
$sql="select * from reference where id in (select refid from mdref where reftype=1 and uuid in (select uuid from normalmetadata)) order by id desc";
$sql="select * from reference where id in (select refid from mdref where uuid in (select uuid from en.normalmetadata)) order by year desc, reference desc";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
@ -39,9 +39,33 @@ class KnowledgeController extends Zend_Controller_Action
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}
function userAction()
{
$uuid=$this->_request->getParam('uuid');
if (preg_match('/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})/',$uuid))
{
$sql="select uuid,title from metadata where uuid='$uuid'";
$sth = $this->db->prepare($sql);
$sth->execute();
$this->view->md = $sth->fetch();
$sql="select * from reference where id in (select refid from mdref where reftype=1 and uuid='$uuid') order by year desc, reference desc";
} else
$sql="select * from reference where id in (select refid from mdref where reftype=1 and uuid in (select uuid from normalmetadata)) order by year desc, reference desc";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(10);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}
function authorAction()
{
$sql="select * from reference where id in (select refid from mdref where reftype=0 and uuid in (select uuid from normalmetadata)) order by id desc";
$sql="select * from reference where id in (select refid from mdref where reftype=0 and uuid in (select uuid from normalmetadata)) order by year desc, reference desc";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
@ -66,14 +90,16 @@ class KnowledgeController extends Zend_Controller_Action
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
}
function searchAction()
{
$key=$this->_request->getParam('q');
$author = (int)$this->_request->getParam('author');
$place = (int)$this->_request->getParam('place');
$source=$this->_request->getParam('searchsource');
if(preg_match("/\"|'|<|>/",$key))
{
$data=array('<'=>'&lt;','>'=>'&gt;', "\'"=>'', "\""=>'”');
$patterns = array();
$replacements = array();
foreach($data as $k=>$v)
@ -86,10 +112,13 @@ class KnowledgeController extends Zend_Controller_Action
$key=preg_replace($patterns, $replacements, $key);
}
if (!empty($key) && $source=='datasource') {
if (!empty($key)) {
$search=new SimpleSearch($key);
$where=$search->sql_expr(array("reference"));
$sql="select * from reference where ".$where." order by id desc";
$sql="select * from reference where ".$where." order by year desc, reference desc";
} else if ($author && $place) {
$sql="select * from reference where id in (select a1.id from ref_author a1,ref_author a2 where a1.firstname=a2.firstname and a1.lastname=a2.lastname and a2.id=$author and a2.place=$place)";
}
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
@ -102,23 +131,25 @@ class KnowledgeController extends Zend_Controller_Action
$this->view->key=$key;
$this->view->source=$source;
$this->_helper->viewRenderer('search-data');
}
else if (!empty($key) && $source=='westsource') {
$search=new SimpleSearch($key);
$where=$search->sql_expr(array("c.title","a.author"));
$sql="select distinct a.author,c.title,c.publisher,c.ts_created,c.ts_issued,c.item_id,c.url from knl_article c left join knl_author a on c.item_id=a.item_id where c.url <>'' and a.place=1 and $where order by ts_created desc";
function paperAction()
{
$id = (int)$this->_request->getParam('id');
$sql="select * from reference where id=$id";
$sth = $this->db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll();
$paginator = Zend_Paginator::factory($rows);
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(10);
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
$this->view->paginator=$paginator;
$this->view->key=$key;
$this->view->source=$source;
//$this->_helper->viewRenderer('search-data');
}
$this->view->paper = $sth->fetch();
$sql="select * from ref_author where id=$id order by place";
$sth = $this->db->prepare($sql);
$sth->execute();
$this->view->author = $sth->fetchAll();
$sql="select * from ref_tag where id=$id";
$sth = $this->db->prepare($sql);
$sth->execute();
$this->view->tag = $sth->fetchAll();
}
}

View File

@ -1,118 +0,0 @@
<?php
class MetainfoController extends Zend_Controller_Action {
function indexAction() {
$title=$this->_request->getParam('title');
$filePath="http://wiki.westgis.ac.cn/api.php?format=php&action=query&prop=revisions&titles=$title&rvprop=content&redirects";
$wikifp=fopen($filePath,'r');
while (!feof($wikifp)) {
$wikiLines=fgets($wikifp);
$yuchuli=array('";}}}}}}','**','*');
$chulihou=array('','&nbsp;·','·');
$wikiLine=str_replace($yuchuli,$chulihou,$wikiLines);
if(substr($wikiLine,0,2)=='a:') {
if(strpos($wikiLine,'==')!== false){
$wikititle=mb_strstr($wikiLine,'==',false);
$this->wikitransform($wikititle,$content);
}
}else {
$this->wikitransform($wikiLine,$content);
}
}
/*$wikicontent=unserialize(file_get_contents($filePath));
$wiki_keys=array_keys($wikicontent['query']['pages']);
$content= $wikicontent['query']['pages'][$wiki_keys[0]];
$this->view->title=$content['title'];
$c1=explode('\n',$content['revisions'][0]['*']);
foreach ($c1 as $c2) $this->wikitransform($c2,$tcontent);*/
$this->view->content=$content;
$this->view->config = Zend_Registry::get('config');
}
//transform mediawiki text to local text
function wikitransform($text,&$result) {
if(strpos($text,'=====')!== false&&substr($text,0,1)=='=') {
$wikiFont=str_replace('=====','',$text);
$result.="<h5>$wikiFont</h5>";
}elseif(strpos($text,'====')!== false&&substr($text,0,1)=='=') {
$wikiFont=str_replace('====','',$text);
$result.="<h4>$wikiFont</h4>";
}elseif(strpos($text,'===')!== false&&substr($text,0,1)=='=') {
$wikiFont=str_replace('===','',$text);
$result.="<h3>$wikiFont</h3>";
}elseif(strpos($text,'==')!== false&&substr($text,0,1)=='=') {
$wikiFont=str_replace('==','',$text);
$result.="<h2>$wikiFont</h2>";
}elseif(strpos($text,'[[image:')!== false||strpos($text,'[[Image:')!== false) {
$wimag=array('[[image:',']]','[[Image:','<center>','</center>');
$imag=str_replace($wimag,'',$text);
$imag=str_replace(' ','_',$imag);
$fname="http://wiki.westgis.ac.cn/api.php?format=php&action=query&prop=imageinfo&titles=image:".$imag."&iiprop=url";
$image1=unserialize(file_get_contents($fname));
$image1_keys=array_keys($image1['query']['pages']);
$image2=$image1['query']['pages'][$image1_keys[count($image1_keys)-1]];
$imagurl=@$image2['imageinfo'][0]['url'];
$result.="<img src=$imagurl>";
//$result.=print_r($image1);
}elseif(substr($text,0,3)=='·[['||substr($text,0,4)=='· [['||substr($text,0,2)=='[[') {
$wikia=array('·[[','· [[','[[',']]');
$wikiname=str_replace($wikia,'',$text);
$result.='<p><a href="/data/wiki/'.urlencode($wikiname).'">'.$wikiname.'</a></p>';
}elseif(strpos($text,'[[')!== false) {
$a=array('[[',']]');
$b=array('<b>','</b>');
$test=str_replace($a,$b,$text);
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",$test,$out,PREG_PATTERN_ORDER);
$name=$out[1][0];//还有问题,测试遇到再解决!
$alink='<a href="/data/wiki/'.urlencode($name).'">';
$c=array($alink,'</a>');
$result.='<p>'.str_replace($a,$c,$text).'</p>';
}elseif(strpos($text,'[http://')!== false||strpos($text,'[ http://')!== false){
$a=array('[',']');
$b=array('<b>','</b>');
$test=str_replace($a,$b,$text);
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",$test,$out,PREG_PATTERN_ORDER);
$name=$out[1][0];//还有问题,测试遇到再解决!
$href='<a href="'.mb_strstr($name,' ',true).'">';
$value=mb_strstr($name,' ',false).'</a>';
$result.=str_replace($name,$href.$value,$test);
}elseif(strpos($text,'{|')!== false) {
$wikitable=str_replace("{|",'<table ',$text);
$result.=$wikitable.'>';
}elseif(strpos($text,'colspan')) {
if(substr($text,-2)=='| '||substr($text,-2)==' |') {
$wikicolspan=array(' |','| ');
$colspan=array('></td>','<td ');
$result.= str_replace($wikicolspan,$colspan,$text);
}else {
$wikicolspan=array(' | ','| ');
$colspan=array('>','<td ');
$result.= str_replace($wikicolspan,$colspan,$text).'</td>';
}
}elseif(strpos($text,'|+ ')!== false) {
$wikitr=str_replace('|+ ','<caption>',$text);
$result.= $wikitr.'</caption><tbody>';
}elseif(strpos($text,'!!')!== false||substr($text,0,1)=='!') {
$thh=str_replace("!!",'</th><th>',$text);
$wikith=str_replace('!','<th>',$thh);
$result.= $wikith.'</th>';
}elseif(strpos($text,'||')!== false||substr($text,0,1)=='|'&&substr($text,0,2)!=='||'&&substr($text,0,2)!=='|+'&&substr($text,0,2)!=='|-'&&substr($text,0,2)!=='|}') {
$tdd=str_replace('||','</td><td>',$text);
$wikitd=str_replace('|','<td>',$tdd);
$result.= $wikitd.'</td>';
}elseif(substr($text,0,2)=='|-') {
$wikitrr=str_replace('|-','</tr><tr>',$text);
$result.=$wikitrr;
}elseif(substr($text,0,2)=='|}') {
$wikitables=str_replace("|}",'</tr></tbody></table>',$text);
$result.= $wikitables;
}elseif(substr($text,0,1)=='#') {
$result.= str_replace('#','&nbsp;',$text);
}elseif(strpos($text,"'''")!==false) {
$result.= str_replace("'''",'',$text);
}elseif(substr($text,0,1)=="*") {
$result.= str_replace('*','',$text);
}else {
$result.= "<p>$text</p>";
}
}
}

View File

@ -1,27 +0,0 @@
<?php
class NetkitesController extends Zend_Controller_Action
{
function indexAction()
{
}
function postDispatch()
{
$this->view->config = Zend_Registry::get('config');
}
function faqAction()
{
}
function useAction()
{
}
function resourceAction()
{
}
function applyAction()
{
}
function driverAction()
{
}
}

View File

@ -0,0 +1,165 @@
<?php
use \Helpers\View as view;
use \Open\App;
use \Open\Open;
use \Open\OAuth2\Server;
class OpenController extends \Zend_Controller_Action
{
private $config = NULL;
private $db = NULL;
private $open = NULL;
function preDispatch()
{
$this->view->config = $this->config = \Zend_Registry::get('config');
$this->db = \Zend_Registry::get('db');
$this->view->theme = new Theme();
$this->_helper->layout->setLayout('layout-open');
}
function indexAction()
{
$this->view->pageID = "open-index";
}
//我的应用
function myappAction()
{
$this->view->pageID = "open-myapp";
$app = new App();
$user_state = $app->checkinfo();
if( $user_state !== true)
{
view::post($this,$user_state,"/account/edit");
}
$ac = $this->_getParam('ac');
$id = $this->_getParam('id');
$submit = $this->_getParam('submit');
if(empty($ac))
{
$this->view->myapp = $app->getUserApp();
return true;
}
if($ac == "create")
{
$this->_helper->viewRenderer('myapp-create');
$this->view->appStatus = $app->appStatus();
if(!empty($id))
{
$this->view->info = $app->getAppInfo($id);
}
if(!empty($submit))
{
if(empty($id))
{
$status = $app->appCreate();
}else{
$this->view->info = $app->getAppCreateParam();
$status = $app->appCreate($id);
}
if($status !== true && !is_numeric($status))
{
$this->view->error = view::Error($status);
}else{
if(!empty($id))
view::Post($this,"修改成功!",'/open/myapp/ac/view/id/'.$id);
else
view::Post($this,"添加成功!","/open/myapp/ac/view/id/".$status);
}
}
return true;
}
if($ac == "delete")
{
$status = $app->delete($id);
if($status !== true)
{
view::Post($this,$status,"/open/myapp");
}else{
view::Post($this,'删除成功',"/open/myapp");
}
return false;
}
if($ac == "view")
{
$this->_helper->viewRenderer('myapp-view');
$this->view->data = $app->getAppInfo($id);
$this->view->appStatus = $app->appStatus();
return true;
}
}
function authenticateAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$data = array(
'client_id' => $this->_getParam('client_id'),
'redirect_uri' => $this->_getParam('redirect_uri'),
'client_secret' => $this->_getParam('client_secret'),
'host' => $_SERVER['HTTP_HOST'],
'ip' => $_SERVER['REMOTE_ADDR']
);
$server = new Server();
$status = $server->clientCredentials($data['client_id'],$data['client_secret']);
if($status !== true)
{
echo $status;
}else{
}
}
function authorizeAction()
{
$submit = $this->_getParam('submit');
if(empty($submit))
{
return true;
}
$sv = new open\server();
$server = $sv->bootstrap();
$request = OAuth2\Request::createFromGlobals();
$response = new OAuth2\Response();
// validate the authorize request
if (!$server->validateAuthorizeRequest($request, $response)) {
$response->send();
die;
}
// print the authorization code if the user has authorized your client
$is_authorized = ($_POST['authorized'] === 'yes');
$server->handleAuthorizeRequest($request, $response, $is_authorized);
if ($is_authorized) {
// this is only here so that you get to see your code in the cURL request. Otherwise, we'd redirect back to the client
$code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=')+5, 40);
exit("SUCCESS! Authorization Code: $code");
}
$response->send();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -123,6 +123,12 @@ class ReviewController extends Zend_Controller_Action
* mdstatus status 字段值为 2,3,4 的元数据为正在进行评审的元数据
*/
function inreviewAction(){
include_once("helper/view.php");
$ac = $this->_getParam('ac');
if(empty($ac))
{
$this->view->pageID = "review-inreview";
$page=@(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
@ -132,6 +138,57 @@ class ReviewController extends Zend_Controller_Action
$sql="select m.uuid,m.title,m.id,m.description,s.status,s.ts_accepted,g.id as gid,t.filename from mdstatus s right join normalmetadata m on s.uuid=m.uuid left join geonetworkmetadata g on g.uuid=m.uuid left join thumbnail t on t.id=m.id where s.status in (2,3,4) order by s.ts_created desc,m.title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page = new Pagination($sum,$page,$this->limit);
}
if($ac == "require")
{
$this->_helper->viewRenderer('inreview-require');
$this->view->pageID = "review-inreview-require";
$uid = view::User('id');
if(empty($uid))
{
view::Post($this,"请先登录","/account/login/?href=".urlencode("/review/inreview/ac/require"));
}
$sql = "select m.uuid,m.title,m.id,m.description,s.status,s.ts_accepted,g.id as gid,t.filename,r.ts_created,r.id as rid,e.id as eid
from mdstatus s
right join normalmetadata m on s.uuid=m.uuid
left join geonetworkmetadata g on g.uuid=m.uuid
left join thumbnail t on t.id=m.id
left join mdreview r ON m.uuid=r.uuid
left join mdexpertreview e ON e.uuid=m.uuid
WHERE s.status in (2,3,4) AND r.id IS NULL
GROUP BY m.uuid,m.title,m.id,m.description,s.status,s.ts_accepted,g.id,t.filename,s.ts_created,r.ts_created,r.id,e.id
order by e.id DESC,s.ts_created desc,m.title";
$rs = $this->db->query($sql);
view::addPaginator($rs->fetchAll(),$this,NULL,$this->limit);
}
if($ac == "reviewed")
{
$this->_helper->viewRenderer('inreview-reviewed');
$this->view->pageID = "review-inreview-reviewed";
$uid = view::User('id');
if(empty($uid))
{
view::Post($this,"请先登录","/account/login/?href=".urlencode("/review/inreview/ac/reviewed"));
}
$sql = "select m.uuid,m.title,m.id,m.description,s.status,s.ts_accepted,g.id as gid,t.filename,r.ts_created
from mdstatus s
right join normalmetadata m on s.uuid=m.uuid
left join geonetworkmetadata g on g.uuid=m.uuid
left join thumbnail t on t.id=m.id
left join mdreview r ON m.uuid=r.uuid
WHERE s.status in (2,3,4) AND r.userid=$uid
GROUP BY m.uuid,m.title,m.id,m.description,s.status,s.ts_accepted,g.id,t.filename,s.ts_created,r.ts_created
order by s.ts_created desc,m.title";
$rs = $this->db->query($sql);
view::addPaginator($rs->fetchAll(),$this,NULL,$this->limit);
}
}//在审阶段的元数据

View File

@ -1,4 +1,10 @@
<?php
use Helpers\View;
use Helpers\dbh;
use Files\Files;
use Files\Output;
use Files\Listener\FileListener;
class ServiceController extends Zend_Controller_Action
{
private $limit=10;
@ -12,6 +18,7 @@ class ServiceController extends Zend_Controller_Action
{
$this->db=Zend_Registry::get('db');
$this->view->config = $this->config = Zend_Registry::get('config');
$this->submd = $this->view->config->sub->metadata;
//$this->messenger=$this->_helper->getHelper('FlashMessenger');
//$this->view->messages = $this->messenger->getMessages();
}
@ -183,16 +190,16 @@ class ServiceController extends Zend_Controller_Action
function feedAction()
{
$feedArray = array(
'title' => '中国西部环境与生态科学数据中心',
'link' => 'http://'.$_SERVER['SERVER_NAME'].'/data/feed',
'description' => '共享西部计划产生的数据',
'title' => '三江源生态监测综合服务平台',
'link' => 'http://'.$_SERVER['SERVER_NAME'].'/service/feed',
'description' => '管理、共享三江源生态监测数据',
'language' => 'zh-CN',
'charset' => 'utf-8',
'published' => time(),
//'generator' => 'Zend Framework Zend_Feed',
'entries' => array()
);
$sql="select * from normalmetadata order by ts_created desc";
$sql="select * from $this->submd order by ts_created desc";
$rs=$this->db->fetchAll($sql);
$feedArray['published']=strtotime($rs[0]['ts_created']);
foreach($rs as $r)
@ -307,12 +314,9 @@ class ServiceController extends Zend_Controller_Action
{
$citation=$row['mcitation'];
} else if ($row['citation'])
{
if (empty($row['datadoi']))
{
$citation=$row['citation'];
}
elseif (!strpos($row['citation'],$row['datadoi']))
if (!empty($row['datadoi']) && !strpos($row['citation'],$row['datadoi']))
{
$citation='<li>文章引用:'.$row['citation'].'</li>';
$citation.="<li>数据的引用:";
@ -331,7 +335,7 @@ class ServiceController extends Zend_Controller_Action
{
$fund.='<li>'.$refer['fund_type'].''.str_replace(array("\r\n", "\n", "\r"),'',$refer['title']).'(编号:'.$refer['fund_id'].")</li>";
}
if (empty($fund)) $fund=$row['suppinfo'];
if (empty($fund) && !empty($row['suppinfo'])) $fund=$row['suppinfo'];
}
@ -353,7 +357,7 @@ class ServiceController extends Zend_Controller_Action
$xslt->setParameter('','projection',$projection);
$xslt->setParameter('','reference',$reference);
$xslt->setParameter('','citation',$citation);
$xslt->setParameter('','fund',$fund);
if ($fund) $xslt->setParameter('','fund',$fund);
$XSL = new DOMDocument();
$XSL->load( '../data/doc.xsl', LIBXML_NOCDATA);
$xslt->importStylesheet($XSL);
@ -537,7 +541,7 @@ class ServiceController extends Zend_Controller_Action
$pdf->metadata=$row;
$pdf->Draw();
$pdf->setTitle($row['title'],true);
$pdf->setAuthor('寒区旱区科学数据中心',true);
$pdf->setAuthor('三江源生态监测综合服务平台',true);
$this->getResponse()->setHeader('Content-Type', 'application/pdf');
//->setHeader('Content-Disposition','inline; filename="'.$row['title'].'.pdf"');
$pdf->Output($row['title'].'.pdf','I');
@ -715,12 +719,9 @@ class ServiceController extends Zend_Controller_Action
{
$cit=$row['mcitation'];
} else if ($row['citation'])
{
if (empty($row['datadoi']))
{
$cit=$row['citation'];
}
elseif (!strpos($row['citation'],$row['datadoi']))
if (!empty($row['datadoi']) && !strpos($row['citation'],$row['datadoi']))
{
$cit='文章引用:'.$row['citation'];
$cit.="\r\n数据的引用:";
@ -729,8 +730,8 @@ class ServiceController extends Zend_Controller_Action
}
}
@$odf->setVars('citation',$cit,true,'utf-8');
@$odf->setVars('reference',$row['reference'],true,'utf-8');
@$odf->setVars('doi',$row['doi'],true,'utf-8');
//@$odf->setVars('reference',$row['reference'],true,'utf-8');
//@$odf->setVars('doi',$row['doi'],true,'utf-8');
@$odf->setVars('north',$row['north'],true,'utf-8');
@$odf->setVars('south',$row['south'],true,'utf-8');
@ -738,18 +739,18 @@ class ServiceController extends Zend_Controller_Action
@$odf->setVars('east',$row['east'],true,'utf-8');
if (!$ac=='simple')
{
@$odf->setImage('bigthumb', 'http://westdc.westgis.ac.cn/service/bigthumb/uuid/'.$row['uuid']);
@$odf->setImage('thumb', 'http://westdc.westgis.ac.cn/service/thumb/uuid/'.$row['uuid']);
@$odf->setImage('bigthumb', 'http://'.$_SERVER['SERVER_NAME'].'/service/bigthumb/uuid/'.$row['uuid']);
@$odf->setImage('thumb', 'http://'.$_SERVER['SERVER_NAME'].'/service/thumb/uuid/'.$row['uuid']);
@$odf->setVars('projection',$row['projection'],true,'utf-8');
@$odf->setVars('resolution',$row['resolution'],true,'utf-8');
@$odf->setVars('rfdenom',$row['rfdenom'],true,'utf-8');
@$odf->setVars('stratum_keyword',$row['keyword']['stratum'],true,'utf-8');
@$odf->setVars('uselimits',$row['uselimits'],true,'utf-8');
@$odf->setVars('resources',$row['resources'],true,'utf-8');
@$odf->setVars('suppinfo',$row['suppinfo'],true,'utf-8');
//@$odf->setVars('suppinfo',$row['suppinfo'],true,'utf-8');
@$odf->setVars('contacts',$row['contacts'],true,'utf-8');
} else {
@$odf->setImage('qrcode', 'http://westdc.westgis.ac.cn/service/qrcode/uuid/'.$row['uuid']);
@$odf->setImage('qrcode', 'http://'.$_SERVER['SERVER_NAME'].'/service/qrcode/uuid/'.$row['uuid']);
}
$odf->exportAsAttachedFile($row['title'].'.odt');
@ -1399,7 +1400,7 @@ class ServiceController extends Zend_Controller_Action
$pageSize = 10;//每页容量
$sql = "select md.title,md.uuid from mdref mr
$sql = "select distinct md.title,md.uuid from mdref mr
right join normalmetadata md on md.uuid=mr.uuid
where mr.refid=$id";
$pagnation="";
@ -1448,6 +1449,24 @@ class ServiceController extends Zend_Controller_Action
echo $pagnation;
}//文档页面相关数据
function refdatacountAction()
{
if(view::isXmlHttpRequest($this))
{
$id = (int)$this->_getParam('id');
if($id < 1){
echo 0;
return;
}
$sql = "select count(distinct md.id) as total from mdref mr
right join normalmetadata md on md.uuid=mr.uuid
where mr.refid=$id";
$rs = $this->db->query($sql);
$row = $rs->fetch();
echo $row['total'];
}
}
function tagdatalistAction(){
$this->_helper->layout->disableLayout();
@ -1550,6 +1569,56 @@ class ServiceController extends Zend_Controller_Action
}
//上传申请表
function uploadapplicationformAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$id = $this->_getParam('offlineappid');
if(empty($id))
{
$this->jsonexit(array('error'=>"参数错误"));
return true;
}
$uid = view::User('id');
if(!is_numeric($uid))
{
$this->jsonexit(array('error'=>"用户信息读取失败,请重试"));
return true;
}
$files = new Files();
$FileListener = new FileListener();
@$files->events()->attachAggregate($FileListener);
$statu = $files->uploadApplicationForm($_FILES['Filedata'],$id);
if(isset($statu['error']))
{
$this->jsonexit($statu);
return true;
}else{
$sql = "UPDATE offlineapp SET applicationform='{$statu['file']}' WHERE id=$id AND userid=$uid";
if($this->db->exec($sql))
{
$this->jsonexit(array("success"=>1));
return true;
}else{
$this->jsonexit(array('error'=>"申请表上传失败".$sql));
return true;
}
}
}
//下载申请表
public function downloadapplicationformAction()
{
}
/*
输出验证码
*/
@ -1593,6 +1662,8 @@ class ServiceController extends Zend_Controller_Action
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$uuid=$this->_request->getParam('uuid');
//文献id
$id=(int)$this->_request->getParam('id');
$lang=$this->_request->getParam('lang');
$ris='';
if ($lang=='cn' && !empty($uuid))
@ -1634,6 +1705,10 @@ class ServiceController extends Zend_Controller_Action
$ris.='M3 - doi:'.$row['doi']."\r\n";
$ris.='DO - doi:'.$row['doi']."\r\n";
$ris.='ER -'."\r\n";
} else if ($id) {
$sql="select ris from reference where id=$id";
$row=$this->db->fetchRow($sql);
$ris=$row['ris'];
}
if (!empty($ris))
{
@ -1719,7 +1794,7 @@ class ServiceController extends Zend_Controller_Action
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$uuid = $this->getRequest()->getParam('uuid');
$code_params = array('text' => 'http://westdc.westgis.ac.cn/data/'.$uuid,
$code_params = array('text' => 'http://'.$_SERVER['SERVER_NAME'].'/data/'.$uuid,
'backgroundColor' => '#FFFFFF',
'foreColor' => '#000000',
'padding' => 4, //array(10,5,10,5),
@ -1728,4 +1803,101 @@ class ServiceController extends Zend_Controller_Action
Zend_Matrixcode::render('qrcode', $code_params, 'image', $renderer_params);
}
public function jsonexit($data){
$this->getResponse()->setHeader('Content-Type', 'application/json')->appendBody(json_encode($data,JSON_NUMERIC_CHECK));
return true;
}
public function dciAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
//must have doi to output dci
$uuid=$this->_request->getParam('uuid');
$xml='<?xml version="1.0" encoding="utf-8"?>
<DigitalContentData>
<DataRecord>
<Header>
<DateProvided>'.date("Y-m-d").'</DateProvided>
<RepositoryName>Cold and Arid Regions Science Data Center at Lanzhou</RepositoryName>
<Owner>CARD-WDS</Owner>
<RecordIdentifier>'.$uuid.'</RecordIdentifier>
</Header>
<BibliographicData>
<AuthorList>';
$sql="select d.title_en,d.doi,author_en,d.ts_published,m.description,m.timebegin,m.timeend
from datadoi d left join en.normalmetadata m on d.uuid=m.uuid where d.uuid=".$this->db->quote($uuid);
$row=$this->db->fetchRow($sql);
$authors=explode(',',str_replace('"','',substr($row['author_en'],1,-1)));
$i=0;
foreach($authors as $a)
{
$i=$i+1;
$xml.='<Author seq="'.$i.'" AuthorRole="Author">';
$xml.='<AuthorName>'.$a.'</AuthorName></Author>';
}
$xml.='
</AuthorList>
<TitleList>
<ItemTitle TitleType="English title"><![CDATA['.$row['title_en'].']]></ItemTitle>
</TitleList>
<Source>
<SourceURL>http://card.westgis.ac.cn/data/'.$uuid.'</SourceURL>
<SourceRepository AbbreviatedRepository="CARD">CARD</SourceRepository>
<PublicationYear>'.date('Y',strtotime($row['ts_published'])).'</PublicationYear>
</Source>
<LanguageList>
<Language>English</Language>
</LanguageList>
</BibliographicData>';
$xml.='<Abstract><![CDATA['.$row['description'].']]></Abstract>';
$xml.='<DescriptorsData>';
$sql="select k.keyword from en.keyword k left join en.normalmetadata m on k.id=m.id where k.keytype='theme' and m.uuid=".$this->db->quote($uuid);
$rowk=$this->db->fetchAll($sql);
$xml.='<KeywordsList>';
foreach ($rowk as $k)
{
$xml.='<Keyword><![CDATA['.$k['keyword'].']]></Keyword>';
}
$xml.='
</KeywordsList>';
if ($row['timebegin'])
{
$xml.='<TimeperiodList>
<TimePeriod TimeSpan="Start">'.date('Y-m-d',strtotime($row['timebegin'])).'</TimePeriod>';
if ($row['timeend'] && (date('Y-m-d',strtotime($row['timebegin']))!=date('Y-m-d',strtotime($row['timeend'])))) $xml.='
<TimePeriod TimeSpan="End">'.$row['timeend'].'</TimePeriod>';
$xml.='</TimeperiodList>';
}
$xml.='</DescriptorsData>';
$sql="select f.* from fund f left join mdfund mf on f.id=mf.fid where mf.uuid=".$this->db->quote($uuid).' order by mf.place asc';
$rowf=$this->db->fetchAll($sql);
$xml.='<FundingInfo>';
foreach ($rowf as $f)
{
$xml.='
<FundingInfoList>
<FundingStatement><GrantNumber>'.$f['fund_id'].'</GrantNumber><FundingOrganization>'.$f['fund_type_en'].'</FundingOrganization></FundingStatement>
</FundingInfoList>';
}
$xml.='</FundingInfo>';
$sql="select r.* from reference r left join mdref mr on r.id=mr.refid where mr.reftype=1 and r.language<>'zh' and mr.uuid=".$this->db->quote($uuid).' order by mr.place asc';
$rowc=$this->db->fetchAll($sql);
$xml.='<CitationList>';
foreach ($rowc as $c)
{
$xml.='<Citation CitationType="Citing" CitationSeq="1">
<CitationString>'.$c['reference'].'</CitationString>';
if ($c['doi'])
$xml.='<CitationDOI>'.$c['doi'].'</CitationDOI>';
$xml.='</Citation>';
}
$xml.='</CitationList>
</DataRecord>
</DigitalContentData>';
$this->getResponse()->setHeader('Content-Type', 'text/xml')
->setBody($xml);
}
}

View File

@ -0,0 +1,112 @@
<?php
use Westdc\Visual;
use Westdc\Metadata;
use Helpers\View as view;
class VisualController extends Zend_Controller_Action
{
function preDispatch()
{
$this->view->config = Zend_Registry::get('config');
$this->db=Zend_Registry::get('db');
$this->view->nav = array(
array('link'=>'/','title'=>'<i class="icon-home"></i>'),
array('link'=>'/data','title'=>$this->view->config->title->data),
);
if(view::User() === false)
{
view::Post($this,"请先登陆",'/account/login?href='.urlencode($_SERVER['REQUEST_URI']));
}
$this->uid = view::User('id');
}
function indexAction()
{
$record_type = $this->_getParam("dataset");
if(empty($record_type))
return true;
$sc = Factory::Bootstrap($record_type);
}
//********************************************************
/*
* dataAction() ajax获取数据
*
* param string $ac //请求的数据类型
* param string $dt //请求的数据来源(气象,水文)
*
* return view
*/
function dataAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
$uuid = $this->_getParam("uuid");
//$record_type = $this->_getParam("dataset");
$record_subset = $this->_getParam("subdataset");
$record = new Visual\Record($uuid,$record_subset);
//$record = Visual\Factory::Bootstrap($record_type);
if(!empty($record_subset))
{
$record->subset = $record_subset;
}
$data = $record();
$this->jsonexit($data);
return true;
}//dataAction() Ajax获取数据
//viewAction
public function viewAction()
{
$uuid = $this->_getParam('uuid');
if(empty($uuid) || \Helpers\Uuid::test($uuid) == false)
{
view::Post($this,"参数错误",-1);
return;
}
$visual = new Visual\Visual;
$this->view->data = $visual->getVisualVars($uuid);
if ($this->view->data['chartjs']=='highcharts') $this->_helper->viewRenderer('view-highcharts');
if(empty($this->view->data))
{
view::Post($this,"此数据不支持可视化",-1);
return;
}
$metadata = new Metadata\Metadata;
$this->view->info = $metadata->view($uuid);
}
/*
* jsonexit() 退出并返回json数据
*
* param array $data 要返回的JSON数据可以是任意数组
*
* return application/JSON
*/
public function jsonexit($data){
$this->getResponse()->setHeader('Content-Type', 'application/json')->appendBody(json_encode($data,JSON_NUMERIC_CHECK));
return true;
}//jsonexit() 退出并返回json数据
}

View File

@ -1,346 +0,0 @@
<?php
class WaterController extends DataController
{
private $limit=20;
function preDispatch()
{
parent::preDispatch();
$this->debug = 0;
$acName = $this->_request->getActionName();
if(in_array($acName,array("cold","bg","ar","bdk","eb")))
{
$this->view->pageIn = "collapse1";
}
if(in_array($acName,array("forest","dyk","plg")))
{
$this->view->pageIn = "collapse2";
}
if(in_array($acName,array("arid","hzz","yk",'zy','zynoc','lzg','lzs')))
{
$this->view->pageIn = "collapse3";
}
if(in_array($acName,array("meteo","autometeo","mobilemeteo","ec",'las','normalmeteo','regionalmeteo','doppler','hydro','airsounding')))
{
$this->view->pageIn = "collapse4";
}
if(in_array($acName,array("radiometer","airebone","lidar","widas",'asd')))
{
$this->view->pageIn = "collapse5";
}
if(in_array($acName,array("satellite")))
{
$this->view->pageIn = "collapse6";
}
if(in_array($acName,array("surveystd","document")))
{
$this->view->pageIn = "collapse7";
}
$this->view->pageID = "water-".$acName;
}
function indexAction()
{
}
function documentAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from reference where id in (select refid from mdref where uuid in (select m.uuid from normalmetadata m left join datasource d on m.uuid=d.uuid left join source s on s.id=d.sourceid where s.code='water'))");
$sum=$row[0]['count'];
$sql="select * from reference where id in (select refid from mdref where uuid in (select m.uuid from normalmetadata m left join datasource d on m.uuid=d.uuid left join source s on s.id=d.sourceid where s.code='water')) order by reference limit ? offset ?";
$this->view->refs=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit,"文献");
$this->view->offset=$offset+1;
}
function surveystdAction()
{
}
function coldAction()
{
$this->getmd('上游寒区水文试验区');
}
function bgAction()
{
$this->getmd('冰沟流域加密观测区');
}
function arAction()
{
$this->getmd('阿柔加密观测区');
}
function bdkAction()
{
$this->getmd('扁都口加密观测区');
}
function ebAction()
{
$this->getmd('峨堡加密观测区');
}
function forestAction()
{
$this->getmd('森林水文试验区');
}
function dykAction()
{
$this->getmd('大野口流域加密观测区');
}
function plgAction()
{
$this->getmd('排露沟流域加密观测区');
}
function aridAction()
{
$this->getmd('中游干旱区水文试验区');
}
function hzzAction()
{
$this->getmd('花寨子荒漠加密观测区');
}
function ykAction()
{
$this->getmd('盈科绿洲加密观测区');
}
function zyAction()
{
$this->getmd('张掖市加密观测区');
}
function zynocAction()
{
$this->getmd('观象台加密观测区');
}
function lzgAction()
{
$this->getmd('临泽草地加密观测区');
}
function lzsAction()
{
$this->getmd('临泽站加密观测区');
}
function meteoAction()
{
$this->getmd('气象水文','theme');
}
function autometeoAction()
{
$this->getmd('气象观测','theme');
}
function mobilemeteoAction()
{
$this->getmd('移动气象观测','theme');
}
function ecAction()
{
$this->getmd('涡动相关','theme');
}
function lasAction()
{
$this->getmd('大孔径闪烁仪','theme');
}
function normalmeteoAction()
{
$this->getmd('常规气象观测','theme');
}
function regionalmeteoAction()
{
$this->getmd('区域气象观测','theme');
}
function dopplerAction()
{
$this->getmd('降雨','theme');
}
function hydroAction()
{
$this->getmd('水文','theme');
}
function airsoundingAction()
{
$this->getmd('大气廓线','theme');
}
function aireboneAction()
{
$this->getmd('航空遥感','theme');
}
function radiometerAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword ilike '%波段机载微波辐射计') and id in (select id from keyword where keytype='theme' and keyword='航空遥感')");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword ilike '%波段机载微波辐射计') and id in (select id from keyword where keytype='theme' and keyword='航空遥感') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function lidarAction()
{
//$this->getmd('激光雷达','theme');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword='激光雷达') and id in (select id from keyword where keytype='theme' and keyword='航空遥感')");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword='激光雷达') and id in (select id from keyword where keytype='theme' and keyword='航空遥感') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function widasAction()
{
//$this->getmd('WiDAS','theme');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword='红外广角双模式成像仪WiDAS') and id in (select id from keyword where keytype='theme' and keyword='航空遥感')");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword='红外广角双模式成像仪WiDAS') and id in (select id from keyword where keytype='theme' and keyword='航空遥感') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function asdAction()
{
//$this->getmd('成像光谱仪OMIS-II','theme');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword='成像光谱仪OMIS-II') and id in (select id from keyword where keytype='theme' and keyword='航空遥感')");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='theme' and keyword='成像光谱仪OMIS-II') and id in (select id from keyword where keytype='theme' and keyword='航空遥感') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function satelliteAction()
{
$this->getmd('卫星遥感','theme');
}
function tagAction()
{
$key = $this->_request->getParam('key');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
if (!empty($key)) {
$this->view->codename=$key;
$sql=$this->db->quoteInto('select count(id) from keyword where keyword=?',$key);
$state=$this->db->query($sql);
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keyword='".$key."') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
} else {
$state=$this->db->query("select keyword.keyword,count(*) from keyword left join normalmetadata m on keyword.id=m.id where keyword.keytype='place' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') group by keyword.keyword order by count desc");
$k1=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='theme' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') group by k.keyword order by k.keyword");
$k2=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='discipline' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') group by k.keyword order by k.keyword");
$k3=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='stratum' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') group by k.keyword order by k.keyword");
$k4=$state->fetchAll();
$state=$this->db->query("select keyword.keyword,count(*) from keyword left join normalmetadata m on keyword.id=m.id where keyword.keytype='temporal' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') group by keyword.keyword order by keyword.keyword");
$k5=$state->fetchAll();
$this->view->keywords=array('place'=>$k1,'theme'=>$k2,'discipline'=>$k3,'stratum'=>$k4,'temporal'=>$k5);
}
}
function searchAction()
{
$this->view->addHelperPath('helper','Zend_View_Helper_');
$form=new SearchForm();
$this->view->form=$form;
//$form->submit->setLabel('快速搜索');
$key=$this->_request->getParam('q');
if (!empty($key)) {
$search=new Search($key);
$where=$search->sql_expr(array("title","description"));
$page=@(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and ".$where);
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and ".$where." order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->key=$key;
$this->view->offset=$offset+1;
}
}
function timemapAction()
{
$sql="select id,uuid,west,south,north,east,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and timebegin is not null and timebegin::date>date('2007-01-01')";
$this->view->rows=$this->db->fetchAll($sql);
}
function timelineAction()
{
$fn="watertime.xml";
$rows=$this->db->fetchAll("select ts_created from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') order by ts_created desc limit 1");
$last_update=strtotime($rows[0]['ts_created']);
if (!file_exists($fn) || (filemtime($fn)<$last_update))
{
$dateformat="M j Y";
$rows=$this->db->fetchAll("select id,uuid,description,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and timebegin is not null order by timebegin,title");
$timexml='<data>';
foreach($rows as $row) {
$timexml.='<event start="'.date($dateformat,strtotime($row['timebegin'])).' GMT+0800" ';
if ($row['timeend']!='' && $row['timeend']!=$row['timebegin']) $timexml.=' end="'.date($dateformat,strtotime($row['timeend'])).'" isDuration="true"';
$timexml.= ' title="'.htmlspecialchars(mb_substr($row['title'],11,mb_strlen($row['title'],'UTF-8')-10,'UTF-8')).'" image="/images/westdc_40w.gif" link="/water/'.$row['uuid'].'">';
$desc_length=mb_strlen($row['description'],"UTF-8");
$desc=mb_substr($row['description'],0,($desc_length>300)?300:$desc_length,"UTF-8");
if ($desc_length>300) $desc.=" ...";
$timexml.=htmlspecialchars($desc);
$timexml.="</event>\n";
}
$timexml.='</data>';
$fp=fopen($fn,'w');
fwrite($fp,$timexml);
fclose($fp);
}
}
function categoryAction()
{
$code = (int)$this->_request->getParam('code');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from category where code=".$code.")");
$sum=$row[0]['count'];
$this->view->category=$this->db->fetchAll('select c.code,name,name_zh,count(*) from category c,categorycode cc where c.code=cc.code group by c.code,cc.name,cc.name_zh');
if ($code>0 && $code<20) {
$sql="select uuid,title,description,id from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select distinct id from category where code=".$code.") order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
$row=$this->db->fetchRow("select name,name_zh from categorycode where code=?",$code);
$this->view->codename=(empty($row['name_zh'])?$row['name']:$row['name_zh']);
} else {
//提供全部分类列表
}
}
private function getmd($keyword,$type='place')
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='".$type."' and keyword='".$keyword."')");
$row=$state->fetchAll();
$sum=$row[0]['count'];
//@todo: add order with title
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='water') and id in (select id from keyword where keytype='".$type."' and keyword='".$keyword."') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
}

View File

@ -1,318 +0,0 @@
<?php
class YrnmrController extends DataController
{
private $limit=20;
function preDispatch()
{
parent::preDispatch();
//$this->_helper->layout->setLayout('yrnmr');
$acName = $this->_request->getActionName();
$this->view->pageID = "yrnmr-".$acName;
}
function indexAction()
{
$sql="select m.uuid,m.title,m.id,m.description from normalmetadata m left join thumbnail t on m.id=t.id where m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and length(t.data)>2 order by random() limit 3";
$this->view->meatdata=$this->db->fetchAll($sql);
}
/*
* 数据浏览
*/
function browseAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') ");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$select=$this->db->select();
$select->from('normalmetadata','*')->where(" uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') ")->order('title desc')->limitPage($page,$this->limit);
$this->view->metadata = $this->db->fetchAll($select);
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function thumbAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') ");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$select=$this->db->select();
$select->from('normalmetadata as m','m.*')
->where(" uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') ")
->order('m.title desc')->limitPage($page,$this->limit);
$this->view->metadata = $this->db->fetchAll($select);
$this->view->page=new Pagination($sum,$page,$this->limit);
}
function documentAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from reference where id in (select refid from mdref where uuid in (select uuid from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') ))");
$sum=$row[0]['count'];
$sql="select * from reference where id in (select refid from mdref where uuid in (select uuid from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') )) order by reference limit ? offset ?";
$this->view->refs=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit,"文献");
$this->view->offset=$offset+1;
}
function baseAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='冰川' or keyword='沙漠' or keyword='地貌' or keyword='植被' or keyword='草场' or keyword='沙漠化' or keyword='基础地理' or keyword='遥感影像' or keyword='水文地质' or keyword='社会经济' or keyword='人口' or keyword='SWAT' or keyword='NPP' or keyword='WRF' or keyword='辐射' or keyword='NEP'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='冰川' or keyword='沙漠' or keyword='地貌' or keyword='植被' or keyword='草场' or keyword='沙漠化' or keyword='基础地理' or keyword='遥感影像' or keyword='水文地质' or keyword='社会经济' or keyword='人口' or keyword='SWAT' or keyword='NPP' or keyword='WRF' or keyword='辐射' or keyword='NEP')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function geobaseAction()
{
$this->getmd('基础地理');
}
function coreAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='DEM' or keyword='土地利用' or keyword='土壤' or keyword='气象' or keyword='水文观测' or keyword='灌溉' or keyword='试验'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='DEM' or keyword='土地利用' or keyword='土壤' or keyword='气象' or keyword='水文观测' or keyword='灌溉' or keyword='试验')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function demAction()
{
$this->getmd('DEM');
}
function rsAction()
{
$this->getmd('遥感影像');
}
function waterAction()
{
$this->getmd('水文地质');
}
function modelAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='WRF' or keyword='NPP' or keyword='SWAT' or keyword='NEP' or keyword='辐射'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='WRF' or keyword='NPP' or keyword='SWAT' or keyword='NEP' or keyword='辐射')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function economicAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='人口' or keyword='社会经济'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='人口' or keyword='社会经济')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function landsurfaceAction()
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='冰川' or keyword='沙漠' or keyword='地貌' or keyword='植被' or keyword='草场' or keyword='沙漠化'))");
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='theme' and (keyword='冰川' or keyword='沙漠' or keyword='地貌' or keyword='植被' or keyword='草场' or keyword='沙漠化')) order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
function landuseAction()
{
$this->getmd('土地利用','theme');
}
function soilAction()
{
$this->getmd('土壤','theme');
}
function meteoAction()
{
$this->getmd('气象','theme');
}
function hydroAction()
{
$this->getmd('水文观测','theme');
}
function irragationAction()
{
$this->getmd('灌溉','theme');
}
function expAction()
{
$this->getmd('实验','theme');
}
function obsAction()
{
$this->getmd('观测','theme');
}
function listAction()
{
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') order by timebegin,title";
$this->view->metadata=$this->db->fetchAll($sql);
}
function tagAction()
{
$key = $this->_request->getParam('key');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
if (!empty($key)) {
$this->view->codename=$key;
$sql=$this->db->quoteInto('select count(id) from keyword where keyword=?',$key);
$state=$this->db->query($sql);
$row=$state->fetchAll();
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keyword='".$key."') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
} else {
$state=$this->db->query("select keyword.keyword,count(*) from keyword left join normalmetadata m on keyword.id=m.id where keyword.keytype='place' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') group by keyword.keyword order by count desc");
$k1=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='theme' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') group by k.keyword order by k.keyword");
$k2=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='discipline' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') group by k.keyword order by k.keyword");
$k3=$state->fetchAll();
$state=$this->db->query("select k.keyword,count(k.keyword) from keyword k left join normalmetadata m on k.id=m.id where k.keytype='stratum' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') group by k.keyword order by k.keyword");
$k4=$state->fetchAll();
$state=$this->db->query("select keyword.keyword,count(*) from keyword left join normalmetadata m on keyword.id=m.id where keyword.keytype='temporal' and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') group by keyword.keyword order by keyword.keyword");
$k5=$state->fetchAll();
$this->view->keywords=array('place'=>$k1,'theme'=>$k2,'discipline'=>$k3,'stratum'=>$k4,'temporal'=>$k5);
}
}
function searchAction()
{
$this->view->addHelperPath('helper','Zend_View_Helper_');
$form=new SearchForm();
$this->view->form=$form;
//$form->submit->setLabel('快速搜索');
$key=$this->_request->getParam('q');
if (!empty($key)) {
$search=new Search($key);
$where=$search->sql_expr(array("title","description"));
$page=@(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and ".$where);
$sum=$row[0]['count'];
$sql="select uuid,title,id,description from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and ".$where." order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->key=$key;
$this->view->offset=$offset+1;
}
}
function timemapAction()
{
$sql="select id,uuid,west,south,north,east,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and timebegin is not null";
$this->view->rows=$this->db->fetchAll($sql);
}
function timelineAction()
{
$fn="yrnmrtime.xml";
$rows=$this->db->fetchAll("select ts_created from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') order by ts_created desc limit 1");
$last_update=strtotime($rows[0]['ts_created']);
if (!file_exists($fn) || (filemtime($fn)<$last_update))
{
$dateformat="M j Y";
$rows=$this->db->fetchAll("select id,uuid,description,title,timebegin,timeend from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and timebegin is not null order by timebegin,title");
$timexml='<data>';
foreach($rows as $row) {
$timexml.='<event start="'.date($dateformat,strtotime($row['timebegin'])).' GMT+0800" ';
if ($row['timeend']!='' && $row['timeend']!=$row['timebegin']) $timexml.=' end="'.date($dateformat,strtotime($row['timeend'])).'" isDuration="true"';
$timexml.= ' title="'.htmlspecialchars($row['title']).'" image="/images/westdc_40w.gif" link="/yrnmr/view/uuid/'.$row['uuid'].'">';
$desc_length=mb_strlen($row['description'],"UTF-8");
$desc=mb_substr($row['description'],0,($desc_length>300)?300:$desc_length,"UTF-8");
if ($desc_length>300) $desc.=" ...";
$timexml.=htmlspecialchars($desc);
$timexml.="</event>\n";
}
$timexml.='</data>';
$fp=fopen($fn,'w');
fwrite($fp,$timexml);
fclose($fp);
}
}
function categoryAction()
{
$code = (int)$this->_request->getParam('code');
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$this->view->category=$this->db->fetchAll("select c.code,name,name_zh,count(*) from category c left join normalmetadata m on c.id=m.id,categorycode cc where c.code=cc.code and m.uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') group by c.code,cc.name,cc.name_zh");
if ($code>0 && $code<20) {
$row=$this->db->fetchAll("select count(*) from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from category where code=".$code.")");
$sum=$row[0]['count'];
$sql="select uuid,title,description,id from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select distinct id from category where code=".$code.") order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
$row=$this->db->fetchRow("select name,name_zh from categorycode where code=?",$code);
$this->view->codename=(empty($row['name_zh'])?$row['name']:$row['name_zh']);
} else {
//提供全部分类列表
}
}
private function getmd($keyword,$type='theme')
{
$page=(int)$this->_request->getParam('page');
if (empty($page)) $page=1;
$offset=$this->limit*($page-1);
$state=$this->db->query("select count(m.*) from normalmetadata m left join datasource d on m.uuid=d.uuid left join source s on d.sourceid=s.id where s.code='yrnmr' and m.id in (select id from keyword where keytype='".$type."' and keyword='".$keyword."')");
$row=$state->fetchAll();
$sum=$row[0]['count'];
//@todo: add order with title
$sql="select uuid,title from normalmetadata where uuid in (select d.uuid from datasource d left join source s on d.sourceid=s.id where s.code='yrnmr') and id in (select id from keyword where keytype='".$type."' and keyword='".$keyword."') order by timebegin,title limit ? offset ?";
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
}
}

View File

@ -15,27 +15,28 @@ $this->breadcrumb()->setSeparator(' > ');
<div class="span9">
<div id="content">
<h2>联系我们</h2>
<div id="offline">
<p class="title">离线方式</p>
<p>
中国西部环境与生态科学数据中心<br />
中国科学院寒区旱区环境与工程研究所 6#1102<br />
甘肃省兰州市东岗西路320号<br />
邮编730000<br />
E-mail: westdc@lzb.ac.cn<br />
电话: +86-931-4967287<br />
<div id="offline" class="span4" style="padding:0 0 0 33px;">
<br/>
青海省生态环境遥感监测中心<br/>
青海省西宁市城东区南山东路116号 <br/>
邮编810099<br/>
电话: +86-0971-8235025<br/>
Emailsupport@sanjiangyuan.org.cn<br/>
<br/>
</div>
<div id="online">
<p class="title">在线联系</p>
<p class="note">请填写以下表单系统会自动发送到westdc邮箱里</p>
<div id="online" class="span5">
<p class="note">填写以下信息在线联系我们。</p>
<?php echo $this->form; ?>
<?php if (!empty($this->messages)) : ?>
<div id="message">
<?php
foreach ($this->messages as $info)echo $info;
foreach ($this->messages as $info) {
echo $info;
}
?>
</div>
<?php endif; ?>

View File

@ -7,7 +7,7 @@ $this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('关于我们');
$this->breadcrumb()->setSeparator(' > ');
?>
<div class="row">
<div class="row-fluid">
<div class="span3">
<?= $this->partial('about/navi.phtml'); ?>
</div>
@ -15,22 +15,27 @@ $this->breadcrumb()->setSeparator(' > ');
<div id="content">
<div class="hero-unit">
<div class="pull-right" style="margin-left:5px;">
<img src="/images/westdc_logo_white.gif" /><br />
<a href="/images/westdc_logo_white.gif">下载LOGO</a>
<p>“青海三江源自然保护区生态保护和建设工程”的实施将对保护三江源自然保护区的生态环境产生重大影响“三江源生态监测综合数据平台”是青海三江源自然保护区生态保护和建设工程2012年度生态监测项目下设置的课题目的是依托数据库、互联网和地理信息系统技术组建基于互联网的、分布式的生态监测数据平台充分保护“青海三江源自然保护区生态保护和建设工程”的各种数据投资发掘数据的科学价值辅助研究生态环境变化过程中的科学问题。</p>
</div>
<p>中国西部环境与生态科学数据中心(“西部数据中心”)受<a href="http://www.nsfc.gov.cn" target="_blank">中国自然科学基金委</a>资助以中国西部环境与生态科学研究计划“西部计划”重点项目的形式立项编号90502010旨在收集和整理“西部计划”各项目执行期间产出数据集为中国西部环境与生态科学研究乃至更广泛意义上的地表表层科学研究服务。</p>
</div>
<h2>
<a href="/about/background">项目背景</a></h2>
<h2>项目背景</h2>
<p>
介绍“西部数据中心”项目立项的一些背景,可以理解西部数据中心要做些什么内容,以及采用什么样的实现手段。</p>
<h2>
项目参与单位</h2>
《青海三江源自然保护区生态保护和建设总体规划》以下简称《总体规划》于2005年1月26日经国务院常务会议批准实施青海三江源自然保护区生态保护和建设工程生态监测项目列在《总体规划》的支撑项目中实施期限为2005年至2012年项目总投资5500万元。生态监测项目由省环保厅会同省水利厅、青海省农牧厅、省林业局、省气象局共同实施。
</p>
<h2>项目参与单位</h2>
<p>
“西部数据中心”以<a href="http://www.casnw.net" target="_blank">中国科学院寒区旱区环境与工程研究所</a>为承担单位,由<a
href="http://www.westgis.ac.cn" target="_blank">遥感与地理信息科学研究室</a>组织实施。参与单位包括<a href="http://www.igsnrr.ac.cn"
target="_blank">中国科学院地理科学与资源研究所</a>。其中“知识积累平台”依托<a href="http://www.llas.ac.cn" target="_blank">中国科学院资源环境科学信息中心</a>实现项目中的文献收集和管理。</p>
<ul>
<li>青海省生态环境遥感监测中心</li>
<li>中国科学院寒区旱区环境与工程研究所</li>
<li>青海省环境监测中心站</li>
<li>青海省草原总站</li>
<li>青海省气象科学研究所</li>
<li>青海省林业调查规划院</li>
<li>青海省水文水资源局</li>
<li>青海省水土保持局</li>
</ul>
</p>
<h2>
<a href="/about/contact">联系我们</a></h2>

Some files were not shown because too many files have changed in this diff Show More