|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- <?php
- /**
- * 模型解析相关函数
- *
- * @version $Id: inc_archives_all.php 1 9:56 2010年7月21日Z tianya $
- * @package DedeCMS.Administrator
- * @copyright Copyright (c) 2007 - 2018, DesDev, Inc.
- * @copyright Copyright (c) 2020, DedeBIZ.COM
- * @license https://www.dedebiz.com/license/v6
- * @link https://www.dedebiz.com
- */
-
- /**
- * 获得一个附加表单
- *
- * @access public
- * @param object $ctag ctag
- * @return string
- */
- function GetFormItem($ctag)
- {
- $fieldname = $ctag->GetName();
- $formitem = "
- <table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
- <tr>
- <td width=\"80\">~name~</td>
- <td width=\"720\">~form~</td>
- </tr>
- </table>\r\n";
- $innertext = trim($ctag->GetInnerText());
- if($innertext != "")
- {
- if($ctag->GetAtt("type") == 'select')
- {
- $myformItem = '';
- $items = explode(',', $innertext);
- $myformItem = "<select name='$fieldname' style='width:150px'>";
- foreach($items as $v)
- {
- $v = trim($v);
- if($v!='')
- {
- $myformItem.= "<option value='$v'>$v</option>\r\n";
- }
- }
- $myformItem .= "</select>\r\n";
- $formitem = str_replace("~name~", $ctag->GetAtt('itemname'), $formitem);
- $formitem = str_replace("~form~", $myformItem,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type") == 'radio')
- {
- $myformItem = '';
- $items = explode(',', $innertext);
- foreach($items as $v)
- {
- $v = trim($v);
- $i = 0;
- if($v!='')
- {
- if($i==0)
- {
- $myformItem .= "<input type='radio' name='$fieldname' class='np' value='$v' checked>$v\r\n";
- }
- else
- {
- $myformItem .= "<input type='radio' name='$fieldname' class='np' value='$v'>$v\r\n";
- }
- }
- }
- $formitem = str_replace("~name~", $ctag->GetAtt('itemname'), $formitem);
- $formitem = str_replace("~form~", $myformItem,$formitem);
- return $formitem;
- }
- else
- {
- $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem);
- $formitem = str_replace('~form~', $innertext,$formitem);
- $formitem = str_replace('@value', '', $formitem);
- return $formitem;
- }
- }
- if($ctag->GetAtt("type")=="htmltext"||$ctag->GetAtt("type")=="textdata")
- {
- $formitem = "";
- $formitem .= "<table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"80\">".$ctag->GetAtt('itemname')."</td><td>";
- $formitem .= GetEditor($fieldname,'',350,'Basic','string');
- $formitem .= "</td></tr></table>\r\n";
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="multitext")
- {
- $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:100%;height:80'></textarea>\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="datetime")
- {
- $nowtime = GetDateTimeMk(time());
- $innertext = "<input name=\"$fieldname\" value=\"$nowtime\" type=\"text\" id=\"$fieldname\" style=\"width:200\">";
- $innertext .= "<input name=\"selPubtime\" type=\"button\" id=\"selkeyword\" value=\"选择\" onClick=\"showCalendar('$fieldname', 'Y-m-d H:i:00', '24');\">";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="img")
- {
- $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:300'><input name='".$fieldname."_bt' type='button' value='浏览...' onClick=\"SelectImage('form1.$fieldname','big')\">\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="media")
- {
- $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:300'><input name='".$fieldname."_bt' type='button' value='浏览...' onClick=\"SelectMedia('form1.$fieldname')\">\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="addon")
- {
- $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:300'><input name='".$fieldname."_bt' type='button' value='浏览...' onClick=\"SelectSoft('form1.$fieldname')\">\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="media")
- {
- $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:300'><input name='".$fieldname."_bt' type='button' value='浏览...' onClick=\"SelectMedia('form1.$fieldname')\">\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if ($ctag->GetAtt("type")=="relation") {
- $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:100%;height:80'></textarea>\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else
- {
- if($ctag->GetAtt('default')!="") $dfvalue = $ctag->GetAtt('default');
- else $dfvalue = "";
- $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:200' value='$dfvalue'>\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- }
-
- /**
- * 处理不同类型的数据
- *
- * @access public
- * @param string $dvalue 值
- * @param string $dtype 类型
- * @param int $aid 文档ID
- * @param string $job 操作类型
- * @param string $addvar 增加值
- * @return string
- */
- function GetFieldValue($dvalue,$dtype,$aid=0,$job='add',$addvar='')
- {
- global $cfg_cookie_encode,$cfg_dir_purview,$isUrlOpen;
- if($dtype=="int")
- {
- $dvalue = trim(preg_replace("#[^0-9]#", "", $dvalue));
- if($dvalue=="") $dvalue = 0;
- return $dvalue;
- }
- else if($dtype=="float")
- {
- $dvalue = trim(preg_replace("#[^0-9\.]#", "", $dvalue));
- if($dvalue=="") $dvalue = 0;
- return $dvalue;
- }
- else if($dtype=="datetime")
- {
- return GetMkTime($dvalue);
- }
- else if($dtype=="textdata")
- {
- if($job=='edit')
- {
- $addvarDirs = explode('/', $addvar);
- $addvarDir = preg_replace("#\/".$addvarDirs[count($addvarDirs)-1]."$#", "", $addvar);
- $mdir = $GLOBALS['cfg_basedir'].$addvarDir;
- if(!is_dir($mdir))
- {
- MkdirAll($mdir, $GLOBALS['cfg_dir_purview']);
- }
- $fp = fopen($GLOBALS['cfg_basedir'].$addvar, "w");
- fwrite($fp, stripslashes($dvalue));
- fclose($fp);
- CloseFtp();
- return $addvar;
- }
- else
- {
- $ipath = $GLOBALS['cfg_cmspath']."/data/textdata";
- $tpath = ceil($aid/5000);
- if(!is_dir($GLOBALS['cfg_basedir'].$ipath))
- {
- MkdirAll($GLOBALS['cfg_basedir'].$ipath,$cfg_dir_purview);
- }
- if(!is_dir($GLOBALS['cfg_basedir'].$ipath.'/'.$tpath))
- {
- MkdirAll($GLOBALS['cfg_basedir'].$ipath.'/'.$tpath,$cfg_dir_purview);
- }
- $ipath = $ipath.'/'.$tpath;
- $filename = "{$ipath}/{$aid}-".cn_substr(md5($cfg_cookie_encode), 0, 16).".txt";
- $fp = fopen($GLOBALS['cfg_basedir'].$filename,"w");
- fwrite($fp, stripslashes($dvalue));
- fclose($fp);
- CloseFtp();
- return $filename;
- }
- }
- else if($dtype=="img")
- {
- $iurl = stripslashes($dvalue);
- if(trim($iurl)=="")
- {
- return "";
- }
- $iurl = trim(str_replace($GLOBALS['cfg_basehost'],"",$iurl));
- $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
- if(preg_match("#^http:\/\/#i", $iurl) && $GLOBALS['isUrlOpen'])
- {
- //远程图片
- $reimgs = "";
- if($isUrlOpen)
- {
- $reimgs = GetRemoteImage($iurl,$GLOBALS['adminid']);
- if(is_array($reimgs))
- {
- $imgurl = "{dede:img text='' width='".$reimgs[1]."' height='".$reimgs[2]."'} ".$reimgs[0]." {/dede:img}";
- }
- }
- else
- {
- $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
- }
- }
- else if($iurl!="")
- {
- //站内图片
- $imgfile = $GLOBALS['cfg_basedir'].$iurl;
- if(is_file($imgfile))
- {
- $imginfos = GetImageSize($imgfile);
- $imgurl = "{dede:img text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}";
- }
- }
- return addslashes($imgurl);
- }
- else
- {
- return $dvalue;
- }
- }
-
- /**
- * 获得带值的表单(编辑时用)
- *
- * @access public
- * @param object $ctag ctag
- * @param string $fvalue 表单值
- * @return string
- */
-
- function GetFormItemValue($ctag, $fvalue)
- {
- $fieldname = $ctag->GetName();
- $formitem = "
- <table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
- <tr>
- <td width=\"80\">~name~</td>
- <td width=\"720\">~form~</td>
- </tr>
- </table>\r\n";
- $innertext = trim($ctag->GetInnerText());
- if($innertext != "")
- {
- if($ctag->GetAtt("type") == 'select')
- {
- $myformItem = '';
- $items = explode(',', $innertext);
- $myformItem = "<select name='$fieldname' style='width:150px'>";
- foreach($items as $v)
- {
- $v = trim($v);
- if($v!='')
- {
- if($fvalue==$v)
- {
- $myformItem.= "<option value='$v' selected>$v</option>\r\n";
- }
- else
- {
- $myformItem.= "<option value='$v'>$v</option>\r\n";
- }
- }
- }
- $myformItem .= "</select>\r\n";
- $formitem = str_replace("~name~", $ctag->GetAtt('itemname'), $formitem);
- $formitem = str_replace("~form~", $myformItem,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=='radio')
- {
- $myformItem = '';
- $items = explode(',', $innertext);
- foreach($items as $v)
- {
- $v = trim($v);
- if($v!='')
- {
- if($fvalue==$v)
- {
- $myformItem.= "<input type='radio' name='$fieldname' class='np' value='$v' checked>$v\r\n";
- }
- else
- {
- $myformItem.= "<input type='radio' name='$fieldname' class='np' value='$v'>$v\r\n";
- }
- }
- }
- $formitem = str_replace("~name~", $ctag->GetAtt('itemname'), $formitem);
- $formitem = str_replace("~form~", $myformItem,$formitem);
- return $formitem;
- }
- else
- {
- $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem);
- $formitem = str_replace('~form~', $innertext, $formitem);
- $formitem = str_replace('@value', $fvalue, $formitem);
- return $formitem;
- }
- }
-
- //文本数据的特殊处理
- if($ctag->GetAtt("type")=="textdata")
- {
- if(is_file($GLOBALS['cfg_basedir'].$fvalue))
- {
- $fp = fopen($GLOBALS['cfg_basedir'].$fvalue, 'r');
- $okfvalue = "";
- while(!feof($fp))
- {
- $okfvalue .= fgets($fp,1024);
- }
- fclose($fp);
- }
- else
- {
- $okfvalue="";
- }
- $formitem = "<table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"80\">".$ctag->GetAtt('itemname')."</td>\r\n";
- $formitem .= "<td>\r\n".GetEditor($fieldname,$okfvalue,350,'Basic','string')."</td>\r\n";
- $formitem .= "</tr></table>\r\n";
- $formitem .= "<input type='hidden' name='{$fieldname}_file' value='{$fvalue}'>\r\n";
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="htmltext")
- {
- $formitem = "<table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"80\">".$ctag->GetAtt('itemname')."</td>\r\n";
- $formitem .= "<td>\r\n".GetEditor($fieldname,$fvalue,350,'Basic','string')."</td>\r\n";
- $formitem .= "</tr></table>\r\n";
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="multitext")
- {
- $innertext = "<textarea name='$fieldname' id='$fieldname' style='width:100%;height:80'>$fvalue</textarea>\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="datetime")
- {
- $nowtime = GetDateTimeMk($fvalue);
- $innertext = "<input name=\"$fieldname\" value=\"$nowtime\" type=\"text\" id=\"$fieldname\" style=\"width:200\">";
- $innertext .= "<input name=\"selPubtime\" type=\"button\" id=\"selkeyword\" value=\"选择\" onClick=\"showCalendar('$fieldname', 'Y-m-d H:i:00', '24');\">";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="img")
- {
- $ndtp = new DedeTagParse();
- $ndtp->LoadSource($fvalue);
- if(!is_array($ndtp->CTags))
- {
- $ndtp->Clear();
- $fvalue = "";
- }
- $ntag = $ndtp->GetTag("img");
- $fvalue = trim($ntag->GetInnerText());
- $innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' style='width:300'><input name='".$fieldname."_bt' type='button' value='浏览...' onClick=\"SelectImage('form1.$fieldname','big')\">\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="media")
- {
- $innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' style='width:300'><input name='".$fieldname."_bt' type='button' value='浏览...' onClick=\"SelectMedia('form1.$fieldname')\">\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else if($ctag->GetAtt("type")=="addon")
- {
- $innertext = "<input type='text' name='$fieldname' id='$fieldname' value='$fvalue' style='width:300'><input name='".$fieldname."_bt' type='button' value='浏览...' onClick=\"SelectSoft('form1.$fieldname')\">\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- else
- {
- $innertext = "<input type='text' name='$fieldname' id='$fieldname' style='width:200' value='$fvalue'>\r\n";
- $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem);
- $formitem = str_replace("~form~",$innertext,$formitem);
- return $formitem;
- }
- }
|