PageRenderTime 37ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/e/admin/ecmseditor/editorfun.php

https://github.com/westeast/xwdede
PHP | 460 lines | 413 code | 6 blank | 41 comment | 74 complexity | a12da659b1365567a413f5c6926938ec MD5 | raw file
  1. <?php
  2. //提示信息
  3. function ECMS_EditorPrintError($errorNumber,$fileUrl,$fileName,$customMsg,$fileno,$filesize){
  4. if(empty($errorNumber))
  5. {
  6. $errorNumber=0;
  7. $filesize=ChTheFilesize($filesize);
  8. }
  9. else
  10. {
  11. @include '../'.LoadLang("pub/message.php");
  12. $customMsg=$message_r[$customMsg];
  13. }
  14. $errorNumber=(int)$errorNumber;
  15. echo"<script type=\"text/javascript\">window.parent.OnUploadCompleted($errorNumber,'".addslashes($fileUrl)."','".addslashes($fileName)."','".addslashes($customMsg)."','".addslashes($fileno)."','$filesize');</script>";
  16. db_close();
  17. exit();
  18. }
  19. //返回表格格式
  20. function eTranMoreTbGs($r){
  21. if($r['tbcolor'])
  22. {
  23. $tbcolor=" bgcolor='".$r['tbcolor']."'";
  24. }
  25. if($r['tbbordercolor'])
  26. {
  27. $tbbordercolor=" bordercolor='".$r['tbbordercolor']."'";
  28. }
  29. if($r['tbsp'])
  30. {
  31. $tbsp=" cellspacing='".$r['tbsp']."'";
  32. }
  33. if($r['tbpa'])
  34. {
  35. $tbpa=" cellpadding='".$r['tbpa']."'";
  36. }
  37. if($r['tbwidth'])
  38. {
  39. $tbwidth=" width='".$r['tbwidth'].$r['tbwidthdw']."'";
  40. }
  41. $table="<table".$tbwidth." border='".$r['tbborder']."'".$tbpa.$tbsp.$tbbordercolor.$tbcolor." align='".$r['tbalign']."'>";
  42. return $table;
  43. }
  44. //编辑器上传多图片
  45. function eTranMorePic($file,$file_name,$file_type,$file_size,$add,$userid,$username){
  46. global $empire,$public_r,$dbtbpre,$fun_r;
  47. //导入gd处理文件
  48. if($add['getsmall']||$add['getmark'])
  49. {
  50. @include(ECMS_PATH."e/class/gd.php");
  51. }
  52. $tranfrom=(int)$add['tranfrom'];
  53. $j=0;
  54. $line=(int)$add['line'];
  55. if($line==0)
  56. {
  57. $line=1;
  58. }
  59. $add[classid]=(int)$add[classid];
  60. //远程保存
  61. if($add['saveurl'])
  62. {
  63. $url_r=explode("\r\n",$add['saveurl']);
  64. $count=count($url_r);
  65. for($i=0;$i<$count;$i++)
  66. {
  67. if(empty($url_r[$i]))
  68. {continue;}
  69. //验证图片
  70. $check=eTranMorePicCheck($url_r[$i],0);
  71. if($check==0)
  72. {continue;}
  73. //开始上传
  74. $r=DoTranUrl($url_r[$i],$add['classid']);
  75. if(empty($r[tran]))
  76. {
  77. continue;
  78. }
  79. $imgurl=$r['url'];
  80. $bimgurl=$r['url'];
  81. //写入数据库
  82. $r[filesize]=(int)$r[filesize];
  83. $add[classid]=(int)$add[classid];
  84. $add[type]=(int)$add[type];
  85. $add[filepass]=(int)$add[filepass];
  86. $filetime=date("Y-m-d H:i:s");
  87. $sql=$empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,onclick,fpath) values('$r[filename]',$r[filesize],'$username','$r[filepath]','$filetime',$add[classid],'$r[filename]',$add[type],$add[filepass],$add[filepass],0,'$public_r[fpath]');");
  88. //缩略图
  89. if($add['getsmall'])
  90. {
  91. $sfiler=GetMySmallImg($add['classid'],$r[filename],$r[insertfile],$r[filepath],$r[yname],$add[swidth],$add[sheight],$r[name],$add['filepass'],$add['filepass'],$userid,$username);
  92. $imgurl=str_replace("/".$r[filename],"/small".$r[insertfile].$sfiler['filetype'],$r[url]);
  93. }
  94. //水印
  95. if($add['getmark'])
  96. {
  97. GetMyMarkImg($r['yname']);
  98. }
  99. //开始输出字符
  100. $j++;
  101. //分页
  102. if($add['exptype']==1)
  103. {
  104. $classtext.="<p align='".$add['align']."'>".eTranMorePicGs($bimgurl,$imgurl,$add)."</p>";
  105. if($j%$line==0)
  106. {
  107. $classtext.="[!--empirenews.page--]";
  108. }
  109. }
  110. //表格
  111. else
  112. {
  113. if(($j-1)%$line==0||$j==1)
  114. {$classtext.="<tr>";}
  115. $classtext.="<td align=".$add['align'].">".eTranMorePicGs($bimgurl,$imgurl,$add)."</td>";
  116. if($j%$line==0)
  117. {$classtext.="</tr>";}
  118. }
  119. }
  120. //表格
  121. if($add['exptype']==0)
  122. {
  123. if($j<>0)
  124. {
  125. $table=eTranMoreTbGs($add);
  126. $table1="</table>";
  127. $ys=$line-$j%$line;
  128. $p=0;
  129. for($k=0;$k<$ys&&$ys!=$line;$k++)
  130. {
  131. $p=1;
  132. $classtext.="<td></td>";
  133. }
  134. if($p==1)
  135. {
  136. $classtext.="</tr>";
  137. }
  138. }
  139. $classtext=$table.$classtext.$table1;
  140. }
  141. //分页
  142. else
  143. {
  144. if($j%$line==0)
  145. {
  146. $classtext=substr($classtext,0,strlen($classtext)-22);
  147. }
  148. }
  149. }
  150. //本地上传
  151. else
  152. {
  153. $count=count($file_name);
  154. if($count==0)
  155. {
  156. $tranfrom==0?printerror("MustChangeTranOneFile","history.go(-1)",8):ECMS_EditorPrintError(1,'','','MustChangeTranOneFile','','');
  157. }
  158. $GLOBALS['doetran']=1;
  159. for($i=0;$i<$count;$i++)
  160. {
  161. if(empty($file_name[$i]))
  162. {
  163. continue;
  164. }
  165. //验证图片
  166. $check=eTranMorePicCheck($file_name[$i],$file_size[$i]);
  167. if($check==0)
  168. {
  169. continue;
  170. }
  171. //上传
  172. $r=DoTranFile($file[$i],$file_name[$i],$file_type[$i],$file_size[$i],$add['classid']);
  173. if(empty($r[tran]))
  174. {
  175. continue;
  176. }
  177. $imgurl=$r['url'];
  178. $bimgurl=$r['url'];
  179. //写入数据库
  180. $r[filesize]=(int)$r[filesize];
  181. $add[classid]=(int)$add[classid];
  182. $add[type]=(int)$add[type];
  183. $add[filepass]=(int)$add[filepass];
  184. $filetime=date("Y-m-d H:i:s");
  185. $sql=$empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,onclick,fpath) values('$r[filename]',$r[filesize],'$username','$r[filepath]','$filetime',$add[classid],'$r[filename]',$add[type],$add[filepass],$add[filepass],0,'$public_r[fpath]');");
  186. //缩略图
  187. if($add['getsmall'])
  188. {
  189. $sfiler=GetMySmallImg($add['classid'],$r[filename],$r[insertfile],$r[filepath],$r[yname],$add[swidth],$add[sheight],$r[name],$add['filepass'],$add['filepass'],$userid,$username);
  190. $imgurl=str_replace("/".$r[filename],"/small".$r[insertfile].$sfiler['filetype'],$r[url]);
  191. }
  192. //水印
  193. if($add['getmark'])
  194. {
  195. GetMyMarkImg($r['yname']);
  196. }
  197. //开始输出字符
  198. $j++;
  199. //分页
  200. if($add['exptype']==1)
  201. {
  202. $classtext.="<p align=".$add['align'].">".eTranMorePicGs($bimgurl,$imgurl,$add)."</p>";
  203. if($j%$line==0)
  204. {
  205. $classtext.="[!--empirenews.page--]";
  206. }
  207. }
  208. //表格
  209. else
  210. {
  211. if(($j-1)%$line==0||$j==1)
  212. {$classtext.="<tr>";}
  213. $classtext.="<td align=".$add['align'].">".eTranMorePicGs($bimgurl,$imgurl,$add)."</td>";
  214. if($j%$line==0)
  215. {$classtext.="</tr>";}
  216. }
  217. }
  218. //表格
  219. if($add['exptype']==0)
  220. {
  221. if($j<>0)
  222. {
  223. $table=eTranMoreTbGs($add);
  224. $table1="</table>";
  225. $ys=$line-$j%$line;
  226. $p=0;
  227. for($k=0;$k<$ys&&$ys!=$line;$k++)
  228. {
  229. $p=1;
  230. $classtext.="<td></td>";
  231. }
  232. if($p==1)
  233. {
  234. $classtext.="</tr>";
  235. }
  236. }
  237. $classtext=$table.$classtext.$table1;
  238. }
  239. //分页
  240. else
  241. {
  242. if($j%$line==0)
  243. {
  244. $classtext=substr($classtext,0,strlen($classtext)-22);
  245. }
  246. }
  247. }
  248. echo "<script>window.parent.DoFile(\"".$classtext."\");</script>";
  249. db_close();
  250. exit();
  251. }
  252. //返回图片格式
  253. function eTranMorePicGs($bimgurl,$imgurl,$r){
  254. if($r['width'])
  255. {
  256. $width=" width=".$r['width'];
  257. }
  258. if($r['height'])
  259. {
  260. $height=" height=".$r['height'];
  261. }
  262. $pic="<a href='".$bimgurl."' target='_blank'><img src='".$imgurl."' border=".$r['imgborder'].$width.$height."></a>";
  263. return $pic;
  264. }
  265. //验证图片是否合法
  266. function eTranMorePicCheck($url,$filesize){
  267. global $public_r,$tranpicturetype;
  268. $filetype=GetFiletype($url);//扩展名
  269. //如果是.php文件
  270. if(CheckSaveTranFiletype($filetype))
  271. {
  272. return 0;
  273. }
  274. if(!strstr($public_r['filetype'],"|".$filetype."|"))
  275. {
  276. return 0;
  277. }
  278. if($filesize>$public_r['filesize']*1024)
  279. {
  280. return 0;
  281. }
  282. //扩展名是否合法
  283. if(!strstr($tranpicturetype,','.$filetype.','))
  284. {
  285. return 0;
  286. }
  287. return 1;
  288. }
  289. //上传文件
  290. function TranFile($file,$file_name,$file_type,$file_size,$tranurl,$no,$classid,$type,$post,$userid,$username){
  291. global $empire,$public_r,$loginrnd,$dbtbpre,$tranpicturetype,$tranflashtype,$mediaplayertype,$realplayertype;
  292. if(!$no)
  293. {
  294. $no=$file_name;
  295. }
  296. $tranfrom=(int)$post['tranfrom'];
  297. $classid=(int)$classid;
  298. //是否为空
  299. if(!$file_name)
  300. {
  301. if(empty($tranurl)||$tranurl=="http://")
  302. {
  303. $tranfrom==0?printerror("EmptyHttp","history.go(-1)",8):ECMS_EditorPrintError(1,'','','EmptyHttp','','');
  304. }
  305. $filetype=GetFiletype($tranurl);//取得文件类型
  306. $file_size=0;
  307. }
  308. else
  309. {
  310. $filetype=GetFiletype($file_name);//取得文件类型
  311. }
  312. //如果是.php文件
  313. if(CheckSaveTranFiletype($filetype))
  314. {
  315. $tranfrom==0?printerror("TranPHP","history.go(-1)",8):ECMS_EditorPrintError(1,'','','TranPHP','','');
  316. }
  317. $type_r=explode("|".$filetype."|",$public_r['filetype']);
  318. if(count($type_r)<2)
  319. {
  320. $tranfrom==0?printerror("TranFiletypeFail","history.go(-1)",8):ECMS_EditorPrintError(1,'','','TranFiletypeFail','','');
  321. }
  322. if($file_size>$public_r['filesize']*1024)
  323. {
  324. $tranfrom==0?printerror("TranFilesizeFail","history.go(-1)",8):ECMS_EditorPrintError(1,'','','TranFilesizeFail','','');
  325. }
  326. if($type==1)//上传图片
  327. {
  328. if(!strstr($tranpicturetype,','.$filetype.','))
  329. {
  330. $tranfrom==0?printerror("NotTranImg","history.go(-1)",8):ECMS_EditorPrintError(1,'','','NotTranImg','','');
  331. }
  332. }
  333. elseif($type==2)//上传flash
  334. {
  335. if(!strstr($tranflashtype,','.$filetype.','))
  336. {
  337. $tranfrom==0?printerror("NotTranFlash","history.go(-1)",8):ECMS_EditorPrintError(1,'','','NotTranFlash','','');
  338. }
  339. }
  340. elseif($type==3)//上传多媒体
  341. {}
  342. else//上传附件
  343. {}
  344. //远程保存
  345. if(empty($file_name))
  346. {
  347. $r=DoTranUrl($tranurl,$classid);
  348. if(empty($r[tran]))
  349. {
  350. $tranfrom==0?printerror("TranHttpFail","history.go(-1)",8):ECMS_EditorPrintError(1,'','','TranHttpFail','','');
  351. }
  352. }
  353. //本地上传
  354. else
  355. {
  356. $r=DoTranFile($file,$file_name,$file_type,$file_size,$classid);
  357. if(empty($r[tran]))
  358. {
  359. $tranfrom==0?printerror("TranFail","history.go(-1)",8):ECMS_EditorPrintError(1,'','','TranFail','','');
  360. }
  361. }
  362. if(!$no)
  363. {
  364. $no=$r[filename];
  365. }
  366. //写入数据库
  367. $r[filesize]=(int)$r[filesize];
  368. $classid=(int)$classid;
  369. $post[filepass]=(int)$post[filepass];
  370. $type=(int)$type;
  371. $filetime=date("Y-m-d H:i:s");
  372. $sql=$empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,fpath) values('$r[filename]',$r[filesize],'$username','$r[filepath]','$filetime',$classid,'$no',$type,$post[filepass],$post[filepass],'$public_r[fpath]');");
  373. $fileid=$empire->lastid();
  374. //导入gd.php文件
  375. if($type==1&&($post['getsmall']||$post['getmark']))
  376. {
  377. @include(ECMS_PATH."e/class/gd.php");
  378. }
  379. //缩略图
  380. if($type==1&&$post['getsmall'])
  381. {
  382. GetMySmallImg($classid,$no,$r[insertfile],$r[filepath],$r[yname],$post[width],$post[height],$r[name],$post['filepass'],$post['filepass'],$userid,$username);
  383. }
  384. //水印
  385. if($type==1&&$post['getmark'])
  386. {
  387. GetMyMarkImg($r['yname']);
  388. }
  389. if($sql)
  390. {
  391. if($tranfrom==1)//编辑器上传
  392. {
  393. //$imgstr=EditorSetTranPic($r[url],$r[url],$post);
  394. ECMS_EditorPrintError(0,$r[url],$r[filename],'',$no,$r[filesize]);
  395. db_close();
  396. exit();
  397. }
  398. echo"<script>parent.location.reload();</script>";
  399. db_close();
  400. exit();
  401. }
  402. else
  403. {
  404. $tranfrom==0?printerror("InTranRecordFail","history.go(-1)",8):ECMS_EditorPrintError(1,'','','InTranRecordFail','','');
  405. }
  406. }
  407. //插入图片
  408. function EditorSetTranPic($picurl,$smallpic,$add){
  409. $imgstr="<img src='$picurl'";
  410. if($add[pic_autosize])
  411. {
  412. $imgstr.=" onload='autosimg(this);' onmousewheel='return zoomimg(this);'";
  413. }
  414. if($add[pic_height])
  415. {
  416. $imgstr.=" height='$add[pic_height]'";
  417. }
  418. if($add[pic_width])
  419. {
  420. $imgstr.=" width='$add[pic_width]'";
  421. }
  422. $imgstr.=" border='$add[pic_border]'";
  423. if($add[pic_alt])
  424. {
  425. $imgstr.=" alt='$add[pic_alt]'";
  426. }
  427. if($add[pic_vspace])
  428. {
  429. $imgstr.=" vspace='$add[pic_vspace]'";
  430. }
  431. if($add[pic_hspace])
  432. {
  433. $imgstr.=" hspace='$add[pic_hspace]'";
  434. }
  435. if($add[pic_align])
  436. {
  437. $imgstr.=" align='$add[pic_align]'";
  438. }
  439. if(empty($add[pic_link]))
  440. {
  441. $add[pic_link]=$picurl;
  442. }
  443. $imgstr="<a href='$add[pic_link]' target='$add[pic_linktarget]'>".$imgstr."></a>";
  444. if($add[pic_say])
  445. {
  446. $imgstr.="<br><span style='line-height=18pt'>".htmlspecialchars($add[pic_say])."</span>";
  447. }
  448. if($add[pic_align]=='center')
  449. {
  450. $imgstr='<center>'.$imgstr.'</center>';
  451. }
  452. return $imgstr;
  453. }
  454. ?>