2005年07月11日

inputtoolbar.inc.php

PukiWikiでtrackerプラグインを本気で使おうと思ったらちょっと性能に不満を感じたのでtracker_plus.inc.phpプラグインを用いて色々がんばろうと思って こちらを参考に色々がんばっていたんですがその際に、コメントの入力に便利なヘルパーが使われているのに気が付く。

これって何だろうと思ってサイトの中を見てみたら

  • pukiwiki plus! は作業時に迷ったら参照程度にするつもりでしたが、結局、関連コードは pukiwiki plus!のものを使いそうです。
「PukiWiki Plus!」? くはっ、こんなのあったのか(苦笑)<全然知りませんでした

どうもこのインプットヘルパーはこちらが本家のようです。

で、手元のサイトにも早速組み込んで見たんですが・・・う〜ん、微妙

一番の不満は導入が面倒なこと<あっちこっち弄らないといけないので、VerUpの際に大変そうです
あと、ヘルパーは入力欄一つに付き1つずつという対応になるので、ページがうるさくなりそうなのも×

まぁ、不満があれば自分で改造できるのがGPLだと思いますので、一つあれば画面全部フォローできるようにして、なおかつプラグイン化してみました。

それが↓

導入方法はファイル自体にも書いてますが、基本的にPukiWiki Plus!のファイルを極力楽に導入してなるべく便利に使うためのつなぎになるプラグインなのでこれ単体では動作しません(笑)

お使いになる方は必ず

からPukiWiki Plus!のパッケージアーカイブをダウンロードして必要なファイルを取り出してください。

それからPukiWiki 1.4.5_1でしか動作確認していません。
その他のバージョンで動きましたら動作報告頂けますと助かります

また、具体的な導入方法は以下の通りです。

まず、1.4.5_1じゃ標準じゃないフェイスマークを用いるのでそれを追加します。
追加場所はPukiWikiのベースディレクトリにあるdefault.ini.phpの133行目付近にある

// Face marks, Japanese style
の後に以下を追加します。
	'\s(\(T\-T)'    => ' <img alt="$1" src="' . IMAGE_DIR . 'face/tear.png" />',
	'\s(\(\^Q\^)'   => ' <img alt="$1" src="' . IMAGE_DIR . 'face/huh.png" />',
	'\s(\(\^_\-)'   => ' <img alt="$1" src="' . IMAGE_DIR . 'face/wink.png"/>',
また、このプラグインはJavaScriptを用いているので、PukiWikiでJavaScriptの動作を有効化するために「pukiwiki.ini.php」で以下のように変更を行います。
// PKWK_ALLOW_JAVASCRIPT - Allow using JavaScript
define('PKWK_ALLOW_JAVASCRIPT', 0);
         ↓
define('PKWK_ALLOW_JAVASCRIPT', 1);
(既に「1」になっていた人はそのままにしてください)

さて、PukiWiki自体の設定が終わったら、今度はPukiWiki Plus!より必要なファイルを抽出します。

必要になるファイルは次の通り

  • skinフォルダの中にある以下のファイル
    1. assistant.js
    2. assistloaded.js
    3. gecko.js
    4. other.js
    5. winie.js
    6. default.js(このファイルはinputhelper.jsと言う名前に変更してください)
  • imageフォルダの中にあるfaceフォルダ
  • 同じくimageフォルダの中にあるplusフォルダ
で、上記を、取り出したらプラグインを入れるPukiWikiの同じ所にアップロードしてください。
(たとえばfaceフォルダはPukiWikiのimageフォルダの中にある同名のフォルダに上書きアップロードします。
その他もskinだったらskinフォルダの中になるような形で新規でアップロードします。)

