PageRenderTime 58ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/app/controllers/Adv.php

https://github.com/xw2423/nForum
PHP | 187 lines | 169 code | 13 blank | 5 comment | 46 complexity | 7c11a27337d2543cc0fadae17c3a8509 MD5 | raw file
  1. <?php
  2. /**
  3. * Adv controller for nforum
  4. *
  5. * @author xw
  6. */
  7. load(array("model/adv"));
  8. class AdvController extends NF_Controller {
  9. private $_type;
  10. public function init(){
  11. parent::init();
  12. if(!NF_Session::getInstance()->isLogin)
  13. $this->_stop();
  14. $u = User::getInstance();
  15. if(!in_array($u->userid, c("adv.id")))
  16. $this->_stop();
  17. if(!isset($this->params['type'])
  18. || !in_array(intval($this->params['type']), range(1, 4)))
  19. $this->_type = 1;
  20. else
  21. $this->_type = intval($this->params['type']);
  22. $this->getRequest()->front = true;
  23. }
  24. public function indexAction(){
  25. $this->js[] = "forum.adv.js";
  26. $this->css[] = "adv.css";
  27. $p = 1;
  28. if(isset($this->params['url']['p']))
  29. $p = $this->params['url']['p'];
  30. $adv = new Adv();
  31. $adv->type = $this->_type;
  32. $search = array();
  33. if(isset($this->params['url']['remark'])
  34. && trim($this->params['url']['remark']) != ''){
  35. $search['remark'] = $adv->search = trim($this->params['url']['remark']);
  36. }
  37. if(isset($this->params['url']['sTime'])
  38. && trim($this->params['url']['sTime']) != '')
  39. $search['sTime'] = $adv->search_start = trim($this->params['url']['sTime']);
  40. if(isset($this->params['url']['eTime'])
  41. && trim($this->params['url']['eTime']) != '')
  42. $search['eTime'] = $adv->search_end = trim($this->params['url']['eTime']);
  43. load("inc/pagination");
  44. $page = new Pagination($adv, 30);
  45. $res = $page->getPage($p);
  46. $ret['page'] = $page->getCurPage();
  47. $ret['total'] = $adv->getTotalNum();
  48. $ret['aPath'] = c("adv.path");
  49. foreach($res as $v){
  50. $ret['info'][] = $v;
  51. }
  52. $this->set($ret);
  53. $this->set($search);
  54. $this->set("dir", c('adv.path'));
  55. $this->set("type", ($this->_type == 1 || $this->_type == 2)?true:false);
  56. $this->set("advType", $this->_type);
  57. $this->set("hasPrivilege", isset($res[0]['privilege']) && '1' == $res[0]['privilege']);
  58. $query = '';
  59. foreach($search as $k=>$v){
  60. $query .= '&' . $k . '=' . $v;
  61. }
  62. $this->set("pageBar", $page->getPageBar($p, "?p=%page%" . $query));
  63. $this->set("pagination", $page);
  64. }
  65. public function setAction(){
  66. $p = 1;
  67. if(isset($this->params['form']['p']))
  68. $p = $this->params['form']['p'];
  69. $url = $sTime = $eTime = $remark = "";
  70. $privilege = $weight = $switch = 0;
  71. if(!isset($this->params['form']['aid']))
  72. $this->redirect("/adv/{$this->_type}?p=$p");
  73. $aid = $this->params['form']['aid'];
  74. if(isset($this->params['form']['url']))
  75. $url = $this->params['form']['url'];
  76. if(isset($this->params['form']['sTime']))
  77. $sTime = $this->params['form']['sTime'];
  78. if(isset($this->params['form']['eTime']))
  79. $eTime = $this->params['form']['eTime'];
  80. if(isset($this->params['form']['privilege']))
  81. $privilege = 1;
  82. if(isset($this->params['form']['switch']))
  83. $switch = 1;
  84. if(isset($this->params['form']['weight']))
  85. $weight = $this->params['form']['weight'];
  86. if(isset($this->params['form']['remark']))
  87. $remark = $this->params['form']['remark'];
  88. $adv = new Adv();
  89. $adv->type = $this->_type;
  90. $adv->update($aid, $url, $sTime, $eTime, $switch, $weight, $privilege, $remark);
  91. $this->redirect("/adv/{$this->_type}?p=$p");
  92. }
  93. public function delAction(){
  94. $p = 1;
  95. if(isset($this->params['form']['p']))
  96. $p = $this->params['form']['p'];
  97. if(!isset($this->params['form']['aid']))
  98. $this->redirect("/adv/{$this->_type}?p=$p");
  99. $aid = $this->params['form']['aid'];
  100. $adv = new Adv();
  101. $adv->type = $this->_type;
  102. $file = $adv->delete($aid);
  103. @unlink(WWW . c('adv.path') . DS . $file);
  104. $this->redirect("/adv/{$this->_type}?p=$p");
  105. }
  106. public function addAction(){
  107. $p = 1;
  108. if(isset($this->params['form']['p']))
  109. $p = $this->params['form']['p'];
  110. $url = $sTime = $eTime = $remark = "";
  111. $privilege = $weight = $switch = 0;
  112. if (isset($this->params['form']['img'])) {
  113. $errno = $this->params['form']['img']['error'];
  114. } else {
  115. $errno = UPLOAD_ERR_PARTIAL;
  116. }
  117. switch($errno){
  118. case UPLOAD_ERR_OK:
  119. $tmpFile = $this->params['form']['img']['tmp_name'];
  120. $tmpName = $this->params['form']['img']['name'];
  121. if (!is_uploaded_file($tmpFile)) {
  122. $this->redirect("/adv/{$this->_type}?p=$p");
  123. }
  124. $ext = strrchr($tmpName, '.');
  125. $file = date("Y-m-d-H-i-s", time()) . $ext;
  126. $dir = c('adv.path');
  127. $path = $dir . DS . $file;
  128. $fullDir = WWW . $dir;
  129. $fullPath = WWW . $path;
  130. if(!is_dir($fullDir)){
  131. @mkdir($fullDir);
  132. }
  133. if(is_file($fullPath)){
  134. $this->redirect("/adv/{$this->_type}?p=$p");
  135. }
  136. $imgInf = @getimagesize($tmpFile);
  137. if($imgInf === false){
  138. $this->redirect("/adv/{$this->_type}?p=$p");
  139. }
  140. if(!in_array($imgInf[2], range(1, 3))){
  141. $this->redirect("/adv/{$this->_type}?p=$p");
  142. }
  143. if (!move_uploaded_file($tmpFile, $fullPath)) {
  144. $this->redirect("/adv/{$this->_type}?p=$p");
  145. }
  146. break;
  147. case UPLOAD_ERR_INI_SIZE:
  148. case UPLOAD_ERR_FORM_SIZE:
  149. case UPLOAD_ERR_PARTIAL:
  150. case UPLOAD_ERR_NO_FILE:
  151. $this->redirect("/adv/{$this->_type}?p=$p");
  152. default:
  153. $this->redirect("/adv/{$this->_type}?p=$p");
  154. }
  155. if(isset($this->params['form']['url']))
  156. $url = $this->params['form']['url'];
  157. if(isset($this->params['form']['sTime']))
  158. $sTime = $this->params['form']['sTime'];
  159. if(isset($this->params['form']['eTime']))
  160. $eTime = $this->params['form']['eTime'];
  161. if(isset($this->params['form']['privilege']))
  162. $privilege = 1;
  163. if(isset($this->params['form']['switch']))
  164. $switch = 1;
  165. if(isset($this->params['form']['weight']))
  166. $weight = $this->params['form']['weight'];
  167. if(isset($this->params['form']['remark']))
  168. $remark = $this->params['form']['remark'];
  169. $adv = new Adv();
  170. $adv->type = $this->_type;
  171. $adv->add($this->_type, $file, $url, $sTime, $eTime, $switch, $weight, $privilege, $remark);
  172. $this->redirect("/adv/{$this->_type}?p=$p");
  173. }
  174. }