必要なファイルはここのpluginからDownload
定義: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; }
DATA_HOME => pukiwiki.ini.phpがあるディレクトリ 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に変換する関数
function convert_html($lines)がlib/convert_html.phpに定義されている
$html = convert_html($wikiline);
lib/func.phpのなかにfunction get_filename($page)が定義されているので
$filename = get_filename($page);
wiki/6F6B6164615F7465737432.txtなどが得られる
プラグインで使用する場合パスが相対パスの場合pukiwiki.ini.phpから相対で呼び出されるのでそのまま使用できる。
デフォルトでinclude.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; }
添付を行うときのパスワードリクエストの変数定義について
アップロード/削除時はそのページの作成権限のユーザパスワードで実行できるバックアップファイルはこの範囲外
// 管理者だけが添付ファイルをアップロードできるようにする //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については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,お知らせ)