Archive for the ‘独家试用’ Category

修复了一个dedecms 的bug ‘发布图片的时候选择图集第一幅图做为缩略图不好用

星期一, 十一月 5th, 2007

修复了一个dedecms 的bug ‘发布图片的时候选择图集第一幅图做为缩略图不好用’

网上搜到的一篇文档 用来覆盖dede下album_add_action.php

 

<?php
require_once(dirname(__FILE__).”/config.php”);
CheckPurview(‘a_New,a_AccNew’);
require_once(dirname(__FILE__).”/../include/inc_photograph.php”);
require_once(dirname(__FILE__).”/../include/pub_oxwindow.php”);
require_once(dirname(__FILE__).”/inc/inc_archives_functions.php”);

if(!isset($iscommend)) $iscommend = 0;
if(!isset($isjump)) $isjump = 0;
if(!isset($isbold)) $isbold = 0;
if(!isset($isrm)) $isrm = 0;
if(!isset($ddisfirst)) $ddisfirst = 0;
if(!isset($ddisremote)) $ddisremote = 0;

if($typeid==0){
    ShowMsg(“请指定文档的栏目!”,”-1″);
    exit();
}
if(empty($channelid)){
    ShowMsg(“文档为非指定的类型,请检查你发布内容的表单是否合法!”,”-1″);
    exit();
}
if(!CheckChannel($typeid,$channelid) || !CheckChannel($typeid2,$channelid)){
    ShowMsg(“你所选择的栏目与当前模型不相符,请选择白色的选项!”,”-1″);
    exit();
}
if(!TestPurview(‘a_New’)) {
    CheckCatalog($typeid,”对不起,你没有操作栏目 {$typeid} 的权限!”);
    if($typeid2!=0) CheckCatalog($typeid2,”对不起,你没有操作栏目 {$typeid2} 的权限!”);
}

$arcrank = GetCoRank($arcrank,$typeid);

//对保存的内容进行处理
//——————————–
$iscommend = $iscommend + $isbold;

$pubdate = GetMkTime($pubdate);
$senddate = time();
$sortrank = AddDay($senddate,$sortup);

if($ishtml==0) $ismake = -1;
else $ismake = 0;

$shorttitle = cn_substr($shorttitle,36);
$color = cn_substr($color,10);
$writer = “”;
$source = cn_substr($source,50);
$description = cn_substr($description,250);
if($keywords!=”") $keywords = trim(cn_substr($keywords,60)).” “;
if(!TestPurview(‘a_Check,a_AccCheck,a_MyCheck’)){ $arcrank = -1; }

$adminID = $cuserLogin->getUserID();

//加入主档案表
//———————————-
$inQuery = “INSERT INTO #@__archives(
typeid,typeid2,sortrank,iscommend,ismake,channel,
arcrank,click,money,title,shorttitle,color,writer,source,litpic,
pubdate,senddate,arcatt,adminID,memberID,description,keywords)
VALUES (‘$typeid’,'$typeid2′,’$sortrank’,'$iscommend’,'$ismake’,'$channelid’,
‘$arcrank’,’0′,’$money’,'$title’,'$shorttitle’,'$color’,'$writer’,'$source’,'$litpic’,
‘$pubdate’,'$senddate’,'$arcatt’,'$adminID’,’0′,’$description’,'$keywords’);”;
$dsql = new DedeSql();
$dsql->SetQuery($inQuery);
if(!$dsql->ExecuteNoneQuery()){
    $dsql->Close();
    ShowMsg(“把数据保存到数据库archives表时出错,请检查!”,”-1″);
    exit();
}
$arcID = $dsql->GetLastID();

