store_album.php 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957
  1. <?php
  2. /**
  3. * 图片空间操作
  4. ***/
  5. defined('InShopNC') or exit('Access Invalid!');
  6. class store_albumControl extends BaseSellerControl {
  7. public function indexOp(){
  8. $this->album_cateOp();
  9. exit;
  10. }
  11. public function __construct() {
  12. parent::__construct();
  13. Language::read('member_store_album');
  14. }
  15. /**
  16. * 相册分类列表
  17. *
  18. */
  19. public function album_cateOp(){
  20. $model_album = Model('album');
  21. /**
  22. * 验证是否存在默认相册
  23. */
  24. $return = $model_album->checkAlbum(array('album_aclass.store_id'=>$_SESSION['store_id'],'is_default'=>'1'));
  25. if(!$return){
  26. $album_arr = array();
  27. $album_arr['aclass_name'] = Language::get('album_default_album');
  28. $album_arr['store_id'] = $_SESSION['store_id'];
  29. $album_arr['aclass_des'] = '';
  30. $album_arr['aclass_sort'] = '255';
  31. $album_arr['aclass_cover'] = '';
  32. $album_arr['upload_time'] = time();
  33. $album_arr['is_default'] = '1';
  34. $model_album->addClass($album_arr);
  35. }
  36. /**
  37. * 相册分类
  38. */
  39. $param = array();
  40. $param['album_aclass.store_id'] = $_SESSION['store_id'];
  41. $param['order'] = 'aclass_sort desc';
  42. if($_GET['sort'] != ''){
  43. switch ($_GET['sort']){
  44. case '0':
  45. $param['order'] = 'upload_time desc';
  46. break;
  47. case '1':
  48. $param['order'] = 'upload_time asc';
  49. break;
  50. case '2':
  51. $param['order'] = 'aclass_name desc';
  52. break;
  53. case '3':
  54. $param['order'] = 'aclass_name asc';
  55. break;
  56. case '4':
  57. $param['order'] = 'aclass_sort desc';
  58. break;
  59. case '5':
  60. $param['order'] = 'aclass_sort asc';
  61. break;
  62. }
  63. }
  64. $aclass_info = $model_album->getClassList($param,$page);
  65. Tpl::output('aclass_info',$aclass_info);
  66. // Tpl::output('show_page',$page->show());
  67. Tpl::output('PHPSESSID',session_id());
  68. self::profile_menu('album','album');
  69. Tpl::showpage('store_album.list');
  70. }
  71. /**
  72. * 相册分类添加
  73. *
  74. */
  75. public function album_addOp(){
  76. /**
  77. * 实例化相册模型
  78. */
  79. $model_album = Model('album');
  80. $class_count = $model_album->countClass($_SESSION['store_id']);
  81. Tpl::output('class_count',$class_count['count']);
  82. Tpl::showpage('store_album.class_add','null_layout');
  83. }
  84. /**
  85. * 相册保存
  86. *
  87. */
  88. public function album_add_saveOp(){
  89. if (chksubmit()){
  90. /**
  91. * 实例化相册模型
  92. */
  93. $model_album = Model('album');
  94. $class_count = $model_album->countClass($_SESSION['store_id']);
  95. if($class_count['count'] >= 20){
  96. showDialog(Language::get('album_class_save_max_20'),'index.php?act=store_album','error',empty($_GET['inajax'])?'':'CUR_DIALOG.close();');
  97. }
  98. /**
  99. * 实例化相册模型
  100. */
  101. $param = array();
  102. $param['aclass_name'] = $_POST['name'];
  103. $param['store_id'] = $_SESSION['store_id'];
  104. $param['aclass_des'] = $_POST['description'];
  105. $param['aclass_sort'] = $_POST['sort'];
  106. $param['upload_time'] = time();
  107. $return = $model_album->addClass($param);
  108. if($return){
  109. showDialog(Language::get('album_class_save_succeed'),'index.php?act=store_album','succ',empty($_GET['inajax'])?'':'CUR_DIALOG.close();');
  110. }
  111. }
  112. showDialog(Language::get('album_class_save_lose'));
  113. }
  114. /**
  115. * 相册分类编辑
  116. */
  117. public function album_editOp(){
  118. if(empty($_GET['id'])){
  119. echo Language::get('album_parameter_error');exit;
  120. }
  121. /**
  122. * 实例化相册模型
  123. */
  124. $model_album = Model('album');
  125. $param = array();
  126. $param['field'] = array('aclass_id','store_id');
  127. $param['value'] = array(intval($_GET['id']),$_SESSION['store_id']);
  128. $class_info = $model_album->getOneClass($param);
  129. Tpl::output('class_info',$class_info);
  130. Tpl::showpage('store_album.class_edit','null_layout');
  131. }
  132. /**
  133. * 相册分类编辑保存
  134. */
  135. public function album_edit_saveOp(){
  136. $param = array();
  137. $param['aclass_name'] = $_POST['name'];
  138. $param['aclass_des'] = $_POST['description'];
  139. $param['aclass_sort'] = $_POST['sort'];
  140. /**
  141. * 实例化相册模型
  142. */
  143. $model_album = Model('album');
  144. /**
  145. * 验证
  146. */
  147. $return = $model_album->checkAlbum(array('album_aclass.store_id'=>$_SESSION['store_id'],'album_aclass.aclass_id'=>intval($_POST['id'])));
  148. if($return){
  149. /**
  150. * 更新
  151. */
  152. $re = $model_album->updateClass($param,intval($_POST['id']));
  153. if($re){
  154. showDialog(Language::get('album_class_edit_succeed'),'index.php?act=store_album','succ',empty($_GET['inajax'])?'':'CUR_DIALOG.close();');
  155. }
  156. }else{
  157. showDialog(Language::get('album_class_edit_lose'));
  158. }
  159. }
  160. /**
  161. * 相册删除
  162. */
  163. public function album_delOp(){
  164. if(empty($_GET['id'])){
  165. showMessage(Language::get('album_parameter_error'),'','html','error');
  166. }
  167. /**
  168. * 实例化相册模型
  169. */
  170. $model_album = Model('album');
  171. /**
  172. * 验证
  173. */
  174. $return = $model_album->checkAlbum(array('album_aclass.store_id'=>$_SESSION['store_id'],'album_aclass.aclass_id'=>intval($_GET['id']),'is_default'=>'0'));
  175. if(!$return){
  176. showDialog(Language::get('album_class_file_del_lose'));
  177. }
  178. /**
  179. * 删除分类
  180. */
  181. $return = $model_album->delClass(intval($_GET['id']));
  182. if(!$return){
  183. showDialog(Language::get('album_class_file_del_lose'));
  184. }
  185. /**
  186. * 更新图片分类
  187. */
  188. $param = array();
  189. $param['field'] = array('is_default','store_id');
  190. $param['value'] = array('1',$_SESSION['store_id']);
  191. $class_info = $model_album->getOneClass($param);
  192. $param = array();
  193. $param['aclass_id'] = $class_info['aclass_id'];
  194. $return = $model_album->updatePic($param,array('aclass_id'=>intval($_GET['id'])));
  195. if($return){
  196. showDialog(Language::get('album_class_file_del_succeed'),'index.php?act=store_album','succ');
  197. }else{
  198. showDialog(Language::get('album_class_file_del_lose'));
  199. }
  200. }
  201. /**
  202. * 图片列表
  203. */
  204. public function album_pic_listOp(){
  205. if(empty($_GET['id'])) {
  206. showMessage(Language::get('album_parameter_error'),'','html','error');
  207. }
  208. /**
  209. * 分页类
  210. */
  211. $page = new Page();
  212. $page->setEachNum(15);
  213. $page->setStyle('admin');
  214. /**
  215. * 实例化相册类
  216. */
  217. $model_album = Model('album');
  218. $param = array();
  219. $param['aclass_id'] = intval($_GET['id']);
  220. $param['album_pic.store_id'] = $_SESSION['store_id'];
  221. if($_GET['sort'] != ''){
  222. switch ($_GET['sort']){
  223. case '0':
  224. $param['order'] = 'upload_time desc';
  225. break;
  226. case '1':
  227. $param['order'] = 'upload_time asc';
  228. break;
  229. case '2':
  230. $param['order'] = 'apic_size desc';
  231. break;
  232. case '3':
  233. $param['order'] = 'apic_size asc';
  234. break;
  235. case '4':
  236. $param['order'] = 'apic_name desc';
  237. break;
  238. case '5':
  239. $param['order'] = 'apic_name asc';
  240. break;
  241. }
  242. }
  243. $pic_list = $model_album->getPicList($param,$page);
  244. Tpl::output('pic_list',$pic_list);
  245. Tpl::output('show_page',$page->show());
  246. /**
  247. * 相册列表,移动
  248. */
  249. $param = array();
  250. $param['album_class.un_aclass_id'] = intval($_GET['id']);
  251. $param['album_aclass.store_id'] = $_SESSION['store_id'];
  252. $class_list = $model_album->getClassList($param);
  253. Tpl::output('class_list',$class_list);
  254. /**
  255. * 相册信息
  256. */
  257. $param = array();
  258. $param['field'] = array('aclass_id','store_id');
  259. $param['value'] = array(intval($_GET['id']),$_SESSION['store_id']);
  260. $class_info = $model_album->getOneClass($param);
  261. Tpl::output('class_info',$class_info);
  262. Tpl::output('PHPSESSID',session_id());
  263. self::profile_menu('album_pic','pic_list');
  264. Tpl::showpage('store_album.pic_list');
  265. }
  266. /**
  267. * 图片列表,外部调用
  268. */
  269. public function pic_listOp(){
  270. /**
  271. * 分页类
  272. */
  273. $page = new Page();
  274. if(in_array($_GET['item'] , array('goods_image'))) {
  275. $page->setEachNum(12);
  276. } else {
  277. $page->setEachNum(14);
  278. }
  279. $page->setStyle('admin');
  280. /**
  281. * 实例化相册类
  282. */
  283. $model_album = Model('album');
  284. /**
  285. * 图片列表
  286. */
  287. $param = array();
  288. $param['album_pic.store_id'] = $_SESSION['store_id'];
  289. if(!empty($_GET) && $_GET['id'] != '0'){
  290. $param['aclass_id'] = intval($_GET['id']);
  291. /**
  292. * 分类列表
  293. */
  294. $cparam = array();
  295. $cparam['field'] = array('aclass_id','store_id');
  296. $cparam['value'] = array(intval($_GET['id']),$_SESSION['store_id']);
  297. $cinfo = $model_album->getOneClass($cparam);
  298. Tpl::output('class_name',$cinfo['aclass_name']);
  299. }
  300. $pic_list = $model_album->getPicList($param,$page);
  301. Tpl::output('pic_list',$pic_list);
  302. Tpl::output('show_page',$page->show());
  303. /**
  304. * 分类列表
  305. */
  306. $param = array();
  307. $param['album_aclass.store_id'] = $_SESSION['store_id'];
  308. $class_info = $model_album->getClassList($param);
  309. Tpl::output('class_list',$class_info);
  310. switch($_GET['item']) {
  311. case 'goods':
  312. Tpl::showpage('store_goods_add.step2_master_image','null_layout');
  313. break;
  314. case 'des':
  315. Tpl::showpage('store_goods_add.step2_desc_image','null_layout');
  316. break;
  317. case 'groupbuy':
  318. Tpl::showpage('store_groupbuy.album','null_layout');
  319. break;
  320. case 'store_sns_normal':
  321. Tpl::showpage('store_sns_add.album', 'null_layout');
  322. break;
  323. case 'goods_image':
  324. Tpl::output('color_id', $_GET['color_id']);
  325. Tpl::showpage('store_goods_add.step3_goods_image', 'null_layout');
  326. break;
  327. case 'mobile':
  328. Tpl::output('type', $_GET['type']);
  329. Tpl::showpage('store_goods_add.step2_mobile_image', 'null_layout');
  330. break;
  331. }
  332. }
  333. /**
  334. * 修改相册封面
  335. */
  336. public function change_album_coverOp(){
  337. if(empty($_GET['id'])) {
  338. showDialog(Language::get('nc_common_op_fail'));
  339. }
  340. /**
  341. * 实例化相册类
  342. */
  343. $model_album = Model('album');
  344. /**
  345. * 图片信息
  346. */
  347. $param = array();
  348. $param['field'] = array('apic_id','store_id');
  349. $param['value'] = array(intval($_GET['id']),$_SESSION['store_id']);
  350. $pic_info = $model_album->getOnePicById($param);
  351. $return = $model_album->checkAlbum(array('album_aclass.store_id'=>$_SESSION['store_id'],'album_aclass.aclass_id'=>$pic_info['aclass_id']));
  352. if($return){
  353. $re = $model_album->updateClass(array('aclass_cover'=>$pic_info['apic_cover']),$pic_info['aclass_id']);
  354. if($re){
  355. showDialog(Language::get('nc_common_op_succ'),'reload','succ');
  356. }
  357. }else{
  358. showDialog(Language::get('nc_common_op_fail'));
  359. }
  360. }
  361. /**
  362. * ajax修改图名称
  363. */
  364. public function change_pic_nameOp(){
  365. if(empty($_POST['id']) && empty($_POST['name'])){
  366. echo 'false';
  367. }
  368. /**
  369. * 实例化相册类
  370. */
  371. $model_album = Model('album');
  372. /**
  373. * 更新图片名称
  374. */
  375. if(strtoupper(CHARSET) == 'GBK'){
  376. $_POST['name'] = Language::getGBK($_POST['name']);
  377. }
  378. $return = $model_album->updatePic(array('apic_name'=>$_POST['name']),array('apic_id'=>intval($_POST['id'])));
  379. if($return){
  380. echo 'true';
  381. }else{
  382. echo 'false';
  383. }
  384. }
  385. /**
  386. * 图片详细页
  387. */
  388. public function album_pic_infoOp(){
  389. if(empty($_GET['class_id']) && empty($_GET['id'])){
  390. showMessage(Language::get('album_parameter_error'),'','html','error');
  391. }
  392. /**
  393. * 实例化相册类
  394. */
  395. $model_album = Model('album');
  396. /**
  397. * 验证
  398. */
  399. $return = $model_album->checkAlbum(array('album_pic.store_id'=>$_SESSION['store_id'],'album_pic.apic_id'=>intval($_GET['id'])));
  400. if(!$return){
  401. showMessage(Language::get('album_parameter_error'),'','html','error');
  402. }
  403. /**
  404. * 图片列表
  405. */
  406. $param = array();
  407. $param['aclass_id'] = intval($_GET['class_id']);
  408. $param['store_id'] = $_SESSION['store_id'];
  409. $page = new Page();
  410. $each_num = 9;
  411. $page->setEachNum($each_num);
  412. $pic_list = $model_album->getPicList($param,$page);
  413. Tpl::output('pic_list',$pic_list);
  414. $curpage = intval($_GET['curpage']);
  415. if (empty($curpage)) $curpage = 1;
  416. $total_page = (ceil($page->get('total_num')/$each_num));
  417. Tpl::output('total_page',$total_page);
  418. Tpl::output('curpage',$curpage);
  419. $curpage = intval($_GET['curpage']);
  420. if (empty($curpage)) $curpage = 1;
  421. $tatal_page = (ceil($page->get('total_num')/$each_num));
  422. Tpl::output('tatal_page',$tatal_page);
  423. Tpl::output('curpage',$curpage);
  424. /**
  425. * 相册信息
  426. */
  427. $param = array();
  428. $param['field'] = array('aclass_id','store_id');
  429. $param['value'] = array(intval($_GET['class_id']),$_SESSION['store_id']);
  430. $class_info = $model_album->getOneClass($param);
  431. Tpl::output('class_info',$class_info);
  432. /**
  433. * 图片信息
  434. */
  435. $param = array();
  436. $param['field'] = array('apic_id','store_id');
  437. $param['value'] = array(intval($_GET['id']),$_SESSION['store_id']);
  438. $pic_info = $model_album->getOnePicById($param);
  439. $pic_info['apic_size'] = sprintf('%.2f',intval($pic_info['apic_size'])/1024);
  440. Tpl::output('pic_info',$pic_info);
  441. self::profile_menu('album_pic_info','pic_info');
  442. Tpl::showpage('store_album.pic_info');
  443. }
  444. /**
  445. * 图片 ajax
  446. */
  447. public function album_ad_ajaxOp(){
  448. if(empty($_GET['class_id']) && empty($_GET['id'])){
  449. exit();
  450. }
  451. $model_album = Model('album');
  452. $return = $model_album->checkAlbum(array('album_pic.store_id'=>$_SESSION['store_id'],'album_pic.apic_id'=>intval($_GET['id'])));
  453. if(!$return){
  454. exit();
  455. }
  456. /**
  457. * 图片列表
  458. */
  459. $param = array();
  460. $param['aclass_id'] = intval($_GET['class_id']);
  461. $param['store_id'] = $_SESSION['store_id'];
  462. $page = new Page();
  463. $each_num = 9;
  464. $page->setEachNum($each_num);
  465. $pic_list = $model_album->getPicList($param,$page);
  466. Tpl::output('pic_list',$pic_list);
  467. Tpl::showpage('store_album.pic_scroll_ajax','null_layout');
  468. }
  469. /**
  470. * 图片删除
  471. */
  472. public function album_pic_delOp(){
  473. if (empty($_POST)) $_POST = $_GET;
  474. if(empty($_POST['id'])) {
  475. showDialog(Language::get('album_parameter_error'));
  476. }
  477. $model_album = Model('album');
  478. if(!empty($_POST['id']) && is_array($_POST['id'])){
  479. $id = "'".implode("','", $_POST['id'])."'";
  480. }else{
  481. $id = "'".intval($_POST['id'])."'";
  482. }
  483. $return = $model_album->checkAlbum(array('album_pic.store_id'=>$_SESSION['store_id'],'in_apic_id'=>$id));
  484. if(!$return){
  485. showDialog(Language::get('album_class_pic_del_lose'));
  486. }
  487. //删除图片
  488. $return = $model_album->delPic($id, $_SESSION['store_id']);
  489. if($return){
  490. showDialog(Language::get('album_class_pic_del_succeed'),'reload','succ');
  491. }else{
  492. showDialog(Language::get('album_class_pic_del_lose'));
  493. }
  494. }
  495. /**
  496. * 移动相册
  497. */
  498. public function album_pic_moveOp(){
  499. /**
  500. * 实例化相册类
  501. */
  502. $model_album = Model('album');
  503. if(chksubmit()){
  504. if(empty($_REQUEST['id'])){
  505. showDialog(Language::get('album_parameter_error'));
  506. }
  507. if(!empty($_REQUEST['id']) && is_array($_REQUEST['id'])){
  508. $_REQUEST['id'] = trim(implode("','", $_REQUEST['id']),',');
  509. }
  510. /**
  511. * 验证封面图片
  512. */
  513. $param = array();
  514. $param['in_apic_id'] = "'".$_REQUEST['id']."'";
  515. $list_pic = $model_album->getClassList($param);
  516. $class_cover = $list_pic['0']['aclass_cover'];
  517. $class_id = $list_pic['0']['aclass_id'];
  518. unset($list_pic);
  519. if($class_cover != ''){
  520. $list_pic = $model_album->getPicList($param);
  521. foreach ($list_pic as $val){
  522. if(str_ireplace('.', '_small.', $val['apic_cover']) == $class_cover){
  523. $model_album->updateClass(array('aclass_cover'=>''),$class_id);
  524. break;
  525. }
  526. }
  527. }
  528. $param = array();
  529. $param['aclass_id'] = $_REQUEST['cid'];
  530. $return = $model_album->updatePic($param,array('in_apic_id'=>"'".$_REQUEST['id']."'"));
  531. if($return){
  532. showDialog(Language::get('album_class_pic_move_succeed'),'reload','succ');
  533. }else{
  534. showDialog(Language::get('album_class_pic_move_lose'));
  535. }
  536. }
  537. $param = array();
  538. $param['album_class.un_aclass_id'] = $_GET['cid'];
  539. $param['album_aclass.store_id'] = $_SESSION['store_id'];
  540. $class_list = $model_album->getClassList($param);
  541. if(isset($_GET['id']) && !empty($_GET['id'])){
  542. Tpl::output('id',$_GET['id']);
  543. }
  544. Tpl::output('class_list',$class_list);
  545. Tpl::showpage('store_album.move','null_layout');
  546. }
  547. /**
  548. * 替换图片
  549. */
  550. public function replace_image_uploadOp() {
  551. $file = $_GET['id'];
  552. $tpl_array = explode('_', $file);
  553. $id = intval(end($tpl_array));
  554. $model_album = Model('album');
  555. $param = array();
  556. $param['field'] = array('apic_id', 'store_id');
  557. $param['value'] = array($id, $_SESSION['store_id']);
  558. $apic_info = $model_album->getOnePicById($param);
  559. if (substr(strrchr($apic_info['apic_cover'], "."), 1) != substr(strrchr($_FILES[$file]["name"], "."), 1)) {
  560. // 后缀名必须相同
  561. $error = L('album_replace_same_type');
  562. if (strtoupper(CHARSET) == 'GBK') {
  563. $error = Language::getUTF8($error);
  564. }
  565. echo json_encode( array('state' => 'false', 'message' => $error) );
  566. exit();
  567. }
  568. $pic_cover = implode(DS, explode(DS, $apic_info['apic_cover'], -1)); // 文件路径
  569. $tmpvar = explode(DS, $apic_info['apic_cover']);
  570. $pic_name = end($tmpvar); // 文件名称
  571. /**
  572. * 上传图片
  573. */
  574. $upload = new UploadFile();
  575. $upload->set('default_dir', ATTACH_GOODS . DS . $_SESSION['store_id'] . DS . $pic_cover);
  576. $upload->set('max_size', C('image_max_filesize'));
  577. $upload->set('thumb_width', GOODS_IMAGES_WIDTH);
  578. $upload->set('thumb_height', GOODS_IMAGES_HEIGHT);
  579. $upload->set('thumb_ext', GOODS_IMAGES_EXT);
  580. $upload->set('file_name', $pic_name);
  581. $return = $upload->upfile($file);
  582. if (!$return) {
  583. // 后缀名必须相同、
  584. if (strtoupper(CHARSET) == 'GBK') {
  585. $error = Language::getUTF8($upload->error);
  586. }
  587. echo json_encode( array('state' => 'false', 'message' => $upload->error) );
  588. exit();
  589. }
  590. /**
  591. * 取得图像大小
  592. */
  593. list($width, $height, $type, $attr) = getimagesize(BASE_UPLOAD_PATH . DS . ATTACH_GOODS . DS . $_SESSION['store_id'] . DS . $apic_info['apic_cover']);
  594. /**
  595. * 更新图片分类
  596. */
  597. $param = array();
  598. $param['apic_size'] = intval($_FILES[$file]['size']);
  599. $param['apic_spec'] = $width . 'x' . $height;
  600. $return = $model_album->updatePic($param, array('apic_id' => $id));
  601. echo json_encode( array('state' => 'true', 'id' => $id) );
  602. exit();
  603. }
  604. /**
  605. * 添加水印
  606. */
  607. public function album_pic_watermarkOp(){
  608. if(empty($_POST['id']) && !is_array($_POST['id'])) {
  609. showDialog(Language::get('album_parameter_error'));
  610. }
  611. $id = trim(implode(',', $_POST['id']),',');
  612. /**
  613. * 实例化图片模型
  614. */
  615. $model_album = Model('album');
  616. $param['in_apic_id'] = $id;
  617. $param['store_id'] = $_SESSION['store_id'];
  618. $wm_list = $model_album->getPicList($param);
  619. $model_store_wm = Model('store_watermark');
  620. $store_wm_info = $model_store_wm->getOneStoreWMByStoreId($_SESSION['store_id']);
  621. if ($store_wm_info['wm_image_name'] == '' && $store_wm_info['wm_text'] == ''){
  622. showDialog(Language::get('album_class_setting_wm'),"index.php?act=store_album&op=store_watermark",'error','CUR_DIALOG.close();');//"请先设置水印"
  623. }
  624. import('libraries.gdimage');
  625. $gd_image = new GdImage();
  626. $gd_image->setWatermark($store_wm_info);
  627. foreach ($wm_list as $v) {
  628. $gd_image->create(BASE_UPLOAD_PATH.DS.ATTACH_GOODS.DS.$_SESSION['store_id'].DS.str_ireplace('.', '_1280.', $v['apic_cover']));//生成有水印的大图
  629. }
  630. showDialog(Language::get('album_pic_plus_wm_succeed'),'reload','succ');
  631. }
  632. /**
  633. * 水印管理
  634. */
  635. public function store_watermarkOp(){
  636. /**
  637. * 读取语言包
  638. */
  639. Language::read('member_store_index');
  640. $model_store_wm = Model('store_watermark');
  641. /**
  642. * 获取会员水印设置
  643. */
  644. $store_wm_info = $model_store_wm->getOneStoreWMByStoreId($_SESSION['store_id']);
  645. /**
  646. * 保存水印配置信息
  647. */
  648. if (chksubmit()){
  649. $param = array();
  650. $param['wm_image_pos'] = $_POST['image_pos'];
  651. $param['wm_image_transition'] = $_POST['image_transition'];
  652. $param['wm_text'] = $_POST['wm_text'];
  653. $param['wm_text_size'] = $_POST['wm_text_size'];
  654. $param['wm_text_angle'] = $_POST['wm_text_angle'];
  655. $param['wm_text_font'] = $_POST['wm_text_font'];
  656. $param['wm_text_pos'] = $_POST['wm_text_pos'];
  657. $param['wm_text_color'] = $_POST['wm_text_color'];
  658. $param['jpeg_quality'] = $_POST['image_quality'];
  659. if (!empty($_FILES['image']['name'])){
  660. $upload = new UploadFile();
  661. $upload->set('default_dir',ATTACH_WATERMARK);
  662. $result = $upload->upfile('image');
  663. if ($result){
  664. $param['wm_image_name'] = $upload->file_name;
  665. /**
  666. * 删除旧水印
  667. */
  668. if (!empty($store_wm_info['wm_image_name'])){
  669. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_WATERMARK.DS.$store_wm_info['wm_image_name']);
  670. }
  671. }else {
  672. showDialog($upload->error);
  673. }
  674. }elseif ($_POST['is_del_image'] == 'ok'){
  675. /**
  676. * 删除水印
  677. */
  678. if (!empty($store_wm_info['wm_image_name'])){
  679. $param['wm_image_name'] = '';
  680. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_WATERMARK.DS.$store_wm_info['wm_image_name']);
  681. }
  682. }
  683. $param['wm_id'] = $store_wm_info['wm_id'];
  684. $result = $model_store_wm->updateStoreWM($param);
  685. if ($result){
  686. showDialog(Language::get('store_watermark_congfig_success'),'reload','succ');
  687. }else {
  688. showDialog(Language::get('store_watermark_congfig_fail'));
  689. }
  690. }
  691. /**
  692. * 获取水印字体
  693. */
  694. $dir_list = array();
  695. readFileList(BASE_RESOURCE_PATH.DS.'font',$dir_list);
  696. if (!empty($dir_list) && is_array($dir_list)){
  697. $fontInfo = array();
  698. include BASE_RESOURCE_PATH.DS.'font'.DS.'font.info.php';
  699. foreach ($dir_list as $value){
  700. $d_array = explode('.',$value);
  701. if (strtolower(end($d_array)) == 'ttf' && file_exists($value)){
  702. $dir_array = explode('/', $value);
  703. $value = array_pop($dir_array);
  704. $tmp = explode('.',$value);
  705. $file_list[$tmp[0]] = $fontInfo[$tmp[0]];
  706. }
  707. }
  708. /**
  709. * 转码
  710. */
  711. if (strtoupper(CHARSET) == 'GBK'){
  712. $file_list = Language::getGBK($file_list);
  713. }
  714. Tpl::output('file_list',$file_list);
  715. }
  716. if (empty($store_wm_info)){
  717. /**
  718. * 新建店铺水印设置信息
  719. */
  720. $model_store_wm->addStoreWM(array(
  721. 'wm_text_font'=>'default',
  722. 'store_id'=>$_SESSION['store_id']
  723. ));
  724. $store_wm_info = $model_store_wm->getOneStoreWMByStoreId($_SESSION['store_id']);
  725. }
  726. self::profile_menu('album','watermark');
  727. Tpl::output('store_wm_info',$store_wm_info);
  728. Tpl::showpage('store_watermark.form');
  729. } /**
  730. * 上传图片
  731. *
  732. */
  733. public function image_uploadOp() {
  734. $store_id = $_SESSION ['store_id'];
  735. if (! empty ( $_POST ['category_id'] )) {
  736. $category_id = intval ( $_POST ['category_id'] );
  737. } else {
  738. $error = '上传 图片失败';
  739. if (strtoupper ( CHARSET ) == 'GBK') {
  740. $error = Language::getUTF8($error);
  741. }
  742. $data['state'] = 'false';
  743. $data['message'] = $error;
  744. $data['origin_file_name'] = $_FILES["file"]["name"];
  745. echo json_encode($data);
  746. exit();
  747. }
  748. // 判断图片数量是否超限
  749. $album_limit = $this->store_grade['sg_album_limit'];
  750. if ($album_limit > 0) {
  751. $album_count = Model('album')->getCount(array('store_id' => $store_id));
  752. if ($album_count >= $album_limit) {
  753. // 目前并不出该提示,而是提示上传0张图片
  754. $error = L('store_goods_album_climit');
  755. if (strtoupper ( CHARSET ) == 'GBK') {
  756. $error = Language::getUTF8($error);
  757. }
  758. $data['state'] = 'false';
  759. $data['message'] = $error;
  760. $data['origin_file_name'] = $_FILES["file"]["name"];
  761. $data['state'] = 'true';
  762. echo json_encode($data);
  763. exit();
  764. }
  765. }
  766. /**
  767. * 上传图片
  768. */
  769. $upload = new UploadFile();
  770. $upload->set('default_dir', ATTACH_GOODS . DS . $store_id . DS . $upload->getSysSetPath());
  771. $upload->set('max_size', C('image_max_filesize'));
  772. $upload->set('thumb_width', GOODS_IMAGES_WIDTH);
  773. $upload->set('thumb_height', GOODS_IMAGES_HEIGHT);
  774. $upload->set('thumb_ext', GOODS_IMAGES_EXT);
  775. $upload->set('fprefix', $store_id);
  776. $result = $upload->upfile('file');
  777. if ($result) {
  778. $pic = $upload->getSysSetPath() . $upload->file_name;
  779. $pic_thumb = $upload->getSysSetPath() . $upload->thumb_image;
  780. } else {
  781. // 目前并不出该提示
  782. $error = $upload->error;
  783. if (strtoupper(CHARSET) == 'GBK') {
  784. $error = Language::getUTF8($error);
  785. }
  786. $data['state'] = 'false';
  787. $data['message'] = $error;
  788. $data['origin_file_name'] = $_FILES["file"]["name"];
  789. echo json_encode($data);
  790. exit();
  791. }
  792. list($width, $height, $type, $attr) = getimagesize(BASE_UPLOAD_PATH . DS . ATTACH_GOODS . DS . $store_id . DS . $pic);
  793. $image = explode('.', $_FILES["file"]["name"]);
  794. if (strtoupper(CHARSET) == 'GBK') {
  795. $image['0'] = Language::getGBK($image['0']);
  796. }
  797. $insert_array = array();
  798. $insert_array['apic_name'] = $image['0'];
  799. $insert_array['apic_tag'] = '';
  800. $insert_array['aclass_id'] = $category_id;
  801. $insert_array['apic_cover'] = $pic;
  802. $insert_array['apic_size'] = intval($_FILES['file']['size']);
  803. $insert_array['apic_spec'] = $width . 'x' . $height;
  804. $insert_array['upload_time'] = time();
  805. $insert_array['store_id'] = $store_id;
  806. $result = Model('upload_album')->add($insert_array);
  807. $data = array ();
  808. $data['file_id'] = $result;
  809. $data['file_name'] = $pic;
  810. $data['origin_file_name'] = $_FILES["file"]["name"];
  811. $data['file_path'] = $pic;
  812. $data['instance'] = $_GET['instance'];
  813. $data['state'] = 'true';
  814. /**
  815. * 整理为json格式
  816. */
  817. $output = json_encode ( $data );
  818. echo $output;
  819. }
  820. /**
  821. * 用户中心右边,小导航
  822. *
  823. * @param string $menu_type 导航类型
  824. * @param string $menu_key 当前导航的menu_key
  825. * @return
  826. */
  827. private function profile_menu($menu_type,$menu_key=''){
  828. $menu_array = array();
  829. switch ($menu_type) {
  830. case 'album':
  831. $menu_array = array(
  832. 1=>array('menu_key'=>'album','menu_name'=>Language::get('nc_member_path_my_album'),'menu_url'=>'index.php?act=store_album'),
  833. 2=>array('menu_key'=>'watermark','menu_name'=>Language::get('nc_member_path_watermark'),'menu_url'=>'index.php?act=store_album&op=store_watermark')
  834. );
  835. break;
  836. case 'album_pic':
  837. $menu_array = array(
  838. 1=>array('menu_key'=>'album','menu_name'=>Language::get('nc_member_path_my_album'),'menu_url'=>'index.php?act=store_album'),
  839. 2=>array('menu_key'=>'pic_list','menu_name'=>Language::get('nc_member_path_album_pic_list'),'menu_url'=>'index.php?act=store_album&op=album_pic_list&id='.intval($_GET['id'])),
  840. 3=>array('menu_key'=>'watermark','menu_name'=>Language::get('nc_member_path_watermark'),'menu_url'=>'index.php?act=store_album&op=store_watermark')
  841. );
  842. break;
  843. case 'album_pic_info':
  844. $menu_array = array(
  845. 1=>array('menu_key'=>'album','menu_name'=>Language::get('nc_member_path_my_album'),'menu_url'=>'index.php?act=store_album'),
  846. 2=>array('menu_key'=>'pic_info','menu_name'=>Language::get('nc_member_path_album_pic_info'),'menu_url'=>'index.php?act=store_album&op=album_pic_info&id='.intval($_GET['id']).'&class_id='.intval($_GET['class_id'])),
  847. 3=>array('menu_key'=>'watermark','menu_name'=>Language::get('nc_member_path_watermark'),'menu_url'=>'index.php?act=store_album&op=store_watermark')
  848. );
  849. break;
  850. }
  851. Tpl::output('member_menu',$menu_array);
  852. Tpl::output('menu_key',$menu_key);
  853. }
  854. /**
  855. * ajax返回图片信息
  856. */
  857. public function ajax_change_imgmessageOp(){
  858. $str_array = explode('/', $_GET['url']);
  859. $str = array_pop($str_array);
  860. $str = explode('.', $str);
  861. /**
  862. * 实例化图片模型
  863. */
  864. $model_album = Model('album');
  865. $param = array();
  866. $search = explode(',', GOODS_IMAGES_EXT);
  867. $param['like_cover'] = str_ireplace($search, '', $str['0']);
  868. $pic_info = $model_album->getPicList($param);
  869. /**
  870. * 小图尺寸
  871. */
  872. list($width, $height, $type, $attr) = getimagesize(BASE_UPLOAD_PATH.DS.ATTACH_GOODS.DS.$_SESSION['store_id'].DS.$pic_info['0']['apic_cover']);
  873. if(strtoupper(CHARSET) == 'GBK'){
  874. $pic_info['0']['apic_name'] = Language::getUTF8($pic_info['0']['apic_name']);
  875. }
  876. echo json_encode(array(
  877. 'img_name'=>$pic_info['0']['apic_name'],
  878. 'default_size'=>sprintf('%.2f',intval($pic_info['0']['apic_size'])/1024),
  879. 'default_spec'=>$pic_info['0']['apic_spec'],
  880. 'upload_time'=>date('Y-m-d',$pic_info['0']['upload_time']),
  881. 'small_spec'=>$width.'x'.$height
  882. ));
  883. }
  884. /**
  885. * ajax验证名称时候重复
  886. */
  887. public function ajax_check_class_nameOp(){
  888. $ac_name = trim($_GET['ac_name']);
  889. if($ac_name == ''){
  890. echo 'true';die;
  891. }
  892. $model_album = Model('album');
  893. $param = array();
  894. $param['field'] = array('aclass_name','store_id');
  895. $param['value'] = array($ac_name,$_SESSION['store_id']);
  896. $class_info = $model_album->getOneClass($param);
  897. if(!empty($class_info)){
  898. echo 'false';die;
  899. }else{
  900. echo 'true';die;
  901. }
  902. }
  903. }
  904. ?>