PageRenderTime 33ms CodeModel.GetById 6ms RepoModel.GetById 0ms app.codeStats 0ms

/e/action/ShowInfo.php

https://github.com/westeast/xwdede
PHP | 360 lines | 327 code | 2 blank | 31 comment | 44 complexity | a49a5baf76967edf2974386ce286537c MD5 | raw file
  1. <?php
  2. require('../class/connect.php');
  3. require('../class/db_sql.php');
  4. require('../class/functions.php');
  5. require('../class/t_functions.php');
  6. require LoadLang('pub/fun.php');
  7. require('../data/dbcache/class.php');
  8. require('../data/dbcache/MemberLevel.php');
  9. $link=db_connect();
  10. $empire=new mysqlquery();
  11. $classid=(int)$_GET['classid'];
  12. $id=(int)$_GET['id'];
  13. $page=(int)$_GET['page'];
  14. $mid=$class_r[$classid]['modid'];
  15. $tbname=$class_r[$classid]['tbname'];
  16. //验证IP
  17. eCheckAccessDoIp('showinfo');
  18. if(!$classid||!$id||!$mid||!$tbname)
  19. {
  20. printerror('此信息不存在','',1,0,1);
  21. }
  22. $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id' limit 1");
  23. if(!$r[id]||!$r[checked]||$classid!=$r[classid])
  24. {
  25. printerror('此信息不存在','',1,0,1);
  26. }
  27. //外部链接
  28. if($r['titleurl'])
  29. {
  30. Header("Location:$r[titleurl]");
  31. exit();
  32. }
  33. //是否支持动态内容页
  34. if($class_r[$classid]['showdt']!=2)
  35. {
  36. $titleurl=sys_ReturnBqTitleLink($r);
  37. Header("Location:$titleurl");
  38. exit();
  39. }
  40. //副表
  41. if($emod_r[$mid]['tbdataf']&&$emod_r[$mid]['tbdataf']<>',')
  42. {
  43. $selectdataf=substr($emod_r[$mid]['tbdataf'],1,-1);
  44. $finfor=$empire->fetch1("select ".$selectdataf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$r[id]'");
  45. $r=array_merge($r,$finfor);
  46. }
  47. //权限
  48. if($r['groupid']||$class_r[$classid]['cgtoinfo'])
  49. {
  50. define('empirecms','wm_chief');
  51. define('PageCheckLevel','wm_chief');
  52. $check_tbname=$tbname;
  53. $check_infoid=$id;
  54. $check_classid=$classid;
  55. $check_path="../../";
  56. $checkinfor=$r;
  57. @include("../class/CheckLevel.php");
  58. }
  59. //存文本
  60. if($emod_r[$mid]['savetxtf'])
  61. {
  62. $stf=$emod_r[$mid]['savetxtf'];
  63. if($r[$stf])
  64. {
  65. $r[$stf]=GetTxtFieldText($r[$stf]);
  66. }
  67. }
  68. //初始值
  69. $search="&classid=$classid&id=$id";
  70. $line=1;
  71. $start=0;
  72. $page_line=6;//每页显示链接数
  73. $offset=$page*$line;//总偏移量
  74. $GLOBALS['navclassid']=$r[classid];
  75. $GLOBALS['navinfor']=$r;
  76. //取得内容模板
  77. $r[newstempid]=$r[newstempid]?$r[newstempid]:$class_r[$r[classid]][newstempid];
  78. $newstemp_r=$empire->fetch1("select tempid,temptext,showdate from ".GetTemptb("enewsnewstemp")." where tempid='$r[newstempid]'");
  79. //替换模板变量
  80. function DtGetHtml($add,$newstemp_r,$mid,$tbname,$line,$page_line,$start,$page,$search){
  81. global $public_r,$class_r,$class_zr,$class_tr,$fun_r,$empire,$dbtbpre,$emod_r,$level_r;
  82. //更新点击
  83. $empire->query("update {$dbtbpre}ecms_".$tbname." set onclick=onclick+1 where id='$add[id]' limit 1");
  84. $add['onclick']=$add['onclick']+1;
  85. //模板参数
  86. $newstemptext=$newstemp_r[temptext];
  87. $formatdate=$newstemp_r[showdate];
  88. //页面
  89. $pagetitle=htmlspecialchars($add[title]);
  90. $url=ReturnClassLink($add[classid]);//导航
  91. $newstemptext=Info_ReplaceSvars($newstemptext,$url,$add[classid],$pagetitle,$add[keyboard],$pagetitle);
  92. //相关信息
  93. if(strstr($newstemptext,'[!--other.link--]'))
  94. {
  95. $keyboardtext=GetKeyboard($add[keyboard],$add[keyid],$add[classid],$add[id],$class_r[$add[classid]][link_num]);
  96. }
  97. //分页字段
  98. $ptitle=$add['title'];
  99. $truepage='';
  100. $titleselect='';
  101. $expage='[!--empirenews.page--]';//分页符
  102. $pf=$emod_r[$mid]['pagef'];
  103. if($pf&&strstr($add[$pf],$expage))//有分页
  104. {
  105. $n_r=explode($expage,$add[$pf]);
  106. $thispagenum=count($n_r);
  107. if($page<0||$page>$thispagenum-1)
  108. {
  109. $page=0;
  110. }
  111. $add[$pf]=$n_r[$page];
  112. if($page)
  113. {
  114. $ti_r=explode('[/!--empirenews.page--]',$n_r[$page]);
  115. if(count($ti_r)>=2)
  116. {
  117. $ptitle=$ti_r[0];
  118. $add[$pf]=$ti_r[1];
  119. }
  120. else
  121. {
  122. $ptitle=$add['title'].'('.($page+1).')';
  123. }
  124. }
  125. //取得分页
  126. $truepage=page1($thispagenum,$line,$page_line,$start,$page,$search);
  127. //下拉式分页
  128. if(strstr($newstemptext,'[!--title.select--]'))
  129. {
  130. for($j=0;$j<$thispagenum;$j++)
  131. {
  132. $spurl="ShowInfo.php?classid=$add[classid]&id=$add[id]&page=$j";
  133. if($j==0)
  134. {
  135. $sptitle=$add[title];
  136. }
  137. else
  138. {
  139. $ti_r=explode('[/!--empirenews.page--]',$n_r[$j]);
  140. $sptitle=count($ti_r)>=2?$ti_r[0]:$add[title].'('.($j+1).')';
  141. }
  142. $select='';
  143. if($page==$j)
  144. {
  145. $ptitle=$sptitle;
  146. $select=' selected';
  147. }
  148. $titleselect.='<option value="'.$spurl.'"'.$select.'>'.$sptitle.'</option>';
  149. }
  150. $titleselect='<select name="titleselect" onchange="self.location.href=this.options[this.selectedIndex].value">'.$titleselect.'</select>';
  151. }
  152. //下一页链接
  153. if($page==$thispagenum-1)
  154. {
  155. $thisnextlink="ShowInfo.php?classid=$add[classid]&id=$add[id]&page=0";
  156. }
  157. else
  158. {
  159. $thisnextlink="ShowInfo.php?classid=$add[classid]&id=$add[id]&page=".($page+1);
  160. }
  161. }
  162. //返回替换验证字符
  163. $docheckrep=ReturnCheckDoRepStr();
  164. if($add[newstext])
  165. {
  166. if(empty($public_r['dorepword'])&&$docheckrep[3])
  167. {
  168. $add[newstext]=ReplaceWord($add[newstext]);//过滤字符
  169. }
  170. if(empty($public_r['dorepkey'])&&$docheckrep[4]&&!empty($add[dokey]))//替换关键字
  171. {
  172. $add[newstext]=ReplaceKey($add[newstext]);
  173. }
  174. if($public_r['opencopytext'])
  175. {
  176. $add[newstext]=AddNotCopyRndStr($add[newstext]);//随机复制字符
  177. }
  178. }
  179. //变量
  180. $tempf=$emod_r[$mid]['tempf'];
  181. $fr=explode(',',$tempf);
  182. $fcount=count($fr)-1;
  183. //变量替换
  184. $newstempstr=$newstemptext;//模板
  185. for($i=1;$i<$fcount;$i++)
  186. {
  187. $f=$fr[$i];
  188. $value=$add[$f];
  189. if($f=='downpath')//下载地址
  190. {
  191. if(strstr($newstemptext,'[!--downpath--]'))
  192. {
  193. $value=ReturnDownSoftHtml($add);
  194. }
  195. }
  196. elseif($f=='onlinepath')//观看地址
  197. {
  198. if(strstr($newstemptext,'[!--onlinepath--]'))
  199. {
  200. $value=ReturnOnlinepathHtml($add);
  201. }
  202. }
  203. elseif($f=='morepic')//图片集
  204. {
  205. if(strstr($newstemptext,'[!--morepic--]'))
  206. {
  207. $value=ReturnMorepicpathHtml($add);
  208. }
  209. }
  210. elseif($f=='newstime')//时间
  211. {
  212. if(strstr($newstemptext,'[!--newstime--]'))
  213. {
  214. $value=date($formatdate,$value);
  215. }
  216. }
  217. elseif($f=='befrom')//信息来源
  218. {
  219. if($docheckrep[1]&&strstr($newstemptext,'[!--befrom--]'))
  220. {
  221. $value=ReplaceBefrom($value);
  222. }
  223. }
  224. elseif($f=='writer')//作者
  225. {
  226. if($docheckrep[2]&&strstr($newstemptext,'[!--writer--]'))
  227. {
  228. $value=ReplaceWriter($value);
  229. }
  230. }
  231. elseif($f=='titlepic')//标题图片
  232. {
  233. if(empty($value))
  234. {$value=$public_r[newsurl].'e/data/images/notimg.gif';}
  235. }
  236. elseif($f=='title')//标题
  237. {
  238. }
  239. else//正常字段
  240. {
  241. if(!strstr($emod_r[$mid]['editorf'],','.$f.','))
  242. {
  243. if(strstr($emod_r[$mid]['tobrf'],','.$f.','))//加br
  244. {
  245. $value=nl2br($value);
  246. }
  247. if(!strstr($emod_r[$mid]['dohtmlf'],','.$f.','))//去除html
  248. {
  249. $value=RepFieldtextNbsp(htmlspecialchars($value));
  250. }
  251. }
  252. }
  253. $newstempstr=str_replace('[!--'.$f.'--]',$value,$newstempstr);
  254. }
  255. //固定变量
  256. $newstempstr=str_replace('[!--id--]',$add[id],$newstempstr);
  257. $newstempstr=str_replace('[!--classid--]',$add[classid],$newstempstr);
  258. $newstempstr=str_replace('[!--class.name--]',$class_r[$add[classid]][classname],$newstempstr);
  259. $newstempstr=str_replace('[!--ttid--]',$add[ttid],$newstempstr);
  260. $newstempstr=str_replace('[!--tt.name--]',$class_tr[$add[ttid]][tname],$newstempstr);
  261. $newstempstr=str_replace('[!--onclick--]',$add[onclick],$newstempstr);
  262. $newstempstr=str_replace('[!--userfen--]',$add[userfen],$newstempstr);
  263. $newstempstr=str_replace('[!--username--]',$add[username],$newstempstr);
  264. //带链接的用户名
  265. if($add[ismember]==1&&$add[userid])
  266. {
  267. $newstempstr=str_replace('[!--linkusername--]',"<a href='".$public_r[newsurl]."e/space/?userid=".$add[userid]."' target=_blank>".$add[username]."</a>",$newstempstr);
  268. }
  269. else
  270. {
  271. $newstempstr=str_replace('[!--linkusername--]',$add[username],$newstempstr);
  272. }
  273. $newstempstr=str_replace('[!--userid--]',$add[userid],$newstempstr);
  274. $newstempstr=str_replace('[!--other.link--]',$keyboardtext,$newstempstr);
  275. $newstempstr=str_replace('[!--news.url--]',$public_r[newsurl],$newstempstr);
  276. $newstempstr=str_replace('[!--plnum--]',$add[plnum],$newstempstr);
  277. $newstempstr=str_replace('[!--totaldown--]',$add[totaldown],$newstempstr);
  278. $newstempstr=str_replace('[!--keyboard--]',$add[keyboard],$newstempstr);
  279. //链接
  280. $titleurl=sys_ReturnBqTitleLink($add);
  281. $newstempstr=str_replace('[!--titleurl--]',$titleurl,$newstempstr);
  282. $newstempstr=str_replace('[!--page.stats--]','',$newstempstr);
  283. $classurl=sys_ReturnBqClassname($add,9);
  284. $newstempstr=str_replace('[!--class.url--]',$classurl,$newstempstr);
  285. //下一篇
  286. if(strstr($newstemptext,'[!--info.next--]'))
  287. {
  288. $next_r=$empire->fetch1("select titleurl,groupid,classid,newspath,filename,id,title from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id>$add[id] and classid='$add[classid]' and checked=1 order by id limit 1");
  289. if(empty($next_r[id]))
  290. {
  291. $infonext="<a href='".$classurl."'>".$fun_r['HaveNoNextLink']."</a>";
  292. }
  293. else
  294. {
  295. //链接
  296. $nexttitleurl=sys_ReturnBqTitleLink($next_r);
  297. $infonext="<a href='".$nexttitleurl."'>".$next_r[title]."</a>";
  298. }
  299. $newstempstr=str_replace('[!--info.next--]',$infonext,$newstempstr);
  300. }
  301. //上一篇
  302. if(strstr($newstemptext,'[!--info.pre--]'))
  303. {
  304. $next_r=$empire->fetch1("select titleurl,groupid,classid,newspath,filename,id,title from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id<$add[id] and classid='$add[classid]' and checked=1 order by id desc limit 1");
  305. if(empty($next_r[id]))
  306. {
  307. $infonext="<a href='".$classurl."'>".$fun_r['HaveNoNextLink']."</a>";
  308. }
  309. else
  310. {
  311. //链接
  312. $nexttitleurl=sys_ReturnBqTitleLink($next_r);
  313. $infonext="<a href='".$nexttitleurl."'>".$next_r[title]."</a>";
  314. }
  315. $newstempstr=str_replace('[!--info.pre--]',$infonext,$newstempstr);
  316. }
  317. //投票
  318. if(strstr($newstemptext,'[!--info.vote--]'))
  319. {
  320. $myvotetext=sys_GetInfoVote($add[classid],$add[id]);
  321. $newstempstr=str_replace('[!--info.vote--]',$myvotetext,$newstempstr);
  322. }
  323. //评分
  324. if(strstr($newstemptext,'[!--pinfopfen--]'))
  325. {
  326. $pinfopfen=$add[infopfennum]?round($add[infopfen]/$add[infopfennum]):0;
  327. $newstempstr=str_replace('[!--pinfopfen--]',$pinfopfen,$newstempstr);
  328. $newstempstr=str_replace('[!--infopfennum--]',$add[infopfennum],$newstempstr);
  329. }
  330. $string=$newstempstr;
  331. //替换变量
  332. $string=str_replace('[!--p.title--]',$ptitle,$string);
  333. $string=str_replace('[!--next.page--]',$thisnextlink,$string);
  334. $string=str_replace('[!--page.url--]',$truepage,$string);
  335. $string=str_replace('[!--title.select--]',$titleselect,$string);
  336. return $string;
  337. }
  338. if(empty($newstemp_r[tempid]))
  339. {
  340. printerror('ErrorUrl','',1);
  341. }
  342. //页面支持标签
  343. if($public_r['dtncanbq'])
  344. {
  345. $newstemp_r[temptext]=DtNewsBq('text'.$newstemp_r[tempid],$newstemp_r[temptext],1);
  346. }
  347. else
  348. {
  349. if($public_r['searchtempvar'])
  350. {
  351. $newstemp_r[temptext]=ReplaceTempvar($newstemp_r[temptext]);
  352. }
  353. }
  354. $string=DtGetHtml($r,$newstemp_r,$mid,$tbname,$line,$page_line,$start,$page,$search);
  355. echo stripSlashes($string);
  356. db_close();
  357. $empire=null;
  358. ?>