inc_category.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <?php
  2. //decode by qq784939922
  3. CURSCRIPT != 'wap' && exit('FORBIDDEN');
  4. $catid = isset($catid) ? intval($catid) : 0;
  5. $areaid = isset($areaid) ? intval($areaid) : 0;
  6. $page = isset($page) ? intval($page) : 1;
  7. runcron();
  8. $seo = $seo ? $seo : get_seoset();
  9. $rewrite = $seo['seo_force_category'];
  10. if ($Catid && $rewrite == 'rewrite_py') {
  11. $detail = explode('/', $Catid);
  12. $dir_typename = $detail[0];
  13. $cat_dir = array_flip(get_category_dir());
  14. $catid = $cat_dir[$dir_typename];
  15. if ($detail[1]) {
  16. $detailc = explode('-', $detail[1]);
  17. for ($i = 0; $i < count($detailc); $i++) {
  18. $_GET[$detailc[$i]] = ${$detailc}[$i] = str_replace(array('#@#', '#!#'), array('-', '/'), $detailc[++$i]);
  19. }
  20. extract($_GET);
  21. }
  22. $cat_dir = $Catid = $detail = $detailc = NULL;
  23. } else {
  24. if ($CAtid && $rewrite == 'rewrite') {
  25. $detail = explode('-', $CAtid);
  26. $catid = $detail[1];
  27. if ($detail[2]) {
  28. for ($i = 2; $i < count($detail); $i++) {
  29. $_GET[$detail[$i]] = ${$detail}[$i] = str_replace(array('#@#', '#!#'), array('-', '/'), $detail[++$i]);
  30. }
  31. extract($_GET);
  32. }
  33. $CAtid = $detail = NULL;
  34. }
  35. }
  36. $cat_list = get_categories_tree($catid);
  37. if (empty($catid)) {
  38. include mymps_tpl('category_all');
  39. exit;
  40. }
  41. if (!($cat = get_cat_info($catid))) {
  42. errormsg('您所指定的栏目不存在或者已被删除!');
  43. }
  44. $perpage = $mayimobile['mobiletopicperpage'] ? $mayimobile['mobiletopicperpage'] : 10;
  45. $allow_identifier = allow_identifier();
  46. $allow_identifier = $allow_identifier[$cat['modid']]['identifier'];
  47. $allow_identifier = is_array($allow_identifier) ? $allow_identifier : array();
  48. $allow_identifiers = $rewrite == 'rewrite_py' ? array_merge(array('areaid'), $allow_identifier) : array_merge(array('catid', 'areaid'), $allow_identifier);
  49. $mymps_extra_model = mod_identifier();
  50. $mymps_extra_model = $mymps_extra_model[$cat['modid']];
  51. $mymps_extra_model = is_array($mymps_extra_model) ? $mymps_extra_model : array();
  52. $parentcats = get_parent_cats('category', $catid);
  53. $parentcats = is_array($parentcats) ? array_reverse($parentcats) : '';
  54. $area_list = cat_list('area', 0, 0, false, 1);
  55. $area_list = array_merge(array(array('areaid' => '0', 'areaname' => '不限')), $area_list);
  56. $sq = $s = '';
  57. if (1 < $cat['modid']) {
  58. $s = '';
  59. foreach ($_GET as $key => $val) {
  60. if (in_array($key, $allow_identifier) && !empty($key)) {
  61. $val = explode('~', $val);
  62. $val[0] = $val[0] ? intval($val[0]) : '';
  63. $val[1] = $val[1] ? intval($val[1]) : '';
  64. if ($val[1]) {
  65. $sq .= ' AND g.`' . $key . '` <= \'' . $val[1] . '\' AND g.`' . $key . '` >= \'' . $val[0] . '\'';
  66. } else {
  67. if ($val[0] && 0 < $val[1]) {
  68. $sq .= ' AND g.`' . $key . '` >= \'' . $val[0] . '\'';
  69. } else {
  70. $sq .= ' AND g.`' . $key . '` = \'' . $val[0] . '\' ';
  71. }
  72. }
  73. $s = ' LEFT JOIN `' . $db_mymps . 'information_' . $cat[modid] . '` AS g ON a.id = g.id';
  74. }
  75. }
  76. }
  77. $cate_limit = 0 < $cat['parentid'] ? ' AND ' . get_children($catid) : ' AND a.gid = \'' . $catid . '\'';
  78. $city_limit = empty($city['cityid']) ? '' : ' AND a.cityid = \'' . $city['cityid'] . '\'';
  79. $city_limit .= empty($areaid) ? '' : ' AND a.areaid = \'' . $areaid . '\'';
  80. $orderby = $cat['parentid'] == 0 ? ' ORDER BY a.upgrade_type DESC,a.begintime DESC' : ' ORDER BY a.upgrade_type_list DESC,a.begintime DESC';
  81. $param = setparams($allow_identifiers);
  82. $rows_num = $cat['totalnum'] = $db->getOne('SELECT COUNT(a.id) FROM `' . $db_mymps . 'information` AS a ' . $s . ' WHERE a.info_level > 0 ' . $sq . $cate_limit . $city_limit);
  83. $totalpage = ceil($rows_num / $perpage);
  84. $num = intval($page - 1) * $perpage;
  85. $idin = get_page_idin('id', 'SELECT a.id FROM `' . $db_mymps . 'information` AS a ' . $s . ' WHERE (a.info_level = 1 OR a.info_level = 2) ' . $sq . $cate_limit . $city_limit . $orderby, $perpage);
  86. $idin2 = $idin ? ' AND a.infoid IN (' . $idin . ') ' : '';
  87. $idin = $idin ? ' AND a.id IN (' . $idin . ') ' : '';
  88. $sql = 'SELECT a.*,b.areaname FROM ' . $db_mymps . 'information AS a LEFT JOIN `' . $db_mymps . 'area` AS b ON a.areaid = b.areaid WHERE 1 ' . $idin . ' ' . $orderby;
  89. $infolist = $idin ? $db->getAll($sql) : array();
  90. foreach ($infolist as $k => $row) {
  91. $arr['id'] = $row['id'];
  92. $arr['face'] = $row['face'];
  93. $arr['face'] = @strstr($arr['face'], 'http') ? $arr['face'] : $mymps_global['SiteUrl'] . $arr['face'];
  94. $arr['title'] = $row['title'];
  95. $arr['titlej'] = $charset == 'gbk' ? iconv('gb2312', 'utf-8', $arr['title']) : $arr['title'];
  96. $arr['hit'] = $row['hit'];
  97. $arr['uri_m'] = mRewrite('info', array('id' => $row[id], 'dir_typename' => $row['dir_typename']));
  98. $arr['img_path'] = $row['img_path'];
  99. $arr['ifred'] = $row['ifred'];
  100. $arr['ifbold'] = $row['ifbold'];
  101. $arr['hit'] = $row['hit'];
  102. $arr['zan'] = intval($row['zan']);
  103. $arr['certify'] = $row['certify'];
  104. $arr['catname'] = $row['catname'];
  105. $arr['catnamej'] = $charset == 'gbk' ? iconv('gb2312', 'utf-8', $arr['catname']) : $arr['catname'];
  106. $arr['areaname'] = $row['areaname'];
  107. $arr['areanamej'] = $charset == 'gbk' ? iconv('gb2312', 'utf-8', $arr['areaname']) : $arr['areaname'];
  108. $arr['tel'] = empty($cat['usecoin']) ? 'tel:' . $row['tel'] : $arr['uri_m'];
  109. $arr['img_count'] = $row['img_count'];
  110. $arr['upgrade_type'] = !$cat['parentid'] ? $row['upgrade_type'] : $row['upgrade_type_list'];
  111. $arr['userid'] = $row['userid'] ? $row['userid'] : $row['contact_who'];
  112. $arr['useridj'] = $charset == 'gbk' ? iconv('gb2312', 'utf-8', $arr['userid']) : $arr['userid'];
  113. $arr['content'] = $row['content'];
  114. $arr['contentj'] = cutstr(clear_html($row['content']), 50);
  115. $arr['contentj'] = $charset == 'gbk' ? iconv('gb2312', 'utf-8', $arr['contentj']) : $arr['contentj'];
  116. $arr['begintime'] = get_format_time($row['begintime']);
  117. $arr['endtime'] = $row['endtime'] ? $row['endtime'] : $timestamp;
  118. $info_list[$row['id']] = $arr;
  119. $ids .= $row['id'] . ',';
  120. if (0 < $row['upgrade_time'] && $row['upgrade_time'] < $timestamp) {
  121. $db->query('UPDATE `' . $db_mymps . 'information` SET upgrade_type = \'1\',upgrade_time = \'0\' WHERE id =\'' . $row['id'] . '\'');
  122. }
  123. if (0 < $row['upgrade_time_list'] && $row['upgrade_time_list'] < $timestamp) {
  124. $db->query('UPDATE `' . $db_mymps . 'information` SET upgrade_type_list = \'1\',upgrade_time_list = \'0\' WHERE id =\'' . $row['id'] . '\'');
  125. }
  126. }
  127. if ($idin2) {
  128. $iquery = $db->query('SELECT a.infoid,a.prepath FROM `' . $db_mymps . 'info_img` AS a WHERE 1 ' . $idin2);
  129. while ($r = $db->fetchRow($iquery)) {
  130. $info_list[$r['infoid']]['img'][] = $r['prepath'];
  131. }
  132. }
  133. $i = NULL;
  134. if (1 < $cat['modid'] && $idin) {
  135. $des = get_info_option_array();
  136. $extra = $db->getAll('SELECT a.* FROM `' . $db_mymps . 'information_' . $cat[modid] . '` AS a WHERE 1 ' . $idin);
  137. foreach ($extra as $k => $v) {
  138. unset($v['iid']);
  139. unset($v['content']);
  140. foreach ($v as $u => $w) {
  141. $g = get_info_option_titval($des[$u], $w);
  142. if ($u != 'id' && !is_numeric($u)) {
  143. $info_list[$v['id']]['extra'][$u] = $g['value'];
  144. $info_list[$v['id']]['extraj'][$u] = $charset == 'gbk' ? iconv('gb2312', 'utf-8', $g['value']) : $g['value'];
  145. $info_list[$v['id']][$u] = $g['value'];
  146. }
  147. }
  148. }
  149. }
  150. if ($mayi) {
  151. $info_list = 5.4 <= PHP_VERSION ? json_encode($info_list, JSON_UNESCAPED_SLASHES) : str_replace('\\/', '/', json_encode($info_list));
  152. echo $info_list;
  153. exit;
  154. }
  155. switch ($rewrite) {
  156. case 'rewrite':
  157. foreach ($mymps_extra_model as $key => $val) {
  158. if (is_array($val['list'])) {
  159. foreach ($val['list'] as $k => $v) {
  160. $mymps_extra_model[$key]['list'][$k]['uri'] = 'category';
  161. $mymps_extra_model[$key]['list'][$k]['uri_a'] = 'index.php?mod=category&areaid=' . $areaid;
  162. foreach ($allow_identifiers as $keys) {
  163. if ($v['identifier'] == $keys) {
  164. $mymps_extra_model[$key]['list'][$k]['uri'] .= $v['id'] ? '-' . $keys . '-' . $v['id'] : '';
  165. $mymps_extra_model[$key]['list'][$k]['uri_a'] .= $v['id'] ? '&' . $keys . '=' . $v['id'] : '';
  166. } else {
  167. $mymps_extra_model[$key]['list'][$k]['uri'] .= ${$keys} ? '-' . $keys . '-' . ${$keys} : '';
  168. $mymps_extra_model[$key]['list'][$k]['uri_a'] .= ${$keys} ? '&' . $keys . '=' . ${$keys} : '';
  169. }
  170. }
  171. $mymps_extra_model[$key]['list'][$k]['uri'] .= '.html';
  172. if ($v['id'] == ${$v}['identifier']) {
  173. $mymps_extra_model[$key]['list'][$k]['select'] .= 1;
  174. $page_title_extra .= $v[name] != '不限' ? $v[name] : '';
  175. } else {
  176. $mymps_extra_model[$key]['list'][$k]['select'] .= 0;
  177. }
  178. }
  179. }
  180. }
  181. foreach ($area_list as $key => $val) {
  182. $area_list[$key]['uri'] = '/category';
  183. foreach ($allow_identifiers as $keys) {
  184. if ($keys == 'areaid') {
  185. $area_list[$key]['uri'] .= $val['areaid'] ? '-' . $keys . '-' . $val[areaid] : '';
  186. } else {
  187. $area_list[$key]['uri'] .= ${$keys} ? '-' . $keys . '-' . ${$keys} : '';
  188. }
  189. }
  190. $area_list[$key]['uri'] .= '.html';
  191. $area_list[$key]['select'] = $val['areaid'] == $areaid ? 1 : 0;
  192. }
  193. break;
  194. case 'rewrite_py':
  195. foreach ($mymps_extra_model as $key => $val) {
  196. if (is_array($val['list'])) {
  197. foreach ($val['list'] as $k => $v) {
  198. $mymps_extra_model[$key]['list'][$k]['uri'] = '/' . $dir_typename . '/';
  199. $mymps_extra_model[$key]['list'][$k]['uri_a'] = 'index.php?mod=category&areaid=' . $areaid;
  200. foreach ($allow_identifiers as $keys) {
  201. if ($v['identifier'] == $keys) {
  202. $mymps_extra_model[$key]['list'][$k]['uri'] .= $v['id'] ? $keys . '-' . $v['id'] . '-' : '';
  203. $mymps_extra_model[$key]['list'][$k]['uri_a'] .= $v['id'] ? '&' . $keys . '=' . $v['id'] : '';
  204. } else {
  205. $mymps_extra_model[$key]['list'][$k]['uri'] .= ${$keys} ? $keys . '-' . ${$keys} . '-' : '';
  206. $mymps_extra_model[$key]['list'][$k]['uri_a'] .= ${$keys} ? '&' . $keys . '=' . ${$keys} : '';
  207. }
  208. }
  209. $mymps_extra_model[$key]['list'][$k]['uri'] = substr($mymps_extra_model[$key]['list'][$k]['uri'], 0, -1);
  210. $mymps_extra_model[$key]['list'][$k]['uri'] .= '/';
  211. if ($v['id'] == ${$v}['identifier']) {
  212. $mymps_extra_model[$key]['list'][$k]['select'] .= 1;
  213. $page_title_extra .= $v['name'] != '不限' ? $v['name'] : '';
  214. } else {
  215. $mymps_extra_model[$key]['list'][$k]['select'] .= 0;
  216. }
  217. }
  218. }
  219. }
  220. foreach ($area_list as $key => $val) {
  221. $area_list[$key]['uri'] = '/' . $dir_typename . '/';
  222. foreach ($allow_identifiers as $keys) {
  223. if ($keys == 'areaid') {
  224. $area_list[$key]['uri'] .= $val['areaid'] ? $keys . '-' . $val['areaid'] . '-' : '';
  225. } else {
  226. $area_list[$key]['uri'] .= ${$keys} ? $keys . '-' . ${$keys} . '-' : '';
  227. }
  228. }
  229. $area_list[$key]['uri'] = substr($area_list[$key]['uri'], 0, -1);
  230. $area_list[$key]['uri'] .= '/';
  231. $area_list[$key]['select'] = $val['areaid'] == $areaid ? 1 : 0;
  232. }
  233. break;
  234. default:
  235. foreach ($mymps_extra_model as $key => $val) {
  236. if (is_array($val['list'])) {
  237. foreach ($val['list'] as $k => $v) {
  238. // $mymps_extra_model[$key]['list'][$k]['uri'] = 'category.php?';
  239. $mymps_extra_model[$key]['list'][$k]['uri'] = 'index.php?mod=category&';
  240. $mymps_extra_model[$key]['list'][$k]['uri_a'] = 'index.php?mod=category&areaid=' . $areaid;
  241. foreach ($allow_identifiers as $keys) {
  242. if ($v['identifier'] == $keys) {
  243. $mymps_extra_model[$key]['list'][$k]['uri'] .= $v['id'] ? $keys . '=' . $v[id] . '&' : '';
  244. $mymps_extra_model[$key]['list'][$k]['uri_a'] .= $v['id'] ? '&' . $keys . '=' . $v[id] : '';
  245. } else {
  246. $mymps_extra_model[$key]['list'][$k]['uri'] .= ${$keys} ? $keys . '=' . ${$keys} . '&' : '';
  247. $mymps_extra_model[$key]['list'][$k]['uri_a'] .= ${$keys} ? '&' . $keys . '=' . ${$keys} : '';
  248. }
  249. }
  250. $mymps_extra_model[$key]['list'][$k]['uri'] = substr($mymps_extra_model[$key]['list'][$k]['uri'], 0, -1);
  251. if ($v[id] == ${$v}[identifier]) {
  252. $mymps_extra_model[$key]['list'][$k]['select'] .= 1;
  253. $page_title_extra .= $v[name] != '不限' ? $v[name] : '';
  254. } else {
  255. $mymps_extra_model[$key]['list'][$k]['select'] .= 0;
  256. }
  257. }
  258. }
  259. }
  260. foreach ($area_list as $key => $val) {
  261. // $area_list[$key]['uri'] = '/index.php?mod=category&';
  262. $area_list[$key]['uri'] = 'index.php?mod=category&';
  263. foreach ($allow_identifiers as $keys) {
  264. if ($keys == 'areaid') {
  265. $area_list[$key]['uri'] .= $val['areaid'] ? $keys . '=' . $val[areaid] . '&' : '';
  266. } else {
  267. $area_list[$key]['uri'] .= ${$keys} ? $keys . '=' . ${$keys} . '&' : '';
  268. }
  269. }
  270. $area_list[$key]['uri'] = substr($area_list[$key]['uri'], 0, -1);
  271. $area_list[$key]['select'] = $val['areaid'] == $areaid ? 1 : 0;
  272. }
  273. break;
  274. }
  275. $pdetail = $mymps_global['SiteCity'] . $page_title_extra . ($cat['title'] ? $cat['title'] : $cat['catname']);
  276. $pdetail .= 1 < $page ? '-第' . $page . '页' : '';
  277. $pdetail .= '-' . $mymps_global['SiteName'];
  278. $loc = get_location_m('category', $catid, '', '', $pdetail);
  279. $page_title = $loc['page_title'];
  280. $cat['keywords'] = $cat['keywords'] ? $cat['keywords'] : $cat['catname'] . '信息';
  281. $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'] . '信息。';
  282. include mymps_tpl('category_list');