找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1464|回复: 0

[分享] 解决织梦CMS栏目绑定二级域名后图片不显示,路径错误办法

[复制链接]
发表于 2018-3-9 08:01:09 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
织梦CMS栏目管理-高级选项里有绑定域名功能,可以让我们用一级或二级域名绑定栏目来访问,但是有个问题就是栏目绑定二级域名后图片不显示,路径错误,解决这个问题需要修改程序代码来解决。
1412VV021P-13013.webp
解决织梦CMS栏目绑定二级域名后图片不显示,路径错误办法
修改方法如下:
将 dede/INC 的inc_archives_functions.php 文件改为如下代码就OK了
代码:
  1. <?php
  2. require_once(DEDEADMIN."/../include/pub_httpdown.php");
  3. require_once(DEDEADMIN."/../include/inc_photograph.php");
  4. require_once(DEDEADMIN."/../include/pub_oxwindow.php");
  5. require_once(DEDEADMIN."/../include/inc_tag_functions.php");
  6. require_once(DEDEADMIN."/../include/inc_custom_fields.php");
  7. //---------------------------
  8. //HTML獠吭赐?
  9. //---------------------
  10. function GetCurContentAlbum($body,$rfurl,&$firstdd)
  11. {
  12. global $cfg_multi_site,$cfg_basehost,$ddmaxwidth,$cfg_basedir;
  13. include_once(DEDEADMIN."/../include/pub_collection_functions.php");
  14. if(empty($ddmaxwidth)) $ddmaxwidth = 150;
  15. $rsimg = '';
  16. $cfg_uploaddir = $GLOBALS['cfg_image_dir'];
  17. $cfg_basedir = $GLOBALS['cfg_basedir'];
  18. $basehost = "dede_arctype where ID='$typeid' ");
  19. if($row['ispart']!=0 || $row['channeltype']!=$channelid) { return false; }
  20. else { return true; }
  21. }
  22. //---------------
  23. //检测档案权限
  24. //---------------
  25. function CheckArcAdmin($aid,$adminid)
  26. {
  27. $dsql = new DedeSql(false);
  28. $row = $dsql->GetOne("Select adminid From dede_archives where ID='$aid' ");
  29. if($row['adminid']!=$adminid) return false;
  30. else return true;
  31. }
  32. //---------------
  33. //文档自动分页
  34. //---------------
  35. function SpLongBody(&$mybody,$spsize,$sptag)
  36. {
  37. if(strlen($mybody)<$spsize) return $mybody;
  38. $bds = explode('<',$mybody);
  39. $npageBody = "";
  40. $istable = 0;
  41. $mybody = "";
  42. foreach($bds as $i=>$k)
  43. {
  44. if($i==0){ $npageBody .= $bds[$i]; continue;}
  45. $bds[$i] = "<".$bds[$i];
  46. if(strlen($bds[$i])>6){
  47.     $tname = substr($bds[$i],1,5);
  48.     if(strtolower($tname)=='table') $istable++;
  49.     else if(strtolower($tname)=='/tabl') $istable--;
  50.     if($istable>0){ $npageBody .= $bds[$i]; continue; }
  51.     else $npageBody .= $bds[$i];
  52. }else{
  53.     $npageBody .= $bds[$i];
  54. }
  55. if(strlen($npageBody)>$spsize){
  56.     $mybody .= $npageBody.$sptag;
  57.     $npageBody = "";
  58.      }
  59. }
  60. if($npageBody!="") $mybody .= $npageBody;
  61. return $mybody;
  62. }
  63. //-----------------------
  64. //创建指定ID的文档
  65. //-----------------------
  66. function MakeArt($aid,$mkindex=true,$upcache=true)
  67. {
  68. global $cfg_makeindex,$cfg_basedir,$cfg_templets_dir,$cfg_df_style,$cfg_up_prenext,$typeid,$envs,$typeid;
  69. include_once(DEDEADMIN."/../include/inc_archives_view.php");
  70. if(!$upcache) $envs['nocache'] = true;
  71. $arc = new Archives($aid);
  72. $reurl = $arc->MakeHtml();
  73. if($mkindex)
  74. {
  75. //更新上下篇文章
  76. if($cfg_up_prenext=='Y' && !empty($typeid))
  77. {
  78.         $preRow = $arc->dsql->GetOne("Select ID From `{$arc->MainTable}` where ID<$aid And ID>".($aid-1000)." And arcrank>-1 And typeid='$typeid' order by ID desc");
  79.         $nextRow = $arc->dsql->GetOne("Select ID From `{$arc->MainTable}` where ID>$aid And ID<".($aid+1000)." And arcrank>-1 And typeid='$typeid' order by ID asc");
  80.      
  81.        if(is_array($preRow)){
  82.         $arc = new Archives($preRow['ID']);
  83.            $arc->MakeHtml();
  84.        }
  85.        if(is_array($nextRow)){
  86.        $arc = new Archives($nextRow['ID']);
  87.           $arc->MakeHtml();
  88.        }
  89. }
  90. //更新主页
  91. if($cfg_makeindex=='Y')
  92. {
  93.     $pv = new PartView();
  94.     $row = $pv->dsql->GetOne("Select * From dede_homepageset");
  95.     $templet = str_replace("{style}",$cfg_df_style,$row['templet']);
  96.     $homeFile = dirname(__FILE__)."/../".$row['position'];
  97.       $homeFile = str_replace("\","/",$homeFile);
  98.       $homeFile = str_replace("//","/",$homeFile);
  99.       $fp = fopen($homeFile,"w") or die("页募{$homeFile} 没写权蓿");
  100.       fclose($fp);
  101.       $pv->SetTemplet($cfg_basedir.$cfg_templets_dir."/".$templet);
  102.       $pv->SaveToHtml($homeFile);
  103. }
  104. }
  105. return $reurl;
  106. }
  107. //---------------------------
  108. //上传缩略图
  109. //--------------------------
  110. /*
  111. 参数一
  112. litpic 默认为上传表单的名称
  113. 值为 none\ddfirst 强制不查检上传
  114. 值为 ddfirst 则强制把已存在的本地图生成缩略图
  115. 参数二
  116. picname 手工填写的图片路径
  117. 参数三
  118. isremote 是否下载远程图片 0 为不下载, 1为下载到本地
  119. */
  120. function GetDDImage($litpic,$picname,$isremote,$ntitle='')
  121. {
  122. global $cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height;
  123. global $cfg_basedir,$ddcfg_image_dir,$title,$dsql;
  124. $ntime = time();
  125. $saveinfo = false;
  126. if($ntitle!='') $title = $ntitle;
  127. $picname = trim($picname);
  128. if(($litpic!='none'||$litpic!='ddfirst') &&
  129. !empty($_FILES[$litpic]['tmp_name']) && is_uploaded_file($_FILES[$litpic]['tmp_name']))
  130. //如果用户自行上传缩略图
  131. {
  132.       $istype = 0;
  133.       $sparr = Array("image/pjpeg","image/jpeg","image/gif","image/png");
  134.       $_FILES[$litpic]['type'] = strtolower(trim($_FILES[$litpic]['type']));
  135.       if(!in_array($_FILES[$litpic]['type'],$sparr)){
  136.       ShowMsg("洗图片式使JPEGGIFPNG式一郑","-1");
  137.       exit();
  138.      }
  139.    
  140.      if(!empty($picname) && !eregi("^http://",$picname) && file_exists($cfg_basedir.$picname) ){
  141.      if(!is_object($dsql)) $dsql = new DedeSql();
  142.          $dsql->ExecuteNoneQuery("Delete From dede_uploads where url like '$picname' ");
  143.      $fullUrl = eregi_replace("\.([a-z]*)$","",$picname);
  144.      }else{
  145.         $savepath = $ddcfg_image_dir."/".strftime("%y%m%d",$ntime);
  146.           CreateDir($savepath);
  147.           $fullUrl = $savepath."/".dd2char(strftime("%H%M%S",$ntime).$cuserLogin->getUserID().mt_rand(1000,9999));
  148.      }
  149.      
  150.       if(strtolower($_FILES[$litpic]['type'])=="image/gif") $fullUrl = $fullUrl.".gif";
  151.       else if(strtolower($_FILES[$litpic]['type'])=="image/png") $fullUrl = $fullUrl.".png";
  152.       else $fullUrl = $fullUrl.".jpg";
  153.      
  154.       @move_uploaded_file($_FILES[$litpic]['tmp_name'],$cfg_basedir.$fullUrl);
  155.      $litpic = $fullUrl;
  156.    
  157.      @ImageResize($cfg_basedir.$fullUrl,$cfg_ddimg_width,$cfg_ddimg_height);
  158.    
  159.      $saveinfo = true;
  160.    
  161. }else{
  162.      if($picname=='') return '';
  163.      //远程缩略
  164.      if($isremote==1 && eregi("^http://",$picname)){
  165.         $ddinfos = GetRemoteImage($picname,$cuserLogin->getUserID());
  166.         if(!is_array($ddinfos)) $litpic = "";
  167.         else{
  168.           $litpic = $ddinfos[0];
  169.           if($ddinfos[1] > $cfg_ddimg_width || $ddinfos[2] > $cfg_ddimg_height){
  170.              @ImageResize($cfg_basedir.$litpic,$cfg_ddimg_width,$cfg_ddimg_height);
  171.           }
  172.         }
  173.         $saveinfo = true;
  174.      }
  175.      //本地缩略
  176.      else{
  177.      //本地大图强制生成本地图缩略
  178.      if($litpic=='ddfirst' && !eregi("^http://",$picname)){
  179.          $oldpic = $cfg_basedir.$picname;
  180.          if(!eregi('_lit',$litpic)){
  181.          $litpic = str_replace('.','_lit.',$picname);
  182.          $saveinfo = true;
  183.          }
  184.          @ImageResize($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
  185.      }else{
  186.          $litpic = $picname;
  187.      }
  188.      }
  189. }
  190. $imgfile = $cfg_basedir.$litpic;
  191. if($saveinfo && is_file($imgfile) && $litpic!=''){
  192.    $info = "";
  193.    $imginfos = GetImageSize($imgfile,$info);
  194.    //把新上传的图片信息保存到媒体文档管理档案中
  195.    $inquery = "
  196.         INSERT INTO dede_uploads(title,url,mediatype,width,height,playtime,filesize,uptime,adminid,memberid)
  197.         VALUES ('{$title} 图','$litpic','1','".$imginfos[0]."','".$imginfos[1]."','0','".filesize($imgfile)."','".time()."','".$cuserLogin->getUserID()."','0');
  198.     ";
  199.      $dsql = new DedeSql();
  200.      $dsql->ExecuteNoneQuery($inquery);
  201. }
  202. return $litpic;
  203. }
  204. //检测栏目是否设置了浏览权限
  205. function GetCoRank($arcrank,$typeid){
  206. $dsql = new DedeSql(false);  
  207. $row = $dsql->GetOne("Select corank From dede_arctype where ID='$typeid' ");
  208. if($row['corank']!=0) return $row['corank'];
  209. else return $arcrank;
  210. }
  211. //图集里大图的小图
  212. function GetImageMapDD($filename,$ddm,$oldname=''){
  213. if($oldname!='' && !eregi("^http://",$oldname)){
  214. $ddpicok = $oldname;
  215. }else{
  216. $ddn = substr($filename,-3);
  217.     $ddpicok = ereg_replace("\.".$ddn."$","-lp.".$ddn,$filename);
  218. }
  219. $toFile = $GLOBALS['cfg_basedir'].$ddpicok;
  220. ImageResize($GLOBALS['cfg_basedir'].$filename,$ddm,300,$toFile);
  221. return $ddpicok;
  222. }
  223. //------------------------
  224. //上传一个未经处理的图片
  225. //------------------------
  226. /*
  227. //参数一 upname 上传框名称
  228. //参数二 handurl 手工填写的网址
  229. //参数三 ddisremote 是否下载远程图片 0 不下, 1 下载
  230. //参数四 ntitle 注解文字 如果表单有 title 字段可不管
  231. */
  232. function UploadOneImage($upname,$handurl='',$ddisremote=1,$ntitle='')
  233. {
  234. global $cuserLogin,$cfg_basedir,$cfg_image_dir,$dsql,$title;
  235. if($ntitle!='') $title = $ntitle;
  236. $ntime = time();
  237. $filename = '';
  238. $isrm_up = false;
  239. $handurl = trim($handurl);
  240. //如果用户自行上传了图片
  241. if(!empty($_FILES[$upname]['tmp_name']) && is_uploaded_file($_FILES[$upname]['tmp_name']))
  242. {
  243.       $istype = 0;
  244.       $sparr = Array("image/pjpeg","image/jpeg","image/gif","image/png");
  245.       $_FILES[$upname]['type'] = strtolower(trim($_FILES[$upname]['type']));
  246.       if(!in_array($_FILES[$upname]['type'],$sparr)){
  247.        ShowMsg("洗图片式使JPEGGIFPNG式一郑","-1");
  248.        exit();
  249.      }
  250.      
  251.      
  252.       if(!empty($handurl) && !eregi("^http://",$handurl) && file_exists($cfg_basedir.$handurl) ){
  253.      if(!is_object($dsql)) $dsql = new DedeSql();
  254.          $dsql->ExecuteNoneQuery("Delete From dede_uploads where url like '$handurl' ");
  255.      $fullUrl = eregi_replace("\.([a-z]*)$","",$handurl);
  256.      }else{
  257.      $savepath = $cfg_image_dir."/".strftime("%Y-%m",$ntime);
  258.          CreateDir($savepath);
  259.          $fullUrl = $savepath."/".strftime("%d",$ntime).dd2char(strftime("%H%M%S",$ntime).'0'.$cuserLogin->getUserID().'0'.mt_rand(1000,9999));
  260.      }
  261.      
  262.       if(strtolower($_FILES[$upname]['type'])=="image/gif") $fullUrl = $fullUrl.".gif";
  263.       else if(strtolower($_FILES[$upname]['type'])=="image/png") $fullUrl = $fullUrl.".png";
  264.       else $fullUrl = $fullUrl.".jpg";
  265.      
  266.       //保存
  267.       @move_uploaded_file($_FILES[$upname]['tmp_name'],$cfg_basedir.$fullUrl);
  268.      $filename = $fullUrl;
  269.      //水印
  270.      @WaterImg($imgfile,'up');
  271.      $isrm_up = true;
  272.    
  273. }
  274. //远程或选择本地图片
  275. else{
  276.      if($handurl=='') return '';
  277.      //远程图片并要求本地化
  278.      if($isremote==1 && eregi("^http://",$handurl)){
  279.        $ddinfos = GetRemoteImage($handurl,$cuserLogin->getUserID());
  280.        if(!is_array($ddinfos)) $litpic = "";
  281.        else $filename = $ddinfos[0];
  282.        $isrm_up = true;
  283.      //本地图片或远程不要求本地化
  284.      }else{
  285.      $filename = $handurl;
  286.      }
  287. }
  288. $imgfile = $cfg_basedir.$filename;
  289. if(is_file($imgfile) && $isrm_up && $filename!=''){
  290.    $info = "";
  291.    $imginfos = GetImageSize($imgfile,$info);
  292.    //把新上传的图片信息保存到媒体文档管理档案中
  293.    $inquery = "
  294.         INSERT INTO dede_uploads(title,url,mediatype,width,height,playtime,filesize,uptime,adminid,memberid)
  295.         VALUES ('$title','$filename','1','".$imginfos[0]."','".$imginfos[1]."','0','".filesize($imgfile)."','".time()."','".$cuserLogin->getUserID()."','0');
  296.     ";
  297.      $dsql = new DedeSql(false);
  298.      $dsql->ExecuteNoneQuery($inquery);
  299. }
  300. return $filename;
  301. }
  302. //------------------
  303. //取第一个图片为缩略图
  304. //------------------
  305. function GetDDImgFromBody(&$body)
  306. {
  307. $litpic = '';
  308. preg_match_all("/(src|SRC)=["|'| ]{0,}(.*\.(gif|jpg|jpeg|bmp|png))/isU",$body,$img_array);
  309. $img_array = array_unique($img_array[2]);
  310. if(count($img_array)>0){
  311.    $picname = preg_replace("/["|'| ]{1,}/","",$img_array[0]);
  312.    if(ereg("_lit\.",$picname)) $litpic = $picname;
  313. else $litpic = GetDDImage('ddfirst',$picname,0);
  314. }
  315. return $litpic;
  316. }
  317. //获得一个附加表单
  318. //-----------------------------
  319. function GetFormItemA($ctag)
  320. {
  321. return GetFormItem($ctag,'admin');
  322. }
  323. //---------------------------
  324. //处理不同类型的数据
  325. //---------------------------
  326. function GetFieldValueA($dvalue,$dtype,$aid=0,$job='add',$addvar='')
  327. {
  328. return GetFieldValue($dvalue,$dtype,$aid,$job,$addvar,'admin');
  329. }
  330. //获得带值的表单(编辑时用)
  331. //-----------------------------
  332. function GetFormItemValueA($ctag,$fvalue)
  333. {
  334. return GetFormItemValue($ctag,$fvalue,'admin');
  335. }
  336. //载入自定义表单(用于发布)
  337. function PrintAutoFieldsAdd(&$fieldset,$loadtype='all')
  338. {
  339.    $dtp = new DedeTagParse();
  340. $dtp->SetNameSpace("field","<",">");
  341.    $dtp->LoadSource($fieldset);
  342.    $dede_addonfields = "";
  343.    if(is_array($dtp->CTags))
  344.    {
  345.       foreach($dtp->CTags as $tid=>$ctag)
  346.     {
  347.         if($loadtype!='autofield'
  348.         || ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) )
  349.         {
  350.             $dede_addonfields .= ( $dede_addonfields=="" ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
  351.               echo GetFormItemA($ctag);
  352.         }
  353.       }
  354. }
  355. echo "<input type='hidden' name='dede_addonfields' value="".$dede_addonfields."">\r\n";
  356. }
  357. //载入自定义表单(用于编辑)
  358. function PrintAutoFieldsEdit(&$fieldset,&$fieldValues,$loadtype='all')
  359. {
  360.    $dtp = new DedeTagParse();
  361. $dtp->SetNameSpace("field","<",">");
  362.    $dtp->LoadSource($fieldset);
  363.    $dede_addonfields = "";
  364.    if(is_array($dtp->CTags))
  365.    {
  366.       foreach($dtp->CTags as $tid=>$ctag)
  367.     {
  368.         if($loadtype!='autofield'
  369.         || ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) )
  370.         {
  371.              $dede_addonfields .= ( $dede_addonfields=='' ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
  372.              echo GetFormItemValueA($ctag,$fieldValues[$ctag->GetName()]);
  373.         }
  374.       }
  375. }
  376. echo "<input type='hidden' name='dede_addonfields' value="".$dede_addonfields."">\r\n";
  377. }
  378. function getfilenameonly($arcid, $typeid, $senddate, $title, $ismake, $arcrank, $money)
  379. {
  380. global $dsql;
  381. require_once DEDEINC.'/inc_channel_unit_functions.php';
  382. $row = $dsql->getone("select namerule, typedir, siterefer, sitepath ,channeltype from dede_arctype where ID='$typeid'");
  383. if(is_array($row)){
  384.    if($row['channeltype'] == -2) return $GLOBALS['cfg_plus_dir']."/view.php?aid=$arcid";
  385.    $filename = GetFileNewName($arcid, $typeid, $senddate, $title, $ismake, $arcrank, $row['namerule'],
  386.              $row['typedir'],$money,$row['siterefer'], $row['sitepath']);
  387. }else{
  388.    showmsg('目id','-1');
  389.    exit;
  390. }
  391. if($filename=="") $filename = $GLOBALS['cfg_plus_dir']."/view.php?aid=$arcid";
  392. return $filename;
  393. }
  394. ?>
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-1-22 23:52 , Processed in 0.042866 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表