category.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. <?php
  2. define('IN_SMT', true);
  3. define('CURSCRIPT', 'category');
  4. define('IN_MYMPS', true);
  5. require_once dirname(__FILE__) . '/include/global.php';
  6. require_once MYMPS_DATA . '/config.php';
  7. require_once MYMPS_DATA . '/config.db.php';
  8. require_once MYMPS_INC . '/db.class.php';
  9. $catid = isset($catid) ? intval($catid) : 0;
  10. $areaid = isset($areaid) ? intval($areaid) : 0;
  11. $page = isset($page) ? intval($page) : 1;
  12. ifsiteopen();
  13. runcron();
  14. $seo = $seo ? $seo : get_seoset();
  15. $rewrite = $seo['seo_force_category'];
  16. if ($rewrite != 'active') {
  17. $mayimobile = get_mobile_settings();
  18. $mayimobile['mobiledomain'] = $mayimobile['mobiledomain'] ? $mayimobile['mobiledomain'] : $mymps_global['SiteUrl'] . '/m';
  19. $mayimobile['mobileuri'] = $mayimobile['mobiledomain'] . ($_SERVER['HTTP_X_ORIGINAL_URL'] ? $_SERVER['HTTP_X_ORIGINAL_URL'] : $_SERVER['REQUEST_URI']);
  20. if ($ifmobile) {
  21. write_msg('', $mayimobile['mobileuri']);
  22. exit();
  23. }
  24. }
  25. if ($Catid && $rewrite == 'rewrite_py') {
  26. $detail = explode('/', $Catid);
  27. $dir_typename = $detail[0];
  28. $cat_dir = array_flip(get_category_dir());
  29. $catid = $cat_dir[$dir_typename];
  30. if ($detail[1]) {
  31. $detailc = explode('-', $detail[1]);
  32. for ($i = 0; $i < count($detailc); $i++) {
  33. $_GET[$detailc[$i]] = ${$detailc[$i]} = str_replace(array('#@#', '#!#'), array('-', '/'), $detailc[++$i]);
  34. }
  35. extract($_GET);
  36. }
  37. $cat_dir = $Catid = $detail = $detailc = NULL;
  38. }
  39. else {
  40. if ($CAtid && $rewrite == 'rewrite') {
  41. $detail = explode('-', $CAtid);
  42. $catid = $detail[1];
  43. if ($detail[2]) {
  44. for ($i = 2; $i < count($detail); $i++) {
  45. $_GET[$detail[$i]] = ${$detail[$i]} = str_replace(array('#@#', '#!#'), array('-', '/'), $detail[++$i]);
  46. }
  47. extract($_GET);
  48. }
  49. $CAtid = $detail = NULL;
  50. }
  51. }
  52. $cache = get_cache_config();
  53. if (1 < $page) {
  54. $cache['list']['time'] = false;
  55. }
  56. $sq = $s = '';
  57. if (0 < $catid) {
  58. !($cat = get_cat_info($catid)) && write_msg('您所指定的栏目不存在或者已被删除!', $mymps_global['SiteUrl']);
  59. $allow_identifier = allow_identifier();
  60. $allow_identifier = $allow_identifier[$cat['modid']]['identifier'];
  61. $allow_identifier = is_array($allow_identifier) ? $allow_identifier : array();
  62. $allow_identifiers = $rewrite == 'rewrite_py' ? array_merge(array('areaid'), $allow_identifier) : array_merge(array('catid', 'areaid'), $allow_identifier);
  63. if (1 < $cat['modid']) {
  64. $s = '';
  65. foreach (${$_request} as $key => $val) {
  66. if (in_array($key, $allow_identifier) && !empty(${$key})) {
  67. $val = explode('~', $val);
  68. $val[0] = $val[0] ? intval($val[0]) : '';
  69. $val[1] = $val[1] ? intval($val[1]) : '';
  70. if ($val[1]) {
  71. $sq .= ' AND g.`' . $key . '` <= \'' . $val[1] . '\' AND g.`' . $key . '` >= \'' . $val[0] . '\'';
  72. }
  73. else {
  74. if ($val[0] && 0 < $val[1]) {
  75. $sq .= ' AND g.`' . $key . '` >= \'' . $val[0] . '\'';
  76. }
  77. else if ($val[0]) {
  78. $sq .= ' AND g.`' . $key . '` = \'' . $val[0] . '\' ';
  79. }
  80. }
  81. $s = ' LEFT JOIN `' . $db_mymps . 'information_' . $cat[modid] . '` AS g ON a.id = g.id';
  82. $cache['list']['time'] = false;
  83. }
  84. }
  85. }
  86. require_once MYMPS_INC . '/cachepages.class.php';
  87. $cachetime = $cache['list']['time'];
  88. $cachepages = new cachepages($cache['list']['time'], 'list_' . $catid . '_' . $areaid);
  89. $cachepages->cacheCheck();
  90. unset($cache);
  91. $cat['caturi'] = Rewrite('category', array('catid' => $catid, 'dir_typename' => $cat['dir_typename']));
  92. $cat['title'] = $cat['title'];
  93. $cat['keywords'] = $cat['keywords'] ? $cat['keywords'] : $cat['catname'] . '信息';
  94. $cat['description'] = $cat['description'] ? $cat['description'] : $mymps_global['SiteCity'] . $cat['catname'] . '频道为您提供' . $mymps_global['SiteCity'] . $cat['catname'] . '信息,在此有大量' . $mymps_global['SiteCity'] . $cat['catname'] . '信息供您选择,您可以免费查看和发布' . $mymps_global['SiteCity'] . $cat['catname'] . '信息。';
  95. $mymps_extra_model = mod_identifier();
  96. $mymps_extra_model = $mymps_extra_model[$cat['modid']];
  97. $mymps_extra_model = is_array($mymps_extra_model) ? $mymps_extra_model : array();
  98. $area_list = cat_list('area', 0, 0, false, 1);
  99. $page_title_extra = $areaid ? $area_list[$areaid]['areaname'] : '';
  100. $area_list = array_merge(array(
  101. array('areaid' => '0', 'areaname' => '不限')
  102. ), $area_list);
  103. $cat_list = get_categories_tree($catid);
  104. $where .= 0 < $cat['parentid'] ? ' WHERE ' . get_children($catid) : ' WHERE a.gid = \'' . $catid . '\'';
  105. $where .= $sq ? $sq : '';
  106. $where .= ' AND (a.info_level = 1 OR a.info_level = 2)';
  107. $where .= empty($areaid) ? '' : ' AND a.areaid = \'' . $areaid . '\'';
  108. $orderby = $cat['parentid'] == 0 ? ' ORDER BY a.upgrade_type DESC,a.begintime DESC' : ' ORDER BY a.upgrade_type_list DESC,a.begintime DESC';
  109. $param = setParam($allow_identifiers, $rewrite, 'category-', $mymps_global['SiteUrl'] . $seo['seo_htmldir'] . $cat['html_dir']);
  110. $rows_num = $db->getOne('SELECT COUNT(a.id) FROM `' . $db_mymps . 'information` AS a ' . $s . ' ' . $where);
  111. }
  112. else {
  113. write_msg('', $mymps_global[SiteUrl] . '/404.html');
  114. exit();
  115. $catid = 0;
  116. require_once MYMPS_INC . '/cachepages.class.php';
  117. $cachetime = $cache['list']['time'];
  118. $cachepages = new cachepages($cache['list']['time'], 'list_' . $catid . '_' . $areaid);
  119. $cachepages->cacheCheck();
  120. unset($cache);
  121. $cat['title'] = '最新发布 - ' . $mymps_global['SiteName'];
  122. $area_list = cat_list('area', 0, 0, false, 1);
  123. $cat_list = get_categories_tree(0, 'category');
  124. $where .= ' WHERE 1 ';
  125. $where .= $sq ? $sq : '';
  126. $where .= ' AND (a.info_level = 1 OR a.info_level = 2)';
  127. $where .= empty($areaid) ? '' : ' AND a.areaid = \'' . $areaid . '\'';
  128. $orderby = ' ORDER BY a.begintime DESC';
  129. $param = setParam(array(), 'rewrite', 'category-', $mymps_global['SiteUrl'] . '/category.html');
  130. $rows_num = $db->getOne('SELECT COUNT(a.id) FROM `' . $db_mymps . 'information` AS a ' . $s . ' ' . $where);
  131. }
  132. $idin = get_page_idin('id', 'SELECT a.id FROM `' . $db_mymps . 'information` AS a ' . $s . $where . $orderby, $cat['template'] == 'list_gezi' ? 30 : $mymps_global['cfg_list_page_line']);
  133. $sql = 'SELECT a.id,a.tel,a.title,a.userid,a.contact_who,a.content,a.img_path,a.img_count,a.upgrade_type,a.upgrade_type_list,a.upgrade_time,a.upgrade_time_list,a.upgrade_time_index,a.begintime,a.endtime,a.info_level,a.certify,a.ifred,a.ifbold,a.dir_typename,b.areaname FROM ' . $db_mymps . 'information AS a LEFT JOIN `' . $db_mymps . 'area` AS b ON a.areaid = b.areaid WHERE a.id IN (' . $idin . ') ' . $orderby;
  134. $info_list = array();
  135. $page1 = $idin ? $db->getAll($sql) : array();
  136. foreach ($page1 as $key => $val) {
  137. $infolist['id'] = $val['id'];
  138. $infolist['begintime'] = $val['begintime'];
  139. $infolist['title'] = $val['title'];
  140. $infolist['ifred'] = $val['ifred'];
  141. $infolist['ifbold'] = $val['ifbold'];
  142. $infolist['tel'] = $val['tel'];
  143. $infolist['img_count'] = $val['img_count'];
  144. $infolist['content'] = clear_html($val['content']);
  145. $infolist['areaname'] = $val['areaname'];
  146. $infolist['contact_who'] = $val['contact_who'];
  147. $infolist['poster'] = !empty($val['userid']) ? '<a target="black" href=' . Rewrite('space', array('user' => $val['userid'])) . '>' . $val['userid'] . '</a>' : ($val['contact_who'] ? $val['contact_who'] : '游客');
  148. $infolist['img_path'] = $val['img_path'];
  149. $infolist['uri'] = Rewrite('info', array('id' => $val['id'], 'dir_typename' => $val['dir_typename']));
  150. $infolist['info_level'] = $val['info_level'];
  151. $infolist['upgrade_type'] = !$cat['parentid'] ? $val['upgrade_type'] : $val['upgrade_type_list'];
  152. $infolist['certify'] = $val['certify'];
  153. $info_list[$val['id']] = $infolist;
  154. $ids = true;
  155. if (0 < $val['upgrade_time'] && $val['upgrade_time'] < $timestamp) {
  156. $db->query('UPDATE `' . $db_mymps . 'information` SET upgrade_type = \'1\',upgrade_time = \'0\' WHERE id =\'' . $val['id'] . '\'');
  157. }
  158. if (0 < $val['upgrade_time_list'] && $val['upgrade_time_list'] < $timestamp) {
  159. $db->query('UPDATE `' . $db_mymps . 'information` SET upgrade_type_list = \'1\',upgrade_time_list = \'0\' WHERE id =\'' . $val['id'] . '\'');
  160. }
  161. if (0 < $val['upgrade_time_index'] && $val['upgrade_time_index'] < $timestamp) {
  162. $db->query('UPDATE `' . $db_mymps . 'information` SET upgrade_type_index = \'1\',upgrade_time_index = \'0\' WHERE id =\'' . $val['id'] . '\'');
  163. }
  164. }
  165. $idin = $ids ? ' AND a.id IN (' . $idin . ') ' : '';
  166. $pageline = NULL;
  167. $pageview = 0 < $catid ? page2($rewrite) : page2('rewrite');
  168. $advertisement = get_advertisement('category');
  169. $adveritems = $advertisement['items'];
  170. $advertisement['type'] = $advertisement['all'] ? (is_array($advertisement[$catid]['type']) ? array_merge($advertisement['all']['type'], $advertisement[$catid]['type']) : $advertisement['all']['type']) : $advertisement[$catid]['type'];
  171. if (0 < $catid) {
  172. switch ($rewrite) {
  173. case 'rewrite':
  174. foreach ($mymps_extra_model as $key => $val) {
  175. if (is_array($val['list'])) {
  176. foreach ($val['list'] as $k => $v) {
  177. $mymps_extra_model[$key]['list'][$k]['uri'] = 'category';
  178. foreach ($allow_identifiers as $keys) {
  179. if ($v['identifier'] == $keys) {
  180. $mymps_extra_model[$key]['list'][$k]['uri'] .= $v[id] ? '-' . $keys . '-' . $v[id] : '';
  181. }
  182. else {
  183. $mymps_extra_model[$key]['list'][$k]['uri'] .= ${$keys} ? '-' . $keys . '-' . ${$keys} : '';
  184. }
  185. }
  186. $mymps_extra_model[$key]['list'][$k]['uri'] .= '.html';
  187. if ($v['id'] == ${$v['identifier']}) {
  188. $mymps_extra_model[$key]['list'][$k]['select'] .= 1;
  189. $page_title_extra .= $v[name] != '不限' ? $v[name] : '';
  190. }
  191. else {
  192. $mymps_extra_model[$key]['list'][$k]['select'] .= 0;
  193. }
  194. }
  195. }
  196. }
  197. foreach ($area_list as $key => $val) {
  198. $area_list[$key]['uri'] = '/category';
  199. foreach ($allow_identifiers as $keys) {
  200. if ($keys == 'areaid') {
  201. $area_list[$key]['uri'] .= $val['areaid'] ? '-' . $keys . '-' . $val[areaid] : '';
  202. }
  203. else {
  204. $area_list[$key]['uri'] .= ${$keys} ? '-' . $keys . '-' . ${$keys} : '';
  205. }
  206. }
  207. $area_list[$key]['uri'] .= '.html';
  208. $area_list[$key]['select'] = $val['areaid'] == $areaid ? 1 : 0;
  209. }
  210. break;
  211. case 'rewrite_py':
  212. foreach ($mymps_extra_model as $key => $val) {
  213. if (is_array($val['list'])) {
  214. foreach ($val['list'] as $k => $v) {
  215. $mymps_extra_model[$key]['list'][$k]['uri'] = '/' . $dir_typename . '/';
  216. foreach ($allow_identifiers as $keys) {
  217. if ($v['identifier'] == $keys) {
  218. $mymps_extra_model[$key]['list'][$k]['uri'] .= $v['id'] ? $keys . '-' . $v['id'] . '-' : '';
  219. }
  220. else {
  221. $mymps_extra_model[$key]['list'][$k]['uri'] .= ${$keys} ? $keys . '-' . ${$keys} . '-' : '';
  222. }
  223. }
  224. $mymps_extra_model[$key]['list'][$k]['uri'] = substr($mymps_extra_model[$key]['list'][$k]['uri'], 0, -1);
  225. $mymps_extra_model[$key]['list'][$k]['uri'] .= '/';
  226. if ($v['id'] == ${$v['identifier']}) {
  227. $mymps_extra_model[$key]['list'][$k]['select'] .= 1;
  228. $page_title_extra .= $v['name'] != '不限' ? $v['name'] : '';
  229. }
  230. else {
  231. $mymps_extra_model[$key]['list'][$k]['select'] .= 0;
  232. }
  233. }
  234. }
  235. }
  236. foreach ($area_list as $key => $val) {
  237. $area_list[$key]['uri'] = '/' . $dir_typename . '/';
  238. foreach ($allow_identifiers as $keys) {
  239. if ($keys == 'areaid') {
  240. $area_list[$key]['uri'] .= $val['areaid'] ? $keys . '-' . $val['areaid'] . '-' : '';
  241. }
  242. else {
  243. $area_list[$key]['uri'] .= ${$keys} ? $keys . '-' . ${$keys} . '-' : '';
  244. }
  245. }
  246. $area_list[$key]['uri'] = substr($area_list[$key]['uri'], 0, -1);
  247. $area_list[$key]['uri'] .= '/';
  248. $area_list[$key]['select'] = $val['areaid'] == $areaid ? 1 : 0;
  249. }
  250. break;
  251. default:
  252. foreach ($mymps_extra_model as $key => $val) {
  253. if (is_array($val['list'])) {
  254. foreach ($val['list'] as $k => $v) {
  255. $mymps_extra_model[$key]['list'][$k]['uri'] = 'category.php?';
  256. foreach ($allow_identifiers as $keys) {
  257. if ($v['identifier'] == $keys) {
  258. $mymps_extra_model[$key]['list'][$k]['uri'] .= $v['id'] ? $keys . '=' . $v[id] . '&' : '';
  259. }
  260. else {
  261. $mymps_extra_model[$key]['list'][$k]['uri'] .= ${$keys} ? $keys . '=' . ${$keys} . '&' : '';
  262. }
  263. }
  264. $mymps_extra_model[$key]['list'][$k]['uri'] = substr($mymps_extra_model[$key]['list'][$k]['uri'], 0, -1);
  265. if ($v[id] == ${$v[identifier]}) {
  266. $mymps_extra_model[$key]['list'][$k]['select'] .= 1;
  267. $page_title_extra .= $v[name] != '不限' ? $v[name] : '';
  268. }
  269. else {
  270. $mymps_extra_model[$key]['list'][$k]['select'] .= 0;
  271. }
  272. }
  273. }
  274. }
  275. foreach ($area_list as $key => $val) {
  276. $area_list[$key]['uri'] = '/category.php?';
  277. foreach ($allow_identifiers as $keys) {
  278. if ($keys == 'areaid') {
  279. $area_list[$key]['uri'] .= $val['areaid'] ? $keys . '=' . $val[areaid] . '&' : '';
  280. }
  281. else {
  282. $area_list[$key]['uri'] .= ${$keys} ? $keys . '=' . ${$keys} . '&' : '';
  283. }
  284. }
  285. $area_list[$key]['uri'] = substr($area_list[$key]['uri'], 0, -1);
  286. $area_list[$key]['select'] = $val['areaid'] == $areaid ? 1 : 0;
  287. }
  288. break;
  289. }
  290. $pdetail = $mymps_global['SiteCity'] . $page_title_extra . ($cat['title'] ? $cat['title'] : $cat['catname']);
  291. $pdetail .= 1 < $page ? '-第' . $page . '页' : '';
  292. $pdetail .= '-' . $mymps_global['SiteName'];
  293. $loc = get_location('category', $catid, '', '', $pdetail);
  294. $page_title = $loc['page_title'];
  295. $location = $loc['location'];
  296. }
  297. else {
  298. foreach ($area_list as $key => $val) {
  299. $area_list[$key]['uri'] = '/category';
  300. $area_list[$key]['uri'] .= $val['areaid'] ? '-areaid-' . $val['areaid'] : '';
  301. $area_list[$key]['uri'] .= '.html';
  302. $area_list[$key]['select'] = $val['areaid'] == $areaid ? 1 : 0;
  303. }
  304. $pdetail = $mymps_global['SiteCity'] . $page_title_extra . '最新信息';
  305. $pdetail .= 1 < $page ? '-第' . $page . '页' : '';
  306. $pdetail .= '-' . $mymps_global['SiteName'];
  307. $loc = get_location('category', '', '', '', $pdetail);
  308. $page_title = $loc['page_title'];
  309. $location = $loc['location'] . ' &raquo; 最新信息';
  310. }
  311. if (0 < $cat['parentid']) {
  312. $flag = array_reverse(get_parent_cats('category', $catid));
  313. $cat['parentid'] = $flag[0]['catid'];
  314. }
  315. if (0 < $catid) {
  316. $allow_identifier = $allow_identifer[$cat['modid']]['identifier'];
  317. }
  318. globalassign();
  319. if ($cat['template'] == 'list') {
  320. if (1 < $cat['modid'] && $idin) {
  321. $des = get_info_option_array();
  322. $extra = $db->getAll('SELECT a.* FROM `' . $db_mymps . 'information_' . $cat[modid] . '` AS a WHERE 1 ' . $idin);
  323. foreach ($extra as $k => $v) {
  324. unset($v['iid']);
  325. unset($v['content']);
  326. foreach ($v as $u => $w) {
  327. $g = get_info_option_titval($des[$u], $w);
  328. if ($u != 'id' && !is_numeric($u)) {
  329. $info_list[$v['id']]['extra'][$u] = $g['value'];
  330. }
  331. }
  332. }
  333. }
  334. }
  335. else if ($cat['template'] == 'list_simple') {
  336. }
  337. else if ($cat['template'] == 'list_box') {
  338. }
  339. else {
  340. if (1 < $cat['modid'] && $idin) {
  341. $des = get_info_option_array();
  342. $extra = $db->getAll('SELECT a.* FROM `' . $db_mymps . 'information_' . $cat[modid] . '` AS a WHERE 1 ' . $idin);
  343. foreach ($extra as $k => $v) {
  344. unset($v['iid']);
  345. unset($v['content']);
  346. foreach ($v as $u => $w) {
  347. $g = get_info_option_titval($des[$u], $w);
  348. if ($u != 'id' && !is_numeric($u)) {
  349. $info_list[$v['id']][$u] = $g['value'];
  350. }
  351. }
  352. }
  353. }
  354. }
  355. include 0 < $catid ? mymps_tpl($cat['template'] ? $cat['template'] : 'list') : mymps_tpl('list');
  356. is_object($db) && $db->Close();
  357. $cachetime && $cachepages->caching();
  358. $info_list = $advertisement = NULL;
  359. unset($info_list);
  360. unset($advertisement);
  361. ?>