| 
							- <?php
 - /**
 -  * 文档处理函数
 -  * 
 -  * @version        $Id: inc_archives_functions.php 1 13:52 2010年7月9日Z tianya $
 -  * @package        DedeBIZ.Member
 -  * @copyright      Copyright (c) 2022, DedeBIZ.COM
 -  * @license        https://www.dedebiz.com/license
 -  * @link           https://www.dedebiz.com
 -  */
 - if (!defined('DEDEMEMBER')) exit('dedebiz');
 - require_once(DEDEINC.'/image.func.php');
 - require_once(DEDEINC.'/archives.func.php');
 - require_once(DEDEINC."/userlogin.class.php");
 - 
 - //检查用户是否被禁言
 - CheckNotAllow();
 - 
 - /**
 -  *  获得HTML里的外部资源,针对图集
 -  *
 -  * @param     string  $body  内容
 -  * @param     string  $rfurl  地址
 -  * @param     string  $firstdd  第一个缩略图
 -  * @return    string 
 -  */
 - 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)=[\"|'| ]{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 (preg_match("#".$basehost."#i", $value)) {
 -             continue;
 -         }
 -         if ($cfg_basehost != $basehost && preg_match("#".$cfg_basehost."#i", $value)) {
 -             continue;
 -         }
 -         if (!preg_match("#^http[s]?:\/\/#i", $value)) {
 -             continue;
 -         }
 -         if ($cfg_mb_rmdown == 'Y') {
 -             $value = trim($value);
 -             $itype =  substr($value, -4, 4);
 -             if (!preg_match("#\.(gif|jpg|png)#i", $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;
 - }
 - 
 - /**
 -  *  图集里大图的小图
 -  *
 -  * @param     string  $filename  文件名
 -  * @param     string  $ddm  缩略图
 -  * @param     string   $oldname  旧的名称
 -  * @return    string
 -  */
 - function GetImageMapDD($filename, $ddm, $oldname = '')
 - {
 -     if ($oldname != '' && !preg_match("#^http:\/\/#i", $oldname)) {
 -         $ddpicok = $oldname;
 -     } else {
 -         $ddn = substr($filename, -3);
 -         $ddpicok = preg_replace("#\.".$ddn."$#", "-lp.".$ddn, $filename);
 -     }
 -     $toFile = $GLOBALS['cfg_basedir'].$ddpicok;
 -     ImageResize($GLOBALS['cfg_basedir'].$filename, $ddm, 300, $toFile);
 -     return $ddpicok;
 - }
 - 
 - /**
 -  *  把上传的信息保存到数据库
 -  *
 -  * @param     string  $title  标题
 -  * @param     string  $filename  文件名称
 -  * @param     string  $medaitype  附件类型
 -  * @param     string  $addinfos  附加信息
 -  * @return    string
 -  */
 - 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);
 -     }
 -     $fid = $dsql->GetLastID();
 -     AddMyAddon($fid, $filename);
 -     return TRUE;
 - }
 - 
 - /**
 -  *  获得一个附加表单
 -  *
 -  * @param     object  $ctag
 -  * @return    string
 -  */
 - function GetFormItemA($ctag)
 - {
 -     return GetFormItem($ctag, 'member');
 - }
 - 
 - /**
 -  *  处理不同类型的数据
 -  *
 -  * @param     string  $dvalue
 -  * @param     string  $dtype
 -  * @param     int  $aid
 -  * @param     string  $job
 -  * @param     string  $addvar
 -  * @return    string
 -  */
 - function GetFieldValueA($dvalue, $dtype, $aid = 0, $job = 'add', $addvar = '')
 - {
 -     return GetFieldValue($dvalue, $dtype, $aid, $job, $addvar, 'member');
 - }
 - 
 - /**
 -  *  获得带值的表单(编辑时用)
 -  *
 -  * @param     object  $ctag
 -  * @param     string  $fvalue  默认值
 -  * @return    string
 -  */
 - function GetFormItemValueA($ctag, $fvalue)
 - {
 -     return GetFormItemValue($ctag, $fvalue, 'member');
 - }
 - 
 - /**
 -  *  载入自定义表单(用于发布)
 -  *
 -  * @access    public
 -  * @param     string  $fieldset
 -  * @param     string  $loadtype
 -  * @param     bool    $isprint   是否打印
 -  * @return    string
 -  */
 - function PrintAutoFieldsAdd(&$fieldset, $loadtype = 'all', $isprint = TRUE)
 - {
 -     $dtp = new DedeTagParse();
 -     $dtp->SetNameSpace('field', '<', '>');
 -     $dtp->LoadSource($fieldset);
 -     $dede_addonfields = '';
 -     $addonfieldsname = '';
 -     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'));
 -                 $addonfieldsname .= ",".$ctag->GetName();
 -                 if ($isprint) echo  GetFormItemA($ctag);
 -             }
 -         }
 -     }
 - 
 -     echo "<input type=\"hidden\" name=\"dede_addonfields\" value=\"".$dede_addonfields."\" />";
 -     echo "<input type=\"hidden\" name=\"_csrf_token\" value=\"".$GLOBALS['csrf_token']."\" />";
 -     //增加一个返回
 -     return $addonfieldsname;
 - }
 - 
 - /**
 -  *  载入自定义表单(用于编辑)
 -  *
 -  * @param     string  $fieldset
 -  * @param     string  $fieldValues
 -  * @param     string  $loadtype
 -  * @return    string
 -  */
 - 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."\" />";
 -     echo "<input type=\"hidden\" name=\"_csrf_token\" value=\"".$GLOBALS['csrf_token']."\" />";
 - }
 - 
 - /**
 -  *  创建指定ID的文档
 -  *
 -  * @param     int  $aid
 -  * @param     bool  $ismakesign
 -  * @return    string
 -  */
 - function MakeArt($aid, $ismakesign = FALSE)
 - {
 -     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文本、自动摘要、自动获取缩略图等
 -  *
 -  * @access    public
 -  * @param     string  $body  文档内容
 -  * @param     string  $description  描述
 -  * @param     string  $dtype  类型
 -  * @return    string
 -  */
 - 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里的外部资源
 -  *
 -  * @access    public
 -  * @param     string  $body  内容
 -  * @return    string
 -  */
 - 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[s]?:\/\/([^>]*)\.(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 (preg_match("#".$basehost."#i", $value)) {
 -             continue;
 -         }
 -         if ($cfg_basehost != $basehost && preg_match("#".$cfg_basehost."#i", $value)) {
 -             continue;
 -         }
 -         if (!preg_match("#^http:\/\/#i", $value)) {
 -             continue;
 -         }
 -         $htd->OpenUrl($value);
 -         $itype = $htd->GetHead("content-type");
 -         $itype = substr($value, -4, 4);
 -         if (!preg_match("#\.(jpg|gif|png)#i", $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;
 - }
 
 
  |