Dedehtml.com

织梦自定义图片字段调用图片地址

摘要:dedecms模型添加的图片数据类型,在前台模板输出后是带有html代码的,我们在使用时只是需要图片地址就行了。这样我们只需要写个自定义方法从字符串中把图片提取出来即可。

dedecms模型添加的图片数据类型,在前台模板输出后是带有html代码的,我们在使用时只是需要图片地址就行了。

这样我们只需要写个自定义方法从字符串中把图片提取出来即可。

打开 /include/extend.func.php 在最下面添加

/**
 *  自定义图片字段调用图片地址
 *
 * @access    public
 * @param     string  $fieldname  	字段名
 * @param     string  $ftype	  	输出样式
 * @return    string
 */
if(!function_exists('GetImgUrl'))
{
	function GetImgUrl($fieldname, $ftype = 1)
	{
		if($fieldname != '')
		{
			$dtp = new DedeTagParse();
			$dtp->LoadSource($fieldname);
			if(is_array($dtp->CTags))
			{
				foreach($dtp->CTags as $ctag)
				{
					if($ctag->GetName() == 'img')
					{
						$width = $ctag->GetAtt('width');
						$height = $ctag->GetAtt('height');
						$imgurl = trim($ctag->GetInnerText());
						$img = '';
						if($imgurl != '')
						{
							if($ftype == 1)
							{
								$img .= $imgurl;
							}
							else
							{
								$img .= '<img src="' . $imgurl . '" width="' . $width . '" height="' . $height . '" />';
							}
						}
					}
				}
			}
			$dtp->Clear();
			return $img;
		}
	}
}

首页模板标签调用写法

{dede:arclist typeid='1' row='14' titlelen='50' channelid='模型id号' addfields='自定义图片字段名'}
[field:自定义图片字段名 function=GetImgUrl(@me)/]
{/dede:arclist}

模型id号怎么填?根据你自己自定义字段所在的内容模型来填 (如 channelid="1"普通文章)

列表页模板标签调用写法

列表页dede:list标签写法,不需要channelid="模型id号" addfields="自定义字段名称"

这个只要在后台自定义字段里勾上使字段可以在列表的底层模板中获得 就行了

{dede:list pagesize='10' titlelen='250'}
[field:自定义图片字段名 function=GetImgUrl(@me)/]
{/dede:list}

内容页模板标签调用写法

打开\templets\system\channel_article_image.htm 清空所有东西,只留下一个

[field:imgsrc/]

保存,这样就可以直接在内容页模板调用了

{dede:field.自定义图片字段名/}
版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.dedehtml.com/notes/getimgurl-addfield.html
(0)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏

织梦搜索结果页调用自定义字段内容

Dedehtml赞(1)

我们在给模型添加自定义字段后,刚好搜索页需要显示自定义的字段时,织梦默认是无法在搜索结果页显示自定义字段的内容的,网上很多教程都是写死或者改动系统文件,这样不仅不够人性化,而且改动系统文件对升级存在影响。本文章介绍个完美的方法,既不改动系统核心文件,又不写死任何东西。...