//处理并保存所指定的图片
//——————————
$imgurls = “{dede:pagestyle maxwidth=’$maxwidth’ ddmaxwidth=’$ddmaxwidth’ row=’$row’ col=’$col’ value=’$pagestyle’/}\r\n”;
for($i=1;$i<=120;$i++){
    if(isset(${‘imgurl’.$i})||(isset($_FILES['imgfile'.$i]['tmp_name']) && is_uploaded_file($_FILES['imgfile'.$i]['tmp_name']))){
      $iinfo = str_replace(“‘”,”`”,stripslashes(${‘imgmsg’.$i}));
      //非上传图片
      if(!is_uploaded_file($_FILES['imgfile'.$i]['tmp_name'])){
          $iurl = stripslashes(${‘imgurl’.$i});
          if(trim($iurl)==”") continue;
          $iurl = trim(str_replace($cfg_basehost,”",$iurl));
          if((eregi(“^http://”,$iurl) && !eregi($cfg_basehost,$iurl)) && $isUrlOpen)
          //远程图片
          {
            $reimgs = “”;
            if($isUrlOpen && $isrm==1)
            {
                $reimgs = GetRemoteImage($iurl,$adminID);
              if(is_array($reimgs)){
                  $imgurls .= “{dede:img text=’$iinfo’ width=’”.$reimgs[1].”‘ height=’”.$reimgs[2].”‘} “.$reimgs[0].” {/dede:img}\r\n”;
              }else{
                  echo “下载:”.$iurl.” 失败,可能图片有反采集功能或http头不正确!<br />\r\n”;
              }
          }else{
              $imgurls .= “{dede:img text=’$iinfo’ width=” height=”} “.$iurl.” {/dede:img}\r\n”;
          }
          //站内图片
          }else if($iurl!=”"){
            $imgfile = $cfg_basedir.$iurl;
            if(is_file($imgfile)){
                $info = “”;
                $imginfos = GetImageSize($imgfile,$info);
                $imgurls .= “{dede:img text=’$iinfo’ width=’”.$imginfos[0].”‘ height=’”.$imginfos[1].”‘} $iurl {/dede:img}\r\n”;
            }
        }
      //直接上传的图片
      }else{
          $sparr = Array(“image/pjpeg”,”image/jpeg”,”image/gif”,”image/png”,”image/x-png”,”image/wbmp”);
          if(!in_array($_FILES['imgfile'.$i]['type'],$sparr)){
              continue;
          }
          $uptime = mytime();
          $imgPath = $cfg_image_dir.”/”.strftime(“%y%m%d”,$uptime);
            MkdirAll($cfg_basedir.$imgPath,777);
          CloseFtp();
          $filename = $imgPath.”/”.dd2char($cuserLogin->getUserID().strftime(“%H%M%S”,$uptime).mt_rand(100,999).$i);
          $fs = explode(“.”,$_FILES['imgfile'.$i]['name']);
          $filename = $filename.”.”.$fs[count($fs)-1];
          if ($i == 1) {     //令狐雨辰添加,首张缩略图处理。
            $imgurl1 = $filename;
          }
          @move_uploaded_file($_FILES['imgfile'.$i]['tmp_name'],$cfg_basedir.$filename);
          @WaterImg($cfg_basedir.$filename,’up’);
          $imgfile = $cfg_basedir.$filename;
          if(is_file($imgfile)){
              $iurl = $filename;
              $info = “”;
              $imginfos = GetImageSize($imgfile,$info);
              $imgurls .= “{dede:img text=’$iinfo’ width=’”.$imginfos[0].”‘ height=’”.$imginfos[1].”‘} $iurl {/dede:img}\r\n”;
              //把新上传的图片信息保存到媒体文档管理档案中
              $inquery = ”
            INSERT INTO #@__uploads(title,url,mediatype,width,height,playtime,filesize,uptime,adminid,memberid)
            VALUES (‘$title”.$i.”‘,’$filename’,’1′,’”.$imginfos[0].”‘,’”.$imginfos[1].”‘,’0′,’”.filesize($imgfile).”‘,’”.mytime().”‘,’$adminID’,’0′);
          “;
          $dsql->SetQuery($inquery);
          $dsql->ExecuteNoneQuery();
          }
      }
    }//含有图片的条件
}//循环结束
$imgurls = addslashes($imgurls);

//令狐雨辰:顺序转换
//处理上传的缩略图
$litpic = GetDDImage(‘litpic’,$picname,$ddisremote);

//使用第一张图作为缩略图
if($ddisfirst==1 && $litpic==”"){
    if (isset($imgurl1)){
        $litpic = GetDDImage(‘ddfirst’,$imgurl1,$isrm);
    }
}
$dsql->ExecuteNoneQuery(“UPDATE #@__archives SET litpic=’$litpic’ WHERE ID =’$arcID’;”);
//令狐雨辰:顺序转换结束

//加入附加表
//———————————-
$query = ”
INSERT INTO #@__addonimages(aid,typeid,pagestyle,maxwidth,imgurls,row,col,isrm,ddmaxwidth) Values(‘$arcID’,'$typeid’,'$pagestyle’,'$maxwidth’,'$imgurls’,'$row’,'$col’,'$isrm’,'$ddmaxwidth’);
“;
$dsql->SetQuery($query);
if(!$dsql->ExecuteNoneQuery()){
    $dsql->SetQuery(“Delete From #@__archives where ID=’$arcID’”);
    $dsql->ExecuteNoneQuery();
    $dsql->Close();
    ShowMsg(“把数据保存到数据库附加表 addonimages 时出错,请检查原因!”,”-1″);
    exit();
}
$dsql->Close();

//生成HTML
//———————————

$artUrl = MakeArt($arcID,true);
if($artUrl==”") $artUrl = $cfg_plus_dir.”/view.php?aid=$arcID”;

//———————————
//返回成功信息
//———————————-

$msg = ”
  请选择你的后续操作:
<a href=’album_add.php?cid=$typeid’><u>继续发布图片</u></a>

<a href=’archives_do.php?aid=”.$arcID.”&dopost=editArchives’><u>更改图集</u></a>

<a href=’$artUrl’ target=’_blank’><u>预览文档</u></a>

<a href=’catalog_do.php?cid=$typeid&dopost=listArchives’><u>已发布图片管理</u></a>

<a href=’catalog_main.php’><u>网站栏目管理</u></a>
“;

$wintitle = “成功发布一个图集!”;
$wecome_info = “文章管理::发布图集”;
$win = new OxWindow();
$win->AddTitle(“成功发布一个图集:”);
$win->AddMsgItem($msg);
$winform = $win->GetWindow(“hand”,” “,false);
$win->Display();
?>

然后在修改dede/inc/inc_archives_functions.php 264行

       /$litpic = str_replace(‘.’,'_lit.’,$picname); 改为         $litpic = $picname;

下午 01:17