Sep 26, 2009

P_BLOGのコンテンツメニューにLoginボタンを追加してみた

旧Ganesha's monologue(by P_BLOG)より移転転記。(2009-12-13)

WordPress を使うようになって、メニュー内の Loginボタンがとても便利だと感じたので、P_BLOG にも追加してみた。Loggix にも Loginボタンは無いので、作者のkazさんは無い方がセキュリティ的に望ましいと考えてらっしゃるんでしょうが、ユーザー名とパスワードで充分でしょ。(たぶん)

メニュー部分の表示を変更するには、/include/user_include/menu.inc.php を編集すれば良いが、P_BLOG のシステム管理にはカスタムファイル編集という便利な機能があるので、それを利用する。編集内容は、Login ボタンを追加したい位置に下記の1行を追加するだけだ。

'Login'        => 'admin/login.php',

編集画面イメージはこちら。

Login_003p.png

Loginボタンを追加する前と後のメニュー・イメージも載せておく。なお、このイメージは Taj Mahal というCSSを選択した場合のものだ。

  • 追加前
    Login_001p.png

  • 追加後
    Login_002p.png

余談

Login後のメニューにも、この Loginボタンが表示されており、クリックすると Logout することができる。本当は、Login後のメニューには Logout と表示されるようにしたいんだけど、やり方が分からん。残念。 よく考えてみたら、ログインユーザー・メニュー内に「ログアウト」というリンクがあるので意味無かった。むしろ「ログイン後のメニューには表示しないようにしたい」と書くべきだったな。

Sep 25, 2009

Google Chrome Frame はかえってヤバイんじゃない?

旧Ganesha's Lab.(by SQLite2版Loggix)より移転転記。(2009-12-13)

IEでもGoogle Waveを満喫できる
:Google、IEを“Chrome並みに”改良するプラグイン「Chrome Frame」リリース

オープンソースのプラグイン「Google Chrome Frame」をインストールすると、IE6でもHTML5ほか最新Web技術を使ったサイトを表示できるようになる。

ITmedia エンタープライズ

WEB標準への対応が不完全な Internet Explorer のシェアが相変わらず高い状況を何とかしようとして開発されたプラグインのようだが…。

今回のこの Google Chrome Frame に対応したWEBサイトが本当に増えた場合、このプラグインさえ導入すれば Internet Explorer を使い続けてもWEB標準に対応できることになってしまうので、WEB標準への対応が進んだいわゆる先進ブラウザ( Firefox 3.5、Opera 10、Safari 4、さらには Google Chrome 3 )への乗り換えが 不要 ということになってしまわないだろうか?

私の理解では、IE6以前の Legacy Browser のシェアが依然として下がらないのは、次の2つのユーザーの存在に原因がある。

  1. パソコンをほぼ購入当時の状態のまま使い続けるライトユーザーの存在。

  2. IE6の仕様に依存した既存の 内製Web App の存在に身動きできない企業ユーザーの存在。

特に、2番目の企業ユーザーに対し、Google Chrome Frame の登場は内製Web App 改修の動機付けを弱め、Legacy Browser 延命に格好の口実を与えてしまうことになりそうな気がする。

Sep 12, 2009

当BlogのHeader周りのデザインをようやく修正

旧Ganesha's Lab.(by SQLite2版Loggix)より移転転記。(2009-12-13)

1年以上も前に予告していた当BlogのHeader周りのデザイン修正をようやく実現させた。

最終的には、positionプロパティを使って、サイトタイトルと自動挿入広告を横に並べるようにするつもりですが、XHTML Validにする方が先ですので、後のお楽しみにとっておくことにします。

後の楽しみも何も、1年以上ほったらかしじゃ。

ちなみに、修正前のデザインはこんな感じだった。あ、それと実際にはpositionプロパティではなくfloatプロパティを使ってデザイン修正した。

修正前デザインの画面キャプチャ(Sleipnir/IE7)

ところで、今回CSSを修正していて「LoggixのCSSファイル構成は意外と使いにくい」と感じたので、以下に気付いた点を書き留めておく。回避方法はたぶんあると思うので、いずれ修正しようと思う。

LoggixのCSSファイル構成の欠点

Loggixの吐くXHTMLソースが直接読み込むCSSファイルはdefault.cssだ。そしてdefault.cssから複数のCSSファイルを@importで読み込むようになっている。(Win IEの場合はwin_ie.cssを介してdefault.cssを読み込むが、説明が煩雑になるので割愛する)

  • default.css内の@import構文
@import url(../_import/text.css);
@import url(text.css);
@import url(modules.css);

ここで問題になるのは、最初に読み込まれるdefault.cssに、@import構文以外に具体的なCSS指定が記述されていることだ。

@import規則によれば、@importで読み込まれる外部ファイルの記述内容よりも元ファイル(ここではdefault.css)の記述内容の方が優先されるため、default.cssの内容をカスタマイズしたい時は、直接default.cssを編集するしかない。

しかし、直接default.cssを編集してカスタマイズする方法だと、Loggixがバージョンアップする度に再編集が必要になるので管理が大変だ。それよりも、例えばuser-custom.cssというカスタマイズ専用の外部ファイルを作ってそこにカスタマイズ内容をまとめることができれば、管理は大変楽になる。あとは、default.cssの記述内容を上書きできるように工夫すれば良い。

そのための処方箋は下記の通りだ。

  1. Loggixの吐くXHTMLソースから直接読み込むCSSファイルを、例えばimport.cssというファイルに変更する。

  2. default.css内の@import構文はすべて削除する。

  3. 自分カスタマイズ用にuser-custom.cssを用意する。

  4. import.cssから@import構文で各CSSファイルを読み込むように設定する。(下記参照)

  • import.cssの記述内容
@import url(default.css);
@import url(../_import/text.css);
@import url(text.css);
@import url(modules.css);
@import url(user-custom.css);

問題は、Loggixの出力するXHTMLソースから直接読み込ませるCSSファイルをどうやって変更するか。PHPを弄らないといけないと思うので、それはまた後日検討することにする。面倒だったら、default.cssをimport.cssの代わりにして、default2.cssを読み込むようにするのが簡単かもしれない。(cssファイル名の意味づけも重要だと思うので、出来るだけPHP修正方法を考えるようにするつもりですが)

追記

@import構文を多重化するとレンダリング・パフォーマンスが悪化する場合があるそうだ。特にInternet Explorerで顕著らしい。

[CSS]外部スタイルシートの指定は@importとlinkでどちらがいいか | コリス

[css] @importを使うべきでない理由 | Screw-Axis

したがって、必要以上の@import多重化を避けるためにも@import.cssから直接その他の全cssファイルを読み込むようにしたい。また、Win IEの場合もwin_ie.cssからimport.cssを読み込むのではなく、win_ie.cssから直接その他の全cssファイルを読み込むようにすべきだろう。これも、そのうち対処することにしよう。

前へ 次へ