2008年08月20日

extfile_importer.inc.php

プラグインを設置したページに外部CSSや外部JavaScriptをインポートするプラグインです。

ページのデザインテストなどであるページだけページのデザインを変えたいときやJavaScript関数を上書きしたいときなどにご利用下さい。

なお、インターネット上に公開するページで常設する使い方は、ページの見た目を乗っ取られる危険性などありますので、お勧めしません。
(このような環境で利用される場合はデザインなどの変更作業時のみアップロードして、終わり次第削除するようにしてください。)

ダウンロードはこちらから↓
Download - extfile_importer.inc.php

【使い方】
現在のバージョンでは拡張子がjsのファイルとcssのファイルしか読み込めません。
それぞれ以下のように利用します。

#extfile_importer(PATH/hoge.js);

#extfile_importer(PATH/foo.css);

続きを読む...

Posted by Takuchan at 22:33 | コメント (0) | トラックバック(0)

2008年02月29日

nicocale.inc.php 0.7.0リリース

ニコニコカレンダーをPukiWikiで作るためのプラグイン「nicocale.inc.php」の0.7.0をリリースしました。

リスト表示で指定のメンバーのみの表示が出来るようになりました。

最新版はこちらのエントリから入手してください。

思いつきで実装したので、テストが不十分です。

うまく動かなかったら一つ前のバージョンをご利用下さい。

Posted by Takuchan at 23:33 | コメント (0) | トラックバック(1)

2008年02月24日

nicocale.inc.php 0.6.0リリース

ニコニコカレンダーをPukiWikiで作るためのプラグイン「nicocale.inc.php」の0.6.0をリリースしました。

今まで入力と当日分の表示しか出来ませんでしたが、今回のバージョンアップで普通のニコニコカレンダーのように数日分の一覧表示が可能になりました。

最新版はこちらのエントリから入手してください。

