メインメニュー
掲示板メニュー
XOOPS Cube


XOOPS関連書籍
[掲示板に戻る全部  1-  最新50
1 名前の表示を変更する方法
ゲスト

taka 2004-12-5 6:23  [返信] [編集]

「BluesBBでの最近の投稿(投稿単位)」をブロック表示した際に、「投稿者/時間」の欄に表記されるユーザIDを本名で表示したいのですが、方法を教えていただけませんでしょうか?また、その本名の表示をプロファイルにリンクする方法も教えてください。
テンプレートの「bluesbb_new_all.html」をいじくってましたが、だめでした。

2 Re: 名前の表示を変更する方法
Sting_Band
管理人

@作者 2004-12-5 7:06  [返信] [編集]

テンプレートの改造だけではダメですね。ソースに手を入れることになります。

★blocks/bluesbb_blocks.php 43行目付近
$sread['poster'] = XoopsUser::getUnameFromId($arr['uid'])." ".formatTimestamp($arr['post_time'],'m');


$sread['poster'] = "<a href=¥"".XOOPS_URL."/userinfo.php?uid=".$arr['uid']."¥">".XoopsUser::getUnameFromId($arr['uid'], 1)."</a>&nbsp;".formatTimestamp($arr['post_time'],'m');

コード中の「&」と「¥」は文字化けするので全角にしてあります。実際利用するときは半角に書き直してください。
これで多分大丈夫だとは思いますが、本名が空にならないように運用面での工夫が必要になると思います。


3 Re: 名前の表示を変更する方法
ゲスト

taka 2004-12-5 8:36  [返信] [編集]

ああ?、ありがとうございました。ばっちりです。
このモジュールは非常に高機能ですね。
導入に際して社内のユーザと試験した結果、他のどのモジュール
よりも要件にピッタリでした。ちかいうちにカットオーバーして
社内で活用させていただきます。

4 Re: 名前の表示を変更する方法
ゲスト

taka 2004-12-6 16:07  [返信] [編集]

主に使用するユーザに高齢者が多いため、ユーザIDで表示されること
にかなり抵抗されてしまいました。
トピックの一覧とスレッド一覧などで表示されているユーザIDも全て本名の表示に変更したいのですが、どの辺を変更すればよろしいでしょうか?たびたびすみません。一度に質問すればよかったですね。



5 Re: 名前の表示を変更する方法
Sting_Band
管理人

@作者 2004-12-7 11:33  [返信] [編集]

え?っと、基本的に改造ネタはNGなんです。そこまでフォローしようとするとキリが無いので。最低でもどこそこまで自分でやってみて、あと一歩という所まで努力していただかないと・・・丸投げは困ります。もちろん完成した改造例をここでご披露いただくのは大歓迎ですが

以下は独り言です。


これは結構ややこしい・・・。トピックとスレッド表示は、2つのテーブルを連結させてからSERECT文で読み込んでるわけだけど、例えばviewtopic.phpの101行目付近に、1さんの投稿を読み込むコードがある。

$sql = 'SELECT b.*, u.uname, u.user_avatar, u.user_sig, u.posts, u.rank FROM '.$xoopsDB->prefix('bluesbb').' b LEFT JOIN '.$xoopsDB->prefix('users').' u ON u.uid = b.uid WHERE b.topic_id = '.$topic.' AND b.res_id = 0 ORDER BY b.res_time DESC LIMIT '.$start.', '.$topicdata['sread_per_page'];

bluesbbテーブルとusersテーブルをLEFT JOINで連結させて読んでる。問題になるのがこの2つのテーブルのカラム名。今回は本名を読み出したいというリクエストだけど、これはusersテーブルの中にnameというカラム名で格納されている。本来ならばこれをここで読み込んでやれば簡単にリクエストが達成できるけど、bluesbbテーブルの中にも全く同じ名前のカラム名がある・・・このまま呼び出すと、$myrow['name']という変数名で被ってしまう。困った $myrow['u.name']という感じで別認識してくれないかと期待したがダメだった。困った。仕方が無いので本名は別途呼び出すことにする。ブロックの改造をしたときと同じ要領でXoopsUser::getUnameFromIdを使う。viewtopic.phpの111行目付近、そのときとほぼ同じコードがある。

$myrow['uname'] = "<a href=¥"".XOOPS_URL."/userinfo.php?uid=".$myrow['uid']."¥">".XoopsUser::getUnameFromId($myrow['uid'], 1)."</a>";

これで上手くいった。ただし、別クリエを発生させるわけだから改造前より負荷が大きくなるのは想像するに難しくない。これで1さんの投稿だけが本名になった。レス用のコードは166行目付近に別にあるのでここも同じように改造する。スレッド表示用にviewsread.php内も書き換える。ほとんど同じコードがやはり2カ所あるはず。これで完成。


6 Re: 名前の表示を変更する方法
ゲスト

taka 2004-12-7 13:37  [返信] [編集]

すみません、独り言を盗み聞きしてしまいました。
今後は基本的なルールを守ります。
@作者さんのおっしゃる通り、私のような素人の改変要求にいちいち回答していたらキリないですね。PHPを始めて半年ほどで、以前はプログラミングやスクリプト製作は未経験でしたので、ずうずうしいとは思いましたが投稿させていただきました。
今回はお許しください。かならず、皆さんのお役に立てる日が来るよう勉強します。

ありがとうございました。
7 Re: 名前の表示を変更する方法
ゲスト

名無しさん 2005-3-21 0:41  [返信] [編集]

この小学校PTAのコミュニティサイトをXOOPSで構築中で、BluesBBSを使わせていただいています。私のところでも、日本語名が使いたいという要望があり、この記事にたどり着きました。

$sql = 'SELECT b.*, u.name as rname, u.uname, ...
というSQLを発行することによって、$myrow['rname']で本名が取得できましたので報告します。

本名が書き込まれていれば本名を表示し、そうでない場合にはユーザーIDを表示するようにしようと考えています。

今後ともよろしくお願いします。
8 Re: 名前の表示を変更する方法
Sting_Band
管理人

@作者 2005-3-21 19:08  SITE  [返信] [編集]

なるほど?、ASを使えば良かったんですね
ご報告ありがとうございました。

引用:

本名が書き込まれていれば本名を表示し、そうでない場合にはユーザーIDを表示するようにしようと考えています。

これ良いですね。
次バージョンでこのアイディア使わせてもらうかも


[掲示板に戻る全部 次100 最新50
BluesBB ©Sting_Band


Copyright(c)2000-2008 by Sting_Band All rights reserved.  |  Design by SevenDays Design