国内流行的内容管理系统(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.

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