Gravatar是个提供头像服务的网站(网址:[https://www.gravatar.com]),只要用邮箱注册之后,就可以用邮箱获得上面的头像。
下面我们要在每行留言的前面由留言者的email,生成其在Gravatar上注册的头像。
为了演示我们的autoload,我们打算用一个独立的类完成这个操作。
<?php
class notebook_ctl_default extends base_controller{
    public function index(){
        $this->pagedata['items'] = $this->app->model('item')->getList('*');
        //新加的内容开始
        $gravatar = new notebook_gravatar;
        foreach($this->pagedata['items'] as $k=>$item){
            $this->pagedata['items'][$k]['avatar'] = $gravatar->get_avatar($item['item_email']);
        }
        //新加的内容结束
        $this->display('default.html');
    }
    ....
以下划线_分隔类的名称,第一个区段标示app的名字,后面的部分为该app的lib目录下路径。 最后一个区段是具体的文件名。当app的名字是core时,则到ecos的core/lib目录下寻找指定的类。当类名中没有下划线时,则到ecos的core/lib/static目录下寻找指定的类。因此,aaa_bbb_ccc_ddd指向app/aaa/lib/bbb/ccc/ddd.php; core_bbb_ccc指向core/lib/bbb/ccc.php。
<?php
class notebook_gravatar{
    function get_avatar($email){
        return sprintf('https://www.gravatar.com/avatar/%s?s=48&r=x',md5($email));
    }
}
<dl>
	<{foreach from=$items item=item}>
	<dt>
	<{$item.item_subject}>
	<span class="date">日期: <{$item.item_posttime|cdate}></span>
	</dt>
	<dd>
	<!-- 新加的内容开始 -->
	<img src="<{$item.avatar}>" style="float:left;margin-right:10px" />
	<!-- 新加的内容结束 -->
	<{$item.item_content}>
	</dd>
	<{/foreach}>
	<div style="margin-bottom:20px;clear:both" /> </div>
</dl>
