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

589 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 - 2020, DesDev, Inc.
  7. * @license http://help.dedecms.com/usersguide/license.html
  8. * @link http://www.dedecms.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. }
  222. else if($dtype=='stepselect')
  223. {
  224. $dvalue = trim(preg_replace("#[^0-9\.]#", "", $dvalue));
  225. return $dvalue;
  226. }
  227. else if($dtype=='float')
  228. {
  229. if($dvalue=='')
  230. {
  231. return 0;
  232. }
  233. return GetAlabNum($dvalue);
  234. }
  235. else if($dtype=='datetime')
  236. {
  237. if($dvalue=='')
  238. {
  239. return 0;
  240. }
  241. return GetMkTime($dvalue);
  242. }
  243. else if($dtype=='checkbox')
  244. {
  245. $okvalue = '';
  246. if(is_array($dvalue))
  247. {
  248. $okvalue = join(',',$dvalue);
  249. }
  250. return $okvalue;
  251. }
  252. else if($dtype=="htmltext")
  253. {
  254. if($admintype=='member' || $admintype=='diy')
  255. {
  256. $dvalue = HtmlReplace($dvalue,-1);
  257. }
  258. return $dvalue;
  259. }
  260. else if($dtype=="multitext")
  261. {
  262. if($admintype=='member' || $admintype=='diy')
  263. {
  264. $dvalue = HtmlReplace($dvalue,0);
  265. }
  266. return $dvalue;
  267. }
  268. else if($dtype=="textdata")
  269. {
  270. $ipath = $cfg_cmspath."/data/textdata";
  271. $tpath = ceil($aid / 5000);
  272. if(!is_dir($cfg_basedir.$ipath))
  273. {
  274. MkdirAll($cfg_basedir.$ipath, $GLOBALS['cfg_dir_purview']);
  275. }
  276. if(!is_dir($cfg_basedir.$ipath.'/'.$tpath))
  277. {
  278. MkdirAll($cfg_basedir.$ipath.'/'.$tpath,$GLOBALS['cfg_dir_purview']);
  279. }
  280. $ipath = $ipath.'/'.$tpath;
  281. $filename = "{$ipath}/{$aid}-".cn_substr(md5($cfg_cookie_encode), 0, 16).".txt";
  282. //会员投稿内容安全处理
  283. if($admintype=='member' || $admintype=='diy')
  284. {
  285. $dvalue = HtmlReplace($dvalue, -1);
  286. }
  287. $fp = fopen($cfg_basedir.$filename,"w");
  288. fwrite($fp, stripslashes($dvalue));
  289. fclose($fp);
  290. CloseFtp();
  291. return $filename;
  292. }
  293. else if($dtype=='img' || $dtype=='imgfile')
  294. {
  295. if(preg_match("#[\\|/]uploads[\\|/]userup#", $dvalue)) return $dvalue;
  296. if($admintype=='diy')
  297. {
  298. $iurl = MemberUploads($fieldname, '', 0, 'image', '', -1, -1, false);
  299. return $iurl;
  300. }
  301. $iurl = stripslashes($dvalue);
  302. if(trim($iurl)=='')
  303. {
  304. return '';
  305. }
  306. $iurl = trim(str_replace($GLOBALS['cfg_basehost'],"",$iurl));
  307. $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
  308. if(preg_match("/^http:\/\//i", $iurl) && $GLOBALS['cfg_isUrlOpen'])
  309. {
  310. //远程图片
  311. $reimgs = '';
  312. if($GLOBALS['cfg_isUrlOpen'])
  313. {
  314. $reimgs = GetRemoteImage($iurl,$adminid);
  315. if(is_array($reimgs))
  316. {
  317. if($dtype=='imgfile')
  318. {
  319. $imgurl = $reimgs[1];
  320. }
  321. else
  322. {
  323. $imgurl = "{dede:img text='' width='".$reimgs[1]."' height='".$reimgs[2]."'} ".$reimgs[0]." {/dede:img}";
  324. }
  325. }
  326. }
  327. else
  328. {
  329. if($dtype=='imgfile')
  330. {
  331. $imgurl = $iurl;
  332. }
  333. else
  334. {
  335. $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
  336. }
  337. }
  338. }
  339. else if($iurl != '')
  340. {
  341. //站内图片
  342. $imgfile = $cfg_basedir.$iurl;
  343. if(is_file($imgfile))
  344. {
  345. $info = '';
  346. $imginfos = GetImageSize($imgfile,$info);
  347. if($dtype=="imgfile")
  348. {
  349. $imgurl = $iurl;
  350. }
  351. else
  352. {
  353. $imgurl = "{dede:img text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}";
  354. }
  355. }
  356. }
  357. return addslashes($imgurl);
  358. }
  359. else if($dtype=='addon' && $admintype=='diy')
  360. {
  361. if(preg_match("#[\\|/]uploads[\\|/]userup#", $dvalue)) return $dvalue;
  362. $dvalue = MemberUploads($fieldname,'', 0, 'addon', '', -1, -1, false);
  363. return $dvalue;
  364. }
  365. else
  366. {
  367. if($admintype=='member' || $admintype=='diy')
  368. {
  369. $dvalue = HtmlReplace($dvalue,1);
  370. }
  371. return $dvalue;
  372. }
  373. }
  374. /**
  375. * 获得带值的表单(编辑时用)
  376. *
  377. * @access public
  378. * @param object $ctag 标签
  379. * @param mixed $fvalue 变量值
  380. * @param string $admintype 会员类型
  381. * @param string $fieldname 变量名称
  382. * @return string
  383. */
  384. function GetFormItemValue($ctag, $fvalue, $admintype='admin', $fieldname='')
  385. {
  386. global $cfg_basedir;
  387. $fieldname = $ctag->GetName();
  388. $formitem = $formitem = GetSysTemplets("custom_fields_{$admintype}.htm");
  389. $innertext = trim($ctag->GetInnerText());
  390. if($innertext!='')
  391. {
  392. $formitem = $innertext;
  393. }
  394. $ftype = $ctag->GetAtt('type');
  395. $myformItem = '';
  396. if(preg_match("/select|radio|checkbox/i", $ftype))
  397. {
  398. $items = explode(',',$ctag->GetAtt('default'));
  399. }
  400. if($ftype=='select')
  401. {
  402. $myformItem = "<select name='$fieldname' style='width:150px'>";
  403. if(is_array($items))
  404. {
  405. foreach($items as $v)
  406. {
  407. $v = trim($v);
  408. if($v=='')
  409. {
  410. continue;
  411. }
  412. $myformItem.= ($fvalue==$v ? "<option value='$v' selected>$v</option>\r\n" : "<option value='$v'>$v</option>\r\n");
  413. }
  414. }
  415. $myformItem .= "</select>\r\n";
  416. $innertext = $myformItem;
  417. }
  418. else if($ctag->GetAtt("type")=='stepselect')
  419. {
  420. global $hasSetEnumJs,$cfg_cmspath;
  421. $cmspath = ( (empty($cfg_cmspath) || preg_match('/[/$]/', $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath );
  422. $myformItem = '';
  423. $myformItem .= "<input type='hidden' id='hidden_{$fieldname}' name='{$fieldname}' value='{$fvalue}' />\r\n";
  424. $myformItem .= "<span id='span_{$fieldname}'></span>\r\n";
  425. $myformItem .= "<span id='span_{$fieldname}_son'></span>\r\n";
  426. $myformItem .= "<span id='span_{$fieldname}_sec'></span>\r\n";
  427. if($hasSetEnumJs != 'hasset')
  428. {
  429. $myformItem .= '<script language="javascript" type="text/javascript" src="'.$cmspath.'static/enums.js"></script>'."\r\n";
  430. $GLOBALS['hasSetEnumJs'] = 'hasset';
  431. }
  432. $myformItem .= "<script language='javascript' type='text/javascript' src='{$cmspath}data/enums/{$fieldname}.js'></script>\r\n";
  433. $myformItem .= "<script language='javascript' type='text/javascript'>MakeTopSelect('$fieldname', $fvalue);</script>\r\n";
  434. $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem);
  435. $formitem = str_replace('~form~', $myformItem, $formitem);
  436. return $formitem;
  437. }
  438. else if($ftype=='radio')
  439. {
  440. if(is_array($items))
  441. {
  442. foreach($items as $v)
  443. {
  444. $v = trim($v);
  445. if($v=='') continue;
  446. $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");
  447. }
  448. }
  449. $innertext = $myformItem;
  450. }
  451. //checkbox
  452. else if($ftype=='checkbox')
  453. {
  454. $myformItem = '';
  455. $fvalues = explode(',',$fvalue);
  456. if(is_array($items))
  457. {
  458. foreach($items as $v)
  459. {
  460. $v = trim($v);
  461. if($v=='')
  462. {
  463. continue;
  464. }
  465. if(in_array($v,$fvalues))
  466. {
  467. $myformItem .= "<input type='checkbox' name='{$fieldname}[]' class='np' value='$v' checked='checked' />$v\r\n";
  468. }
  469. else
  470. {
  471. $myformItem .= "<input type='checkbox' name='{$fieldname}[]' class='np' value='$v' />$v\r\n";
  472. }
  473. }
  474. }
  475. $innertext = $myformItem;
  476. }
  477. //文本数据的特殊处理
  478. else if($ftype=="textdata")
  479. {
  480. if(is_file($cfg_basedir.$fvalue))
  481. {
  482. $fp = fopen($cfg_basedir.$fvalue,'r');
  483. $okfvalue = '';
  484. while(!feof($fp)){ $okfvalue .= fgets($fp,1024); }
  485. fclose($fp);
  486. }
  487. else
  488. {
  489. $okfvalue = '';
  490. }
  491. if($admintype=='admin')
  492. {
  493. $myformItem = GetEditor($fieldname,$okfvalue,350,'Basic','string')."\r\n <input type='hidden' name='{$fieldname}_file' value='{$fvalue}' />\r\n ";
  494. }
  495. else
  496. {
  497. $myformItem = GetEditor($fieldname,$okfvalue,350,'Member','string')."\r\n <input type='hidden' name='{$fieldname}_file' value='{$fvalue}' />\r\n ";
  498. }
  499. $innertext = $myformItem;
  500. }
  501. else if($ftype=="htmltext")
  502. {
  503. if($admintype=='admin')
  504. {
  505. $myformItem = GetEditor($fieldname,$fvalue,350,'Basic','string')."\r\n ";
  506. }
  507. else
  508. {
  509. $myformItem = GetEditor($fieldname,$fvalue,350,'Member','string')."\r\n ";
  510. }
  511. $innertext = $myformItem;
  512. }
  513. else if($ftype=="multitext")
  514. {
  515. $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:90%;height:80px'>$fvalue</textarea>\r\n";
  516. }
  517. else if($ftype=="datetime")
  518. {
  519. $nowtime = GetDateTimeMk($fvalue);
  520. $innertext = "<input name=\"$fieldname\" value=\"$nowtime\" type=\"text\" id=\"$fieldname\" style=\"width:250px\" class=\"intxt datepicker\" />";
  521. }
  522. else if($ftype=="img")
  523. {
  524. $ndtp = new DedeTagParse();
  525. $ndtp->LoadSource($fvalue);
  526. if(!is_array($ndtp->CTags))
  527. {
  528. $ndtp->Clear();
  529. $fvalue = "";
  530. }
  531. else
  532. {
  533. $ntag = $ndtp->GetTag("img");
  534. $fvalue = trim($ntag->GetInnerText());
  535. }
  536. $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";
  537. }
  538. else if($ftype=="imgfile")
  539. {
  540. $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";
  541. }
  542. else if($ftype=="media")
  543. {
  544. $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";
  545. }
  546. else if($ftype=="addon")
  547. {
  548. $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";
  549. }
  550. else if($ftype=="int"||$ftype=="float")
  551. {
  552. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:100px' class='intxt' value='$fvalue' /> (填写数值)\r\n";
  553. }
  554. else if($ftype=="relation") {
  555. $channel = ($ctag->GetAtt('channel') == "")? "1" : $ctag->GetAtt('channel');
  556. $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:90%;height:80px'>$fvalue</textarea><br>
  557. <button type='button' class='btn btn-secondary btn-sm mt-2 mb-2' onclick='SelectArcList(\"form1.$fieldname\", $channel);'>选择关联内容</button>\r\n";
  558. if ($ctag->GetAtt('automake') == 1) {
  559. $innertext .= "<input type='hidden' name='automake[$fieldname]' value=1>";
  560. }
  561. $innertext .= <<<EOT
  562. <script>
  563. if(typeof SelectArcList === "undefined") {
  564. function SelectArcList(fname,cid) {
  565. var posLeft = 10;
  566. var posTop = 10;
  567. 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);
  568. }
  569. }
  570. </script>
  571. EOT;
  572. }
  573. else
  574. {
  575. $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:250px' class='intxt' value='$fvalue' />\r\n";
  576. }
  577. $formitem = str_replace('~name~',$ctag->GetAtt('itemname'),$formitem);
  578. $formitem = str_replace('~form~',$innertext,$formitem);
  579. return $formitem;
  580. }