- 追加された行はこの色です。
- 削除された行はこの色です。
*PukiWiki Pluginのインストール [#o6a2f51e]
*PukiWiki Pluginの作成・インストール [#o6a2f51e]
RIGHT:更新日&lastmod();
**プラグイン内のサーバ変数について [#q4db1941]
プラグインではrequireが何回か行われるの取得できないサーバ変数があるたとえば
ブラウザの種類等のデータを表示する''$_SERVER['HTTP_USER_AGENT']''は空になる~
そこで~
getenv("HTTP_USER_AGENT");
とすると取得できるようだ。
必要なファイルは[[ここ:http://pukiwiki.sourceforge.jp/]]のpluginからDownload
**コマンド型プラグインの使用方法 [#dc2c3a1c]
以下のように指定する
RSSの表示
https://wwwism.dyndns.org/index.php?plugin=rss&ver=1.0
編集ページの表示
https://wwwism.dyndns.org/index.php?cmd=edit&page=TEST2
**アクション型プラグイン [#d745fd94]
定義:function plugin_XXX_action()
戻り値:'msg'=>'タイトル','body'=>'本文'(型 array)
(e.g) return array('msg'=>'Error','body'=>'ファイルが存在しません<br>');
ページタイトルにErrorと表示される。内容はファイルが存在しませんと表示
HTTP変数は$varsでPOSTもGETも渡せる。グローバルで宣言しておく。
''使用例''
以下の例はmy_filenameという変数をPOSTで引き渡している。
function plugin_my_test_action()
{
global $vars;
$DEL = $vars['DEL']; //配列変数 $DEL[0],$DEL[1]...に値が入る
$kazu = count($DEL); //配列の数が取れる
return array('msg'=>'File名','body'=>$vars['my_filename']);
//return <===このときは同じページをなにもせず表示
}
function plugin_my_test_convert()
{
global $vars;
$script = get_script_uri();
$s_page = htmlspecialchars($vars['page']); <==開いているページ名
$element ="<form action=\"$script\" method=\"post\">";
$element=$element . "<input type=\"hidden\" name=\"my_filename\" value=\"abc.txt\" />";
for($i = 0; $i < $n ;$i++){ //配列変数の設定
$element=$element . "<input type=\"checkbox\" name=\"DEL[]\" value=\"$i\">";
}
$element = $element . "<input type=\"submit\" value=\"ボタン\"></form>";
return $element;
}
[[''参考ページ'':http://taru.s223.xrea.com/index.php?PukiWiki%2Fplugin#dfc0bf7e]]
**ディレクトリ指定定数 [#ed61ba5b]
DATA_HOME => pukiwiki.ini.phpがあるディレクトリ
DATA_HOME => wiki/
DATA_DIR => wiki/
DIFF_DIR => diff/
BACKUP_DIR => backup/
CACHE_DIR => cache/
UPLOAD_DIR => attach/
COUNTER_DIR =>counter/
TRACKBACK_DIR => trackback/
PLUGIN_DIR = plugin/
SKIN_DIR => skin/
ファイルの指定は
$tmpfile = CACHE_DIR ."my_tmp";
**PukiwikiからHTML変換 [#u42d906f]
Pukiwiki文法をHTMLに変換する関数
function convert_html($lines)がlib/convert_html.phpに定義されている
$html = convert_html($wikiline);
**ページ名からファイル名取得 [#v6d1cf3d]
lib/func.phpのなかにfunction get_filename($page)が定義されているので
$filename = get_filename($page);
wiki/6F6B6164615F7465737432.txtなどが得られる
プラグインで使用する場合パスが相対パスの場合pukiwiki.ini.phpから相対で呼び出されるのでそのまま使用できる。
**別ページの内容の表示(includex)Plugin [#f16c9a6a]
デフォルトでinclude.inc.phpというプラグインがあるが、表示行数の指定等オプションが増えている。[[ここ:http://note.sonots.com/?PukiWiki%2Fincludex.inc.php]]からdownlad.
contentsx.inc.phpも必要なのでインストール。
ただ、そのままでは109行でエラーするので、includexの109行目、contentsxの19行目の
_(の行をコメントアウトする。gettextをインストールするといいようなことが書かれていたが、インストールしてもだめだったのでコメントアウトした。
(e.g)タイトルを表示せず、1行から10行目を表示
#includex(ページ名,titlestr=off,1:10)
includeしたページでanchor(アンカー)マーク「†」が表示されるので以下の部分(380行付近)をコメントアウト
$attr_href = ' href="#' . $id . '"';
$attr_title = ' title="' . $id . '"';
$attr_class = ' class="anchor_super"';
// $link = '<a' . $attr_class . $attr_id . $attr_href . $attr_title . '>' . $_symbol_anchor . '</a>'; <==この行
return $link;
}
**添付(attach.inc.php)Plugin [#r032d64a]
添付を行うときのパスワードリクエストの変数定義について
アップロード/削除時はそのページの作成権限のユーザパスワードで実行できるバックアップファイルはこの範囲外
// 管理者だけが添付ファイルをアップロードできるようにする
//define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', TRUE); // FALSE or TRUE
define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', FALSE); // FALSE or TRUE
// 管理者だけが添付ファイルを削除できるようにする
//define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', TRUE); // FALSE or TRUE
define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', FALSE); // FALSE or TRUE
// アップロード/削除時にパスワードを要求する(ADMIN_ONLYが優先)
define('PLUGIN_ATTACH_PASSWORD_REQUIRE', FALSE); // FALSE or TRUE
//define('PLUGIN_ATTACH_PASSWORD_REQUIRE', TRUE); // FALSE or TRUE
[このパラメータはそのページの編集権限にパスワードが不要の場合のみ意味がある。
つまり編集は出来るが添付はに制限を設けるときのみ有効。編集が制限されている場合
は必ず編集用パスワードをリクエストされる。]
----
以下の設定はADMIN_ONLYが優先なため、Webページ上にパスワードリクエストの表示
はされるがパスワードを入力しなくてもOKで、次のダイアログボックスでそのページ
の作成権限のユーザパスワードで実行できる(PLUGIN_ATTACH_PASSWORD_REQUIREは
意味がない)
// 管理者だけが添付ファイルをアップロードできるようにする
//define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', TRUE); // FALSE or TRUE
define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', FALSE); // FALSE or TRUE
// 管理者だけが添付ファイルを削除できるようにする
//define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', TRUE); // FALSE or TRUE
define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', FALSE); // FALSE or TRUE
// アップロード/削除時にパスワードを要求する(ADMIN_ONLYが優先)
//define('PLUGIN_ATTACH_PASSWORD_REQUIRE', FALSE); // FALSE or TRUE
define('PLUGIN_ATTACH_PASSWORD_REQUIRE', TRUE); // FALSE or TRUE
----
以下の設定ではPLUGIN_ATTACH_PASSWORD_REQUIREの設定なか関わらず、Webページ上に
パスワードリクエストが表示されでは管理者パスワードを入力後、ダイアログボックス
ではそのページの作成権限のユーザパスワードまたは管理者ユーザパスワードで実行
できる。
// 管理者だけが添付ファイルをアップロードできるようにする
define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', TRUE); // FALSE or TRUE
//define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', FALSE); // FALSE or TRUE
// 管理者だけが添付ファイルを削除できるようにする
define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', TRUE); // FALSE or TRUE
//define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', FALSE); // FALSE or TRUE
**InterWikiNameについて [#w0e862ff]
InterWikiNameについてはpukiwiki.ini.phpの
$interwiki = 'InterWikiName'; // Set InterWiki definition here
に指定されているページに定義されている
そのページ(InterWikiName)に
[URL InterWikiName] (文字エンコードタイプ)
(e.g)
-[http://enfant.mie-chukyo-u.ac.jp/? enfant] euc
例えば、他のサイトのwikiページを表示するPlugin(include_interwiki)では以下のように指定する
#include_interwiki(InterWikiName,表示ページ名)
(e.g)
#include_interwiki(enfant,お知らせ)