📄 inc_archives_functions.php
字号:
<?php
if(!defined('DEDEMEMBER'))
{
exit("dedecms");
}
require_once(DEDEINC."/image.func.php");
require_once(DEDEINC.'/archives.func.php');
//---------------------------
//获得HTML里的外部资源,针对图集
//---------------------
function GetCurContentAlbum($body,$rfurl,&$firstdd)
{
global $cfg_multi_site,$cfg_basehost,$ddmaxwidth,$cfg_basedir,$pagestyle,$cfg_mb_rmdown,$title,$cfg_ml,$cfg_user_dir;
include_once(DEDEINC."/dedecollection.func.php");
if(empty($ddmaxwidth)) $ddmaxwidth = 240;
$rsimg = '';
$basehost = "http://".$_SERVER["HTTP_HOST"];
$img_array = array();
preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
$img_array = array_unique($img_array[2]);
$imgUrl = $cfg_user_dir."/".$cfg_ml->M_ID;
$imgPath = $cfg_basedir.$imgUrl;
if(!is_dir($imgPath."/"))
{
MkdirAll($imgPath,$GLOBALS['cfg_dir_purview']);
CloseFtp();
}
$milliSecond = MyDate("ymdHis",time());
foreach($img_array as $key=>$value)
{
if(eregi($basehost,$value))
{
continue;
}
if($cfg_basehost!=$basehost && eregi($cfg_basehost,$value))
{
continue;
}
if(!eregi("^http://",$value))
{
continue;
}
if($cfg_mb_rmdown=='Y')
{
$value = trim($value);
$itype = substr($value,-4,4);
if(!eregi("\.(gif|jpg|png)",$itype))
{
$itype = ".jpg";
}
$rndFileName = $imgPath."/".$milliSecond.$key.$itype;
$iurl = $imgUrl."/".$milliSecond.$key.$itype;
//下载并保存文件
//$rs = $htd->SaveToBin($rndFileName);
$rs = DownImageKeep($value,$rfurl,$rndFileName,'',0,30);
if($rs)
{
if($pagestyle > 2)
{
$litpicname = GetImageMapDD($iurl,$ddmaxwidth);
if($litpicname!='')
{
SaveUploadInfo($title,$litpicname,1,$addinfos);
}
}
else
{
$litpicname = '';
}
if(empty($firstdd))
{
$firstdd = $litpicname;
if(!file_exists($cfg_basedir.$firstdd))
{
$firstdd = $iurl;
}
}
@WaterImg($rndFileName,'down');
$info = '';
$imginfos = GetImageSize($rndFileName,$info);
SaveUploadInfo($title,$iurl,1,$imginfos);
$rsimg .= "{dede:img ddimg='$litpicname' text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}\r\n";
}
}
else
{
$rsimg .= "{dede:img ddimg='$value' text='' width='0' height='0'} $value {/dede:img}\r\n";
}
}
return $rsimg;
}
//图集里大图的小图
function GetImageMapDD($filename,$ddm,$oldname='')
{
if($oldname!='' && !eregi("^http://",$oldname))
{
$ddpicok = $oldname;
}
else
{
$ddn = substr($filename,-3);
$ddpicok = ereg_replace("\.".$ddn."$","-lp.".$ddn,$filename);
}
$toFile = $GLOBALS['cfg_basedir'].$ddpicok;
ImageResize($GLOBALS['cfg_basedir'].$filename,$ddm,300,$toFile);
return $ddpicok;
}
//-----------------------
//把上传的信息保存到数据库
//------------------------
function SaveUploadInfo($title,$filename,$medaitype=1,$addinfos='')
{
global $dsql,$cfg_ml,$cfg_basedir;
if($filename=='')
{
return false;
}
if(!is_array($addinfos))
{
$addinfos[0] = $addinfos[1] = $addinfos[2] = 0;
}
if($medaitype==1)
{
$info = '';
$addinfos = GetImageSize($cfg_basedir.$filename,$info);
}
$addinfos[2] = @filesize($cfg_basedir.$filename);
$row = $dsql->GetOne("Select aid,title,url From `#@__uploads` where url like '$filename' And mid='".$cfg_ml->M_ID."'; ");
$uptime = time();
if(is_array($row))
{
$query = "Update `#@__uploads` set title='$title',mediatype='$medaitype',
width='{$addinfos[0]}',height='{$addinfos[1]}',filesize='{$addinfos[2]}',uptime='$uptime'
where aid='{$row['aid']}'; ";
$dsql->ExecuteNoneQuery($query);
}
else
{
$inquery = "INSERT INTO `#@__uploads`(title,url,mediatype,width,height,playtime,filesize,uptime,mid)
VALUES ('$title','$filename','$medaitype','".$addinfos[0]."','".$addinfos[1]."','0','".$addinfos[2]."','$uptime','".$cfg_ml->M_ID."'); ";
$dsql->ExecuteNoneQuery($inquery);
}
return true;
}
//获得一个附加表单
//-----------------------------
function GetFormItemA($ctag)
{
return GetFormItem($ctag,'member');
}
//---------------------------
//处理不同类型的数据
//---------------------------
function GetFieldValueA($dvalue,$dtype,$aid=0,$job='add',$addvar='')
{
return GetFieldValue($dvalue,$dtype,$aid,$job,$addvar,'member');
}
//获得带值的表单(编辑时用)
//-----------------------------
function GetFormItemValueA($ctag,$fvalue)
{
return GetFormItemValue($ctag,$fvalue,'member');
}
//载入自定义表单(用于发布)
function PrintAutoFieldsAdd(&$fieldset,$loadtype='all')
{
$dtp = new DedeTagParse();
$dtp->SetNameSpace('field','<','>');
$dtp->LoadSource($fieldset);
$dede_addonfields = '';
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $tid=>$ctag)
{
if($loadtype!='autofield' || $ctag->GetAtt('autofield')==1 )
{
$dede_addonfields .= ( $dede_addonfields=="" ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
echo GetFormItemA($ctag);
}
}
}
echo "<input type='hidden' name='dede_addonfields' value=\"".$dede_addonfields."\">\r\n";
}
//载入自定义表单(用于编辑)
function PrintAutoFieldsEdit(&$fieldset,&$fieldValues,$loadtype='all')
{
$dtp = new DedeTagParse();
$dtp->SetNameSpace("field","<",">");
$dtp->LoadSource($fieldset);
$dede_addonfields = "";
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $tid=>$ctag)
{
if($loadtype!='autofield'
|| ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) )
{
$dede_addonfields .= ( $dede_addonfields=='' ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
echo GetFormItemValueA($ctag,$fieldValues[$ctag->GetName()]);
}
}
}
echo "<input type='hidden' name='dede_addonfields' value=\"".$dede_addonfields."\">\r\n";
}
//-----------------------
//创建指定ID的文档
//-----------------------
function MakeArt($aid,$ismakesign=false)
{
global $cfg_makeindex,$cfg_basedir,$cfg_templets_dir,$cfg_df_style;
include_once(DEDEINC.'/arc.archives.class.php');
if($ismakesign)
{
$envs['makesign'] = 'yes';
}
$arc = new Archives($aid);
$reurl = $arc->MakeHtml();
if(isset($typeid))
{
$preRow = $arc->dsql->GetOne("Select id From `#@__arctiny` where id<$aid And arcrank>-1 And typeid='$typeid' order by id desc");
$nextRow = $arc->dsql->GetOne("Select id From `#@__arctiny` where id>$aid And arcrank>-1 And typeid='$typeid' order by id asc");
if(is_array($preRow))
{
$arc = new Archives($preRow['id']);
$arc->MakeHtml();
}
if(is_array($nextRow))
{
$arc = new Archives($nextRow['id']);
$arc->MakeHtml();
}
}
return $reurl;
}
//处理HTML文本、自动摘要、自动获取缩略图等
function AnalyseHtmlBody($body,&$description,$dtype='')
{
global $cfg_mb_rmdown,$cfg_basehost,$cfg_auot_description,$arcID;
$autolitpic = (empty($autolitpic) ? '' : $autolitpic);
$body = stripslashes($body);
//远程图片本地化
if($cfg_mb_rmdown=='Y')
{
$body = GetCurContent($body);
}
//自动摘要
if($description=='' && $cfg_auot_description>0)
{
$description = cn_substr(html2text($body),$cfg_auot_description);
$description = trim(preg_replace('/#p#|#e#/','',$description));
$description = addslashes($description);
}
$body = addslashes($body);
return $body;
}
//---------------------------
//获得文章body里的外部资源
//---------------------------
function GetCurContent(&$body)
{
global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_user_dir,$title,$cfg_ml;
include_once(DEDEINC."/dedecollection.func.php");
$htd = new DedeHttpDown();
$basehost = "http://".$_SERVER["HTTP_HOST"];
$img_array = array();
preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
$img_array = array_unique($img_array[2]);
$imgUrl = $cfg_user_dir."/".$cfg_ml->M_ID;
$imgPath = $cfg_basedir.$imgUrl;
if(!is_dir($imgPath."/"))
{
MkdirAll($imgPath,$GLOBALS['cfg_dir_purview']);
CloseFtp();
}
$milliSecond = MyDate("ymdHis",time());
foreach($img_array as $key=>$value)
{
if(eregi($basehost,$value))
{
continue;
}
if($cfg_basehost!=$basehost && eregi($cfg_basehost,$value))
{
continue;
}
if(!eregi("^http://",$value))
{
continue;
}
$htd->OpenUrl($value);
$itype = $htd->GetHead("content-type");
$itype = substr($value,-4,4);
if(!eregi("\.(jpg|gif|png)",$itype))
{
if($itype=='image/gif')
{
$itype = ".gif";
}
else if($itype=='image/png')
{
$itype = ".png";
}
else
{
$itype = '.jpg';
}
}
$milliSecondN = dd2char($milliSecond.'-'.mt_rand(1000,8000));
$value = trim($value);
$rndFileName = $imgPath."/".$milliSecondN.'-'.$key.$itype;
$fileurl = $imgUrl."/".$milliSecondN.'-'.$key.$itype;
$rs = $htd->SaveToBin($rndFileName);
if($rs)
{
$body = str_replace($value,$fileurl,$body);
@WaterImg($rndFileName,'down');
}
$info = '';
$imginfos = GetImageSize($rndFileName,$info);
SaveUploadInfo($title,$fileurl,1,$imginfos);
}
$htd->Close();
return $body;
}
//------------------------
//上传一个未经处理的图片
//------------------------
/*
//参数一 upname 上传框名称
//参数二 handurl 手工填写的网址
//参数三 ddisremote 是否下载远程图片 0 不下, 1 下载
//参数四 ntitle 注解文字 如果表单有 title 字段可不管
*/
function UploadOneImage($upname,$handurl='',$isremote=1,$ntitle='')
{
global $cfg_ml,$cfg_basedir,$cfg_image_dir,$dsql,$title, $dsql;
if($ntitle!='')
{
$title = $ntitle;
}
$ntime = time();
$filename = '';
$isrm_up = false;
$handurl = trim($handurl);
//如果用户自行上传了图片
if(!empty($_FILES[$upname]['tmp_name']) && is_uploaded_file($_FILES[$upname]['tmp_name']))
{
$istype = 0;
$sparr = Array("image/pjpeg","image/jpeg","image/gif","image/png");
$_FILES[$upname]['type'] = strtolower(trim($_FILES[$upname]['type']));
if(!in_array($_FILES[$upname]['type'],$sparr))
{
ShowMsg("上传的图片格式错误,请使用JPEG、GIF、PNG格式的其中一种!","-1");
exit();
}
if(!empty($handurl) && !eregi("^http://",$handurl) && file_exists($cfg_basedir.$handurl) )
{
$dsql->ExecuteNoneQuery("Delete From #@__uploads where url like '$handurl' ");
$fullUrl = eregi_replace("\.([a-z]*)$","",$handurl);
}
else
{
$savepath = $cfg_image_dir."/".strftime("%Y-%m",$ntime);
CreateDir($savepath);
$fullUrl = $savepath."/".strftime("%d",$ntime).dd2char(strftime("%H%M%S",$ntime).'0'.$cfg_ml->M_ID.'0'.mt_rand(1000,9999));
}
if(strtolower($_FILES[$upname]['type'])=="image/gif")
{
$fullUrl = $fullUrl.".gif";
}
else if(strtolower($_FILES[$upname]['type'])=="image/png")
{
$fullUrl = $fullUrl.".png";
}
else
{
$fullUrl = $fullUrl.".jpg";
}
//保存
@move_uploaded_file($_FILES[$upname]['tmp_name'],$cfg_basedir.$fullUrl);
$filename = $fullUrl;
//水印
@WaterImg($imgfile,'up');
$isrm_up = true;
}
//远程或选择本地图片
else{
if($handurl=='')
{
return '';
}
//远程图片并要求本地化
if($isremote==1 && eregi("^http://",$handurl))
{
$ddinfos = GetRemoteImage($handurl,$cuserLogin->getUserID());
if(!is_array($ddinfos))
{
$litpic = "";
}
else
{
$filename = $ddinfos[0];
}
$isrm_up = true;
//本地图片或远程不要求本地化
}
else
{
$filename = $handurl;
}
}
$imgfile = $cfg_basedir.$filename;
if(is_file($imgfile) && $isrm_up && $filename!='')
{
$info = "";
$imginfos = GetImageSize($imgfile,$info);
//把新上传的图片信息保存到媒体文档管理档案中
$inquery = "
INSERT INTO #@__uploads(title,url,mediatype,width,height,playtime,filesize,uptime,mid)
VALUES ('$title','$filename','1','".$imginfos[0]."','".$imginfos[1]."','0','".filesize($imgfile)."','".time()."','".$cfg_ml->M_ID."');
";
$dsql->ExecuteNoneQuery($inquery);
}
return $filename;
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -