Geeklog IvySOHOプロジェクト
Geeklog Documentation

静的ページプラグイン1.4.1

静的ページとは?

静的ページプラグインは当初は(Geeklogで生成される動的なページとは逆に)静的な内容のページを作成するためのものでしたので「静的」という名称になっています。「自己紹介」のようなページ、サイトの目的などとったページが思い浮かぶでしょう。

次第に全ての種類の目的で使われるようになり、PHPプログラムを組み込んだりして、当初の名称は今では必ずしも正確ではなくなっています。

History歴史

このプラグインはTony Bibbsが最初作成し、Geeklog 1.3.5からプリインストールプラグインとして同梱されています。Phill Gillespieが拡張版を手がけ、Tom Willetが引き継いでいます。拡張版ではじめてPHPが静的ページで使えるようになり、Geeklogで一般的な権限設定も使えるようになりました。

Geeklog 1.3.8とStatic Pages 1.3で2つが再マージされました。Static Pages 1.3は以前のバージョンには見られない新しい特徴がいくつかあります。

特徴

PHPの利用

PHPを実行可能にする

重要:セキュリティ上の理由で静的ページへのPHPスクリプトの組み込みはデフォルトでは無効になっています。これを有効にするには"Static Page Admin"に対して"staticpages.PHP"権限を与える必要があります。この権限を与えるにはAdminでログインしてAdmins Onlyブロックで「グループ」を選びます。"Static Page Admin"グループを探してその「編集」をクリックします。開かれたページの最後にこのグループの全メンバーに与えられる「権限」の設定項目リストがあります。'staticpages.delete' と'staticpages.edit'はすでにチェックされていて'staticpages.PHP'はチェックされていないのを確認します。Static Page Adminグループのメンバーが静的ページでPHPを利用できるようにするには'staticpages.PHP'をチェックして変更を保存してください。

上述の'staticpages.PHP'権限設定に加えて、全ての静的ページでPHPの利用を無効にするグローバルフラグの$_SP_CONF['allow_php']もあります。このフラグを0に設定すると'staticpages.PHP'で設定した権限がオーバーライドされ静的ページでの全てのPHP利用が無効になります。このフラグはplugin/staticpagesディレクトリにある静的ページのconfig.phpファイルに記述されています。

利用法

PHPの静的ページでの利用は適切に利用されないとセキュリティ問題を引き起こす可能性があります。この機能は注意してお使いください!

PHPの利用は各ページごとに有効にする必要があります。内容編集フィールドの下に次のようなオプションをもつドロップダウンメニューがあります。

PHPコードを静的ページに組み込む場合、PHPの <?php?> タグで囲んではいけません。

2番目の実行オプション(PHPの実行)を選択した場合は次のように、PHPとHTMLの間を行き来します。:

echo "Hello"; ?>, <b>world</b>, <?php echo "how are you?";

上記の例は"Hello, world, how are you?"を表示します。

ページID

静的ページを新規作成する時に、ページIDが自動的に割り当てられます。このIDは日時と3桁のランダムな数字から成り立っています。このURLがメールで引用されるなどで何度も使われるようだと思われる時には、ページにわかりやすいIDを使うほうが納得できるでしょう。

静的ページのエディタでページIDを変更することができます。例えば、"about"ページのIDを"20030313100131123"から"about"にして

http://yoursite/staticpages/index.php?page=about

といった引用された時には、一層わかりやすく見える(覚えやすい)URLを生成します。GeeklogのURLリライト機能を使いこなすことでさらに進んだ使い方ができるでしょう。