なお、0.2.0から0.6.0にバージョン番号が飛んだのは開発率20%→60%だと思っていてください(笑)
一通り思いつくものを実装したら1.0.0に上げる予定ですが、現状でとりあえず必要な機能は載せたと思うので、次回バージョンアップがあるかどうかは怪しいかも知れません(^^;

ただ、ソースコードがかなりスパゲッティになってるので、着手するとしたら、その辺の整理をモチベーションにしてやるかと思います。

Posted by Takuchan at 19:55 | コメント (0) | トラックバック(0)

2008年02月10日

ref.inc.phpでThickBoxを使う

最近ブログなどで画像をクリックすると画面が暗くなってその上に対象の画像が表示される場合がありますが、そう言う機能を実現する一つの方法としてと言うのがあります。

ただ、これを何も考えずにPukiWikiに組み込んでみるといろいろと不具合があるので、今回それを何とかしてみました。

なお、対象はPukiWiki1.4.7なので、それ以外のバージョンの方は適宜読み替えてください。

また、導入するとThickBoxの仕様で全ての要素のpaddingとmarginのデフォルト値が0になりますので、CSSの状況によっては表示が破綻する可能性があります。

特に、<P>タグで空行が出来なくなるので、これが気になる場合は、事前にskin/pukiwiki.css.phpの最後の行以降に以下を追加しておいてください。

P {
 margin-bottom:1em;
}
さて導入方法ですが、以下の手順となります。
  1. PukiWiki対応ThickBoxの導入
  2. skin/pukiwiki.skin.phpへjsやcssの追加
  3. plugin/ref.inc.phpの変更
1.PukiWiki対応ThickBoxの導入

以下のファイルをダウンロードして入手してください。

  • 拙作のThickBox3.1 for PukiWiki をダウンロードして解凍
  • ThickBox 3.1から「loadingAnimation.gif」を入手
  • jQueryのサイトからjquery-1.2.3.min.jsをダウンロードして「jquery.js」にリネーム
    (Downloadの所に3つ並んでいるうちの、一番上のリンクです。同じバージョンが見つからない場合は最新版で試してみてください。
    また、別にMinified版でなくても動作するとは思いますが、ファイルサイズと実行速度からMinifiedがお勧めです)
続きを読む...

Posted by Takuchan at 22:10 | コメント (0) | トラックバック(0)

2008年01月23日

ローカルファイルにリンクを貼る

PukiWikiでローカルリンクを貼るための手法として「lib/make_link.php」の363行目の
(?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
を編集して
(?:(?:https?|ftp|news|file):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
にする方法が一般的ですが、リンクの貼り方を熟知してないとのような事になることが良くあります。

また、上記の方法で日本語ファイル名のローカルファイルに対してリンクを張るとFireFoxなどではセキュリティの設定を変えて使えるようにしても文字コードの問題で見れなかったりするので汎用性も低いです。

で、何とかならないかと考えたのがInterWikiNameを利用する方法です。

続きを読む...

Posted by Takuchan at 02:07 | コメント (8) | トラックバック(1)

2008年01月21日

nicocale.inc.php

ニコニコカレンダーっぽいものをPukiWikiで実現するためのプラグインです。

使い方次第では簡易的な行き先掲示板や在席確認表に使えるかも知れません。

ダウンロードはこちらから↓

※2010/03/25 document.allを使っていたところをdocument.getElementByIdに差し替えた

まず、導入方法ですが、上記のファイルをダウンロードして「nicocale.inc.php」と言う名前にリネームしてPukiWikiのpluginフォルダにアップロードしてください。

なお、デフォルトではEUCになっていますのでUTFで運用している方は、アップロードまでにUTF-8への文字コード変換が必要です。

また、入力値の凡例が必要になりますので、「:config/plugin/nicocale」と言う名称で以下の内容を記載した表を準備してください。

|表示するアイコンや顔文字|その説明|
↓例です
|  (^^) |普通|
|  (^_- |好調|
|  (^-^ |絶好調|
|  (..; |体調悪い|
|  (--; |イライラ|
|  (^^; |不調|
|  (T-T |絶不調|
|  (^Q^ |やる気無し|
なお、表の左側はPukiWikiの書式にしたがった物なら何でも大丈夫です。
(上記の例の場合はinputtoolbar.inc.phpを導入しているPukiWikiで画像アイコン置換の書式を利用して画像を表示します。
この機能を利用する場合は、顔文字の前に「全角スペース半角スペース」の順番で置かないとPukiWikiがうまくアイコン変換してくれません)

また、凡例の表の右側はテキストのみを想定していますので、テキスト以外(たとえばPukiWikiの書式)で内容が変換される物が記載されていると入力欄が化けますので注意してください。

なお、もっとニコニコカレンダーっぽくしたい場合は、好きな顔アイコンなどを自分のサーバに事前にアップロードしてそれを表示する設定にして利用してください。

続きを読む...

Posted by Takuchan at 01:03 | コメント (0) | トラックバック(0)

2008年01月07日

fusen.inc.phpの'&'処理を修正

以前のエントリでも紹介した便利な付箋プラグインの

ですが、このプラグイン一つ問題があって「&」を記載すると、次回編集時に
&amp;
に展開されて、それを保存して再編集すると
&amp;amp;
と言うふうにどんどんamp;が増えるバグがあります。

ただ、簡単に直せそうだったので、さっくり直してみました。

skin/fusen.jsの203行目の

fusen_getElement('edit_body').value = fusenObj[id].txt
fusen_getElement('edit_body').value = fusenObj[id].txt.replace(/\&amp;/g,'&');
に直して終了です。

非常に簡単な修正で効果抜群なのでお勧めです。

続きを読む...

Posted by Takuchan at 22:16 | コメント (0) | トラックバック(0)

2007年03月12日

添付ファイルがUPできなくなった

検索で少しでもヒットするようなタイトルにしてみました(笑)

と言うわけでPukiWikiでPHPのアップデート後や、レンタルサーバなんかを使っていてある日突然ファイル添付ができなくなったときの対応。

同様の問題が一応、公式サイトにも質問が出ていますが結局解決していないので新たにエントリを起こすことにしました。

で、まず症状は以下のような感じ。

  • 「○○にアップロードしました」と表示されるのに実際はアップロードされていない
  • attachフォルダを見てみるとファイルの実体は見あたらず、アップロードした時刻のlogファイル(中身は1だけ)が作成されている
  • 本体のソースは全然弄ってないのに発症
  • PHPを古めのバージョンから最近のバージョンへアップデートしたら発症
  • もしくはレンタルサーバなどでサーバメンテ後に急に発症
そして、これの原因ですが、ズバリsafe-mode時のopen_basedirの穴が未だにぽろぽろ修正されているため。

まぁ、どのぐらいの頻度で修正されているかは

辺りを見て頂くことにして、実際今回問題になったのはこの関数
  • 注意: move_uploaded_file() は セーフモード と open_basedir の両者を考慮しています。 しかしながら、アップロードされたファイルを移動する destination パスのみ制限が設けられます。 そこでは filename がそれらの制限に抵触する可能性があるためです。 move_uploaded_file() は PHP を通じてアップロードされたファイルのみを移動できるようにすることで この操作の安全性を保証しています。
注意書きにもあるように本来、宛先PATHのみ考慮されるはずなんですが、手元のPHP4.4.6では何故か元になるアップロードPATHもこれの範疇に入っています(苦笑)

続きを読む...

Posted by Takuchan at 01:35 | コメント (0) | トラックバック(0)

2006年04月30日

成分解析 plug-in

そろそろ賞味期限だと思う成分解析ソフトウェア(Clock氏作成)のPukiWiki plug-in版をGWのPHP自習課題として作成しました。

ご利用の際はファイル名の末尾から0.0.1.txtを取り除いてから自分のPukiWikiのpluginフォルダにアップロードしてください。

また、自分のPukiWikiのサイトからこのプラグインを使う場合は、分析結果を掲載したいサイトを編集して、任意の場所に

#seibunkaiseki(分析したい言葉)
と記入してください。

なお、ブロックプラグインなので、上記だけを書いた1行を用意するか、テーブルのセル一つ丸々に上記を書いた場合しか動作しません。

なお、コードはψ(プサイ)氏

をPHPで実装しただけのモノで、一応ソート順まで含めてオリジナルと完全互換となっています。

また、公開に当たり

にある難読化処理をを用いて行っています。

現状の公開方法で問題あるようでしたらご連絡下さい<関係各位

続きを読む...

Posted by Takuchan at 17:20 | コメント (4) | トラックバック(0)

2006年04月17日

tracker_listで表示されない

といっても、tracker_plus_list.inc.phpプラグインの方ですが。

事の起こりはtracker_plusで管理しているページ内でcommentプラグインで何行か記述すると解析に失敗するらしくて、tracker_plus_listの方で空っぽのページとして表示されます。

もちろんコメントを削れば表示されるんですが、そんなアホな方法はないので、いろいろとテンプレートの方を弄ってみたのですが、それもNG。

commentを置き換えてmemoプラグインなどにすれば良さそうですが、既に100以上あるページを全部書き換えるのも大変なんでこれも無し。

で、しょうがないのでネットで検索していたのですが、それっぽい記事を発見。

で、慌ててソースの方を覗いたのですが、
// "/page"の内容が長すぎるとpreg_match()が失敗するバグ(?)があるので
// "//////////"までをマッチ対象とさせる
// ( see http://dex.qp.land.to/pukiwiki.php, Top/Memo/Wikiメモ)
とのことで、既に織り込み済みでした

どうもこの対策では「//////////」があるところまでが解析対象になるようなので、該当ページのcommentの前に「//////////」を置いて見ましたがなんか効果無し。

あれっ、と思ってテンプレートの方においてみたらちゃんと動きました。

ということで、trackerでページの長くなりそうな前には「//////////」をおいておくと良いようです。

なお、tracker_plus_listはtracker_listの追加修正版なので、ぞちらでも上記の対策は有効です

続きを読む...

Posted by Takuchan at 01:55 | コメント (0) | トラックバック(0)

その他のエントリ
PukiWIki1.4.6への入れ替え 2005年11月20日 03:40

PukiWiki/Download/1.4.6 - PukiWiki-officialPukiWiki 1.4.6: 2005/10/19ファイルリリース
2005/10/31 リリースということで、いろいろなイベントを経てPukiWIkiの最新版がリリースされました。 変更点は上記サイトを見てもらうことにして、とりあえず初期不良もなさそうだし入れ替える時間も出来たんで、手元のサイ

PukiWiki.orz 2005年09月09日 23:57

スラッシュドット ジャパン | pukiwiki.org存亡の危機現在、sedo.co.ukというドメインオークションで売りに出されています。これは、本来ドメインの更新を忘れ、猶予期間の間も気がつかず、 resumeになって初めて気がつき、すでに更新が出来ない状態でした。 30日後の放出に向けて、ドメイン予約サイトで予約を入れておいた

inputtoolbar.inc.php 2005年07月11日 01:38

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

PukiWikiで添付FileによるXSS 2005年05月20日 01:53

PukiWiki/Errata - PukiWiki.orgPukiWikiのattachプラグイン(ファイル添付機能)を利用したXSS(クロスサイトスクリプティング)が可能であることが解りました。XSSを通じて: 第三者がアップロードした任意のスクリプトを(添付したそのWikiサイトの権限で、閲覧者のPCにおいて)実行する可能性があります。また、それによって:

fusen.ini.php 2005年04月17日 01:30

そう言えば下でもちらっと触れましたが自作プラグイン/fusen.inc.php - PukiWiki.orgが便利です。 これは以前もちょっと紹介したwema - 付箋指向の多目的ツールを元にしたPukiWikiプラグインで、Plaguinを入れてページ中にて「#fusen」と書くことで、そのページないで付箋が自由に使えるようになります。 これは、wemaの

PukiWiki 1.4.5_1リリース 2005年02月22日 12:02

FrontPage - PukiWiki.orgPukiWiki 1.4.5_1 リリース -- (2005-02-21) † 1.4系列の最新版 PukiWiki 1.4.5_1 がリリースされました。これは 1.4.5 リリースの問題に対する修正を含んだマイナーアップデートです。というわけでバグフィックス版登場です。 1.4.5のtarボールとの間でdiffを取ってみると75KB強でその大部分がc

PukiWIki1.4.5への入れ替え 2005年02月05日 17:23

こっちでも触れてなおかつhenoheno氏からコメントまでいただいてしまいましたが、今一度自分的PukiWiki入れ替え方なんかをまとめてみます。 とりあえず、私の入れ替え方針としては、極力正式版に近い状態を維持手抜きをして穴を残して攻撃されるのが最悪のシナリオ他サイトで便利なHackが掲載されたときに簡単に適用できる

PukiWiki1.4.5リリース 2005年02月03日 11:38

PukiWiki/ダウンロード/1.4.5 - PukiWiki.orgPukiWiki 1.4.5 2005/02/01 リリース 編集の禁止、推奨されない機能の利用禁止、上部/下部のナビゲーションリンクの表示切替えを始めとする、大がかりな機能制限が可能になりました。個人あるいはチーム限定のCMSとして、あるいはオンラインドキュメントのためのツールとし

graphviz.inc.php 2005年01月21日 15:43

matsuda氏作のPukiWiki用プラグイン「graphviz.inc.php」を手元のRedHat9上で動作しているPukiWikiに入れた時のお話。 まず、プラグイン本体はターミナル経由でソースをviでコピペしてさっくり終了。 で、問題のgraphvizのインストールですが、面倒だったのとapt-getを入れてあったのでapt-get source graphvizでソースを

Pukiwiki1.4.4+Apache1.3.33 2004年12月17日 14:05

+PHP 4.3.10 です(笑) いや、全部入れるとタイトル長くて気持ち悪かったので。 さて、PHP: Hypertext PreprocessorPHP 4.3.10 & 5.0.3 released!でスラッシュドット ジャパン | PHP 4.3.10, 5.0.3リリース基本的にメンテナンスリリースとはされていますが、双方のバージョン共に複数の重要なセキュリティ問題に対する対処

Sleipnir用リンク作成Script(2) 2004年12月04日 17:04

こちらで作成したPukiWiki用のリンクを作成するスクリプトですが、さすがに「スクリプトによる貼り付け処理の許可」を有効にしているのに自分で耐えられなくなったのでもうちょっとまともな動作をするスクリプトを作成しました。 var pnir; var document; var id; pnir = new ActiveXObject("Sleipnir.API"); id

Colorプラグインに重大な脆弱性 2004年11月25日 19:22

PukiWiki/Errata - PukiWiki.orgPukiWiki 1.4.x に含まれている color プラグイン (r1.5-1.9まで) に XSS脆弱性が含まれていることがわかりました。PukiWiki 1.4.x を運用されている方は速やかにcolorプラグインをアップデートして下さい。これまでに配布された1.4.4以前のバージョンのPukiWikiに深刻な脆弱性が発見されま

閲覧制限弱々 2004年10月31日 09:52

わりと重要な用途で使っているPukiWikiでちょっと限定したユーザーにしか見せられない情報を掲載するに辺り、閲覧制限をかけることにしました。 で、閲覧制限がどれぐらいの信頼性なのかちょっと調べたところBugTrack/657 - PukiWiki閲覧できないページが編集できてしまうBugTrack/598 - PukiWiki雛形とするページを読むこ

1.4.3→1.4.4=地雷入り 2004年09月16日 21:25

最近忙しくてチェックしてなかったのですがFrontPage - PukiWiki.orgPukiWiki 1.4.4がリリースされました -- (2004-09-04) ということで1.4.4がリリースされました。 PukiWikiのアップデートには前回えらく苦労させられたので、今回は最初っからpatchを使ってひとまず自分専用の情報まとめ用Wikiをアップデートしてみるこ

演奏ボタン 2004年05月22日 02:11

AH-K3001V用にPukiWikiに自分専用着メロサイト作ろうと思ったんですが、midをページに添付してそのファイルへのリンクをクリックすると、保存するかどうか聴いてくるだけでそのままでは演奏出来ません。
なのでJavaScriptを利用した演奏ボタンを作成してみました。 以下の赤字の項目を追加してください PukiWiki 1.4.3

雛形リストからページを排除 2004年04月30日 16:58

こっちでやった作業の続き 一覧から無事「カレンダー/」で始まるページを除外出来たと喜んでいたら、今度はページ新規作成時のテンプレートリストにごっそり表示されている事を発見(苦笑) これも何とかしようとソースをいじっていたらやっと変更すべき場所を見つけました。 変更するのはpukiwikiの本体と同じディレクト

一覧のみからページを排除 2004年04月29日 08:15

Pukiwikiでcalendar2プラグインを使って予定の掲示をしているのですが、3ヶ月も運用していると一覧で見たときにカレンダーで始まるページだらけになって見にくい限りになります。 かといってpukiwiki.ini.phpの設定で「一覧・更新一覧に含めないページ名」に含めると今度はカレンダーの更新が新着の方に出なくて、使用する

添付ファイルの文字化け対策 2004年04月26日 10:38

続・質問箱/67 - PukiWiki.org日本語ファイルをダウンロードすると文字化け 上記の問題結構重要なので対策してみました。 変更はplugin/attach.inc.phpに以下のパッチを当てるだけです。 *** attach.inc.php.old Sun Apr 25 23:11:10 2004 --- attach.inc.php Sun Apr 25 23:13:18 2004 *************** *** 622,628 ****

1.4.3へのアップデート 2004年04月14日 15:03

気が付いたらPukiwiki1.4.3が出ていたのでPukiWiki1.4.2からバージョンアップして見ることにしました。 とりあえずFULLは必要なかったので「1.4.2から変更のあったファイルのみ」をダウンロードして展開してみたところ ・・・なんで設定ファイル(pukiwiki.ini.php)まで含まれてますか(;´д`)ノ どうにも設定項目が増え

Sleipnir用リンク作成Script 2004年04月11日 00:02

MovableType+bookmarklet+Sleipnirで快適にリンクを張るのに慣れてしまうと、PukiWikiで手動でリンクを作成する際にストレスが溜まってしょうがないので、PukiWiki用のSleipnirスクリプトを作成してみました。 var pnir; var document; var id; pnir = new ActiveXObject("Sleipnir.API"); id = pnir.GetDocumen

trackerでBracketName 2004年04月04日 12:01

trackerプラグインで入力した投稿者名がブランケットネームになるのをどうやったら抑止出来るのだろうとしばらく悩んでソースまでみてやっとこ気が付きました。 Pukiwikiで「:config/plugin/tracker/ページ名」にアクセスして「fields」の「形式」が「page」になっているとブランケットネームで表示されると言うことに・・

プラグインの修正版が 2004年03月09日 18:38

先月にプラグインの修正版が出ていたようなので、手元の環境も差し替えてみました。:news - PukiWiki.orgPukiWiki 1.4系のbackupプラグインにタグの不整合 -- (2004-02-17)CVS log for pukiwiki/pukiwiki/plugin/source.inc.php閲覧認証をチェック (修正)後者のsource.inc.phpのバグはPukiwikiの認証を使っている場合はセキ

Refererを隠す 2004年02月24日 15:06

PukiWikiを閉じた環境で運用していると、各ページに結構重要な情報を載せることが多くなると思いますが、ついうっかり「ネットワーク機器設定一覧」なんて言うページを作って、そんなページから外部にリンクを張ってしまうとリファラにばっちり残ってしまい攻撃の際の目処になりかねません。 そこでRefererでページ名称が

ページ一覧で日本語分類 2004年02月23日 12:31

手元で使っているWikiもエントリが増えてきてきました。
で、ページの一覧を開くと「日本語」の項目にごっそりと溜まって見にくい事この上ないので、日本語分類することにしました。 で、やろうと思ったんですが、やり方が判らない・・・
あんまりやってる人見かけないので、てっきりどこか改造するのかと思っ

自動traceback 2004年02月08日 02:35

Pukiwikiで// TrackBack機能を使用する
$trackback = 0;を1にするとリンクしたURLがtracebackに対応していると自動でtraceback送ります。 それ自体は良いんですが、これってもしかして編集するたんびに送ってたりとかしませんか?<このまえ2件連続で来ていたんで おまけにTracebackもらったところには必ず見に行っ

最初のxmlの前に空行 2004年02月06日 10:36

pukiwikiの外部プラグインのlistbox2ですが、どうもこのプラグインを呼び出したページだけ、htmlの先頭に空行が入るという謎な状態になりました。 最初はプラグインのせいかと思っていろいろと見回してみたんですが、どうもどこにも改行入れて居る様子もないし、他のブロック型プラグインではそんな状況ないしと思っていろ

tracker 2004年02月01日 13:59

内部向けにPukiWikiでドキュメントを書きまくって居るんですが、FAQコーナーを作ろうと思ってtrackerプラグインを使おうと思ったんですが:config/plugin/tracker/〜っていうファイルがどこなのかさっぱり判らなくて悩むこと30分 ネットをさまよっていてこんなページを発見自問自答【pukiwiki】/2 - soanWikiここにある、「