想詢問~若線上人數想讓它旁邊出現使用者的名字要怎制作呢?
有用profile建一個profile_name來記使用者名字~
是不是得修改模組中的user.module但profile_name是記在另一張資料表中~>w<
// Display a list of currently online users.
$max_users = variable_get('user_block_max_list_count', 10);
if ($authenticated_count && $max_users) {
$output .= theme('user_list', $items, t('Online users'));
}
附加檔案 | 大小 |
---|---|
線上使用者.PNG | 3.44 KB |
Re: 線上人數列出名字
這裡有個module 說不定可以幫上忙
http://drupal.org/project/realname
Best Regards, Jessie
Re: 線上人數列出名字
Jessie.Wang謝謝您的回覆~但是使用後出現如下問題 >w<…
Re: 線上人數列出名字
核心模組-profile 有安裝嗎?
Re: 線上人數列出名字
oscar0110:
profile 我有安裝的說~~>w<…
Re: 線上人數列出名字
妳的module版本是?
and drupal 6 or 5x?
沒裝過這module 有機會幫你測試一下..
Re: 線上人數列出名字
oscar0410我的drupal是6.3版~>w<卸卸您
Re: 線上人數列出名字
我安裝realname...測試結果都正常耶....
drupal 6
Re: 線上人數列出名字
同意Oscar0410
應該是profile module 沒有enable 的關係
someone also has similar problem here
http://drupal.org/node/340779
Best Regards, Jessie
Re: 線上人數列出名字
如果是用套版來做修改
把下面的程式碼貼到版型內的 template.php 試試看
<?php
//覆寫輸出使用者列表的 theme_user_list
function phptemplate_user_list($users, $title = NULL) {
if (!empty($users)) {
foreach ($users as $user) {
$user->name = $user->profile_name;
$items[] = theme('username', $user);
}
}
return theme('item_list', $items, $title);
}
?>
Re: 線上人數列出名字
hom謝謝您:
(>w<有機會drupal的成員們下來雲林請您們吃我們家的蚵仔煎~~ >w<…)
但我的出現了如下的訊息!
Re: 線上人數列出名字
改成下面這樣
<?php
function phptemplate_user_list($users, $title = NULL) {
if (!empty($users)) {
foreach ($users as $user) {
$account = user_load(array('uid' => $user->uid));
if( $account->profile_name) $user->name = $account->profile_name;
$items[] = theme('username', $user);
}
}
return theme('item_list', $items, $title);
}
?>
這我剛剛有實際覆寫過是 ok 的
$users 裡面只有 uid 和 帳號的資料,跟一般的 user object 不太一樣
需要另外用 user_load 讀取使用者資料
中間多加一個有設定 profile_name 才套用的判斷
避免沒有設定 profile_name ,造成登入時被顯示成訪客
Re: 線上人數列出名字
hom~
(1)登入帳號密碼後會引導入一頁空白頁說
(2)然後重新整理頁面後還是有出現如下圖示中的問題
* warning: Cannot modify header information - headers already sent by (output started at C:\cfd2\htdocs\cfd\sites\all\themes\nigraphic\template.php:30) in C:\cfd2\htdocs\cfd\includes\session.inc on line 101.
* warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in C:\cfd2\htdocs\cfd\includes\session.inc on line 104.
而且都指到session.inc的101行和104行之中~去includes\session.inc看也沒看不出什麼問題
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 42000, '/');
}
session_regenerate_id();
(3)然後再重新整理頁面就沒上述問題。 >w<但每次登入帳號密碼就得會遇到(1)和(2)的問題…好奇怪哦
會不會跟我的版本的關系呢?我的是drupal 6.x的
謝謝>w<
Re: 線上人數列出名字
我是用 6.x 的 garland 版型做測試
沒有遇到這樣的問題
把覆寫的部份註解掉,看看是不是還有一樣的問題
然後也用 garland 版型做修改測試看看
不然可能要請你提供一下 template.php
看看裡面到底改了什麼東西
Re: 線上人數列出名字
hom我改回garland 版型都沒出現那些問題了耶!! =_="
我剛出現錯誤訊息的版型是使用007 niGraphic Studio的版型…
而我的template.php就只有放hom所提供的程式檔案權限和人數
hom問你一個問題哦~是不是測試程式和模組是不是都先用預設的garland 版型來做。
而若要修改版型是不是以預設的garland 版型來做修改比較不會有問題呢?
>w<
謝謝
Re: 線上人數列出名字
開發新功能的時候
通常會比較喜歡先在單純的環境上測試
預設模組 + 預設版型,比較不會出現程式產生衝突的狀況
出現錯誤時也比較好抓出來
Re: 線上人數列出名字
嗯~謝謝分享!!
Re: 線上人數列出名字
儲存 template.php 時不要保存bom --> UTF-8 without BOM
加上template.php 只需要第一行的
<?php
Drupal 會自動加上?>
的Re: 線上人數列出名字
而且突然想到一個疑問說~我是不是不能用profile模組建一個profile_name來記使用者名字。
因為就變成它是記到另一張資料表中~
以下是我用profile模組建一個profile_name後產生的資料表
-- 資料表格式: `profile_fields`
--
CREATE TABLE IF NOT EXISTS `profile_fields` (
`fid` int(11) NOT NULL auto_increment,
`title` varchar(255) default NULL,
`name` varchar(128) NOT NULL default '',
`explanation` text,
`category` varchar(255) default NULL,
`page` varchar(255) default NULL,
`type` varchar(128) default NULL,
`weight` tinyint(4) NOT NULL default '0',
`required` tinyint(4) NOT NULL default '0',
`register` tinyint(4) NOT NULL default '0',
`visibility` tinyint(4) NOT NULL default '0',
`autocomplete` tinyint(4) NOT NULL default '0',
`options` text,
PRIMARY KEY (`fid`),
UNIQUE KEY `name` (`name`),
KEY `category` (`category`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
-- 資料表格式: `profile_values`
--
CREATE TABLE IF NOT EXISTS `profile_values` (
`fid` int(10) unsigned NOT NULL default '0',
`uid` int(10) unsigned NOT NULL default '0',
`value` text,
PRIMARY KEY (`uid`,`fid`),
KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
而且錯誤訊息是說...>W<不理解意思?
*警告:無法修改標題訊息-標題已經發出的(輸出開始在C : \ cfd2 \ htdocs \的CFD \網站\所有\主題\ nigraphic \ template.php : 32 )在C : \ cfd2 \ htdocs \的CFD \包括\ session.inc上線101 。
*警告: session_regenerate_id ( ) [ function.session -再生編號] :無法再生會議編號-標題已經發出已在C : \ cfd2 \ htdocs \的CFD \包括\ session.inc上線104 。