PageRenderTime 31ms CodeModel.GetById 7ms RepoModel.GetById 0ms app.codeStats 1ms

/branches/modules/planet/planet.view.php

http://xe-planet.googlecode.com/
PHP | 430 lines | 290 code | 74 blank | 66 comment | 49 complexity | a4d6a43f99a96b4920d2d1e11f37d1d4 MD5 | raw file
  1. <?php
  2. /**
  3. * @class planetView
  4. * @author sol (sol@ngleader.com)
  5. * @brief planet ??? View class
  6. **/
  7. class planetView extends planet {
  8. /**
  9. * @brief ???
  10. **/
  11. function init() {
  12. if(!preg_match('/planet/i', $this->act) && !in_array($this->act, array('favorite','countContentTagSearch','dispReplyList','rss'))) return;
  13. /**
  14. * @brief ??? ??? ?? ??? view??? ???? ????? load?? Context setting
  15. **/
  16. $oPlanetModel = &getModel('planet');
  17. $oModuleModel = &getModel('module');
  18. $planet_config = $oPlanetModel->getPlanetConfig();
  19. if(count($this->module_info)) foreach($this->module_info as $key => $val) if(!isset($planet_config->{$key})) $planet_config->{$key} = $val;
  20. Context::set('module_info',$this->module_info = $planet_config);
  21. $current_module_info = Context::get('current_module_info');
  22. $current_module_info->layout_srl = $this->module_info->layout_srl = $this->module_info->layout_srl;
  23. Context::set('current_module_info', $current_module_info);
  24. /**
  25. * ??? ??? ??? ?? ??? ???? ??
  26. **/
  27. if(!$this->module_info->skin) $this->module_info->skin = $this->module_info->planet_default_skin;
  28. $template_path = sprintf("%sskins/%s/",$this->module_path, $this->module_info->skin);
  29. $this->setTemplatePath($template_path);
  30. /**
  31. * myplanet(??? ???), planet(??? ???? ???)? Context setting ?? ?? ??? ??
  32. **/
  33. // myplanet ? ??? Context::set(), $myplanet->isExists()? ??? ?? ??? ?? ??
  34. Context::set('myplanet', $this->myplanet = $oPlanetModel->getMemberPlanet());
  35. // ?? mid? ???? ?? (??? ?? ????? ?? $planet ? ?? ??, PlanetInfo::isHome() ??
  36. Context::set('planet', $this->planet = $oPlanetModel->getPlanet($this->module_srl));
  37. // ?? ??? ? ?? ?? ??? ???? ??? ?? ?? ???
  38. if($this->planet->isHome() && !in_array($this->act, array('dispPlanetCreate','dispPlanetLogin','dispPlanetTagSearch','dispPlanetContentSearch','dispPlanetContentTagSearch','rss')) ) {
  39. Context::set('act',$this->act = 'dispPlanetHome');
  40. }
  41. // ???? ?? ???? ???? ??? ??
  42. if(!Context::get('mid')) Context::set('mid', $this->module_info->mid, true);
  43. }
  44. /**
  45. * @brief ???
  46. **/
  47. function dispPlanetLogin(){
  48. $this->setTemplateFile('login');
  49. }
  50. /**
  51. * @brief ??? ??
  52. **/
  53. function dispPlanetCreate() {
  54. if(!Context::get('is_logged')) return $this->dispPlanetMessage("msg_not_logged");
  55. if(!$this->grant->create) return $this->dispPlanetMessage("msg_not_permitted");
  56. if($this->myplanet->isExists()) return $this->dispPlanetMessage("msg_planet_exists");
  57. $this->setTemplateFile('create');
  58. }
  59. /**
  60. * @biref ??? ?? ???
  61. **/
  62. function dispPlanetHome() {
  63. // ???? ?? ??? ??? ?? ?? (??? ??? ??/???? ?? ???? ??)
  64. $last_date = $this->planet->getContentLastDay();
  65. $date = Context::get('date');
  66. if(!$date || $date > $last_date) $date = $last_date;
  67. Context::set('date', $date);
  68. Context::set('prev_date', $this->planet->getPrevDate($date));
  69. Context::set('next_date', $this->planet->getNextDate($date));
  70. // ?????? tagtab? ??? ?? set type ??
  71. $type = Context::get('type');
  72. if(!$type){
  73. if(is_array($this->module_info->tagtab) && $this->module_info->tagtab[0]){
  74. $type = 'tagtab';
  75. Context::set('type',$type);
  76. Context::set('tagtab',$this->module_info->tagtab[0]);
  77. }else{
  78. $type = 'all';
  79. Context::set('type',$type);
  80. }
  81. }
  82. $tagtab = null;
  83. if($type == 'tagtab'){
  84. $tagtab = Context::get('tagtab');
  85. $page = Context::get('page');
  86. $oPlanetModel = &getModel('planet');
  87. $sort_index = 'documents.list_order';
  88. $order = 'asc';
  89. }else{
  90. switch($type) {
  91. case 'wantyou':
  92. $sort_index = 'documents.voted_count';
  93. $order = 'desc';
  94. break;
  95. case 'best':
  96. $sort_index = 'documents.comment_count';
  97. $order = 'desc';
  98. break;
  99. case 'all':
  100. $sort_index = 'documents.list_order';
  101. $order = 'asc';
  102. break;
  103. }
  104. $page = Context::get('page');
  105. $oPlanetModel = &getModel('planet');
  106. }
  107. $output = $oPlanetModel->getNewestContentList(null, $date, $page, 10, $sort_index, $order,$tagtab );
  108. Context::set('content_list', $output->data);
  109. Context::set('total_count', $output->total_count);
  110. Context::set('total_page', $output->total_page);
  111. Context::set('page', $output->page);
  112. Context::set('page_navigation', $output->page_navigation);
  113. $args->date = $date;
  114. $output = executeQuery('planet.getTotalContents', $args);
  115. Context::set('total_content', $output->data->count);
  116. $args->voted_count = 1;
  117. $output = executeQuery('planet.getTotalContents', $args);
  118. Context::set('total_wantyou', $output->data->count);
  119. unset($args->voted_count);
  120. $args->comment_count = 1;
  121. $output = executeQuery('planet.getTotalContents', $args);
  122. Context::set('total_best', $output->data->count);
  123. // tagtab? ???
  124. if(is_array($this->module_info->tagtab) && $this->module_info->tagtab[0]){
  125. $tagtab_list = array();
  126. foreach($this->module_info->tagtab as $key => $val){
  127. $args->tag = $val;
  128. $output = executeQuery('planet.getTotalTagSearchContents', $args);
  129. $tagtab_list[$val] = $output->data->count;
  130. }
  131. Context::set('tagtab_list', $tagtab_list);
  132. }
  133. // tagtab_after? ???
  134. if(is_array($this->module_info->tagtab_after) && $this->module_info->tagtab_after[0]){
  135. $tagtab_after_list = array();
  136. foreach($this->module_info->tagtab_after as $key => $val){
  137. $args->tag = $val;
  138. $output = executeQuery('planet.getTotalTagSearchContents', $args);
  139. $tagtab_after_list[$val] = $output->data->count;
  140. }
  141. Context::set('tagtab_after_list', $tagtab_after_list);
  142. }
  143. // RSS ??
  144. if($this->module_info->use_rss=='Y') Context::set('rss_url', getUrl('','mid',$this->module_info->mid,'act','rss'));
  145. // ??? ??
  146. $this->setTemplateFile('main');
  147. }
  148. /**
  149. * @brief ?? ???
  150. **/
  151. function dispPlanet(){
  152. $oPlanetModel = &getModel('planet');
  153. // ? ?? ??? ??? ??
  154. if(Context::get('document_srl')) {
  155. $oDocumentModel = &getModel('document');
  156. $oDocument = $oDocumentModel->getDocument(Context::get('document_srl'));
  157. }
  158. // ???? ?? ??? ??? ?? ?? (??? ??? ??/???? ?? ???? ??)
  159. if($oDocument && $oDocument->isExists()) {
  160. $date = $oDocument->getRegdate('Ymd');
  161. } else {
  162. $last_date = $this->planet->getContentLastDay();
  163. $date = Context::get('date');
  164. if(!$date || $date > $last_date) $date = $last_date;
  165. }
  166. Context::set('date', $date);
  167. Context::set('prev_date', $this->planet->getPrevDate($date));
  168. Context::set('next_date', $this->planet->getNextDate($date));
  169. // ?? ???? ? ??
  170. $page = Context::get('page');
  171. $type = Context::get('type');
  172. switch($type) {
  173. case 'catch':
  174. $output = $this->planet->getCatchContentList($page);
  175. break;
  176. case 'fishing':
  177. $output = $this->planet->getFishingContentList($page);
  178. break;
  179. case 'calling':
  180. $output = $this->planet->getCallingContentList($page);
  181. break;
  182. case 'interest':
  183. $output = $this->planet->getInterestTagContentList($date, $page);
  184. break;
  185. default :
  186. $sort_index = 'documents.list_order';
  187. $order = 'asc';
  188. $output = $this->planet->getNewestContentList($date, $page, 10,$sort_index,$order);
  189. break;
  190. }
  191. Context::set('content_list', $output->data);
  192. Context::set('total_count', $output->total_count);
  193. Context::set('total_page', $output->total_page);
  194. Context::set('page', $output->page);
  195. Context::set('page_navigation', $output->page_navigation);
  196. // ??? ?? ? ?
  197. $args->date = $date;
  198. $args->module_srl = $this->planet->getModuleSrl();
  199. $output = executeQuery('planet.getTotalContents', $args);
  200. Context::set('total_content', $output->data->count);
  201. $args->regdate = date('Ymd');
  202. $output = executeQuery('planet.getCallingTodayContentCount', $args);
  203. Context::set('total_calling', $output->data->count);
  204. unset($args->regdate);
  205. // ?? ? ?
  206. $output = executeQuery('planet.getCatchContentCount', $args);
  207. Context::set('total_catch', $output->data->count);
  208. // ?? ? ?
  209. $output = executeQuery('planet.getFishingContentCount', $args);
  210. Context::set('total_fishing', $output->data->count);
  211. // ???? ?? ????
  212. $memo_output = $oPlanetModel->getMemoList($this->module_srl);
  213. Context::set('memo_list', $memo_output->data);
  214. Context::set('memo_navigation', $memo_output->page_navigation);
  215. // ???? ???? ????
  216. $interest_tags = $oPlanetModel->getInterestTags($this->module_srl);
  217. Context::set('interest_tags', $interest_tags);
  218. // ???? ??? ??
  219. Context::setBrowserTitle($this->planet->getPlanetTitle().' - '.$this->planet->getBrowserTitle());
  220. // ??? ??
  221. $this->setTemplateFile('myPlanet');
  222. }
  223. /**
  224. * @brief ???? ??
  225. **/
  226. function favorite() {
  227. $oPlanetModel = &getModel('planet');
  228. // ?? ???? ??? ??
  229. $planet = $oPlanetModel->getPlanet($this->module_srl);
  230. Context::set('planet', $planet);
  231. // ?????? ???
  232. $logged_info = Context::get('logged_info');
  233. Context::set('isMyPlanet', $planet->getMemberSrl() == $logged_info->member_srl);
  234. // ???? ?? ????
  235. $memo_output = $oPlanetModel->getMemoList($this->module_srl);
  236. Context::set('memo_list', $memo_output->data);
  237. Context::set('memo_navigation', $memo_output->page_navigation);
  238. // ???? ???? ????
  239. $interest_tags = $oPlanetModel->getInterestTags($this->module_srl);
  240. Context::set('interest_tags', $interest_tags);
  241. // ???? ??? ??
  242. Context::setBrowserTitle($planet->getPlanetTitle().' - '.$planet->getBrowserTitle());
  243. // ? ???? ?? ?? ??? ???? ?? ???? ??
  244. $myplanet = Context::get('myplanet');
  245. if(Context::get('isMyPlanet') || $oPlanetModel->isInsertedFavorite($myplanet->module_srl, $this->module_srl)) {
  246. Context::set('myFavoritePlanet',true);
  247. } else {
  248. Context::set('myFavoritePlanet',false);
  249. }
  250. // ?? ????
  251. $page = Context::get('page');
  252. $output = $oPlanetModel->getFavoriteContentList($this->module_srl, $page, 10);
  253. Context::set('content_list', $output->data);
  254. Context::set('total_count', $output->total_count);
  255. Context::set('total_page', $output->total_page);
  256. Context::set('page', $output->page);
  257. Context::set('page_navigation', $output->page_navigation);
  258. // ??? ??
  259. $this->setTemplateFile('favorite');
  260. }
  261. function dispPlanetContentTagSearch(){
  262. $keyword = urldecode(Context::get('keyword'));
  263. $page = Context::get('page');
  264. if(!$this->planet->isHome()) $module_srl = $this->module_srl;
  265. else $module_srl = null;
  266. $oPlanetModel = &getModel('planet');
  267. Context::set('search_result', $oPlanetModel->getSearchResultCount($module_srl, $keyword));
  268. if($keyword) {
  269. $output = $oPlanetModel->getContentList($module_srl,'tag',$keyword, $page, 10);
  270. Context::set('content_list', $output->data);
  271. Context::set('total_count', $output->total_count);
  272. Context::set('total_page', $output->total_page);
  273. Context::set('page', $output->page);
  274. Context::set('page_navigation', $output->page_navigation);
  275. }
  276. // ??? ??
  277. $this->setTemplateFile('search');
  278. }
  279. function dispPlanetContentSearch(){
  280. $keyword = urldecode(Context::get('keyword'));
  281. $page = Context::get('page');
  282. if(!$this->planet->isHome()) $module_srl = $this->module_srl;
  283. else $module_srl = null;
  284. $oPlanetModel = &getModel('planet');
  285. Context::set('search_result', $oPlanetModel->getSearchResultCount($module_srl, $keyword));
  286. if($keyword) {
  287. $output = $oPlanetModel->getContentList($module_srl,'content',$keyword, $page, 10);
  288. Context::set('content_list', $output->data);
  289. Context::set('total_count', $output->total_count);
  290. Context::set('total_page', $output->total_page);
  291. Context::set('page', $output->page);
  292. Context::set('page_navigation', $output->page_navigation);
  293. }
  294. // ??? ??
  295. $this->setTemplateFile('search');
  296. }
  297. function dispPlanetTagSearch(){
  298. $keyword = urldecode(Context::get('keyword'));
  299. $page = Context::get('page');
  300. if(!$this->planet->isHome()) $module_srl = $this->module_srl;
  301. else $module_srl = null;
  302. $oPlanetModel = &getModel('planet');
  303. Context::set('search_result', $oPlanetModel->getSearchResultCount($module_srl, $keyword));
  304. if($keyword) {
  305. $output = $oPlanetModel->getPlanetTagList($keyword, $page, 10);
  306. Context::set('planet_list', $output->data);
  307. Context::set('total_count', $output->total_count);
  308. Context::set('total_page', $output->total_page);
  309. Context::set('page', $output->page);
  310. Context::set('page_navigation', $output->page_navigation);
  311. }
  312. // ??? ??
  313. $this->setTemplateFile('search_planet');
  314. }
  315. function dispReplyList(){
  316. $page = Context::get('page');
  317. $document_srl = Context::get('document_srl');
  318. $oPlanetModel = &getModel('planet');
  319. $output = $oPlanetModel->getReplyList($document_srl,$page);
  320. Context::set('reply_list',$output->data);
  321. }
  322. function dispPlanetMessage($msg_code) {
  323. $msg = Context::getLang($msg_code);
  324. if(!$msg) $msg = $msg_code;
  325. Context::set('message', $msg);
  326. $this->setTemplateFile('message');
  327. }
  328. /**
  329. * @brief rss
  330. **/
  331. function rss() {
  332. $oRss = &getView('rss');
  333. $oRssModel = &getModel('rss');
  334. $oDocumentModel = &getModel('document');
  335. if($this->planet->isHome()) {
  336. if($this->module_info->use_rss!='Y') return new Object(-1,'msg_rss_is_disabled');
  337. } else {
  338. $rss_config = $oRssModel->getRssModuleConfig($this->module_srl);
  339. if($rss_config->open_rss != 'Y') return new Object(-1,'msg_rss_is_disabled');
  340. $args->module_srl = $this->module_srl;
  341. }
  342. $output = executeQueryArray('planet.getRssList', $args);
  343. if($output->data) {
  344. foreach($output->data as $key => $val) {
  345. unset($obj);
  346. $obj = new DocumentItem(0);
  347. $obj->setAttribute($val);
  348. $document_list[] = $obj;
  349. }
  350. }
  351. $oRss->rss($document_list, $this->planet->getBrowserTitle());
  352. $this->setTemplatePath($oRss->getTemplatePath());
  353. $this->setTemplateFile($oRss->getTemplateFile());
  354. }
  355. }
  356. ?>