エントリー書き出しプラグイン
このプラグインについて
エントリーのデータをHTMLファイルに書き出します。
導入方法
ファイルのアップロード
config.entry_output.php と end.entry_output.php を libs/freo/plugins/ ディレクトリ内にアスキーモードでアップロードします。
entry_output.ini を configs/plugins/ ディレクトリ内にアスキーモードでアップロードします。
entry_output/ を templates/plugins/ ディレクトリ内にアスキーモードでアップロードします。
entry.html を index.php と同じディレクトリ(freo設置ディレクトリ)内にアスキーモードでアップロードします。
パーミッションの設定
configs/plugins/entry_output.ini と entry.html のパーミッションを 606 に設定します。
完了
管理画面からエントリーを登録し、エラーが表示されなければ完了です。エントリーは entry.html に書き出されます。
管理者ページにログイン後、管理メニューから「システム」→「設定管理」→「プラグインの設定」→「エントリー書き出し」を選択すると、各種設定を行えます。
書き出した内容をJavaScriptで任意のページに表示
書き出したHTMLファイルの内容を、JavaScriptで任意のページに表示することができます。
一例ですが、jQueryを利用すれば
$(document).ready(function() {
$('div#entry').load('./~entry.htmlへのパス~/entry.html');
});
このようなコードを書けば、同じページの
<div id="entry"></div>
この部分に表示することができます。具体的には以下のようなコードでHTMLファイルの内容を表示できます。JavaScriptやjQueryの文法については、別途解説書などを参考にしてください。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('div#entry').load('./~entry.htmlへのパス~/entry.html');
});
</script>
<title>テスト</title>
</head>
<body>
<h1>テスト</h1>
<p>↓ここにテキストが読み込まれます↓</p>
<div id="entry">JavaScriptをONにすると、エントリーが読み込まれます。</div>
<p>↑ここにテキストが読み込まれます↑</p>
</body>
</html>
書き出した内容をPHPで任意のページに表示
書き出したHTMLファイルの内容を、PHPで任意のページに表示することができます。
一例ですが
<?php echo file_get_contents('./~entry.htmlへのパス~/entry.html') ?>
このようなコードを書けば、その場所に entry.html の内容を表示することができます。具体的には以下のようなコードでHTMLファイルの内容を表示できます。
<?php echo '<?xml version="1.0" encoding="utf-8"?>' . "\n" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>テスト</title>
</head>
<body>
<h1>テスト</h1>
<p>↓ここにテキストが読み込まれます↓</p>
<?php echo file_get_contents('./~entry.htmlへのパス~/entry.html') ?>
<p>↑ここにテキストが読み込まれます↑</p>
</body>
</html>
以下はPHPファイルを作成する際の注意点です。
- PHPプログラムの拡張子は、大抵の場合は
phpです。なので、info.phpのようなファイル名にする必要があります。 - 大抵の環境では、PHPファイル内に
<?xml version="1.0" encoding="utf-8"?>というXML宣言があるとエラーになります。これは、上のサンプルコードのように<?php echo '<?xml version="1.0" encoding="utf-8"?>' . "\n" ?>と書けば回避できます。
機能解説
書き出し内容の絞り込み
管理メニューから「システム」→「設定管理」→「プラグインの設定」→「エントリー書き出し」を選択すると各種設定を行えますが、「書き出し先」のファイル名の直後に、半角コンマに続けて条件を指定することができます。これにより、特定のカテゴリのエントリーのみを書き出したりすることができます。
entry.html- 普通に一覧表示します。
entry.html,category=カテゴリーID- カテゴリーIDで絞り込みます。(例:
entry.html,category=diary) entry.html,word=検索キーワード- 検索キーワードで絞り込みます。(例:
entry.html,word=テスト) entry.html,user=ユーザー名- ユーザー名で絞り込みます。(例:
entry.html,user=freo) entry.html,tag=タグ- タグで絞り込みます。(例:
entry.html,tag=テスト) entry.html,date=日付- 日付で絞り込みます。(例:
entry.html,date=2010、entry.html,date=201004、entry.html,date=20100401)
また、条件は & で区切って複数指定できます。例えば
entry.html,category=diary&tag=テスト
このようにすると、カテゴリーIDとタグの両方で絞り込むことができます。
複数ファイルの書き出し
管理メニューから「システム」→「設定管理」→「プラグインの設定」→「エントリー書き出し」を選択すると各種設定を行えますが、「書き出し先」のファイル名を改行区切りで複数指定することができます。例えば
./entry1.html
./entry2.html,category=diary
./entry3.html,category=diary&tag=プログラム
このようにすると、entry1.html と entry2.html と entry3.html のそれぞれに書き出すことができます。書き出し先のファイルはあらかじめサーバー上に作成し、パーミッションを 606 に設定しておいてください。
なお、jQueryを利用する場合は以下のようなコードで複数のファイルを表示することができます。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('div#entry1').load('./~entry1.htmlへのパス~/entry1.html');
$('div#entry2').load('./~entry2.htmlへのパス~/entry2.html');
$('div#entry3').load('./~entry3.htmlへのパス~/entry3.html');
});
</script>
<title>テスト</title>
</head>
<body>
<h1>テスト</h1>
<p>↓ここに entry1.html が読み込まれます↓</p>
<div id="entry1">JavaScriptをONにすると、エントリーが読み込まれます。</div>
<p>↑ここに entry1.html が読み込まれます↑</p>
<p>↓ここに entry2.html が読み込まれます↓</p>
<div id="entry2">JavaScriptをONにすると、エントリーが読み込まれます。</div>
<p>↑ここに entry2.html が読み込まれます↑</p>
<p>↓ここに entry3.html が読み込まれます↓</p>
<div id="entry3">JavaScriptをONにすると、エントリーが読み込まれます。</div>
<p>↑ここに entry3.html が読み込まれます↑</p>
</body>
</html>
更新履歴
- 2011/01/28 Ver 1.1.1
-
- 認証が必要な記事でも、オプション項目以外の情報は参照できるように調整。
バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。
config.entry_output.phpend.entry_output.php
- 2010/10/20 Ver 1.1.0
-
バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。
config.entry_output.phpend.entry_output.php
- 2010/10/08 Ver 1.0.1
-
- SQLite2使用時、エントリーを分類で検索できない不具合を修正。
バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。
config.entry_output.phpend.entry_output.php
- 2010/09/01 Ver 1.0.0
-
正式版を公開しました。最終ベータ版から大きな変更はありませんが、プログラム内部のバージョン情報と更新日はすべて変更しています。ですので今後混乱の無いように、拡張子が
phpのファイルはすべて正式版付属のものに変更することをお勧めします。