ログインとログアウトのカスタマイズ
当たり前の話ですが、ログインをすると管理者に成れ、ログアウト状態では編集ができない通常表示です。この両者の違いはインストール直後のオリジナル状況においては、ログインすると「管理エリア」が表示され、また、メニューに「ログアウト」の項目がでることで把握ができます。ところで、現時点でのカスタマイズによって、「ヘッダー部分」にいわゆる「メニュー」として集約したので、ログイン最中なのかログオフしているのかが、今少しはっきりしないような気がしてきました。もちろん、ブログ(記事)タイトルの右手に「編集」「削除」が表示されていれば管理者モードですし、その表示が無ければ通常(ログオフした)の状態です。今回は、ログオン状態とログアウト状態をはっきりするカスタマイズに取り掛かりたいと思います。
「ヘッダー部分」にいわゆる「メニュー」として集約したのでログイン最中なのかログオフしているのかがはっきりしていないと思っている部分
ログインとログアウトの表示を変える
現時点でヘッダー下部のメニュー部には [Login] [Logout] の二つの項目が並んでいる状態ですから、尚更、グイン最中なのかログオフしているのかわかりずらいですね。そこで、どちらか一方のみを表示させることにしましょう。すなわち、[Login]のみが含まれるメニューと [Logout]のみが含まれるメニューを作ることになります。よって、固定ページとして[menu](既存のもの)に加えて、[menu2]を作ります。下に例を示すように一方は[login]、他方は[logout]の項目のみが含まれています。
メニューと呼んでいますが、メニューの役目を果たすのか、それとも一般記事を役目を果たすのかにおいて、FlatPress の仕組み自体は同じと考えられます。ただし、固定ページはウィジット化が可能になっています。それでは[menu2]の固定ページを」作成して、以下の二つの固定ページがあることを確認します。
[menu]
[list] [*][url=?]Home[/url] [*][url=?paged=1]Blog[/url] [*][url=static.php?page=about]About[/url] [*][url=contact.php]Contact[/url] [*] [*][url=admin.php?p=entry&action=write]Post[/url] [*][url=admin.php]AdminArea [/url] [*] [*][url=login.php?do=login]Login[/url] [/list]
[menu2]
[list] [*][url=?]Home[/url] [*][url=?paged=1]Blog[/url] [*][url=static.php?page=about]About[/url] [*][url=contact.php]Contact[/url] [*] [*][url=admin.php?p=entry&action=write]Post[/url] [*][url=admin.php]AdminArea [/url] [*] [*][url=login.php?do=logout]Logout[/url] [/list]
これらのファイルは、fp-content/content/static/ 配下に menu.txt, menu2.txt として管理されます。
上述の[menu]の内容変更と[menu2]の追加は「固定ページの編集」を説明している「メニューの表示位置を変える」を参考にしてください。この[mene2]はページ名を自動作成でなく、手入力で指定しjます。また、ソースに手を入れて作ることも可能です。もともと、menu と about はシステムのデフォルト値として必須のようで、下記にその部分を見ることができます。ちなみに、ソース中の『0 => 'menu', 1 => 'about',』のページ名を経能すると、それが見当たらない旨のアラートが表示されてきます。ここでは、メニューはデフォルトとして必要なことと解釈して、ソース側を修正することにしました。
[menu2]の増設
/fp-content/config/settings.conf.php
'plugins' => array ( 'blockparser' => array ( 'pages' => array ( 0 => 'menu', 1 => 'about', 2 => 'menu2', ), ), 'bbcode' => array (
この修正をしておくと、「ウィジェットの管理」画面のところに、「BlockParser: menu」と「BlockParser: menu2」の二つが表れてきますので、
上パネル
上パネル、すなわち、メニュー部に表示されるようにしておきます。(デバッグ中ではわかることですが、この設定は menu も menu2 も両方表示されることを意味します)
ログイン状態を調べる
ログインしているかどうかは、user_loggedin()関数で知ることができるようです。ここで、index.php の最後あたりで、そのステータスを smarty 変数に格納しておきましょう。このような追加をしておいてください。
/index.php
system_init(); // FlatPress.info if(user_loggedin()) { $smarty->assign('login_status', 'login'); } else { $smarty->assign('login_status', 'logoff'); } index_display(); ?>
ログイン状態に応じてメニュー内容を表示する
テンプレートの方も変更をしますが、こちらがログイン状態に応じて、どちらか一方のメニューを表示する if 文を加えて修正します。また、元からあったメニューの部分は削除しておきます。
/fp-interface/themes/leggero/header.tpl を削除して入れ替える。
{widgets pos=top}
<div id="{$id}">
{$content}
</div>
{/widgets}
</div>
<div id="toppanel"> {widgets pos=top} {if ($id == "widget-bp-menu") && ($login_status != "login") } {$content} {/if} {if ($id == "widget-bp-menu2") && ($login_status == "login") } {$content} {/if} {/widgets} </div>
ここまで改造しましたら、実際に動作を確認してみてください。メニュー部分がこのように変化するはずです。
おまけ
おまけとして、ログイン状態であれば、より分かりやすくデジタル時計を付けておきました。このアクセサリーは外部サイトのサービスを使うのが簡便ですし、今後にそのサービスがなくなったんしろ、おまけですから。
デジタル時計の表示サービスはここを参照します。本サイトに見合ったサイズは少ないのですが、以下のソースをそこ(http://www.clocklink.com)からコピーしてきます。
<embed src="http://www.clocklink.com/clocks/5004-white.swf?DateFormat=mm / dd DDD&TimeFormat=hh:mm:ss TT&TimeZone=GMT0900" width="192" height="16" wmode="transparent" type="application/x-shockwave-flash">
(注) YYYY MM / DD から YYYY を削除しておきます。また、日本時間(GMT +09:00)の合わせることを忘れないように)
レイアウトを補正するため、箇条書き(li)にスペースのみがあった部分を取り去り、menu と menu2 を次のように修正しておきます。
menu -------------------------------------------------------------------------------- [list] [*][url=?]Home[/url] [*][url=?paged=1]Blog[/url] [*][url=static.php?page=about]About[/url] [*][url=contact.php]Contents[/url] [*][url=admin.php?p=entry&action=write]Post[/url] [*][url=admin.php]AdminArea [/url] [*] [*][url=login.php?do=login]Login[/url] [/list] menu2 -------------------------------------------------------------------------------- [list]
[*][url=?]Home[/url]
[*][url=?paged=1]Blog[/url]
[*][url=static.php?page=about]About[/url]
[*][url=contact.php]Contents[/url]
[*][url=admin.php?p=entry&action=write]Post[/url]
[*][url=admin.php]AdminArea [/url]
[*]
[*][url=login.php?do=logout][color=#ffa500]Logout[/color][/url]
[*]<embed src="http://www.clocklink.com/clocks/5004-white.swf?DateFormat= mm / dd DDD&TimeFormat=H:mm:ss&TimeZone=GMT0900" width="192" height="16" wmode="transparent" type="application/x-shockwave-flash">[/list] [/list]
最終的にログイン後の画面の様子はこのようにちょっとおしゃれに変身しました。