ページIDには英数字しか使用できない点に注意してください。各国の特殊文字やほとんどの記号("-"、”."はOKです)、空白も利用できません。静的ページエディタは使用不可の文字をチェックしますが、完全ではありません。

トップページで静的ページを利用する

Geeklog 1.3.8 でセンターブロックというプラグイン利用に関する概念が導入されました。基本的には、このことで、どんなプラグインでもGeeklogのサイトのセンターエリア(例えば、記事の間)にブロックを置くことができます。

静的ページの「センターブロック」オプションをチェックすると、どこに静的ページを表示させるかを選択するために「表示場所」と「話題」のドロップダウン選択肢を利用できます。「表示場所」では「ページの最上部」、「注目記事の下」、「ページの下」(ここまでは意味はすぐわかりますね)、「ページ全体」が選択肢になります。最後の「ページ全体」はGeeklogにこの静的ページがindexページ全体を置き換えてしまうように指示します。Geeklogはどの記事も表示せずに、この静的ページのみを表示します。このオプションは"splash"スクリーンやウェルカムページを作成するのに便利です。

チップス:"splash"スクリーンとして静的ページを利用するには、通常のindexページ(たとえば現在の記事一覧)にユーザーを導くリンクが必要になります。そのためのリンクとしてindex.php?display=allを使います。

2番目の「話題」は静的ページを表示する「ホームページのみ」、「すべて」(全ての話題ページとホームページ)、「ギークログ」、「ギークログニュース」が選択できます。このオプションはブロックに対するオプションと同じです。

チップス:このオプションと権限設定を組み合わせることができます。これを使うと例えば、ゲストにのみ表示させるwelcomeページを作成することができます。

ソート

センターブロック:同じセクションの中央部に現れる静的ページが複数ある場合には(例えばindexページの最初に表示される2つの静的ページがある場合)、表示される順番をプラグインのconfig.phpファイルの$_SP_CONF['sort_by']で指定できます。設定値はid(ページID順)、date(最終更新日順)、title(ページタイトル順)が選べます。デフォルトはページID順のソートです。

メニューエントリー:(header.thtmlに{plg_menu_elements}変数を使用しているテーマを利用していれば)サイトメニューに表示される静的ページをソートすることができます。config.phpファイルの$_SP_CONF['sort_menu_by'] 変数をid(ページID順)、date(最終更新日順)、 label(メニューラベル順), title(ページタイトル順)のどれかに設定します。

静的ページをブロックで囲む

静的ページエディタの「ページをブロックで囲む」をチェックすることで、静的ページをGeeklogブロックで囲むことができます。設定されればページタイトルがブロックタイトルとして利用されます。

プラグインのconfig.phpファイルには$_SP_CONF['in_block']フラグがあり、このオプションのデフォルトとして使われています。

静的ページのコピー

同じような静的ページがいくつもあれば、既存のページを複製してそれを編集したいと思うでしょう。これは静的ページのリストで[c]をクリックすれば簡単にできます。クリックすると新しいページIDをもったコピーが作成されます。

URLリライト

この機能は実験的なものでIISサーバでは動作していない点に注意してください。

GeeklogはURLをサーチエンジンに適した形式に変更するなどの目的でURLリライトをサポートします。例えば

http://yoursite/staticpages/index.php?page=20030313100131123

よりも、次のようなURLでアクセスできるようにします。

http://yoursite/staticpages/index.php/20030313100131123

いくつかのサーチエンジンではURLが"?"や"="などの文字を含んでいた場合、ページをインデックスに取り込まないことが知られています。さらにページIDをnumeric page IDに置き換えたURLのように単語や句で置き換えるとインデックスされるチャンスが広がります(ページの内容に関連したものが好ましい)

http://yoursite/staticpages/index.php/about

URLリライトを利用するにはGeeklogのconfig.phpに次の設定を行って機能を有効にしておきます。

$_CONF['url_rewrite'] = true;

静的ページプラグインは現在のところこの機能をサポートする唯一のプラグインです。
The Static Pages plugin is currently the only plugin known to make use of this feature.

所有者の削除に伴うページの削除

Geeklogの他の全てのオブジェクトのように静的ページにも所有者があります(静的ページを作成したユーザ)。何かの理由でそのユーザのアカウントが削除された場合に、そのユーザが作成した静的ページを同様に削除するか、またはそのページの所有者をGeeklogのRootグループの誰かに割り当てることができます。Static Pagesプラグインのconfig.phpには次のオプションがあります。

option:

$_SP_CONF['delete_pages'] = 0;

0(デフォルト)に設定されると、所有者が削除されてもページは削除されずにRootグループのメンバー(ユーザIDがもっとも小さいユーザ、Adminの可能性が高い)に割り当てられます。この設定を1に変更すると所有者のアカウントが削除された場合にページが削除されます。