PEAK XOOPS - 本名の設定がないときはユーザー名を表示 in englishin japanese

本名の設定がないときはユーザー名を表示

List posts in the topic

happy 本名の設定がないときはユーザー名を表示

msg# 1
depth:
0
Previous post - Next post | Parent - Children.1 | Posted on 2006/9/3 1:26
boobee  二等兵   Posts: 10
(子供の発表会みたいな内容ですので、サラッと読み流してください

 「カスタマイジングxoops」を参考にしながら、テーマをいろいろといじっている段階なわけで、ヘッダ部にログインしているユーザー名を表示させようと目論見ましたが、どうせならハンドル名(本名)を表示させたほうが人間味があるよなぁ(←日本人的)とか思ったわけです。

 「gonbeiさん、こんにちは」→「権兵衛さん、こんにちは」

 しかしユーザーによってはアカウント情報で「本名」を設定していない人もいるわけでして、そういう人の場合は…

 「さん、こんにちは」

 となってしまうわけで…、つまり、「本名が設定されていない場合には、ユーザー名を表示する」ということをすればいいわけで、同書でのGIJOEさんのmodifier.xoops_userinfo.php を参考に、新たなSmartyプラグインを作ってみたわけです。

modifier.xoops_uhandle.php
<?php
function Smarty_modifier_xoops_uhandle( $uid )
{
    if( $uid > 0 ){
        $member_handler =& xoops_gethandler( 'member' );
        $user =& $member_handler->getUser( intval( $uid ));

        if( is_object( $user )){
            if( $user->getVar( 'name' )== '' ){
                return  $user->getVar( 'uname' );
            } else {
                return  $user->getVar( 'name' );
            }
        } else {
            return _GUESTS;
        }
    } else {
        return _GUESTS;
    }
}
?>
 で、theme.html で以下のように設定してやれば、一件落着。
<{$xoops_userid|xoops_uhandle}>さん、こんにちは
 コード自体泥臭いですし、本当は素直にSmarty変数にアサインできればいいんでしょうけど、まだそこまでの力量はありません。

 というわけで、引き続き勉強させていただいております。
Votes:8 Average:5.00

Posts tree

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!