国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

592 lines
22KB

  1. <?php if(!defined('DEDEINC')) exit('dedecms');
  2. /**
  3. * 系统核心函数存放文件
  4. * @version $Id: customfields.func.php 2 20:50 2010年7月7日Z tianya $
  5. * @package DedeCMS.Libraries
  6. * @copyright Copyright (c) 2020, DedeBIZ.COM
  7. * @license https://www.dedebiz.com/license
  8. * @link https://www.dedebiz.com
  9. */
  10. /**
  11. * 获得一个附加表单(发布时用)
  12. *
  13. * @access public
  14. * @param object $ctag 标签
  15. * @param string $admintype 管理员类型
  16. * @return string
  17. */
  18. function GetFormItem($ctag, $admintype='admin')
  19. {
  20. $fieldname = $ctag->GetName();
  21. $fieldType = $ctag->GetAtt('type');
  22. $formitem = $formitem = GetSysTemplets("custom_fields_{$admintype}.htm");
  23. $innertext = trim($ctag->GetInnerText());
  24. if($innertext!='')
  25. {
  26. $formitem = $innertext;
  27. }
  28. if($fieldType=='select')
  29. {
  30. $myformItem = '';
  31. $items = explode(',',$ctag->GetAtt("default"));
  32. $myformItem = "<select name='$fieldname' style='width:150px'>";
  33. foreach($items as $v)
  34. {
  35. $v = trim($v);
  36. if($v!='') {
  37. $myformItem.= "<option value='$v'>$v</option>\r\n";
  38. }
  39. }
  40. $myformItem .= "</select>\r\n";
  41. $innertext = $myformItem;
  42. }
  43. else if($fieldType=='stepselect')
  44. {
  45. global $hasSetEnumJs,$cfg_cmspath;
  46. $cmspath = ( (empty($cfg_cmspath) || !preg_match('/[/$]/', $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath );
  47. $myformItem = '';
  48. $myformItem .= "<input type='hidden' id='hidden_{$fieldname}' name='{$fieldname}' value='0' />\r\n";
  49. $myformItem .= "<span id='span_{$fieldname}'></span>\r\n";
  50. $myformItem .= "<span id='span_{$fieldname}_son'></span>\r\n";
  51. $myformItem .= "<span id='span_{$fieldname}_sec'></span>\r\n";
  52. if($hasSetEnumJs != 'hasset')
  53. {
  54. $myformItem .= '<script language="javascript" type="text/javascript" src="'.$cmspath.'static/enums.js"></script>'."\r\n";
  55. $GLOBALS['hasSetEnumJs'] = 'hasset';
  56. }
  57. $myformItem .= "<script language='javascript' type='text/javascript' src='{$cmspath}data/enums/{$fieldname}.js'></script>\r\n";
  58. $myformItem .= '<script language="javascript" type="text/javascript">MakeTopSelect("'.$fieldname.'", 0);</script>'."\r\n";
  59. $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem);
  60. $formitem = str_replace('~form~', $myformItem, $formitem);
  61. return $formitem;
  62. }
  63. else if($fieldType=='radio')
  64. {
  65. $myformItem = '';
  66. $items = explode(',',$ctag->GetAtt("default"));
  67. $i = 0;
  68. foreach($items as $v)
  69. {
  70. $v = trim($v);
  71. if($v!='')
  72. {
  73. $myformItem .= ($i==0 ? "<input type='radio' name='$fieldname' class='np' value='$v' checked>$v\r\n" : "<input type='radio' name='$fieldname' class='np' value='$v'>$v\r\n");
  74. $i++;
  75. }
  76. }
  77. $innertext = $myformItem;
  78. }
  79. else if($fieldType=='checkbox')
  80. {
  81. $myformItem = '';
  82. $items = explode(',',$ctag->GetAtt("default"));
  83. foreach($items as $v)
  84. {
  85. $v = trim($v);
  86. if($v!='')
  87. {
  88. if($admintype == 'membermodel')
  89. {
  90. $myformItem .= "<label><input type='checkbox' name='{$fieldname}[]' class='np' value='$v'>$v</label>\r\n";
  91. } else {
  92. $myformItem .= "<input type='checkbox' name='{$fieldname}[]' class='np' value='$v'>$v\r\n";
  93. }
  94. }
  95. }
  96. $innertext = $myformItem;
  97. }
  98. else if($fieldType=='htmltext'||$fieldType=='textdata')
  99. {
  100. $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : '');
  101. $dfvalue = str_replace('{{', '<', $dfvalue);
  102. $dfvalue = str_replace('}}', '>', $dfvalue);
  103. if($admintype=='admin')
  104. {
  105. $innertext = GetEditor($fieldname, $dfvalue, 350, 'Basic', 'string');
  106. }
  107. else if($admintype=='diy')
  108. {
  109. $innertext = GetEditor($fieldname, $dfvalue, 350, 'Diy', 'string');
  110. }
  111. else
  112. {
  113. $innertext = GetEditor($fieldname, $dfvalue, 350, 'Member', 'string');
  114. }
  115. }
  116. else if($fieldType=="multitext")
  117. {
  118. $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:90%;height:80'></textarea>\r\n";
  119. }
  120. else if($fieldType=="datetime")
  121. {
  122. $nowtime = GetDateTimeMk(time());
  123. $innertext = "<input name=\"$fieldname\" value=\"$nowtime\" type=\"text\" id=\"$fieldname\" style=\"width:250px\" class=\"intxt datepicker\"/>";
  124. }
  125. else if($fieldType=='img'||$fieldType=='imgfile')
  126. {
  127. if($admintype=='diy') {
  128. $innertext = "<input type='file' name='$fieldname' id='$fieldname' style='width:300px;height:22px;line-height:22px' />\r\n";
  129. }
  130. else {
  131. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:300px' class='text' /> <input name='".$fieldname."_bt' type='button' class='inputbut' value='浏览...' onClick=\"SelectImage('form1.$fieldname','big')\" />\r\n";
  132. }
  133. }
  134. else if($fieldType=='media')
  135. {
  136. if($admintype=='diy')
  137. {
  138. $innertext = "<input type='hidden' name='$fieldname' id='$fieldname' value='' />不支持的类型\r\n";
  139. }
  140. else
  141. {
  142. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:300px' class='text' /> <input name='".$fieldname."_bt' type='button' class='inputbut' value='浏览...' onClick=\"SelectMedia('form1.$fieldname')\" />\r\n";
  143. }
  144. }
  145. else if($fieldType=='addon')
  146. {
  147. if($admintype=='diy')
  148. {
  149. $innertext = "<input type='file' name='$fieldname' id='$fieldname' style='width:300px;height:22px;line-height:22px' />\r\n";
  150. }
  151. else
  152. {
  153. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:300px' class='text' /> <input name='".$fieldname."_bt' type='button' class='inputbut' value='浏览...' onClick=\"SelectSoft('form1.$fieldname')\" />\r\n";
  154. }
  155. }
  156. else if($fieldType=='int'||$fieldType=='float')
  157. {
  158. $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : '0');
  159. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:100px' class='intxt' value='$dfvalue' /> (填写数值)\r\n";
  160. } else if($fieldType=='relation') {
  161. $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : '');
  162. $channel = ($ctag->GetAtt('channel') == "")? "1" : $ctag->GetAtt('channel');
  163. $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:90%;height:80px'>$dfvalue</textarea><br>
  164. <button type='button' class='btn btn-secondary btn-sm mt-2 mb-2' onclick='SelectArcList(\"form1.$fieldname\", $channel);'>选择关联内容</button>\r\n";
  165. if ($ctag->GetAtt('automake') == 1) {
  166. $innertext .= "<input type='hidden' name='automake[$fieldname]' value=1>";
  167. }
  168. $innertext .= <<<EOT
  169. <script>
  170. if(typeof SelectArcList === "undefined") {
  171. function SelectArcList(fname,cid) {
  172. var posLeft = 10;
  173. var posTop = 10;
  174. window.open("content_select_list.php?f=" + fname+"&channelid="+cid, "selArcList", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=500,left=" + posLeft + ", top=" + posTop);
  175. }
  176. }
  177. </script>
  178. EOT;
  179. }
  180. else
  181. {
  182. $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : '');
  183. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:250px' class='intxt' value='$dfvalue' />
  184. \r\n";
  185. }
  186. $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
  187. $formitem = str_replace("~form~",$innertext,$formitem);
  188. return $formitem;
  189. }
  190. /**
  191. * 处理不同类型的数据
  192. *
  193. * @access public
  194. * @param string $dvalue 默认值
  195. * @param string $dtype 默认类型
  196. * @param int $aid 文档ID
  197. * @param string $job 操作类型
  198. * @param string $addvar 值
  199. * @param string $admintype 管理类型
  200. * @param string $fieldname 变量类型
  201. * @return string
  202. */
  203. function GetFieldValue($dvalue, $dtype, $aid=0, $job='add', $addvar='', $admintype='admin', $fieldname='')
  204. {
  205. global $cfg_basedir, $cfg_cmspath, $adminid, $cfg_ml, $cfg_cookie_encode;
  206. if(!empty($adminid))
  207. {
  208. $adminid = $adminid;
  209. }
  210. else
  211. {
  212. $adminid = isset($cfg_ml) ? $cfg_ml->M_ID : 1;
  213. }
  214. if($dtype=='int')
  215. {
  216. if($dvalue=='')
  217. {
  218. return 0;
  219. }
  220. return GetAlabNum($dvalue);
  221. } else if ($dtype=='relation') {
  222. $dvalue = trim(preg_replace("#[^0-9,]#", "", $dvalue));
  223. return $dvalue;
  224. }
  225. else if($dtype=='stepselect')
  226. {
  227. $dvalue = trim(preg_replace("#[^0-9\.]#", "", $dvalue));
  228. return $dvalue;
  229. }
  230. else if($dtype=='float')
  231. {
  232. if($dvalue=='')
  233. {
  234. return 0;
  235. }
  236. return GetAlabNum($dvalue);
  237. }
  238. else if($dtype=='datetime')
  239. {
  240. if($dvalue=='')
  241. {
  242. return 0;
  243. }
  244. return GetMkTime($dvalue);
  245. }
  246. else if($dtype=='checkbox')
  247. {
  248. $okvalue = '';
  249. if(is_array($dvalue))
  250. {
  251. $okvalue = join(',',$dvalue);
  252. }
  253. return $okvalue;
  254. }
  255. else if($dtype=="htmltext")
  256. {
  257. if($admintype=='member' || $admintype=='diy')
  258. {
  259. $dvalue = HtmlReplace($dvalue,-1);
  260. }
  261. return $dvalue;
  262. }
  263. else if($dtype=="multitext")
  264. {
  265. if($admintype=='member' || $admintype=='diy')
  266. {
  267. $dvalue = HtmlReplace($dvalue,0);
  268. }
  269. return $dvalue;
  270. }
  271. else if($dtype=="textdata")
  272. {
  273. $ipath = $cfg_cmspath."/data/textdata";
  274. $tpath = ceil($aid / 5000);
  275. if(!is_dir($cfg_basedir.$ipath))
  276. {
  277. MkdirAll($cfg_basedir.$ipath, $GLOBALS['cfg_dir_purview']);
  278. }
  279. if(!is_dir($cfg_basedir.$ipath.'/'.$tpath))
  280. {
  281. MkdirAll($cfg_basedir.$ipath.'/'.$tpath,$GLOBALS['cfg_dir_purview']);
  282. }
  283. $ipath = $ipath.'/'.$tpath;
  284. $filename = "{$ipath}/{$aid}-".cn_substr(md5($cfg_cookie_encode), 0, 16).".txt";
  285. //会员投稿内容安全处理
  286. if($admintype=='member' || $admintype=='diy')
  287. {
  288. $dvalue = HtmlReplace($dvalue, -1);
  289. }
  290. $fp = fopen($cfg_basedir.$filename,"w");
  291. fwrite($fp, stripslashes($dvalue));
  292. fclose($fp);
  293. CloseFtp();
  294. return $filename;
  295. }
  296. else if($dtype=='img' || $dtype=='imgfile')
  297. {
  298. if(preg_match("#[\\|/]uploads[\\|/]userup#", $dvalue)) return $dvalue;
  299. if($admintype=='diy')
  300. {
  301. $iurl = MemberUploads($fieldname, '', 0, 'image', '', -1, -1, false);
  302. return $iurl;
  303. }
  304. $iurl = stripslashes($dvalue);
  305. if(trim($iurl)=='')
  306. {
  307. return '';
  308. }
  309. $iurl = trim(str_replace($GLOBALS['cfg_basehost'],"",$iurl));
  310. $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
  311. if(preg_match("/^http:\/\//i", $iurl) && $GLOBALS['cfg_isUrlOpen'])
  312. {
  313. //远程图片
  314. $reimgs = '';
  315. if($GLOBALS['cfg_isUrlOpen'])
  316. {
  317. $reimgs = GetRemoteImage($iurl,$adminid);
  318. if(is_array($reimgs))
  319. {
  320. if($dtype=='imgfile')
  321. {
  322. $imgurl = $reimgs[1];
  323. }
  324. else
  325. {
  326. $imgurl = "{dede:img text='' width='".$reimgs[1]."' height='".$reimgs[2]."'} ".$reimgs[0]." {/dede:img}";
  327. }
  328. }
  329. }
  330. else
  331. {
  332. if($dtype=='imgfile')
  333. {
  334. $imgurl = $iurl;
  335. }
  336. else
  337. {
  338. $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
  339. }
  340. }
  341. }
  342. else if($iurl != '')
  343. {
  344. //站内图片
  345. $imgfile = $cfg_basedir.$iurl;
  346. if(is_file($imgfile))
  347. {
  348. $info = '';
  349. $imginfos = GetImageSize($imgfile,$info);
  350. if($dtype=="imgfile")
  351. {
  352. $imgurl = $iurl;
  353. }
  354. else
  355. {
  356. $imgurl = "{dede:img text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}";
  357. }
  358. }
  359. }
  360. return addslashes($imgurl);
  361. }
  362. else if($dtype=='addon' && $admintype=='diy')
  363. {
  364. if(preg_match("#[\\|/]uploads[\\|/]userup#", $dvalue)) return $dvalue;
  365. $dvalue = MemberUploads($fieldname,'', 0, 'addon', '', -1, -1, false);
  366. return $dvalue;
  367. }
  368. else
  369. {
  370. if($admintype=='member' || $admintype=='diy')
  371. {
  372. $dvalue = HtmlReplace($dvalue,1);
  373. }
  374. return $dvalue;
  375. }
  376. }
  377. /**
  378. * 获得带值的表单(编辑时用)
  379. *
  380. * @access public
  381. * @param object $ctag 标签
  382. * @param mixed $fvalue 变量值
  383. * @param string $admintype 会员类型
  384. * @param string $fieldname 变量名称
  385. * @return string
  386. */
  387. function GetFormItemValue($ctag, $fvalue, $admintype='admin', $fieldname='')
  388. {
  389. global $cfg_basedir;
  390. $fieldname = $ctag->GetName();
  391. $formitem = $formitem = GetSysTemplets("custom_fields_{$admintype}.htm");
  392. $innertext = trim($ctag->GetInnerText());
  393. if($innertext!='')
  394. {
  395. $formitem = $innertext;
  396. }
  397. $ftype = $ctag->GetAtt('type');
  398. $myformItem = '';
  399. if(preg_match("/select|radio|checkbox/i", $ftype))
  400. {
  401. $items = explode(',',$ctag->GetAtt('default'));
  402. }
  403. if($ftype=='select')
  404. {
  405. $myformItem = "<select name='$fieldname' style='width:150px'>";
  406. if(is_array($items))
  407. {
  408. foreach($items as $v)
  409. {
  410. $v = trim($v);
  411. if($v=='')
  412. {
  413. continue;
  414. }
  415. $myformItem.= ($fvalue==$v ? "<option value='$v' selected>$v</option>\r\n" : "<option value='$v'>$v</option>\r\n");
  416. }
  417. }
  418. $myformItem .= "</select>\r\n";
  419. $innertext = $myformItem;
  420. }
  421. else if($ctag->GetAtt("type")=='stepselect')
  422. {
  423. global $hasSetEnumJs,$cfg_cmspath;
  424. $cmspath = ( (empty($cfg_cmspath) || preg_match('/[/$]/', $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath );
  425. $myformItem = '';
  426. $myformItem .= "<input type='hidden' id='hidden_{$fieldname}' name='{$fieldname}' value='{$fvalue}' />\r\n";
  427. $myformItem .= "<span id='span_{$fieldname}'></span>\r\n";
  428. $myformItem .= "<span id='span_{$fieldname}_son'></span>\r\n";
  429. $myformItem .= "<span id='span_{$fieldname}_sec'></span>\r\n";
  430. if($hasSetEnumJs != 'hasset')
  431. {
  432. $myformItem .= '<script language="javascript" type="text/javascript" src="'.$cmspath.'static/enums.js"></script>'."\r\n";
  433. $GLOBALS['hasSetEnumJs'] = 'hasset';
  434. }
  435. $myformItem .= "<script language='javascript' type='text/javascript' src='{$cmspath}data/enums/{$fieldname}.js'></script>\r\n";
  436. $myformItem .= "<script language='javascript' type='text/javascript'>MakeTopSelect('$fieldname', $fvalue);</script>\r\n";
  437. $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem);
  438. $formitem = str_replace('~form~', $myformItem, $formitem);
  439. return $formitem;
  440. }
  441. else if($ftype=='radio')
  442. {
  443. if(is_array($items))
  444. {
  445. foreach($items as $v)
  446. {
  447. $v = trim($v);
  448. if($v=='') continue;
  449. $myformItem.= ($fvalue==$v ? "<input type='radio' name='$fieldname' class='np' value='$v' checked='checked' />$v\r\n" : "<input type='radio' name='$fieldname' class='np' value='$v' />$v\r\n");
  450. }
  451. }
  452. $innertext = $myformItem;
  453. }
  454. //checkbox
  455. else if($ftype=='checkbox')
  456. {
  457. $myformItem = '';
  458. $fvalues = explode(',',$fvalue);
  459. if(is_array($items))
  460. {
  461. foreach($items as $v)
  462. {
  463. $v = trim($v);
  464. if($v=='')
  465. {
  466. continue;
  467. }
  468. if(in_array($v,$fvalues))
  469. {
  470. $myformItem .= "<input type='checkbox' name='{$fieldname}[]' class='np' value='$v' checked='checked' />$v\r\n";
  471. }
  472. else
  473. {
  474. $myformItem .= "<input type='checkbox' name='{$fieldname}[]' class='np' value='$v' />$v\r\n";
  475. }
  476. }
  477. }
  478. $innertext = $myformItem;
  479. }
  480. //文本数据的特殊处理
  481. else if($ftype=="textdata")
  482. {
  483. if(is_file($cfg_basedir.$fvalue))
  484. {
  485. $fp = fopen($cfg_basedir.$fvalue,'r');
  486. $okfvalue = '';
  487. while(!feof($fp)){ $okfvalue .= fgets($fp,1024); }
  488. fclose($fp);
  489. }
  490. else
  491. {
  492. $okfvalue = '';
  493. }
  494. if($admintype=='admin')
  495. {
  496. $myformItem = GetEditor($fieldname,$okfvalue,350,'Basic','string')."\r\n <input type='hidden' name='{$fieldname}_file' value='{$fvalue}' />\r\n ";
  497. }
  498. else
  499. {
  500. $myformItem = GetEditor($fieldname,$okfvalue,350,'Member','string')."\r\n <input type='hidden' name='{$fieldname}_file' value='{$fvalue}' />\r\n ";
  501. }
  502. $innertext = $myformItem;
  503. }
  504. else if($ftype=="htmltext")
  505. {
  506. if($admintype=='admin')
  507. {
  508. $myformItem = GetEditor($fieldname,$fvalue,350,'Basic','string')."\r\n ";
  509. }
  510. else
  511. {
  512. $myformItem = GetEditor($fieldname,$fvalue,350,'Member','string')."\r\n ";
  513. }
  514. $innertext = $myformItem;
  515. }
  516. else if($ftype=="multitext")
  517. {
  518. $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:90%;height:80px'>$fvalue</textarea>\r\n";
  519. }
  520. else if($ftype=="datetime")
  521. {
  522. $nowtime = GetDateTimeMk($fvalue);
  523. $innertext = "<input name=\"$fieldname\" value=\"$nowtime\" type=\"text\" id=\"$fieldname\" style=\"width:250px\" class=\"intxt datepicker\" />";
  524. }
  525. else if($ftype=="img")
  526. {
  527. $ndtp = new DedeTagParse();
  528. $ndtp->LoadSource($fvalue);
  529. if(!is_array($ndtp->CTags))
  530. {
  531. $ndtp->Clear();
  532. $fvalue = "";
  533. }
  534. else
  535. {
  536. $ntag = $ndtp->GetTag("img");
  537. $fvalue = trim($ntag->GetInnerText());
  538. }
  539. $innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' style='width:300px' class='text' /> <input name='".$fieldname."_bt' class='inputbut' type='button' value='浏览...' onClick=\"SelectImage('form1.$fieldname','big')\" />\r\n";
  540. }
  541. else if($ftype=="imgfile")
  542. {
  543. $innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' style='width:300px' class='text' /> <input name='".$fieldname."_bt' class='inputbut' type='button' value='浏览...' onClick=\"SelectImage('form1.$fieldname','big')\" />\r\n";
  544. }
  545. else if($ftype=="media")
  546. {
  547. $innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' style='width:300px' class='text' /> <input name='".$fieldname."_bt' class='inputbut' type='button' value='浏览...' onClick=\"SelectMedia('form1.$fieldname')\" />\r\n";
  548. }
  549. else if($ftype=="addon")
  550. {
  551. $innertext = "<input type='text' name='$fieldname' id='$fieldname' value='$fvalue' style='width:300px' class='text' /> <input name='".$fieldname."_bt' class='inputbut' type='button' value='浏览...' onClick=\"SelectSoft('form1.$fieldname')\" />\r\n";
  552. }
  553. else if($ftype=="int"||$ftype=="float")
  554. {
  555. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:100px' class='intxt' value='$fvalue' /> (填写数值)\r\n";
  556. }
  557. else if($ftype=="relation") {
  558. $channel = ($ctag->GetAtt('channel') == "")? "1" : $ctag->GetAtt('channel');
  559. $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:90%;height:80px'>$fvalue</textarea><br>
  560. <button type='button' class='btn btn-secondary btn-sm mt-2 mb-2' onclick='SelectArcList(\"form1.$fieldname\", $channel);'>选择关联内容</button>\r\n";
  561. if ($ctag->GetAtt('automake') == 1) {
  562. $innertext .= "<input type='hidden' name='automake[$fieldname]' value=1>";
  563. }
  564. $innertext .= <<<EOT
  565. <script>
  566. if(typeof SelectArcList === "undefined") {
  567. function SelectArcList(fname,cid) {
  568. var posLeft = 10;
  569. var posTop = 10;
  570. window.open("content_select_list.php?f=" + fname+"&channelid="+cid, "selArcList", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=500,left=" + posLeft + ", top=" + posTop);
  571. }
  572. }
  573. </script>
  574. EOT;
  575. }
  576. else
  577. {
  578. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:250px' class='intxt' value='$fvalue' />\r\n";
  579. }
  580. $formitem = str_replace('~name~',$ctag->GetAtt('itemname'),$formitem);
  581. $formitem = str_replace('~form~',$innertext,$formitem);
  582. return $formitem;
  583. }