StaticPages14
提供: GeeklogJpWiki
[4]運用方法 > 日常の管理作業 > コンテンツ追加と管理 > コンテンツタイプ > 静的ページプラグインを運用する
目次 |
静的ページプラグインを運用する
静的ページとは?
静的ページとは日付情報のないページコンテンツです。
静的ページは,新たなコンテンツを自由なレイアウトで追加する主要な手段です。 管理者のみが編集するしくみで、自由なスクリプトが書けます。PHPの記述を許す設定にすることで、自由なプログラムもページに記述できます。問合せフォーム、見積もりなどのプログラムを記述したり、Geeklogの各種関数や個々に作成したカスタマイズ関数を記述するなど、様々な応用が行えます。
本来,静的ページは(Geeklogが生成する動的なページとは対照的に)静的なコンテンツのページを作成することを狙いとしたものでした。こういうわけで「静的」という名前がついています。 "about us"のページやミッションの宣言等のページが思い浮かぶでしょう。
それ以来,静的ページは様々な用途に使われ,PHPコードを含むものもあります。元の「静的」という名前はもはやふさわしくなくなってしまいましたが,歴史的経緯でこの名称を引き継いでいます。
このプラグインの原作者はTony Bibbsで,Geeklog 1.3.5以来,インストール済みプラグインとしてGeeklogに同梱されています。Phill Gillespieが拡張を始め,後にTom Willetがサポートしました。拡張版になってようやく静的ページでPHPのコードを使用することができるようになり,また,Geeklogの適切なパーミッションもサポートしています。
Geeklog 1.3.8と静的ページ1.3以降,この2つのバージョンは1つに統合されました。静的ページ1.3では,過去のオリジナル版と拡張版のどちらにも含まれていない新しい機能が導入されました。
- PHPの使用をサポート
- 読みやすいURLにするための編集可能なページID
- 静的ページをGeeklogのインデックスページと話題ページに表示可能で,完全に置き換えて「スプラッシュスクリーン」にすることも可能。
- 既存のページの複製
- GeeklogのURL書き換え機能を利用
- 自動タグの使用をサポートし,[staticpage:]自動タグを提供
- Geeklogのパーミッションを適切にサポート
以下、アドバンストエディタを使用する場合の手順を説明します。
なお、記事を追加するには,RootかStory Adminグループに属している必要があります。そうでなければ管理者モードでの投稿はできません。
静的ページの追加
- サイトにログインします。
- 左側にある管理者用ブロックの"静的ページ"をクリックします。
- ページの上の方にある"新規作成"をクリックします。
- ページに編集用ツールバーが読み込まれるのを待ちます。
- タイトル:タイトル"を記入します。
- ヘッダメニューに追加:上部メニューエリアにメニューを追加したいときにクリックします。
- メニュー名:追加するときに表示するメニューの名前
- ページレイアウト:以下4つのレイアウトタイプから選びます。
1.全画面表示(ヘッダ・フッタ・ブロックなし)
2.ヘッダ・フッタあり(ブロックなし)
3.ヘッダ・フッタ・左側ブロックあり(右側ブロックなし)
4.ヘッダ・フッタ・左右ブロックあり - ID(ページ名):を変更しても構いません(デフォルトは日付と時間です)。表示はこのIDでソートされます。
- URL:表示されるURL。URLリライトを有効にするとSEOに効果的です。
- 内容:記事と同様に編集します。
- トップページコンテンツエリア表示:トップページコンテンツエリアにも表示させます。表示はIDでソートされます。
- 表示場所:ページの最上部、注目記事の下、ページの下、ページ全体 から選びます。
- 話題:どの話題のときに表示するかを選びます。
ホームページのみ、すべて、各話題のときのみ、から選びます。
センターブロックへの表示
- センターブロック:チェックすると、トップページのコンテンツエリアに表示されます。
- 表示場所:1.ページの最上部 2.注目記事の下 3.ページの下 4.ページ全体 から選びます。
静的ページのモード
- ブロックの中:チェックをはずすと、静的ページのタイトルが表示されません。
- PHP:このオプションを有効にすると、ページに含まれるPHPコードが実行されます。利用には細心の注意を払ってください。(詳しくはStaticPagesPHP14参照)
- 権限なしのアクセス:チェックするとアクセス権限がない場合に画面が自動的に遷移してログイン画面が表示されます。チェックをしない場合には「権限がない」というメッセージが表示されます。
画像の追加
選択肢その1
- "エディタ"の画面にします。
- "サーバーブラウザ"ボタンをクリックします。リソースブラウザのウィンドウに変わります。
- 写真を新しくアップロードするには,
- 下にある"参照..."ボタンをクリックします。
- あなたのコンピュータ上にある画像を探し,ダブルクリックで選択します。
- "アップロード"ボタンをクリックし,アップロードが完了するまで待ちます。
- ウィンドウが真っ白になったらウィンドウを右クリックし,写真一覧を更新するため,"更新"や"再読込"をクリックします。
- 写真を既にアップロードしている場合は,選択するためにその写真をクリックします。
- その他のオプション(変更はプレビュー領域に表示されます)
- 画像に枠が欲しいなら,"ボーダー"に数字を入力します(0 = 枠なし 1 = 細い枠 2以上 = 対応する枠の太さ)
- "横間隔"は画像の左右のスペースです。
- "縦間隔"は画像の上下のスペースです。
- "代替テキスト"は,マウスを画像の上に持って行ったり,ブラウザが画像をブロックしたときに表示される文字です。
- "リンク"タブを使うと,画像をリンクにできます。"URL"に画像のURLを入力するか"サーバーブラウザ"ボタンをクリックしてリソースブラウザを起動します(上述の"写真を新しくアップロードするには"と同じように作動します)。"ターゲット"ドロップダウンリストでは,リンクのターゲットウィンドウを変更できます。
- 高度な設定 -このページを編集して"高度な設定"に関する情報を追加してください。
- 変更が完了したら,"OK"ボタンをクリックします。小さなウィンドウが閉じます。
- このまま静的ページの編集を続けても良いし,主編集ウィンドウへ戻っても構いません。大きな編集ウィンドウを閉じるには左下向き矢印ボタン
をクリックします。
選択肢その2
メディアギャラリプラグインであらかじめアップし、自動タグで、静的ページに添付します。
パーミッション
最後にパーミッションでアクセス権限を設定します。
変更が完了したら,"保存"ボタンをクリックします。
PHPを使用する
静的ページでは、HTMLだけではなく、モード'PHPを使用する'を選ぶことで、PHPでページを記述することができます。
PHPを有効にする
重要: セキュリティ上の理由で,静的ページでのPHPの使用はデフォルトでは無効になっています。
有効にするには,"Static Page Admin"グループに'staticpages.PHP'権限を与える必要があります。そのためには,管理者としてログインし,管理者用メニューから"グループ"を選択します。"Static Page Admin"グループを見つけ,そのグループ名をクリックして編集してください。ページの最下部にこのグループに対して与えることができる"権利"(権限)一覧が表示されています。'staticpages.delete'と'staticpages.edit'はチェックされていますが,'staticpages.PHP'にはチェックが入っていないでしょう。"Static Page Admin"グループにPHPの使用を許可したいなら,'staticpages.PHP'にチェックを入れて保存する必要があります。
上述の'staticpages.PHP'権限に加えて,静的ページでのPHPの使用を完全に無効にする $_SP_CONF['allow_php'] グローバルフラグもあります。このフラグは,静的ページプラグインのディレクトリ(<geeklog>/plugins/staticpages)内にある静的ページの設定ファイルconfig.phpの中にあります。使い方:
静的ページ内でPHPを不適切に使用すると,セキュリティの問題が生じかねません。この機能は慎重に使ってください!
PHPの使用はページ毎に有効にする必要があります。コンテンツ編集エリアの下に次のようなオプションを提供するドロップダウンリストがあります。
- PHPを実行しない
このオプションを選択すると,静的ページ内のPHPコードは一切実行されず,そのまま表示されるのは明らかでしょう。
- PHPを実行する(return)
このオプションを選択すると,静的ページ内のPHPコードが実行されます。なぜ'return'かというと,コードが直接コンテンツを表示するのではなく,PHPのreturn文で返すからです。この機能は静的ページ1.3で導入されたPHPのオプションです。
- PHPを実行する
このオプションでもPHPの実行が許可されますが,ページレイアウトの影響を受けずにechoやprint文を使えます。
静的ページ内にPHPコードを埋め込むときには,<?php と ?> タグを含めてはいけません。PHPコードを含む静的ページはこれらの開始タグと終了タグないにあるものと見なされます。
しかしながら,上述のPHPを実行するオプションの2番目(つまり,"PHPを実行する")を選択したときには,次のようにPHPコードとHTMLコードの間を行き来できます。
echo "こんにちは"; ?>,<b>皆さん</b>,<?php echo "調子はどう?";
この例は "こんにちは,みなさん,調子はどう?" のように表示されます。
ページID
静的ページを新規作成すると,ページIDが自動的に割り当てられます。このIDは日付と時間及び3桁の乱数で構成されています。たとえばemailなどでこのページのURLが何回も使用されると思うなら,読みやすいIDにするのは有意義なことでしょう。
静的ページエディタではページIDを変更することができます。たとえば,"about"ページのIDを"20030313100131123" から "about" に変えて,次のようなURLを作成したいと思うこともあるでしょう。
http://www.example.com/staticpages/index.php?page=about
こうすることで引用しても見栄えがよくなります(しかも覚えやすい)。GeeklogのURL書き換え機能を使って更に改良することもできるでしょう。
注意して欲しいのは,ページIDに使用できるのはアルファベットと数字だけということです。各国特有の文字やほとんどの句読点(とはいえ,'-' と '.' は大丈夫なはず),スペースは使わない方がよいでしょう。静的ページエディタは一部の不正な文字は検出しますが,全部とは言えないでしょうから...
インデックスページで静的ページを使用する
Geeklog 1.3.8では,センターブロックというプラグインが使用する新たな概念を取り入れられました。基本的には,どのプラグインもGeeklogの中央領域(たとえば,記事と記事の間)にブロックを配置することができるということです。
静的ページの"センターブロック"オプションにチェックを入れると,"表示場所"と"話題"を指定するドロップダウンリストを使って,静的ページを表示する場所を選択できます。"表示場所"オプションには"ページの最上部", "注目記事の下", "ページの下(最下部)" (自明でしょう), "ページ全体"があります。最後の"ページ全体"オプションは,インデックスページの代わりにこの静的ページを表示するよう Geeklogに指示します。つまり,記事は全く表示されず,この静的ページのコンテンツしか表示されません。スプラッシュスクリーンや"ようこそ"ページを表示するときに役に立つでしょう。
Tip1: 静的ページをスプラッシュスクリーンとして使うときには,サイト訪問者を普通のインデックスページ,つまり,現在の記事の一覧へ導くリンクを設置する必要があります。このためには,index.php?display=all へのリンクを設置すればよいのです。
2つ目の"話題"ドロップダウンリストでは,静的ページの表示を特定の話題,ホームページのみ,全ページ(つまり,全ての話題とホームページ)に限定することができます。これはブロック用のオプションと同じです。
Tip2: これらのオプションをパーミッションの設定と組み合わせることができます。たとえば,ゲストユーザーにしか表示されない"ようこそ"ページを作ることができます。
Tip3: ある静的ページを,1つの話題ではなく,複数の話題に共通して表示するには,静的ページを複数話題に表示するをご覧ください。
ソート
センターブロック: 中央部の同じ領域に表示される複数の静的ページがあるとき(たとえば,インデックスページの最上部に表示される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'] フラグがあり,このオプションの規定値として使用されます。
静的ページを複製する
同じような静的ページがたくさんある場合,既存のページをコピーし,コピーの方を編集したいと思うかもしれません。静的ページ一覧で"コピー"をクリックすることで簡単にコピーでき,新しいページIDがついたコピーが作成されます。
URL書き換え
Geeklogはある種のURL書き換え,すなわち,検索エンジンにとってわかりやすいURLに変更する機能を備えています。たとえば, http://www.example.com/staticpages/index.php?page=20030313100131123
と書く代わりに,
http://www.example.com/staticpages/index.php/20030313100131123
URLがこのように見えるかもしれません。
検索エンジンの中には,URLに '?' や '=' などの文字が含まれていると,インデックスを作成しない場合があります。数字で構成されるページIDを単語やフレーズ(できれば,ページの内容に合ったもの)に置き換え,検索エンジンにインデックス化されやすくすることもできるでしょう。たとえば,
http://www.example.com/staticpages/index.php/about
URL書き換えを行うには,Geeklogの config.php で次のように設定して,書き換えを有効にする必要があります。
$_CONF['url_rewrite'] = true;
この機能は実験的なものであり,IIS(Internet Information Server)ではうまくいかないことに注意してください。
所有者と共にページを削除する
Geeklogの他のオブジェクト同様,静的ページにも所有者(その静的ページを作成したユーザー)がいます。ユーザーのアカウントが何らかの理由で削除されたとき,そのユーザーが所有する静的ページは同様に削除されるか,GeeklogのRootグループ内の他の人間に割り当てるようにするかを設定できます。静的ページプラグインの config.php ファイルには,次のオプションがあります。
$_SP_CONF['delete_pages'] = 0;
デフォルトの 0 に設定すると,静的ページは所有者と共に削除されず,代わりに Rootグループの誰かユーザーIDが最も小さな人,通常はAdminに所有権が移ります。1 に設定すると,所有者のアカウントが削除されたときに,所有していた静的ページも削除されます。
config.php
// 静的ページPHP機能 1:オン 0:オフ
$_SP_CONF['allow_php'] = 0;
// センターエリアに表示される順番.デフォルトはID.タイトルや日付でもソートできます.
$_SP_CONF['sort_by'] = 'id'; // 'id', 'title', 'date'
// グローバルナビゲーションで表示する順番
// {plg_menu_elements}または{menu_elements}がheader.thtmlに記述されているときのみ有効です.
$_SP_CONF['sort_menu_by'] = 'label'; // 'id', 'label', 'title', 'date'
// 所有者が削除されたとき、静的ページコンテンツ 1:削除 0:所有者が、Rootユーザに移る
$_SP_CONF['delete_pages'] = 0;
// ブロックで囲む初期設定 1:ブロックで囲む(タイトル表示), 0:ブロックで囲まない(タイトル非表示).
$_SP_CONF['in_block'] = 1;
// 閲覧件数 1:表示 0:非表示
$_SP_CONF['show_hits'] = 1;
// 最終更新日 1:表示 0:非表示
$_SP_CONF['show_date'] = 1;
// もしタイムアウトになったら,次の値を両方とも0にセットする必要があるかもしれません。
// HTMLフィルター filter_html 1:利用する 0:利用しない
$_SP_CONF['filter_html'] = 0;
// (1にすると,ブランクページを作成できなくなります.)
// 検閲モード 1:利用する 0:利用しない
$_SP_CONF['censor'] = 1;
// 管理者の静的ページ管理画面で新規作成の際のパーミッションのデフォルトを設定。
// 所有者、グループ、メンバ、ゲストユーザごとに、次の値を設定できます。
// 3 = R:閲覧 + E:編集(所有者、グループのみ)
// 2 = R:閲覧のみ
// 0 = どちらも許可しない
$_SP_CONF['default_permissions'] = array (3, 2, 2, 2);


