DeDeBIZ/DeDeV6:TAG标签改为英文ID静态版

snh102 By snh102 at 2025-02-16 • 暂不可见      举报

DeDeBIZ官网群,天天有人嫌弃TAG标签,一个好的织梦内容管理系统,不能因为一个TAG标签功能影响生态。为了满足织梦群友的共同需求,小编决定把TAG标签给优化了。

未修改之前:/a/tags/1/1/index.html
修改好之后:/a/tags/dedecms_1_1.html

/a/tags/ 是保存目录,可以在系统基本参数,其它选项,最底部的标签生成目录

教程开始

开始整活,没啥好说的,教程比较长,修改的比较多,就文件替换吧,如果做过二次开发的,就文件对比一下吧。不懂的都可以问我,我只说两个比较重要的地方。

修改生成 英文ID静态版,打开 /system/archive/taglist.class.php 搜索

function MakeHtml(

看到这个函数

function MakeHtml($startpage = 1, $makepagesize = 0)
{
	中间的代码都省略
}

把这整个函数改为

function MakeHtml($startpage = 1, $makepagesize = 0) {
	global $cfg_dir_purview, $envs, $cfg_tags_dir, $cfg_cmsurl;
	$envs['makeTag'] = 1;
	$tagsdir = str_replace("{cmspath}", "", $cfg_tags_dir);
	if (isset($envs['makeTag']) && $envs['makeTag'] == 1) {
		$this->Fields['position'] = $cfg_cmsurl.$tagsdir."/tags.html";
	}
	if (empty($this->TotalResult) && $this->Tag != "") $this->CountRecord();
	//初步给固定值的标记赋值
	$this->ParseTempletsFirst();
	if ($this->Tag != '') {
		if ($this->TagInfos) {
			$totalpage = ceil($this->TotalResult / $this->pagesize);
			if ($totalpage == 0) {
				$totalpage = 1;
			}
			if ($makepagesize > 0) {
				$endpage = $startpage + $makepagesize;
			} else {
				$endpage = ($totalpage + 1);
			}
			if ($endpage >= $totalpage + 1) {
				$endpage = $totalpage + 1;
			}
			if ($endpage == 1) {
				$endpage = 2;
			}
			for ($this->PageNo = $startpage; $this->PageNo < $endpage; $this->PageNo++) {
				$this->ParseDMFields($this->PageNo, 1);
				$this->dtp->SaveTo($this->GetTruePath().$this->tagsDir.'/'.GetPinyin(stripslashes($this->TagInfos['tag'])).'_'.$this->TagInfos['id'].'_'.$this->PageNo.'.html');
			}
		}
	}
}

就这样改,这样改了以后,就生成拼音的ID了,但还有很多细节需要处理。

标签入库检测,打开 /system/helpers/archive.helper.php 搜索

function InsertOneTag($tag, $aid)

看到下面的

$tag = trim($tag);

改为

$tag = str_replace(array("*","\\","/","?","<", ">", "'",",","。", ":","\"", ";","|", "/*", "*",".", "../", "./"),
    array("", "","","","","", "", "", "", "","","", "", "", "","", "", ""),$tag);
$tag = trim($tag);

作用是处理特殊字符,以免生成TAG标签失败。

调用标签

样式在 /system/extend.func.php 最下面的自定义函数。

tagslist 是列表页获取TAG标签,atags 是文章内容页获取TAG标签

首页、列表、搜索页调用标签

[field:id function=tagslist(@me,20)/]

文章内容调用标签

{dede:field.id function='atags(@me,20)'/}

tag.htm 模板是标签首页 用 [field:link/] 标签正常调用就行了。

懒人包下载

本地下载

文件对比,文件覆盖,若二次开发过的,记得先备份后修改。

/apps/tags.php 已经加了,访问动态链接时301跳转到伪静态url上来。

诶嘿...嗯,甚是完美。

温馨提示

内容由用户共同创建和维护,并不代表织梦爱好者论坛立场!
建议您独自对内容进行评估,核实并咨询相关的专业人士!

DeDeBIZ/DeDeV6:TAG标签改为英文ID静态版DeDeBIZ/DeDeV6:TAG标签改为英文ID静态版DeDeBIZ/DeDeV6:TAG标签改为英文ID静态版DeDeBIZ/DeDeV6:TAG标签改为英文ID静态版DeDeBIZ/DeDeV6:TAG标签改为英文ID静态版+60  60 个回复 | 最后更新于 2025-02-16
该部分是隐藏区

登录后查看回复

该部分是隐藏区

登录后方可回帖

Loading...