(なお、PukiWiki plusではおそらく無改造で導入できるんじゃないかと思います<テストはしてませんが(^^;)

最後に、他のプラグインと同様にこのサイトから落としたinputtoolbar.inc.php.0.2.0.txtをinputtoolbar.inc.phpと言う名前に変更してからPukiWikiのpluginフォルダに入れれば準備完了です。

使い方は、ヘルパーを載せたいところに

#inputtoolbar
と書くだけです。

なお、ブロックプラグインとしてしか動作しませんのでご注意下さい。
(「&inputtoolbar」として文章の任意の場所においても動作しません)

また、一つのページ内に複数使用するとhtmlのヘッダとフッタに余計なゴミが載りますので、もしかすると何か悪さする可能性があります(^^;
(面倒だったので二重登録防止してませんがなんか障害あったらご報告下さいm(_ _)m)

あと、私はページ編集画面も含めて全ページに掲載したかったので以下のような修正を加えています。

編集するファイルは「skin/pukiwiki.skn.php」で以下のような変更を行います

70行目付近

<?php if (PKWK_ALLOW_JAVASCRIPT && $trackback_javascript) { ?> <script type="text/javascript" src="skin/trackback.js"></script><?php } ?>
<?php echo $head_tag ?>
                                                ↓
<?php if (PKWK_ALLOW_JAVASCRIPT && $trackback_javascript) { ?> <script type="text/javascript" src="skin/trackback.js"></script><?php } ?>
<?php if (PKWK_ALLOW_JAVASCRIPT) { ?><script type="text/javascript" src="<?php echo SKIN_DIR?>inputhelper.js"></script><?php } ?>
<?php echo $head_tag ?>
180行目付近?
<div id="note"><?php echo $notes ?></div>
<?php } ?>

<?php if ($attaches != '') { ?>
                              ↓
<div id="note"><?php echo $notes ?></div>
<?php } ?>
<?php if (PKWK_ALLOW_JAVASCRIPT) { ?><script type="text/javascript" src="<?php echo SKIN_DIR?>assistloaded.js"></script><?php } ?><?php if ($attaches != '') { ?>
その7行ぐらい下
<?php echo $hr ?>
<?php if (PKWK_ALLOW_JAVASCRIPT) { require_once(PLUGIN_DIR.'inputtoolbar.inc.php'); echo plugin_inputtoolbar_convert(); } ?>
<?php if (PKWK_SKIN_SHOW_TOOLBAR) { ?>
                             ↓
<?php echo $hr ?>
<?php if (PKWK_ALLOW_JAVASCRIPT) { require_once(PLUGIN_DIR.'inputtoolbar.inc.php'); echo plugin_inputtoolbar_convert(); } ?>
<?php if (PKWK_SKIN_SHOW_TOOLBAR) { ?>
なお、ちゃんと適用が成功すると以下のようになります
inputhelper.jpg

あと、もっと高度な編集機能が欲しい方は

をお使い下さい。

っていうか、PukiWiki plus!さんの入力補助機能をインポートするためのwrapperとして割り切ってますので、このプラグインでの機能の追加は全く考えておりません。あしからず。

最後にライセンスなど載せておきます
(ファイルのヘッダと同一のものです)

【名    称】編集用ツールバーの表示するプラグイン
【作 成 者】Takuchan 
【Virsion 】0.2.0
【作 成 日】2005/07/10
【動作 Ver】PukiWiki 1.4.5_1 でのみ動作確認
【License 】GPL v2 or (at your option) any later version
【備    考】attachref.inc.phpが入って居るとさらに幸せかもしれません

PukiWiki Plus!さんのソース(lib/html.php)を元に
Original Copyright.
PukiWiki - Yet another WikiWikiWeb clone.
$Id: html.php,v 1.36.14 2005/05/16 13:25:43 miko Exp $
Copyright (C)
  2005      Customized/Patched by Miko.Hoshina
  2002-2005 PukiWiki Developers Team
  2001-2002 Originally written by yu-ji
License: GPL v2 or (at your option) any later version
追記:2005年7月27日(水)
PukiWiki Plus!のみこさまからのトラックバックを見たところ、入力ヘルパーの本家はこちら↓のようです。
失礼しました(^^; Posted by Takuchan at 2005年07月11日 01:38 | トラックバック(2)

はじめまして。
PukiWikiを地域サイトで使ってます。
さっそくトップページに組み込みました!

組み込むときに、フェイスマークがうまく変換されなかったのですが、
少し調整したら、うまくいくようになりました。

Posted by: wikoma at 2005年07月16日 05:52

ふーむ,FireFox なら動くが IE だと動かん。
PukiWiki は 1.46。IE のバグかの?

Posted by: toshi at 2006年01月05日 15:19

手元では1.46+IE6で普通に動いています。
あくまでwrapperなのでもとのファイルの方が変更になった可能性はあります。

ちょっと見てみたところ、記事中のPukiWiki Plusさんのリンク先にある
pukiwiki-1.4.5plus-i18n-u2.tar.gz
の構成ファイルが私が使っているファイルと同じようなので、こちらからファイルを取り出して試してみてください。

Posted by: Takuchan at 2006年01月07日 14:01

pukiwiki 1.4.6で無事動きました。フェースマークの変換は一工夫必要みたいです。

Posted by: di at 2006年06月03日 06:16

PukiWiki 1.4.7 さくらサーバーでは
#inputtoolbarと記入しても
なにか横棒見たいのが出てだけで
その他は表示されず、できませんでした・・・。

pukiwiki-1.4.7plus-u2-i18nから
ファイルを取り出してコピーし、プラグインを
導入。

Posted by: at 2007年03月21日 19:41

コメント見逃してましたm(_ _)m

PukiWiki1.47 + pukiwiki-1.4.5plus-i18n-u2.tar.gzのファイル + このプラグイン + IE6で一応動作確認は取れています。

「横棒みたいな物が」と言うことはおそらく画像ファイルの置き場が違うと思われます。

1.4.7Plusのファイルで動作確認取る時間がないので、アレですが、PukiWikiPlusさんのダウンロードサイトのページの一番下から「pukiwiki-1.4.5plus-i18n-u2.tar.gz」がまだダウンロード可能ですので、こちらで再度試して頂ければと思います。

Posted by: Takuchan at 2007年04月02日 23:53

はじめまして。
編集画面とコメントバーの上にのみに表示させたいのですが、
やり方を教えていただけませんでしょうか?

Posted by: 感謝 at 2007年05月20日 09:33

/plugin/edit.inc.php や /plugin/comment.inc.php 辺りを編集すれば可能ですが、正直このプラグインとの相性は悪いです。

(このプラグインはあくまでページ編集時に埋め込むためのプラグインです)

上の全ページ掲載方法ではうまくないようでしたら、上記のプラグインに無理矢理埋め込むよりは素直にデフォルトでそう言う動作をするPukiWiki Plus!を導入する方が簡単だと思いますがいかがですか?

Posted by: Takuchan at 2007年05月20日 17:21

ih/inputhelper.js">

の部分を追加すると、IEではエラーが出るようになってしまいます。
(〜aaa/aaa/ddd)の用に階層が奥にいった時だけエラーが発生するようです。
なのでih/inputhelper.js>の部分を
httpから記入したのですが、それでもダメでした。
他にいじるところとかありますでしょうか?

Posted by: はどうけん at 2007年10月05日 15:20

エラーが出るときにIEでエラーになるページのソースを見ると14行目辺りでいかのようになっていますか?

上記のように「skin/ih/inputhelper.js」となっていなければ、そこに問題があると思います。
(通常はいくらWikiの階層が深くなっても上記の固定表示になるはずです)

あと↓のサイトのような改造をしていますとskinを絶対PATHにしないと動作しないと思います。
ttp://isolinear.info/wiki/index.php/server/PukiWiki/PATH_INFO%A4%F2%BB%C8%A4%A6.html

※このコメント欄ではスパム投稿防止のためURLらしき文字列は記載できません・・・

Posted by: Takuchan at 2007年10月05日 23:39

お返事ありがとうございます。
skin/inputhelper.jsとなっていました。
一応70行目付近に追加するのを絶対パスにしたのですが、機能しませんでした。

ちなみにFireFoxのエラーコンソールで見たら
〜skin/inputhelper.jsの
pukiwiki_initTexts();
の行でエラーが発生の用に出ていました。

それとhttp.../aaa/skin/inputhelper.js や
http.../aaa/bbb/skin/inputhelper.js
もエラーコンソールでエラー表示されていました。

Posted by: はどうけん at 2007年10月06日 02:48

絶対PATH指定の際は

src="ttp://あなたのURL/skin/ih/inputhelper.js">

としましたか?

おそらく他のプラグインか改造によって「」の内容が動的に書き換わっているのが原因な気がしますので、を省いて記載して下さい。

Posted by: Takuchan at 2007年10月06日 13:11

しまった、タグっぽい文字列は消えますね(^^;<このコメント欄

最後の行は、

おそらく他のプラグインか改造によって「<?php echo SKIN_DIR?>」の内容が動的に書き換わっているのが原因な気がしますので、<?php echo SKIN_DIR?>を省いて記載して下さい。

でした。

Posted by: Takuchan at 2007年10月06日 13:14

早いお返事ありがとうございます。

絶対パスにしてもエラーが出ちゃいますね。
ソースで.jsのURL見ても絶対パスになっていて、正常に動いてるようには見えるのですが。
エラーコンソールではやはりinputhelper.jsの最後の方のpukiwiki_initTexts();行、

後はgecko.jsなどの.jsファイルも相対パスでURLがおかしく表示されていました。

Posted by: はどうけん at 2007年10月06日 21:33

そこでエラーになると言うことは「inputhelper.js」の最後をいかの用に書き換えて下さい。

// Branch.
if (pukiwiki_WinIE)
{
document.write ('<scr'+'ipt type="text/javascr'+'ipt" src="ttp://あなたのURL/skin/ih/winie.js"></scr'+'ipt>');
}
else if (pukiwiki_Gecko)
{
document.write ('<scr'+'ipt type="text/javascr'+'ipt" src="ttp://あなたのURL/skin/ih/gecko.js"></scr'+'ipt>');
}
else
{
document.write ('<scr'+'ipt type="text/javascr'+'ipt" src="ttp://あなたのURL/skin/ih/other.js"></scr'+'ipt>');
}

これで治ると思われますがいかがですか?

Posted by: Takuchan at 2007年10月06日 23:29

ありがとうございます!
ついにエラーが無くなりました〜

長々とどうもありがとうございました。
これからもHPの運営頑張ってくださいー!

Posted by: はどうけん at 2007年10月07日 01:53

エラーが無くなって何よりです。

運営は適度にがんばります(^^;<むらっ気があるんでがんばるときとそうじゃないときが明白だったり

Posted by: Takuchan at 2007年10月07日 04:08

はじめまして。
pukiwikiをサークルの情報交換に使っています。
Wiki記法だと(心理的な)敷居が高いという人が多いのでinputtoolbarを導入してみました。
これで記述の敷居の高さはブログ並みになったかなぁと(^_^

お礼がてら、導入のときに一つつまづいたことをレポートします。
pukiwiki.skin.phpを上記を参考にして変更していたんですが、src="以下のihを適宜変えるのに気づかず(←素人並)1,2時間悩んでしまいました。

ここまでの説明の書き方なら、inputhelper.jsはSKIN_DIRに入れることになっているので、ihを除いちゃってもいいんじゃないでしょうか?
そうすれば基本的にコードのコピペで変更が済むので、僕のようなPHP初心者でも導入がわかりやすくなると思います。
(これから導入する人は、リンク先に気をつけてくださいね)

何にしても、無事導入ができました。
勝手に自己完結してますが、ありがとうございます。

Posted by: Shoji at 2008年01月05日 17:57

>ihを除いちゃってもいいんじゃないでしょうか?

確かにそうですね。
と言うことで修正しました。

(っていうか、最初に作ったときがih/以下に入れるの前提だったんですが、その後公開版にするまでに変えたのに、説明は昔のままでした(^^;)

Posted by: Takuchan at 2008年01月05日 18:43