标签 织梦 下的文章

今天在做项目的时候遇到问题,要获取上一篇、下一篇的URL地址,系统默认是带链的,要的效果是这样的。 "/anzhuang/2011/1012/555.html"
代码如下:
上一篇地址
{dede:prenext get='pro' runphp="yes"}
preg_match_all('/<a.*?(?: |\\t|\\r|\\n)?href=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim', @me, $strResult, PREG_PATTERN_ORDER);
@me=$strResult[1][0];
{/dede:prenext}
下一篇地址
{dede:prenext get='next' runphp="yes"}
preg_match_all('/<a.*?(?: |\\t|\\r|\\n)?href=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim', @me, $strResult, PREG_PATTERN_ORDER);
@me=$strResult[1][0];
{/dede:prenext}

<?php

/*
父栏目调用标签
*/

function lib_parentchannel(&$ctag,&$refObj)

{

global $_sys_globals,$dsql;
$attlist = "row|100,nosonmsg|,col|1";

FillAttsDefault($ctag->CAttribute->Items,$attlist);

extract($ctag->CAttribute->Items, EXTR_SKIP);

$innertext = $ctag->GetInnerText();

$reid = 0;

$topid = 0;

//如果属性里没指定栏目id,从引用类里获取栏目信息

if(empty($typeid))

{

if( isset($refObj->TypeLink->TypeInfos['id']) )

{

$typeid = $refObj->TypeLink->TypeInfos['id'];

$reid = $refObj->TypeLink->TypeInfos['reid'];

$topid = $refObj->TypeLink->TypeInfos['topid'];

}

else {

$typeid = 0;

}

} //如果指定了栏目id,从数据库获取栏目信息

else

{

$row2 = $dsql->GetOne("SELECT * FROM `#@__arctype` WHERE id='$typeid' ");

$typeid = $row2['id'];

$reid = $row2['reid'];

$topid = $row2['topid'];

$issetInfos = true;

}
$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

FROM `#@__arctype` WHERE reid='$typeid' AND ishidden<>1 ORDER BY sortrank ASC LIMIT 1";

$dsql->SetQuery($sql);

$dsql->Execute();

$totalRow = $dsql->GetTotalRow();

//And id<>'$typeid'

$row = $dsql->GetOne("SELECT id,typename,reid,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

FROM `#@__arctype` WHERE id='$typeid' ");

if(!is_array($row)) return '';

if($totalRow==0){

$typeid = $row['reid'];

$row = $dsql->GetOne("SELECT id,typename,reid,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

FROM `#@__arctype` WHERE id='$typeid' ");

if(!is_array($row)) return '';

}

if(trim($innertext)=='') $innertext = GetSysTemplets("part_type_list.htm");
$dtp = new DedeTagParse();

$dtp->SetNameSpace('field','[',']');

$dtp->LoadSource($innertext);

if(!is_array($dtp->CTags))

{

unset($dtp);

return '';

}

else

{

$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);

foreach($dtp->CTags as $tagid=>$ctag)

{

if(isset($row[$ctag->GetName()])) $dtp->Assign($tagid,$row[$ctag->GetName()]);

}

$revalue = $dtp->GetResult();

unset($dtp);

return $revalue;

}

}

?>

原:churujianghu

自定义宏标记的使用
今天搞织梦用了自定义宏标记 是用JS调用了 怎么更新都不变化 哎 后来有如下方法调用可以了

[标签名称]

Mytag

 [标签简介]

用于获取自定义宏标记的内容

 [功能说明]

用于获取自定义宏标记的内容

 [适用范围]

封面模板、列表模板、文档模板

 [参数说明]

typeid=' '   表示栏目ID,默认为0,代表所有的栏目都通用的ID,在列表和文档模板中typeid默认为栏目和文档本身所在的栏目ID。在没有设定的栏目没有定义这个名称的标记,会按如下搜索方式来搜索“先向上查找父栏目-> 通用标记(typeid=0)的同名标记”。

name=' '    标记名称,name为必须存在的属性。

ismake=' '  yes|no 默认为no 表示mytag里的内容不包含其它封面模板的标记,yes则表示标记内容含有其它封面模板标记。

 [调用方法]

[php]{dede:mytag typeid='栏目ID' name='标记名称' ismake=''/}[/php]

今天同事搞企业网站 有个资料下载模块 怎么搞怎么搞链接地址都有问题 郁闷死了
没办法 百度哈   总算是搞出来了

修改:
templets/system/channel_addon.htm这个文件就可以了
我给修改成介个样子的了 OK了

[php]~link~ [/php]

织梦dedecms虽然可以生成静态页面, 也可以重写成为伪静态. 在后台有设置可以开启伪静态. 开启后还要经过一定的设置才能使用. 下面是方法,组件我已经在附件里发布了!

我总结为三步:
第一步. 首先栏目和文章最好设置成动态浏览. 这样才不会生成静态html文件.
第二步. 设置重写规则. 在系统目录下加一个 .htaccess文件. 内容为:
RewriteEngine On
RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule ^plus/view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1
RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2

如果你的系统支持url重写,到这里就可以用伪静态访问了.
第三步.更改重写的URL.
如果用默认的设置, 访问的URL是:
http://www.XXXX.com/plus/view-131-1.html
这样的形色, 我们是可以更改这种样式的.
找到文件/include/helpers/channelunit.helper.php打开.
可以看到有这样的语句

return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';

这就是文章的url形色.
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;

这是列表的重写url.
可以使url更短一点,完成可以写成:
return "/view-".$aid.'-1.html';

$reurl = "/list-".$typeid.".html";
这时重写规则也要更新.
RewriteEngine On
RewriteRule ^list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule ^view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1
RewriteRule ^view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2

更进一步,还可以把view换成自己的任何词语,这也要把include/arc.archives.class.php文件中的view也一样替换。
发布选项: 生成HTML 仅动态浏览 发文章的时候选一下也不多事。为了以后升级 尽量减少修改文件。
以下这没有试,大家按需要测试吧~~
修改数据库
将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令:
update dede_archives set ismake=-1
并将ismake的默认值设置为 -1即动态。
将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令:
update dede_arctype set isdefault=-1