1

コメントの名前をユーザーのアカウント名からユーザーの実名を使用するように変更したい (私は RealName フィールドと CCK フィールドを使用しています)。

これは単純なはずですが、値が正しく保存されていません。

function mymodule_comment(&$a1, $op) {
    switch ($op) {
        case 'insert':
        case 'update':
            $realname = realname_get_user($a1['uid']);

            if ($realname) {
                $a1['name'] = $realname->name;
            }

            break;
        case 'view':
            $realname = realname_get_user($a1->uid);

            if ($realname) {
                $a1->name = $realname->name;
            }
            break;
    }
}

どちらの場合も a1 をダンプすると、名前は私が望むものになります。ただし、これはデータベースに保存されるものではありません。

実際に挿入されるように値を変更するにはどうすればよいですか?

4

1 に答える 1

0

realname_get_user 関数に関する情報を提供してください。または、以下のスニペットを試すことができます

function mymodule_comment(&$a1, $op) {
    global $user;
    switch ($op) {
        case 'insert':
        case 'update':
            $realname = $user->name;

            if ($realname) {
                $a1['name'] = $realname;
            }

            break;
        case 'view':
            $realname = $user->name;

            if ($realname) {
                $a1->name = $realname;
            }
            break;
    }
}
于 2011-06-14T05:40:58.740 に答える