Dedehtml.com

织梦前台和后台根据联动枚举数字输出文字的方法

摘要:根据联动枚举的数字写一个自定义方法函数来自由输出联动枚举的文字值

打开 /include/extend.func.php 在最下面加入个方法

if(!function_exists('Getenums'))
{
	function Getenums($evalue=0,$egroup)
	{
		if( !isset($GLOBALS['em_'.$egroup.'s']) )
		{
			$cachefile = DEDEDATA.'/enums/'.$egroup.'.php';
			if(!file_exists($cachefile))
			{
				require_once(DEDEINC.'/enums.func.php');
				WriteEnumsCache();
			}
			if(!file_exists($cachefile))
			{
				return '';
			}
			else
			{
				require_once($cachefile);
			}
		}
		if($evalue>=500)
		{
			if($evalue % 500 == 0)
			{
				return (isset($GLOBALS['em_'.$egroup.'s'][$evalue]) ? $GLOBALS['em_'.$egroup.'s'][$evalue] : '');
			}
			else if (preg_match("#([0-9]{1,})\.([0-9]{1,})#", $evalue, $matchs))
			{
				$esonvalue = $matchs[1];
				$etopvalue = $esonvalue - ($esonvalue % 500);
				$esecvalue = $evalue;
				$GLOBALS['em_'.$egroup.'s'][$etopvalue] = empty($GLOBALS['em_'.$egroup.'s'][$etopvalue])? '' 
														 : $GLOBALS['em_'.$egroup.'s'][$etopvalue];
				$GLOBALS['em_'.$egroup.'s'][$esonvalue] = empty($GLOBALS['em_'.$egroup.'s'][$esonvalue])? '' 
														 : $GLOBALS['em_'.$egroup.'s'][$esonvalue];
				$GLOBALS['em_'.$egroup.'s'][$esecvalue] = empty($GLOBALS['em_'.$egroup.'s'][$esecvalue])? '' 
														 : $GLOBALS['em_'.$egroup.'s'][$esecvalue];
				return $GLOBALS['em_'.$egroup.'s'][$etopvalue].' -- '.$GLOBALS['em_'.$egroup.'s'][$esonvalue].' -- '.$GLOBALS['em_'.$egroup.'s'][$esecvalue];
			}
			else
			{
				$elimit = $evalue % 500;
				$erevalue = $evalue - $elimit;
				$GLOBALS['em_'.$egroup.'s'][$erevalue] = empty($GLOBALS['em_'.$egroup.'s'][$erevalue])? '' 
														 : $GLOBALS['em_'.$egroup.'s'][$erevalue];
				$GLOBALS['em_'.$egroup.'s'][$evalue] = empty($GLOBALS['em_'.$egroup.'s'][$evalue])? '' 
														 : $GLOBALS['em_'.$egroup.'s'][$evalue];
				return $GLOBALS['em_'.$egroup.'s'][$erevalue].' -- '.$GLOBALS['em_'.$egroup.'s'][$evalue];
			}
		}
	}
}

2、在任何你想要调用的地方写上调用即可,例如:

{dede:loop table=dede_diyform2 row=10}
    地区:[field:nativeplace function=Getenums(@me,'nativeplace')/]
    行业:[field:vocation function=Getenums(@me,'vocation')/]
    信息类型:[field:infotype function=Getenums(@me,'infotype')/]
{/dede:loop}

调用说明:

Getenums(@me,'nativeplace')

@me 就是数字

'nativeplace' 就是枚举组名

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.dedehtml.com/notes/dede-getenums.html
(5)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏

织梦其他模型使用联动类型地区联动

Dedehtml赞(2)

官方模型的联动类型只能模型是在【独立模型】或者官方默认的【分类信息】模型下使用,其他模型下使用无效,我们来让联动类型支持所有模型。

织梦联动筛选伪静态[单链接形式]

Dedehtml赞(4)

伪静态URL 网站用的是静态,筛选用的是伪静态,筛选的伪静态地址以字段和键值呈现,让筛选URL与静态保持一致。 如: 静态栏目页 http://www.dedehtml.com/juji/ 静态栏目页分页 http://www.dedehtml.com/juji