top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_1303

Drupal ログインフォーム:ログインフォームをデフォルトのものから、(よくある)1行表示の形式に変更してみる ・・・ 【今日のDrupal】

 2010-03-23
 Drupalで、運営公開しているサイトのうち
 あるサイトで,
 「ユーザーログイン」部分をカスタマイズ

 標準では、たいていのテンプレートでは、
 ボックス型で
 ボックス型で、
 左右カラムなどに表示させるのだけど、


   ▼

 ・ヘッダー一番上に一行表示して
  すぐにログインできるようなレイアウト
 ヘッダー一番上に一行表示して
  に変えたい。


 意外と簡単。
 習得のポイントは「テンプレート」だった。


  追記に  ▼


 ところで、こちらは・・・


◇今日のGoogle(2010/03/23)
今日のGoogle(2010/03/23)
黒澤明 生誕100周年
 おぉ「七人の侍」は
 4回観たぞ。

FC2ブログランキング にほんブログ村 IT技術ブログ Webサイト構築へ ブログ王ランキング 人気ブログランキング 人気ホームページランキングへ


more

************************************************
◎  ログインフォームのカスタマイズ の巻
                :今日のDrupal

************************************************


 まずは手探りで・・・
 いったいどうやってカスタマイズするのだろう・・・

 ■ネットでいろいろと情報調べたが・・・
  なかなか「これか!」という情報に巡りあわない。


  それでも・・・
  ・Theming the Drupal 6 User Login Form
  ・Create a custom user login bar
  これらの記事は非常に参考になった。
  ありがとうございます。


 ■(しかし)上記のソースをそのままはめるだけでは
  レイアウト配置がうまくゆかぬ。


  もちろん、自分で CSS苦労すべきだが・・・


  閃いた!(・・・というほどのことでもない)


ここにゆけば、様々なテンプレートがある。


きっとこの中に,ユーザーログインをカスタマイズしている
ものがあるはずだぁ!


Themes | drupal.org
Themes | drupal.org 
 仕組みを知るには,
 方法論を得るには,
 先達の知恵,情報を真似る
 ことから・

 ・・・単にテンプレート倉庫 なだけではない!



 ・・・で。ありますねぇ。
 片っ端から試して、いくつか・・・


 参考にしたのは、

Internet Center Theme
Internet Center Theme 
 テンプレートとして利用する
 のではないので、
 申し訳ない気もするけど。


 「ユーザーログイン」フォーム
 こんな感じで,ヘッダー部分にオリジナルの
 「ユーザーログイン」フォームを配置。


 仕組みは、
  ・template.php で、
function internet_center_login_box() {
global $user;

if (!$user->uid) {
$form['#action'] = url($_GET['q'], array('query' => drupal_get_destination()));
$form['#id'] = 'user-login-form';
$form['name'] = array('#type' => 'textfield',
'#title' => t('Username'),
'#maxlength' => 60,
'#size' => 15,
'#required' => TRUE,
);
$form['pass'] = array('#type' => 'password',
'#title' => t('Password'),
'#size' => 15,
'#required' => TRUE,
);
$form['submit'] = array('#type' => 'submit',
'#value' => t('Log in'),
);

if (variable_get('user_register', 1)) {
$items[] = l(t('Create new account'), 'user/register', array('title' => t('Create a new user account.')));
}
$items[] = l(t('Request new password'), 'user/password', array('title' => t('Request new password via e-mail.')));
$form['links'] = array('#value' => theme('item_list', $items));

$output .= drupal_get_form('user_login_block', $form, 'user_login');

return $output;
}
else {
$output = '<p>You are logged in as <b>' . $user->name . '</b>';
$output .= '&nbsp;&nbsp;&ndash;&nbsp;&nbsp;' . l(t('Logout'), 'logout', array('title' => t('Logout'))) . '<br>';
$output .= l(t('Manage my account'), 'user/' . $user->uid . '', array('title' => t('manage my account')));
$output .= '</p>';
return $output;
}
}
 こんな感じで関数を用意。(※引用転載)
  ・page.tpl.php で、
<?php print internet_center_login_box(); ?>
 と利用するだけだ。
 なるほどねぇ。

 Drupalテンプレートって、
 単に、デザインとして利用するだけでなく
 テンプレートカスタマイズ
 とても勉強になるな。
 (もちろん
  それは Wordpress なんかもそうだろうけど
  カスタマイズがんがん のDrupal では尚更)


 ・・・で、


 こんな関数を用意して、
function *****_login_box() {
global $user;

if (!$user->uid) {
$form['#action'] = url($_GET['q'], array('query' => drupal_get_destination()));
$form['#id'] = 'user-login-form';
$form['name'] = array('#type' => 'textfield',
'#title' => t('Username'),
'#maxlength' => 60,
'#size' => 15,
'#required' => TRUE,
);
$form['pass'] = array('#type' => 'password',
'#title' => t('Password'),
'#size' => 15,
'#required' => TRUE,
);
$form['submit'] = array('#type' => 'submit',
'#value' => t('Log in'),
);

if (variable_get('user_register', 1)) {
$items[] = l(t('サインアップ'), 'user/register', array('title' => t('新しく登録する')));
}
$items[] = l(t('新しいパスワードのリクエスト'), 'user/password', array('title' => t('メールで新しいパスワードを受け取る')));
$form['links'] = array('#value' => trim(theme('item_list', $items)));

$output .= drupal_get_form('user_login_block', $form, 'user_login');

return $output;
}
else {
$output = '<p><b>' . $user->name . '</b> さん、こんにちは。';
$output .= ' ' . l(t('ログアウト'), 'logout', array('title' => t('ログアウト'))) . ' ';
$output .= l(t('登録情報の編集'), 'user/' . $user->uid . '', array('title' => t('登録情報の編集')));
$output .= '</p>';
return $output;
}
}
 こうやって利用。
<div id="header_topline clearfix"><div id="header_topline_right">
<?php print trim(*****_login_box()); ?>
</div></div>
 まぁ、細かいレイアウトは
 これから、だけどね。
 ヘッダー一番上に一行表示して
commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/1303-5ad657c4
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。