公告:如果您的账号不能登录,可能是系统对您账号进行了保护,我们发现系统中存在着不安全密码,故对其重置,请您重新激活账号,对于给您造成的不便,敬请谅解!
论坛风格切换切换到宽版
  • 5130阅读
  • 1回复

[分享] 获得本地路径最全的方法 解决arcurl不能调用 [复制链接]

上一主题 下一主题
离线soarb
 

发帖
111
贡献值
21
威望值
66
技术分
0
织梦币
0
只看楼主 倒序阅读 使用道具 0 发表于: 2009-12-21
 
  这里说是的在html,而不是js.

 老方法:
 
  1. {dede:field.arcurl/}   
  2. {dede:field name='arcurl'/}


这两个都试试吧。

 如果不行试试。 可以用 GetCurUrl() 系统的函数。

这个函数是php路径,不是文档路径。 在做伪静态时就不中用了。

稻谷了半天。
发现了GetOneArchive函数

方法如下

 把
  1. function GetOneArchive($aid,$rtype='')
  2. {
  3.     global $dsql;
  4.     include_once(DEDEINC."/channelunit.func.php");
  5.     $aid = trim(ereg_replace('[^0-9]','',$aid));
  6.     $reArr = array();
  7.     $chRow = $dsql->GetOne("Select arc.*,ch.maintable,ch.addtable,ch.issystem From `#@__arctiny` arc left join `#@__channeltype` ch on ch.id=arc.channel where arc.id='$aid' ");
  8.     if(!is_array($chRow)) {
  9.         return $reArr;
  10.     }
  11.     else {
  12.         if(empty($chRow['maintable'])) $chRow['maintable'] = '#@__archives';
  13.     }
  14.     if($chRow['issystem']!=-1)
  15.     {
  16.         $nquery = " Select arc.*,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
  17.                     From `{$chRow['maintable']}` arc left join `#@__arctype` tp on tp.id=arc.typeid
  18.                     where arc.id='$aid' ";
  19.     }
  20.     else
  21.     {
  22.         $nquery = " Select arc.*,1 as ismake,0 as money,'' as filename,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath
  23.                     From `{$chRow['addtable']}` arc left join `#@__arctype` tp on tp.id=arc.typeid
  24.                     where arc.aid='$aid' ";
  25.     }
  26.     $arcRow = $dsql->GetOne($nquery);
  27.     if(!is_array($arcRow)) {
  28.         return $reArr;
  29.     }
  30.     if(!isset($arcRow['description'])) {
  31.         $arcRow['description'] = '';
  32.     }
  33.     if(empty($arcRow['description']) && isset($arcRow['body'])) {
  34.         $arcRow['description'] = cn_substr(html2text($arcRow['body']),250);
  35.     }
  36.     if(!isset($arcRow['pubdate'])) {
  37.         $arcRow['pubdate'] = $arcRow['senddate'];
  38.     }
  39.     if(!isset($arcRow['notpost'])) {
  40.         $arcRow['notpost'] = 0;
  41.     }
  42.     $reArr = $arcRow;
  43.     $reArr['aid']    = $aid;
  44.     $reArr['topid']  = $arcRow['topid'];
  45.     $reArr['arctitle'] = $arcRow['title'];
  46.     $reArr['arcurl'] = GetFileUrl($aid,$arcRow['typeid'],$arcRow['senddate'],$reArr['title'],$arcRow['ismake'],$arcRow['arcrank'],$arcRow['namerule'],
  47.     $arcRow['typedir'],$arcRow['money'],$arcRow['filename'],$arcRow['moresite'],$arcRow['siteurl'],$arcRow['sitepath']);
  48.     if(!empty($rtype)) return $reArr[$rtype];
  49.     else return $reArr;
  50. }
 替换原来的函数代码。(在include/common.func.php 中769行。 或在common.func.php中搜索GetOneArchive  找到)

 然后再模板用
  1. {dede:field.aid function="GetOneArchive(@me,'arcurl')"/}



这个方法试用于前两个方法无法调用的朋友。
离线indexdong

发帖
125
贡献值
58
威望值
20
技术分
0
织梦币
0
只看该作者 1 发表于: 2010-05-25
收藏先,现在在搞url
 
www.uker.cc