uname → name 変換 smarty plugin

テンプレート上で、uname で表示されているところを、name(本名)の表示に変換する smarty プラグインを作りました(ご覧のとおり、ごく簡単なものです)。

smarty プラグインなので、class/smarty/plugins/ に function.user_uname2name.php という名前で保存してください。

使い方は、

<{user_uname2name uname=$uname}>

のように使います。

たとえば、もともとのテンプレートに

<{$content.uname}>

の様に記述されていた場合、

<{user_uname2name uname=$content.uname}>

に変更することで、uname から name の表示に変換することができます。

name を登録していない場合は、uname がそのまま表示されます。

<?php

/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Type:     function
 * Name:     user_uname2name
 * Version:  1.0
 * Date:     Aug 29, 2007
 * Author:   HIKAWA Kilica
 * Purpose:  Change uname to name
 * Input:    
 * 
 * Examples: {user_uname2name uname=$uname}
 * -------------------------------------------------------------
 */

function smarty_function_user_uname2name($params, &$smarty)
{
	$handler = xoops_gethandler('user');
	$user =& $handler->getObjects(new Criteria('uname',$params['uname']));

	if(! count($user)>0){
		return "guest";
	}

	if($user[0]->getShow('name')){
		return $user[0]->getShow('name');
	}
	else{
		return $params['uname'];
	}
}

?>