您在這裡
使用者登入
最新文章
回應
3 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
6 年 6 個月 之前
Re: 如何用"暱稱"替代帳號名稱
這不知道有沒有模組可解?
我的迂迴作法會是:
1. 使用 logintoboggan,讓使用者可以用帳號/電子郵件登入
2. 讓使用者可以更改自己的帳號,就當暱稱來用,要寫中文或注音文都行(吧?)
Re: 如何用"暱稱"替代帳號名稱
發現一個密技可解,只需要:
1. 修改 template.php
2. 加一個 username.tpl.php
非常簡單,請見:
http://drupal.org/node/64248
Re: 如何用"暱稱"替代帳號名稱
還速實作不出~>w<…
(1)修改了template
由於我的版型為magazeen,所以在function和return都下了
function phptemplate_magazeen_username($object) {
if ($object->in_preview) {
return theme_username($object);
}
return phptemplate_magazeen_callback('username', array('object' => $object));
}
(2)增加一個username.tpl.php(有先於profile去增加一個叫name的個人欄位~然後於下面的代碼都有改上~
$profilename = $object->name;
if (!empty($account->profile_fullname)) {
$profilename = $account->profile_fullname;
}
<?php
if ($object->uid && $object->name) {
// If the user has a full name defined, use that
$account = user_load(array(uid => $object->uid));
$profilename = $object->name;
if (!empty($account->profile_fullname)) {
$profilename = $account->profile_fullname;
}
// Shorten the name when it is too long or it will break many tables.
if (drupal_strlen($profilename) > 20) {
$name = drupal_substr($profilename, 0, 15) .'...';
}
else {
$name = $profilename;
}
if (user_access('access user profiles')) {
$output = l($name, 'user/'. $object->uid, array('title' => t('View user profile.')));
}
else {
$output = check_plain($name);
}
}
else if ($object->name) {
// Sometimes modules display content composed by people who are
// not registered members of the site (e.g. mailing list or news
// aggregator modules). This clause enables modules to display
// the true author of the content.
if ($object->homepage) {
$output = l($object->name, $object->homepage, array('title' => t('View link')));
}
else {
$output = check_plain($object->name);
}
$output .= ' ('. t('not verified') .')';
}
else {
$output = variable_get('anonymous', 'Anonymous');
}
print $output;
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 如何用"暱稱"替代帳號名稱
D4.7 的教學... 很多function 都沒有了...
Joetsui's blog
Re: 如何用"暱稱"替代帳號名稱
joe~對吶~ =_=沒注意到就看照著做~
但不知有沒有其它模組能將使用者登入改為自已的稱呼
Re: 如何用"暱稱"替代帳號名稱
修改drupal theme.inc中的code,要修改登入名稱
實驗整段code拿掉~也無法將登入的帳號名也拿掉。
/**
* Format a username.
*
* @param $object
* The user object to format, usually returned from user_load().
* @return
* A string containing an HTML link to the user's page if the passed object
* suggests that this is a site user. Otherwise, only the username is returned.
*/
function theme_username($object) {
xxxxxxx
}
Re: 如何用"暱稱"替代帳號名稱
找到相關代碼~但不知要如何修改較為妥當 =oo="
先到profile建立一個欄位(例profile_name)
但怎改也不對
global $user;
if ($block->subject == $user->name && isset($user->profile_name)) {
$block->subject = $user->profile_name;
}
http://drupal.org/node/67741 -->這也不支原了~~
Re: 如何用"暱稱"替代帳號名稱
使用 real name 模組
---
notaBlueScreen | 訂閱RSS | Plurk | twitter
Re: 如何用"暱稱"替代帳號名稱
kay.L
有使用real name 模組~但是如下圖所示的它的登入後的部份還是沒變~
及而是使用者列表都變了~然後以下是我的的real name 設定
http://drupaltaiwan.org/files/admin_1.PNG
http://drupaltaiwan.org/files/admin_2.PNG
http://drupaltaiwan.org/files/admin_3.PNG (是指這裡需修改嘛?)
Re: 如何用"暱稱"替代帳號名稱
real name 模組好像只能到線上人數和使用者管理還有節點類頁面會秀真實名字~
但在登入的那個帳號的部份無法秀出~
Re: 如何用"暱稱"替代帳號名稱
不知有沒有人有遇到相同的問題?
都無法將名稱修改為以profile建立一個欄位(例profile_name)
>w<…看似簡單但好像沒那麼容易達到
查到適用6版的~但也修改不過來
http://drupal.org/node/244052
Re: 如何用"暱稱"替代帳號名稱
真的不行就改區塊的樣板吧
自行控制區塊標題的輸出
在版型增加 block-user-1.tpl.php ,複製貼上 block.tpl.php 的內容,然後把
<?php if (!empty($block->subject)): ?>
<?php print $block->subject ?>
<?php endif;?>
這一段改成
<?php print empty($user->profile_fullname) ? $user->name:$user->profile_fullname ?>
ps. $user->profile_fullname 我隨便打的,看你暱稱放在哪個變數就把它換掉
Re: 如何用"暱稱"替代帳號名稱
謝謝您Hom
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 如何用"暱稱"替代帳號名稱
hom:
我覺得好奇怪…之前照這樣做能秀出暱稱。但現在卻秀不出來~
有清掉快取結果還是捉不到profile_name的值~~
<?php if ($block->subject): ?>
<?php if ($themed_block): ?>
<?php endif; ?>
<?php print empty($user->profile_name) ? $user->name:$user->profile_name ?>
<?php endif; ?>
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 如何用"暱稱"替代帳號名稱
於中block-user-1.tpl.php 樣版
以
<?php print_r($user) ?>
印出有無profile_fullname 的部份~結果完全沒有…
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 如何用"暱稱"替代帳號名稱
修改block 還是 /user/1?
/user/1 是 page-user.tpl.php > user-profile.tpl.php
從$user 出 profile fields:
<?php
global $user;
profile_view_profile($user);
print_r($user);
?>
注意$user 是當前登入者
Joetsui's blog
Re: 如何用"暱稱"替代帳號名稱
我要修改登入後的區塊~當使用者登入後看到的是暱稱而不是帳號
http://drupaltaiwan.org/files/block_user.PNG
所以就以hom的方式自行控制區塊標題的輸出
在版型增加 block-user-1.tpl.php ,複製貼上 block.tpl.php 的內容,然後把h2和/h2之間的
<?php if (!empty($block->subject)): ?>
<?php print $block->subject ?>
<?php endif;?>
改成
<?php print empty($user->profile_fullname) ? $user->name:$user->profile_fullname ?>
而其中profile_fullname是admin/user/profile所設定的欄位~
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 如何用"暱稱"替代帳號名稱
<?php
global $user;
profile_view_profile($user);
?>
<?php print empty($user->content['Personal information']['profile_fullname']) ? $user->name:$user->content['Personal information']['profile_fullname']['#value']?>
?>
Joetsui's blog
Re: 如何用"暱稱"替代帳號名稱
joe還是秀不出來profile_fullname變數中的東西
之後再印出來看它的array是出現以下訊息
[profile_fullname] => 李小芳 [content] => Array ( [個人檔案] => Array ( [#type] => user_profile_category [#title] => 個人檔案 [profile_fullname] => Array ( [#type] => user_profile_item [#title] => 姓名 [#value] => 李小芳 [#weight] => 0 [#attributes] => Array ( [class] => profile-profile_fullname ) ) ) ) )
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 如何用"暱稱"替代帳號名稱
<?php print empty($user->content['個人檔案']['profile_fullname']) ? $user->name:$user->content['個人檔案']['profile_fullname']['#value']?>
Joetsui's blog
Re: 如何用"暱稱"替代帳號名稱
還是不行
<?php if ($block->subject): ?>
<?php if ($themed_block): ?>
<?php endif; ?>
<?php
global $user;
profile_view_profile($user);
?>
<?php print empty($user->content['個人檔案']['profile_fullname']) ? $user->name:$user->content['個人檔案']['profile_fullname']['#value']?>
<?php //print_r($user) ?>
<?php endif; ?>
結果print出來看~變成以下~好奇怪的是一直捉不到[profile_fullname]這個
=> Array ( [8] => 8 ) [contact] => 1 [remember_me] => [roles] => Array ( [2] => authenticated user [3] => 最高管理者 [8] => -系統管理者 ) [profile_fullname] => 李小芳 [content] => Array ( [個人檔案] => Array ( [#type] => user_profile_category [#title] => 個人檔案 [profile_fullname] => Array ( [#type] => user_profile_item [#title] => 姓名 [#value] => 李小芳 [#weight] => 0 [#attributes] => Array ( [class] => profile-profile_fullname ) ) ) ) )
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 如何用"暱稱"替代帳號名稱
後來也試了以下的方式終於試出來~>w<…感動~~供大家參考了~~
<?php global $user; print ($block->module == 'user' && $block->subject == $user->name) ? theme('username', $user) : $block->subject ?>
心中常存善解、包容、感思、知足、惜福 (靜思語錄)