当前位置:文档之家› dedecms 生成文章以拼音命名的方法.txt 文档

dedecms 生成文章以拼音命名的方法.txt 文档

dedecms 生成文章以拼音命名的方法.txt 文档
dedecms 生成文章以拼音命名的方法.txt 文档

查看文章写新文章

dedecms 生成文章以拼音命名的方法.txt

2011-06-15 14:10

首先在后台网站栏目管理,高级管理更改一号游戏

{typedir}/{y}/{m}/{aid}.html为{typedir}/{pinyin}.html.

然后修改include文件夹下的channelunit.func.php文件里的代码.代码如下:

//获得文件相对于主站点根目录的物理文件名(动态网址返回url)

function

GetFileName($aid,$typeid,$timetag,$title,$ismake=0,$rank=0,$namerule= '',$typedir='',$money=0,$filename='')

{

global $cfg_rewrite, $cfg_cmspath, $cfg_arcdir, $cfg_special,

$cfg_arc_dirname;

//没指定栏目时用固定规则(专题)1号游戏

if(empty($namerule)) {

$namerule = $cfg_special.'/arc-{aid}.html';

$typeid = -1;

}

if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0)

{

//动态文章

if($cfg_rewrite == 'Y')

{

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

}

else

{

return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid";

}

}

else

{

$articleDir = MfTypedir($typedir);

$articleRule = strtolower($namerule);

if($articleRule=='')

{

$articleRule = strtolower($GLOBALS['cfg_df_namerule']);

}

if($typedir=='')

{

$articleDir = $GLOBALS['cfg_cmspath'].$GLOBALS['cfg_arcdir'];

}

$dtime = GetDateMk($timetag);

list($y,$m,$d) = explode('-',$dtime);

$arr_rpsource =

array('{typedir}','{y}','{m}','{d}','{timestamp}','{aid}','{cc}'); $arr_rpvalues = array($articleDir,$y, $m, $d, $timetag, $aid,

dd2char($m.$d.$aid.$y));

if($filename != '')

{

$articleRule =

dirname($articleRule).'/'.$filename.$GLOBALS['cfg_df_ext'];

}

$articleRule =

str_replace($arr_rpsource,$arr_rpvalues,$articleRule);

if(ereg('\{p',$articleRule))

{

$articleRule =

str_replace('{pinyin}',GetPinyin($title).'_'.$aid,$articleRule);

$articleRule =

str_replace('{py}',GetPinyin($title,1).'_'.$aid,$articleRule);

}

$articleUrl = '/'.ereg_replace('^/','',$articleRule);

if(ereg("index\.html", $articleUrl) && $cfg_arc_dirname=='Y')

{

$articleUrl = str_replace('index.html', '', $articleUrl);

}

return $articleUrl;

}

}

我们看到默认的是$articleRule =

str_replace('{pinyin}',GetPinyin($title).'_'.$aid,$articleRule);

现在只需要<把".'_'.$aid>去掉即可.

最后修改include/inc文件夹下的inc_fun_funAdmin.php文件里的代码.代码如下:

function SpGetPinyin($str,$ishead=0,$isclose=1)

{

global $pinyins;

$restr = '';

$str = trim($str);

$slen = strlen($str);

if($slen<2)

{

return $str;

}

if(count($pinyins)==0)

{

$fp = fopen(DEDEINC.'/data/pinyin.dat','r');

while(!feof($fp))

{

$line = trim(fgets($fp));

$pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3); }

fclose($fp);

}

for($i=0;$i<$slen;$i++)

{

if(ord($str[$i])>0x80)

{

$c = $str[$i].$str[$i+1];

$i++;

if(isset($pinyins[$c]))

{

if($ishead==0)

{

$restr .= $pinyins[$c];

}

else

{

$restr .= $pinyins[$c][0];

}

}else

{

$restr .= "_";

}

}else if( eregi("[a-z0-9]",$str[$i]) )

{

$restr .= $str[$i];

}

else

{

$restr .= "_";

}

}

if($isclose==0)

{

unset($pinyins);

}

return $restr;

}

修改$restr .= "_"; 为$restr .= "-"; 即可.

最后大功告成了,大家可以看下我的演示站

A title=315投诉网 href="https://www.doczj.com/doc/cc514588.html,/">315投诉网315维权网

第二种:::

dedecms 生成文章以拼音命名的方法.

使用过织梦的朋友可能会知道,在织梦添加栏目时,会自动生成栏目名称的拼音,可是这样的话,文件路径会很长,看起来不很不方便,也不方便搜索引擎的抓取.

栏目名可以自己随便写,也可以默认拼音,如果默认拼音那生成的是全部汉字的全拼,像“公司简介”,生成后是“gongsijianjie”,如果我们的栏目是5个汉字、6个汉字那生成后的栏目名称其不是很长,那能不能直接生成为"gsjj"呢?答案是可以的。

现在我教大家怎么修改文件只让它生成汉字的首写字母。

1.找到include/inc/inc_fun_funadmin.php这个文件。

2.找到其中的23行,23行内容为:

$pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);

修改为:

$pinyins[$line[0].$line[1]] = substr($line,3,1);

就OK了。

3.自己测试吧。

本文来自: 成长足迹(https://www.doczj.com/doc/cc514588.html,) 详细出处参考:

https://www.doczj.com/doc/cc514588.html,/html/JianZhanYuYan/php/1023.html

dedecms文章内容页面生成拼音url的方法

首先说下,这篇文章的代码是转载的萧寒的一篇关于DEDEcms的技术分享文章。DEDECMS发展到现在,SEO的功能也算是比较强了,也有很多人使用DEDE建站,但是如果做英文站或者是公司网站有些时候把文章的URL转化成拼音或者英文会对网站的优化有利,当然DEDECMS也支持这个功能,就是有一点不足就是拼音以后要跟一个文章ID,那么如后修改不带ID呢,还有就是如果是英文网站,一般是用“-”隔开而不是用“_”隔开又该如何修改呢。下面仿站小编就为大家说说修改代码

分别实现的效果如下:

英文的:https://www.doczj.com/doc/cc514588.html,/this-is-a-new.html

中文的:https://www.doczj.com/doc/cc514588.html,/products/fuzhuang.html

去掉“/拼音_id.html”形式下的ID方法

打开include/channelunit.func.php文件找到如下代码:

$articleRule =

str_replace(‘{py}’,GetPinyin($title,1).’_’.$aid,$articleRule);

修改成如下:

$articleRule = str_replace(‘{py}’,GetPinyin($title,1),$articleRule);

再生成看看就能看到效果了

如果是英文字的话生成页面把“_”改成“-”的修改

打开include/inc/inc_fun_funAdmin.php文件,找到如下代码

for($i=0;$i<$slen;$i++)

{

if(ord($str[$i])>0×80)

{

$c = $str[$i].$str[$i+1];

$i++;

if(isset($pinyins[$c]))

{

if($ishead==0)

{

$restr .= $pinyins[$c];

}

else

{

$restr .= $pinyins[$c][0];

}

}else

{

$restr .= “_”;

}

}else if( eregi(“[a-z0-9]“,$str[$i]) )

{

$restr .= $str[$i];

}

else

{

$restr .= “_”;

}

}

修改里面的红色的字体后面的“_”,改成“-”就OK了。

修订1.1 2010-08-23 09:00 本文仿站网版权所有,未经批准转载必究。

相关主题
文本预览
相关文档 最新文档