标题图片

这标题就是图片做的,虽然我们可以直接用文字和css做,但有时我们需要要一些字体特效,可不是每个人的电脑都安装有这些字体的
dede怎么生成这样的标题呢?其实很简单的:
 

一、实现方法

1)标题图片字体定义

首先上传字体文件上传到include/data/fonts/下,并命名为 STXINGKA.TTF (字体下载),这个是用于生成标题图片的字体的。当然,你也可以自己定义更漂亮的字体,但字体必须命名为STXINGKA.TTF。

2)标题图片函数文件

打开include/extend.func.php (注意:本文件为自定义函数接口,如果你没有这个文件,请自己创建一个),在最后面的?>的前面以上开始插入以下代码:

折叠 PHP 代码 复制内容到剪贴板
  1. class DeDeTitle   
  2. {   
  3.     var $text = '暂无标题';   
  4.     var $bg = '#F0F0F0';   
  5.     var $color = '#30F';   
  6.     var $width = 500;   
  7.     var $height = 50;   
  8.     var $size = 30;   
  9.     var $font;   
  10.     var $path;   
  11.     function __construct($t)   
  12.     {   
  13.         if($t)   
  14.         {   
  15.             $this->text = $t;   
  16.         }   
  17.         $this->font = DEDEINC.'/data/fonts/STXINGKA.TTF';   
  18.     }   
  19.     function DeDeTitle($t)   
  20.     {   
  21.         $this->__construct($t);   
  22.     }   
  23.     function TextConv()   
  24.     {   
  25.         global $cfg_soft_lang;   
  26.         if($cfg_soft_lang!='utf-8')   
  27.         {   
  28.             return gb2utf8($this->text);   
  29.         }   
  30.         return $this->text;   
  31.     }   
  32.     function C($color,$rgb)   
  33.     {      
  34.         if(strlen($color)==4)   
  35.         {   
  36.             for($i=1;$i<4;$i++)   
  37.             {   
  38.                 $str .= str_repeat($color[$i],2);   
  39.             }   
  40.             $color = '#'.$str;   
  41.         }   
  42.         switch($rgb)   
  43.         {   
  44.             case 'R':    return hexdec(substr($color, 1, 2));   
  45.             case 'B':    return hexdec(substr($color, 3, 2));   
  46.             case 'G':    return hexdec(substr($color, 5, 2));   
  47.         }   
  48.     }   
  49.     function Titlepath()   
  50.     {   
  51.         global $cfg_medias_dir;   
  52.         $name = GetPinyin($this->text).'.gif';   
  53.         $path = $cfg_medias_dir.'/title/';   
  54.         if(!is_dir($path))   
  55.         {   
  56.             CreateDir($path);   
  57.         }   
  58.         return $path.$name;   
  59.     }   
  60.     function Show()   
  61.     {   
  62.         if(!file_exists(DEDEROOT.$this->Titlepath()))   
  63.         {   
  64.             $this->Make();   
  65.         }   
  66.         global $cfg_cmsurl;   
  67.         return  '<img src="'.$cfg_cmsurl.$this->Titlepath().'"/>';   
  68.     }   
  69.     function Make()   
  70.     {   
  71.         $image = imagecreatetruecolor($this->width,$this->height);   
  72.         $bg = ImageColorAllocate($image,$this->C($this->bg,'R'),$this->C($this->bg,'B'),$this->C($this->bg,'G'));   
  73.         $color = ImageColorAllocate($image,$this->C($this->color,'R'),$this->C($this->color,'B'),$this->C($this->color,'G'));   
  74.         ImageFilledRectangle($image,0,0,$this->width,$this->height,$bg);   
  75.         imagettftext($image,$this->size, 0, $this->size/2, ($this->height+$this->size)/2, $color$this->font,$this->TextConv());   
  76.         imagegif($image,DEDEROOT.$this->Titlepath());   
  77.         imagedestroy($image);   
  78.     }   
  79. }  

3)调用方法简单说明

实际上我们知道,在织梦(DedeCMS)系统中,处理底层字段,一般来说有两种方法:

  1. function
  2. runphp

这两种方法的知识不在本教程讲解的重点,大家可查阅相关资料了解!

我们这里的标题图片,运用的就是第二种runphp来处理的,调用方法为:

在arclist标签中:

[field:title runphp='yes']
$title = new DeDeTitle(@me);//使用DedeTile类
$title->bg = '#F0F0F0';//标题图片背静颜色
$title->color = '#30F';//标题图片字体颜色
$title->width = 350;//标题图片的宽度
$title->height = 50;//标题图片的高度
$title->size = 25;//标题图片的字体大小
@me=$title->Show();//显示图片
[/field:title]

如果在是内容页运用,只需要将[field:title/]换成 {dede:field.title/}即可,例如:

{dede:field.title runphp='yes'}
$title = new DeDeTitle(@me);//使用DedeTile类
$title->bg = '#F0F0F0';//标题图片背静颜色
$title->color = '#30F';//标题图片字体颜色
$title->width = 350;//标题图片的宽度
$title->height = 50;//标题图片的高度
$title->size = 25;//标题图片的字体大小
@me=$title->Show();//显示图片
{/dede:field.title/}

二、效果预览

我们在后台的【模板】——[全局标记测试]中输入以下代码:

{dede:arclist row='1' typeid=''}
<a href="[field:arcurl/]">[field:title runphp='yes']
$title = new DeDeTitle(@me);
$title->bg = '#F0F0F0';
$title->color = '#30F';
$title->width = 350;
$title->height = 50;
$title->size = 25;
@me=$title->Show();
[/field:title]</a>
{/dede:arclist}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值