3a8c5550f71bd535cb926de56d570a8f1598112a.file.add.tpl.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494
  1. <?php /* Smarty version Smarty-3.1.7, created on 2016-12-20 18:12:21
  2. compiled from "D:/phpStudy/WWW_krpano100/template\add\add.tpl" */ ?>
  3. <?php /*%%SmartyHeaderCode:2925758590405109595-74399494%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
  4. $_valid = $_smarty_tpl->decodeProperties(array (
  5. 'file_dependency' =>
  6. array (
  7. '3a8c5550f71bd535cb926de56d570a8f1598112a' =>
  8. array (
  9. 0 => 'D:/phpStudy/WWW_krpano100/template\\add\\add.tpl',
  10. 1 => 1482227800,
  11. 2 => 'file',
  12. ),
  13. ),
  14. 'nocache_hash' => '2925758590405109595-74399494',
  15. 'function' =>
  16. array (
  17. ),
  18. 'variables' =>
  19. array (
  20. '_lang' => 0,
  21. 'limit_num' => 0,
  22. 'atlas' => 0,
  23. 'v' => 0,
  24. 'tags' => 0,
  25. 'tag' => 0,
  26. 'up_url' => 0,
  27. 'img_store_type' => 0,
  28. ),
  29. 'has_nocache_code' => false,
  30. 'version' => 'Smarty-3.1.7',
  31. 'unifunc' => 'content_585904052b327',
  32. ),false); /*/%%SmartyHeaderCode%%*/?>
  33. <?php if ($_valid && !is_callable('content_585904052b327')) {function content_585904052b327($_smarty_tpl) {?><?php echo $_smarty_tpl->getSubTemplate (($_smarty_tpl->tpl_vars['_lang']->value['moban'])."/library/header.lbi", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, null, null, array(), 0);?>
  34. <?php echo $_smarty_tpl->getSubTemplate (($_smarty_tpl->tpl_vars['_lang']->value['moban'])."/library/member_paths.lbi", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, null, null, array(), 0);?>
  35. <link rel="stylesheet" href="/static/css/fileinput.min.css">
  36. <link rel="stylesheet" href="/static/css/chosen.min.css">
  37. <div class="container">
  38. <div class="update_div" style="min-height: 600px;margin-left: auto;margin-right: auto;">
  39. <ul class="nav nav-tabs">
  40. <li class="active"><a href="###" data-target="#tab_upimg" data-toggle="tab">全景图片</a></li>
  41. <li><a href="###" data-target="#tab_upvideo" data-toggle="tab">全景视频</a></li>
  42. <li><a href="###" data-target="#object_around" data-toggle="tab">物体环视</a></li>
  43. </ul>
  44. <div class="tab-content" style="background: #fff">
  45. <div class="tab-pane fade active in" id="tab_upimg">
  46. <?php if ($_smarty_tpl->tpl_vars['limit_num']->value){?>
  47. <div class="row">
  48. <div class="col-md-3">
  49. <div class="input-group">
  50. <span class="input-group-addon">项目名称</span>
  51. <input type="text" class="form-control" name="pname" id="pname" maxlength="30" placeholder="请输入长度30个字符以内的名称">
  52. </div>
  53. </div>
  54. <div class="col-md-3">
  55. <div class="input-group" >
  56. <span class="input-group-addon">分类</span>
  57. <select class="form-control" id="atlas">
  58. <?php $_smarty_tpl->tpl_vars['v'] = new Smarty_Variable; $_smarty_tpl->tpl_vars['v']->_loop = false;
  59. $_from = $_smarty_tpl->tpl_vars['atlas']->value; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array');}
  60. foreach ($_from as $_smarty_tpl->tpl_vars['v']->key => $_smarty_tpl->tpl_vars['v']->value){
  61. $_smarty_tpl->tpl_vars['v']->_loop = true;
  62. ?>
  63. <option value="<?php echo $_smarty_tpl->tpl_vars['v']->value['pk_atlas_main'];?>
  64. "><?php echo $_smarty_tpl->tpl_vars['v']->value['name'];?>
  65. </option>
  66. <?php } ?>
  67. </select>
  68. </div>
  69. </div>
  70. <div class="col-md-4">
  71. <div class="input-group " style="width:100%">
  72. <select data-placeholder="请选择3个以内的标签" id="pic_chosen" class="chosen-select form-control" tabindex="-1" multiple="">
  73. <?php $_smarty_tpl->tpl_vars['tag'] = new Smarty_Variable; $_smarty_tpl->tpl_vars['tag']->_loop = false;
  74. $_from = $_smarty_tpl->tpl_vars['tags']->value; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array');}
  75. foreach ($_from as $_smarty_tpl->tpl_vars['tag']->key => $_smarty_tpl->tpl_vars['tag']->value){
  76. $_smarty_tpl->tpl_vars['tag']->_loop = true;
  77. ?>
  78. <?php if ($_smarty_tpl->tpl_vars['tag']->value['type']==1){?>
  79. <option value="<?php echo $_smarty_tpl->tpl_vars['tag']->value['id'];?>
  80. "><?php echo $_smarty_tpl->tpl_vars['tag']->value['name'];?>
  81. </option>
  82. <?php }?>
  83. <?php } ?>
  84. </select>
  85. </div>
  86. </div>
  87. <div class="col-md-2">
  88. <label class="checkbox-inline">
  89. <input type="checkbox" id="allow_recomm" checked> 允许推荐到首页
  90. </label>
  91. </div>
  92. </div>
  93. <div class="row" style="margin-top:20px">
  94. <div class="col-md-12">
  95. <input id="imgUpload" name="file" type="file" multiple="" accept="image/jpeg,image/tiff" class="">
  96. </div>
  97. </div>
  98. <div class="row" style="margin-top:20px">
  99. <div class="col-md-12">
  100. <button class="btn btn-block btn-primary" type="button" id="publish_img">立即生成</button>
  101. </div>
  102. </div>
  103. <?php }else{ ?>
  104. <img src="/static/images/ico/warning.png" class="fl"/>
  105. &nbsp;你可发布的作品数量已达上限,无法再发布,请联系客服!
  106. <?php }?>
  107. </div>
  108. <div class="tab-pane fade" id="tab_upvideo">
  109. <div class="row" style="margin-top:20px">
  110. <label for="vname" class="col-sm-2">视频名称</label>
  111. <div class="col-md-6 col-sm-10">
  112. <input type="text" class="form-control" id="vname" name="vname" placeholder="请输入长度30个字符以内的名称">
  113. </div>
  114. </div>
  115. <div class="row" style="margin-top:20px">
  116. <label for="video_chosen" class="col-sm-2">视频标签</label>
  117. <div class="col-md-6">
  118. <select data-placeholder="请选择3个以内的标签" id="video_chosen" class="chosen-select form-control" tabindex="-1" multiple="">
  119. <?php $_smarty_tpl->tpl_vars['tag'] = new Smarty_Variable; $_smarty_tpl->tpl_vars['tag']->_loop = false;
  120. $_from = $_smarty_tpl->tpl_vars['tags']->value; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array');}
  121. foreach ($_from as $_smarty_tpl->tpl_vars['tag']->key => $_smarty_tpl->tpl_vars['tag']->value){
  122. $_smarty_tpl->tpl_vars['tag']->_loop = true;
  123. ?>
  124. <?php if ($_smarty_tpl->tpl_vars['tag']->value['type']==2){?>
  125. <option value="<?php echo $_smarty_tpl->tpl_vars['tag']->value['id'];?>
  126. "><?php echo $_smarty_tpl->tpl_vars['tag']->value['name'];?>
  127. </option>
  128. <?php }?>
  129. <?php } ?>
  130. </select>
  131. </div>
  132. </div>
  133. <div class="row" style="margin-top:20px">
  134. <label for="profile" class="col-sm-2">视频简介</label>
  135. <div class="col-md-6">
  136. <textarea name="profile" id="profile" rows="5" class="form-control" placeholder="视频项目简介"></textarea>
  137. </div>
  138. </div>
  139. <div class="row" style="margin-top:20px">
  140. <div class="col-md-8 col-md-offset-2 ">
  141. <table class="table table-striped table-hover text-left" id="video_up_table" style="margin-top:40px; display:none;">
  142. <thead>
  143. <tr>
  144. <th class="col-md-4">文件名</th>
  145. <th class="col-md-2">大小</th>
  146. <th class="col-md-6">进度</th>
  147. </tr>
  148. </thead>
  149. <tbody id="fsUploadProgress">
  150. </tbody>
  151. </table>
  152. </div>
  153. </div>
  154. <div class="row" style="margin-top:20px">
  155. <label for="vcover" class="col-sm-2">全景视频</label>
  156. <div class="col-md-1">
  157. <button class="btn" id="videoupload" name="video">选择视频</button>
  158. </div>
  159. <div class="col-md-3">
  160. <span class="text-muted">多个清晰度,请上传多个文件</span>
  161. </div>
  162. </div>
  163. <div class="row" style="margin-top:20px">
  164. <div class="col-sm-offset-2 col-sm-2">
  165. <button id="publish_video" class="btn btn-primary btn-block">发布</button>
  166. </div>
  167. </div>
  168. </div>
  169. <div class="tab-pane fade" id="object_around">
  170. <div class="row" style="margin-top:20px">
  171. <div class="col-md-4">
  172. <div class="input-group">
  173. <span class="input-group-addon">项目名称</span>
  174. <input type="text" class="form-control" name="oname" id="oname" maxlength="30" placeholder="请输入长度30个字符以内的名称">
  175. </div>
  176. </div>
  177. <div class="col-md-2">
  178. <div class="input-group">
  179. <label class="checkbox-inline" style="margin-top: 6px;">
  180. <input type="checkbox" id="flag_publish" checked> 公开作品
  181. </label>
  182. </div>
  183. </div>
  184. </div>
  185. <div class="row" style="margin-top:20px">
  186. <div class="col-md-12">
  187. <input id="objImgUpload" name="file" type="file" multiple="" accept="image/jpeg,image/png" class="">
  188. </div>
  189. </div>
  190. <div class="row" style="margin-top:20px">
  191. <div class="col-md-12">
  192. <button class="btn btn-block btn-primary" type="button" id="publish_obj">立即生成</button>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. </div>
  198. </div>
  199. <!--上传成功弹框-->
  200. <div class="modal fade" id="myModal">
  201. <div class="modal-dialog">
  202. <div class="modal-content">
  203. <div class="modal-header">
  204. <!-- <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">关闭</span></button> -->
  205. <h4 class="modal-title">提示:</h4>
  206. </div>
  207. <div class="modal-body">
  208. <p class="text-muted"><img src="/static/images/loading.gif" alt="">上传完成,大概需要2~5分钟,请等待后台处理...</p>
  209. </div>
  210. <div class="modal-footer">
  211. <button type="button" class="btn btn-primary" style="display:none" onclick="javascript:window.location.href='/member/project'">确定</button>
  212. </div>
  213. </div>
  214. </div>
  215. </div>
  216. <script>
  217. var up_url = "<?php echo $_smarty_tpl->tpl_vars['up_url']->value;?>
  218. ";
  219. var qn_video_token;
  220. var videoParams={} ;
  221. videoParams.videos = new Array();
  222. </script>
  223. <script language="JavaScript" type="text/javascript" src="/static/js/fileinput-v4.34.js"></script>
  224. <script language="JavaScript" type="text/javascript" src="/static/js/fileinput_locale_zh.js"></script>
  225. <script language="JavaScript" type="text/javascript" src="/static/js/chosen.js"></script>
  226. <script language="JavaScript" type="text/javascript" src="/static/js/plupload/moxie.js"></script>
  227. <script language="JavaScript" type="text/javascript" src="/static/js/plupload/plupload.dev.js"></script>
  228. <script language="JavaScript" type="text/javascript" src="/static/js/kr/work_add.js"></script>
  229. <?php if ($_smarty_tpl->tpl_vars['img_store_type']->value=='qiniu'){?>
  230. <script language="JavaScript" type="text/javascript" src="/static/js/qiniu.min.js"></script>
  231. <script language="JavaScript" type="text/javascript" src="/static/js/qiniu_ui.js"></script>
  232. <link rel="stylesheet" href="/static/css/qiniu_main.css">
  233. <script>
  234. var video_up = Qiniu.uploader({
  235. runtimes: 'html5,flash,html4',
  236. browse_button: 'videoupload',
  237. max_retries: 1,
  238. max_file_size: '900mb',
  239. flash_swf_url: '/static/js/plupload/Moxie.swf',
  240. dragdrop: true,
  241. chunk_size: '4mb',
  242. save_key: false,
  243. unique_names: false,
  244. filters : {
  245. max_file_size : '900mb',
  246. prevent_duplicates: true,
  247. mime_types: [
  248. {title : "视频文件", extensions : "mp4"}
  249. ]
  250. },
  251. multi_selection: false,
  252. get_new_uptoken: false,
  253. // uptoken_url:'/get_token.php?act=video',
  254. uptoken_func: function (file) {
  255. qn_video_token ={};
  256. $.ajax({
  257. url:"/get_token.php",
  258. data:{"act":"video"},
  259. async: false,
  260. success:function(result){
  261. result = eval("("+result+")");
  262. qn_video_token.prefix= result.prefix;
  263. qn_video_token.token = result.token;
  264. }
  265. })
  266. return qn_video_token.token;
  267. },
  268. domain:up_url,
  269. auto_start: false,
  270. log_level: 5,
  271. init: {
  272. 'FilesAdded': function (up, files) {
  273. $("#video_up_table").show();
  274. plupload.each(files, function (file) {
  275. var progress = new FileProgress(file, 'fsUploadProgress');
  276. progress.setStatus("点击 \"发布\" 按钮开始上传...");
  277. progress.bindUploadCancel(up);
  278. });
  279. },
  280. 'BeforeUpload': function (up, file) {
  281. var progress = new FileProgress(file, 'fsUploadProgress');
  282. var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
  283. if (up.runtime === 'html5' && chunk_size) {
  284. progress.setChunkProgess(chunk_size);
  285. }
  286. },
  287. 'UploadProgress': function (up, file) {
  288. var progress = new FileProgress(file, 'fsUploadProgress');
  289. var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
  290. progress.setProgress(file.percent + "%", file.speed, chunk_size);
  291. },
  292. 'UploadComplete': function () {
  293. },
  294. 'FileUploaded': function (up, file, info) {
  295. var progress = new FileProgress(file, 'fsUploadProgress');
  296. progress.setComplete(up, info);
  297. progress.setStatus("");
  298. var video = {};
  299. video.location = eval("("+info+")").key;
  300. video.name = file.name;
  301. video.size = file.size;
  302. videoParams.videos.push(video);
  303. var files = up.files;
  304. if(files[files.length-1].id == file.id){
  305. var obj = alert_notice("等待执行...","success",'top',0);
  306. $.post("/add/video",{
  307. "act":"doAdd",
  308. "params":JSON.stringify(videoParams)
  309. },function(result){
  310. obj.hide();
  311. result = eval("("+result+")");
  312. if (result.flag) {
  313. alert_notice("发布成功","success");
  314. window.location.href ="/member/project?act=videos";
  315. }else{
  316. alert_notice(result.msg);
  317. }
  318. })
  319. }
  320. },
  321. 'Error': function (up, err, errTip) {
  322. $("#video_up_table").show();
  323. var progress = new FileProgress(err.file, 'fsUploadProgress');
  324. progress.setError();
  325. progress.setStatus(errTip);
  326. }
  327. ,
  328. 'Key': function (up, file) {
  329. var name =file.name;
  330. var key = qn_video_token.prefix+generic_name()+name.substr(name.lastIndexOf("."));
  331. // do something with key
  332. return key;
  333. }
  334. }
  335. });
  336. </script>
  337. <?php }elseif($_smarty_tpl->tpl_vars['img_store_type']->value=='oss'){?>
  338. <script>
  339. var key ;
  340. function set_upload_param(up, filename, ret)
  341. {
  342. if (ret == false)
  343. {
  344. qn_video_token ={};
  345. $.ajax({
  346. url:"/get_token.php",
  347. data:{"act":"video"},
  348. async: false,
  349. success:function(result){
  350. result = eval("("+result+")");
  351. qn_video_token.prefix= result.prefix;
  352. qn_video_token.policy = result.policy;
  353. qn_video_token.OSSAccessKeyId = result.accessid;
  354. qn_video_token.host = result.host;
  355. qn_video_token.signature = result.signature;
  356. }
  357. })
  358. }else{
  359. key = qn_video_token.prefix+generic_name()+filename.substr(filename.lastIndexOf("."));
  360. new_multipart_params = {
  361. 'key' : key,
  362. 'policy': qn_video_token.policy,
  363. 'OSSAccessKeyId': qn_video_token.OSSAccessKeyId,
  364. 'success_action_status' : '200', //让服务端返回200,不然,默认会返回204
  365. 'host' : qn_video_token.host,
  366. 'signature': qn_video_token.signature,
  367. };
  368. up.setOption({
  369. 'url': up_url,
  370. 'multipart_params': new_multipart_params
  371. });
  372. }
  373. }
  374. var video_up = new plupload.Uploader({
  375. runtimes : 'html5,flash,silverlight,html4',
  376. browse_button : 'videoupload',
  377. multi_selection: false,
  378. flash_swf_url: '/static/js/plupload/Moxie.swf',
  379. silverlight_xap_url : '/static/js/plupload/Moxie.xap',
  380. url : "http://oss.aliyuncs.com",
  381. filters: {
  382. mime_types : [ //只允许上传图片
  383. { title : "Video files", extensions : "mp4" },
  384. ],
  385. max_file_size : '900mb', //
  386. prevent_duplicates : true //不允许选取重复文件
  387. },
  388. init: {
  389. PostInit: function() {
  390. set_upload_param(video_up, '', false);
  391. },
  392. FilesAdded: function(up, files) {
  393. var file= files[files.length-1];
  394. $("#fsUploadProgress").append('<tr>'+
  395. '<th class="col-md-4">'+file.name+'</th>'+
  396. '<th class="col-md-2">'+(file.size/1024).toFixed(1)+' KB</th>'+
  397. '<th class="col-md-6"><div class="progress progress-striped" id="'+file.id+'"><div class="progress-bar progress-bar-success" style="width: 0%"></div><span class="text-muted" style="font-size:11px;font-weight:normal;">点击下方发布按钮开始上传</span></div></th>'+
  398. '</tr>');
  399. $("#video_up_table").show();
  400. return false;
  401. },
  402. BeforeUpload: function(up, file) {
  403. $("#videoupload").css('pointer-events','none');
  404. set_upload_param(up, file.name, true);
  405. },
  406. UploadProgress: function(up, file) {
  407. var d = document.getElementById(file.id);
  408. d.getElementsByTagName('span')[0].innerHTML = ' ' + file.percent + "%";
  409. var progBar = d.getElementsByTagName('div')[0];
  410. // var progBar = prog.getElementsByTagName('div')[0]
  411. progBar.style.width= file.percent+'%';
  412. progBar.setAttribute('aria-valuenow', file.percent);
  413. },
  414. FileUploaded: function(up, file, info) {
  415. if (info.status == 200)
  416. {
  417. var video = {};
  418. video.location = key;
  419. video.name = file.name;
  420. video.size = file.size;
  421. videoParams.videos.push(video);
  422. var files = up.files;
  423. if(files[files.length-1].id == file.id){
  424. var obj = alert_notice("等待执行...","success",'top',0);
  425. $.post("/add/video",{
  426. "act":"doAdd",
  427. "params":JSON.stringify(videoParams)
  428. },function(result){
  429. obj.hide();
  430. result = eval("("+result+")");
  431. if (result.flag) {
  432. alert_notice("发布成功","success");
  433. window.location.href ="/member/project?act=videos";
  434. }else{
  435. alert_notice(result.msg);
  436. }
  437. })
  438. }
  439. }
  440. else
  441. {
  442. alert_notice("上传失败");
  443. }
  444. $("#selectfiles").css('pointer-events','');
  445. },
  446. Error: function(up, err) {
  447. if (err.code == -600) {
  448. alert_notice("选择的文件太大了,不能超过900M");
  449. }
  450. else if (err.code == -601) {
  451. alert_notice("只能上传jpg格式大小的图片");
  452. }
  453. else if (err.code == -602) {
  454. alert_notice("这个文件已经上传过一遍了");
  455. }
  456. else
  457. {
  458. alert_notice("上传异常");
  459. }
  460. }
  461. }
  462. });
  463. video_up.init();
  464. </script>
  465. <?php }?>
  466. <?php echo $_smarty_tpl->getSubTemplate (($_smarty_tpl->tpl_vars['_lang']->value['moban'])."/library/footer.lbi", $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, null, null, array(), 0);?>
  467. <?php }} ?>