ANA-NOTE管理人 ToDo
ANA-NOTEのCGIを運営管理する管理人「IO」が今後行う予定、既に行った事を書き記していきます(主にCGIの修正等による機能変更追加)。
見出しに取り消し線が引かれているものは既に行われたものです (基本的には「今後予定」以外は全て既に行われたものです)。上から最新順となっています。
このページ以前(2006年以前)のものは、こちらにあります。
- To Do
- 今後予定!?
- 2006/07/19
- 2006/07/18
- 2006/07/17
- 2006/07/15
- 2006/07/14
- 2006/07/13
- 2006/06/22
- 2006/06/21
- 2006/06/18
- 2006/06/16
- オリジナルプラグインをext_io.plに移動
- 指定URLのサムネイル画像を表示するプラグインを移植
- includeプラグインを修正
- lat_includeプラグインを追加
- ori_includeプラグイン、oritatamiプラグイン、div_sプラグイン、div_eプラグインを追加
- txtareaプラグインを修正、textareaプラグインに
- 2006/06/10
- 2006/06/09
- 2006/06/08
- 検索サイトからページ編集に直接来た場合はページ閲覧に移動するようにedit.cgiを修正
- 一部ページの表示パスワードロックを設定出来るようにwiki.cgiを修正
- テーブルにカラム属性指定を追加する拡張プラグイン(_ex_table.pl)にフォントサイズ指定機能を追加
- 2006/06/07
- 2006/06/03
- トップメニューの「一覧」を更新順と名前順の二つにした
- トップメニューにアイコン表示を追加
- faceプラグインに画像を追加
- lastmodified_pプラグインを修正し整理
- latestプラグインを修正
- 2006/05/31
- 禁止IPアクセス時の「Not Found」ページに自動ジャンプを設定
- ページ削除時バックアップ機能を追加
- Wiki変更時お知らせテキスト保存機能を追加
- 「BugTrack-plugin/270」テーブルにカラム属性指定を追加するプラグインをバージョンアップ
- 2006/05/27
- edit2.cgiを修正
- 漢数字変換ユーティリティ関数を追加
- wiki.cgi、edit.cgi、edit2.cgiに禁止語句チェック機能、禁止IPチェック機能を追加
- bbsプラグインとcommentプラグインの禁止語句チェック機能を修正
- 「SandBox」(実際は前後括弧付き)を一覧に載せないように修正
- 2006/05/25
- 2006/05/22
- 2006/05/20
- wiki.cgiに禁止IPチェック機能を追加
- commentプラグイン(コメントフォーム)に禁止語句チェック機能を追加
- オリジナルコメントフォーム(掲示板)を追加(スパム対策)
- common.plにオリジナルユーティリティ関数を追加
- 2006/05/17
- 2006/05/14
- 質問、意見、希望等ページ内容にコメント
To Do
今後予定!?
生成するタグにidとclassを使っているが、本来idはページ内で重複してはならないようなので、CGIを修正して、なるべくidをclassに置き換えていく- JavaScriptに「getElementsByClass」って無いのか。そうなるとダメだな。これについてはとりあえず保留で(^^;)
- 幾つかのCSSテーマに表示問題があるので、その修正。新しいCSSテーマの追加。このあたりとか
- 編集リンクをJavaScript化(GoogleやYahooのボット対策)
- Wikiから一部画像処理を切り離し、スピードアップ、サーバ不可軽減させるためのhomepage内アップ用CGI設置、アップファイル専用表示プラグインを作成
- 参考の一つ 直リンク画像表示プラグイン
- Wikipediaにあるような、本(ISBN)検索リンクを生成するプラグイン (「book ISBNコード,本タイトル」で表記すると生成・ISBNコードが指定されていればそちらで検索、タイトルのみ指定されていればタイトルで検索するように作る)
- InterWiki!?
- とはちょっと違うような気もするが(^^;)、既に実装しているitmsリンク同様のもの。用意するのは
Google,GoogleMap,Amazon,Wikipedia,関心空間,はてな,goo辞書といったところか
- とはちょっと違うような気もするが(^^;)、既に実装しているitmsリンク同様のもの。用意するのは
RSSフィードリーダー- 個人サイトやニュースサイト等のRSSを読む機能が欲しいなと思って調べていたら(これまでもHPで何度か試して実際設置した事もあるけれど)、そもそもFSWikiにはその機能が備わっていると分かった。で、某所で試させて貰ったら楽に表示出来ていいなと。Lite版にその機能を移植出来るか、スクリプトを見たり、修正して試しに設置してみたが、色々と難点があって大変なので諦めた(^^;)
- そもそもNiftyのCGIサーバはSOCKET等が使えないし、FLASHも外部サーバとのやりとりが制限されているので、私の環境だと無理そう・・・
- しょうがないので、RSSを指定すると表示してくれるサービス、ニュース等を表示してくれるサービスをIFRAMEプラグインで表示させるしかない
- 「あれこれポップアップ」の導入
- FSWikiのページを見てたら偶々見つけ、結構面白そうで実装も可能と思うが(ANA-NOTEで使うには、イメージを表示させるのにあたって、専用のアップロードフォームとアップロード場所を用意する必要がある)、実際行うかはまだ未決定
- フォーム
- 色々用意する予定
- よくある「見たよ」「投票」ボタンみたいなのは需要あるんだろうか。あるなら考えてみるけれど
- FSWikiのVoteプラグイン、見てみたが簡易なスクリプトのようなので、する気があれば移植出来るかも
- New、Editマークに日時をプラスする機能
- 何気に難しそうなんだけど、出来るかなぁ
- COMMENT、BBS系はincludeを使う事で、トップメニューの「編集」から直接編集しづらくさせられるので、必要なところはそうする
- download.cgiの修正 (添付可能ファイルのユーザー限定的追加、使い勝手が上がるよう、一部ファイルの添付方法の変更、ただしセキュリティ面には配慮)
- 指針になる使い方関連、困った時関連の説明拡充
- 18禁コンテンツ用対策
- 18禁コンテンツ用インクルードページ (18歳以上かダイアログで尋ねる)
- その他、CGI修正
- 18禁対策自体はやれば何とか出来るかもしれないが、もう一つ別に18禁Wikiを設置した方が早いし、面倒がないなと思ったので、もしやるならそうする
2006/07/19
インクルードするプラグイン(include、lat_include、ori_include、menuin)を修正
- comment掲示板が上手く動かない事が起き、調べたところ、インクルードした際の問題と判明。インクルード時にトリムする方式をこれまでのtrim_euc(ext_naoto.pl)から、独自の方法(元ソースから指定バイトで切る)にした。参考になるサイトを見つけて、バイト指定でも全角文字もちゃんと文字化けせず切れるようになっている。これに伴って、最大設定値も変更した
- ついでにインクルードする際に問題化するプラグイン、インクルードの量が多くなった際に問題化するプラグイン(例えばincludeしたページ中のincludeプラグイン等)を無効化するようにした(これまでも一応してはいたが、再度見直して)
2006/07/18
wikipediaプラグインを修正
- wikipediaプラグインの検索ワードを「random」にすると、Gacha-pediaというリンク表示(Wikipediaの「おまかせ表示」へのリンク・Wikipediaの中からランダムで表示)となるようにした
テキストファイルブラウザ表示用CGIを修正
- Wiki変更時お知らせ機能(管理者のみ利用可能)での、テキストファイルブラウザ表示CGIを修正した。クエリーでディレクトリを指定出来るようにして、他のディレクトリのテキスト(例えばsign用テキスト等)を見るためにも使えるようにした(といっても、この機能の使い道は今のところ用意していない・直接ブラウザのアドレスでクエリー指定して使う位)。パスファイル用ディレクトリ等、一部のディレクトリは危険性排除から見られないようにしてある
- 理由が分からないエラーが連発して苦労、一部放置(^^;)。何にしても管理者以外の利用者は使う事はないので、意識する必要はない
オリジナルコメントフォーム(encode)を修正
- commentプラグインの「encode」はUTF-8でURLエンコードするだけだったが、EUCでURLエンコード、EUCでURLデコードもプルダウンメニューから選べるようにした
2006/07/17
ref_textプラグインを修正
- ref_textは添付テキストファイルを整形済テキスト(pre)として表示出来るが、Wiki内に普通に表示出来る形なら編集不可のテキストとして使える、Wiki内に自然な形で置けると思い、プラグインを修正、第三の引数でinlineかpreを設定出来るようにした(inline以外は指定しなくても自動的にpreに)
- 例えば、パス設定したページに添付テキスト(文)を用意して、別ページにてref_textでそれを表示させれば、その部分の文についてはどうにも編集出来ないようにする事も出来る
YouTubeプラグインを移植追加
- BugTrack-plugin/300「YouTube動画を埋め込むプラグイン」をFSWikiLiteで使える形にして移植した(ext_io.pl内に)
- 「youtube id,横幅,縦幅」で指定(元はsplit(/ /, shift)でスペース区切りする形だった・これと配列変数を組み合わせて他に応用出来るかも)
フォームを使っているプラグイン等を修正
- フォームを使っているプラグインで、脆弱性を無くすために幾つかのinputにmaxlength(文字数制限)を付けた。またファイル名を指定するプラグインでも同様に文字数制限を付けた
signプラグイン、sign_commentプラグインを修正
- sign_commentプラグインでのファイル名指定と、登録出来る名前に文字数制限を付けた。sign_commentプラグインで登録した文字に含まれるHTMLがそのまま反映されて表示されるようになっていて、それでは危険なので、signプラグインを修正してHTMLを無効化するようにした
2006/07/15
signプラグイン、sign_commentプラグイン、stampプラグイン、stamp_listプラグインを追加、それに伴いsetup.pl等も修正
- 何かした時に自分の名を記す「署名」という概念がある。開かれたWikiにおける署名の扱いは難しい。誰でも作成や編集が出来て、その点から誰か一人に属するものではないし、署名が重しとなってWikiの動きを重くしてしまうかもしれない
- ただ、管理人の考えとしては、最初にページを作った人は尊重(とまではいかなくとも記録位は)されてもいいのではと。最初以外でも、掲示板に投稿する際にハンドル名を書くのが普通なように、「気軽」というスタンスで書いたり編集した際に署名を付記する、見た際に名前を書く(足跡)という行為は誰かにとって損する事ではないはず。受け取る側も名前が書いてあるからと怖じ気づかず、Wikiは署名によって縛られる事はけしてないと、平然としていればいい
- Wikiで署名を付けるプラグインは既に存在する(FSWikiにも)。しかしFSWikiLiteでは署名プラグインは無く、ログイン機能も持たないので、独自の視点から何らかの方法によって実現しようと考えた
- そもそもどうして急に署名プラグインを作りたくなったかというと、カテゴリー(プラグインの動き)を見て、これを応用すれば面白い使い方が出来そうだなと思ったから。カテゴリープラグインのように、ページに署名を表示する簡単なプラグインを書く。そして、リストCGIを呼び出すと、署名が入ったページがリストアップされる(勿論リンク付き)という風に
- これがどうして面白いかというと、例えばある人が書いた(携わった)ものを見たいという欲求が生まれた時に、署名が使われていれば、この仕組みでその人の署名が入ったページをリストアップする事が出来る。検索でも勿論出来る事ではあるけれど、こちらの方が楽だし、はっきりしている
- 書き手だけではなく、読み手もページ内に読んだよという足跡的な署名を入れて良い(書き手と読み手の署名には違いを持たせ)。すると、作った側からすると反応が見られて良いし、ある人はどういうページを見ているのかという事も分かるし、署名を書いた本人としても使い方次第では手軽なブックマークとなる
- やっている事はカテゴリープラグインと全く同様だが、考え方としては違うものになるだろう
- 署名機能を実現するにあたり、更に幾つか考えた。まず簡単に署名出来るようにする事。難しい、面倒となるとせっかく作っても使われないので。一番簡単なのはcommentフォーム形式で入力出来る事だろう。名前を入力するだけなら面倒という事はないはず。署名を実現するプラグインの構文も出来る限りシンプルな方がいい
- 署名に意味を持たせる事。人と署名が繋がらなければ、署名の意味は薄れてしまう。しかし、これがなかなか難しい。なぜならWikiでは誰でも簡単に書いたものを改変出来てしまうから。クッキー、IPとログイン機能を使い、特定する事は可能だろうがFSWikiLiteにログイン機能は無く、IPもむやみやたらに晒すのはどうかと思う(個人的には知られても別に困りはしないが)。Wikipediaではログインによって署名が使われているが、オープンなWikiでは署名機能は改変される可能性を分かった上で使われている
- そういう事を踏まえつつ、そもそも自分が署名機能を付けようと思った動機を考えると、改変の可能性については深く考えなくてもいいかなという結論に達した。荒らす者が万が一現れたら、それに対する対処も十分用意してあるのだし
- しかし、当方のWikiでも改変させない署名方法が全く無いわけではない。一つは閲覧、編集パスをかけたページに署名用のフォームを設置して、それをインクルードさせて使う方法。もう一つは、署名をWikiでなく管理人以外手を出せないファイルに記して、それをWiki内で表示させるようにする方法。パスをかけたページを使う方法は面倒そうなので却下、ファイルに記す方法は出来そうだしやってもいいなと思ったが、そうなるとカテゴリープラグインから派生した考えとは違うものになってしまう
- このような事を考えた末に、結局色々作ってみて、その使われ方等みて、使い分けられるようなら使い分け、不必要なら放置すればいいやと(^^;)という結論に達した
- というわけで、Sign系、Stamp系と、署名をページに付けられる二つの流れを用意してみた。被るところもあるが、使い勝手が違うので、使い分けできるのではないかなと思っている。詳しくはヘルプを見て貰うとして(まだ書いてないです(^^;))、簡単に説明
- Stamp系は、カテゴリープラグインを応用したもので、プラグイン構文をWiki内に書く事で、署名とリンクが貼れる。署名(リンク)をクリックすると、その署名が付いたページをリストアップ出来、全ページの書名を確かめる事も可能
- 編集含め書き手を表すWriter用署名と読み手を表すReader用署名があって、画面上では表示させない事も可能。Stampを簡単に貼れるcommentフォームもあり。改変可能という事もあって署名が人を確実に表す部分は弱いが、それはそれとして、各人が使い勝手を上げるために気軽に使えばいいと思う
- Sign系は、プラグイン構文をWiki内に書く事で署名登録用のフォームを設置出来、そのフォームで登録した名前は専用のファイルに保存される。ファイルに書かれたものは別のプラグインでWiki内に表示出来る(区切られて横に連なった形)。管理人以外ファイルを直接いじれないので(ファイルをページ添付する事も考えたが、この場合改変されては意味がないと思い不採用)、署名の意味はあると思う
- 名前だけでは署名者を確実に特定出来るとはいえないので、トリップも任意に入力出来るようにした。スタンプと違って、こちらは足跡的な意味でもより使いやすく出来るよう、名無しでの登録も出来るようになっている(名前欄が全くの空欄の場合、登録した人は総数で幾つかという数に加えられる)
- こちらはStamp系と違って書き手用、読み手用という区別はなく、設置の仕方で使い分ける。他のcommentフォーム同様、ページ内に幾つでも設置可能なので、例えば、「気に入ったならクリック」「いまいちと思ったならクリック」みたいな使い方も出来ると思う
- 以下の事も考えたが、これはとりあえず採用見送り
- 初回ページ作成時に出る編集画面に署名欄、パスフレーズ欄を用意。それらを入力して保存すると、署名、パスフレーズを記したテキストファイル(ファイル名はページ名と同じ)を専用ディレクトリ(sign)に保存。ページが閲覧される(開かれる)際、signディレクトリにページ名と同じファイルがあれば(署名が作られていれば)、署名と暗号化したパスフレーズ(トリップ)をフッタ(Made by ANA-NOTEの横)に表示する
2006/07/14
iframeプラグインを修正、それに伴いsetup.pl等も修正
- これまでIFRAMEを実現するiframeプラグインは、ファイルタイプ(html、cgi)を指定して、それによってIOのサーバURLである「homepage3.nifty.com/%7Eio/」「hpcgi3.nifty.com/%7Eio/」を切り替える方式だったが、まがりなりにも私の改造版をダウン出来る形にした事もあり、自分の今後の利用を考えた上でも、色々な環境で使えるものに切り替えようかなと思った
- それと、どんなURLでもiframe出来るのはさすがに危険だが、間違いないサイトならiframeして利用するのも便利なので(といっても勿論許可得ず他人のサイトをiframeするのは問題あり)、サイトを加えていく事への対応も出来るといいなと
- そこで、ext_io.plのiframeプラグインを修正し、「iframe.txt」というファイルに許可URL(全てである必要は無く、先頭から任意のディレクトリまでで良い)を一行ずつ追加して、iframeプラグインの引数で指定したURLが「iframe.txt」の中に含まれるならiframe出来るようにした。新たにURLを追加したいなら、その「iframe.txt」を書き換えるだけで良い
- 私の場合は「homepage3.nifty.com/%7Eio/」「hpcgi3.nifty.com/%7Eio/」(実際はhttp付き)を「iframe.txt」に書く事で、そのアドレスの付いた既存ホームページやCGI等をこれまでのようにWikiにIFRAME出来る。Wiki CGI自体をIFRAMEすると問題ありなので、Wiki CGIのアドレスはIFRAME出来ないようになっている
- この修正によって、構文の構造が変わった(引数が一つ減った)。詳しくはANA-NOTE Help (拡張プラグイン編2)をご覧下さい
2006/07/13
oritatamiプラグインを修正、それに伴いcommon.pl等も修正
- oritatamiプラグインはJavaScriptを利用して折り畳み機能を実現するが、これまでの作りはoritatamiプラグインを設置するとその場所毎にJavaScriptが埋め込まれるようになっていて、そのせいか上手く動かなかったり、htmlソースが見づらかったりした
- なので、JavaScriptは外部JavaScriptファイル化して、common.plを修正してページの<head>内で読み込むようにし、oritatamiプラグインは単にスイッチとなるリンクだけになるようにした。とりあえず試した感じでは上手くいったような
2006/06/22
calendar.plプラグインを修正
- calendar.plプラグインを修正、構文を変更し、カレンダーの表示位置指定(左、中央、右)が出来るようにした (スクリプトを見たら、alignは用意されていたがコメントアウトとなっていて、機能として使えるところまでは作られてなかったので、自分で追加改造した)
- 以前のプラグイン構文は「calendar カレンダ名,テンプレートとなるページ名,表示月指定」で、テンプレート機能は当Wikiでは使ってなくて、使えるようにするか再度検討してみたがやはりいらないと結論づけ、テンプレートの部分をコメントアウトし、構文を「calendar カレンダ名,表示月指定,表示位置(align)」とした
- 今回直すにあたってスクリプトを見てみたら、カレンダー中で「項目がある日」や「今日」にclassが設定されていて、CSSでそれらの設定をすれば、分かりやすく色づけしたり等出来る事が分かったので、CSSテーマの一部を修正してみた
- 以前のプラグイン構文は「calendar カレンダ名,テンプレートとなるページ名,表示月指定」で、テンプレート機能は当Wikiでは使ってなくて、使えるようにするか再度検討してみたがやはりいらないと結論づけ、テンプレートの部分をコメントアウトし、構文を「calendar カレンダ名,表示月指定,表示位置(align)」とした
新着ページ機能を追加
- 各更新リストやANA-NOTE更新ページ等を見れば、新たに追加されたページも含め、最近変化があったページをチェック出来るが、例えばブログ等では「新たに追加されたページ(エントリー)のみ」を最新順に並べていて、見る側からすればそれはそれで便利なのかもと思った
- そこでcommon.plを改造し、Wiki変更時お知らせ機能と同じ要領で、ページの新規作成時に、新規ページのタイトル、リンク、作成日時、更新日時、トリムしたページ内容(インクルード)を自動で「ANA-NOTE新着ページ」というページに追加していくようにした。新しい順で並び、設置したoutlineプラグインによって各タイトルに飛べるようにもしてある
2006/06/21
category_listプラグインを修正
- カテゴリー分けされたリストはcore.pl内のcategory_listプラグインによって、もしくはcategory.cgiがcategory_listプラグインを呼び出す事によって表示させているが、そのソースを見ると、いちいち全てのページの内容を調べて、カテゴライズするプラグイン(categoryプラグイン)が存在するかどうかでチェック、リスト化しているらしい
- そうなると、ページやページ内容が増えていけばチェックに時間がかかり、カテゴリー表示までに結構な時間がかかる事になる (今でも単にページを表示するより少し遅い)
- それを踏まえて、category_listプラグインを修正し、category_listプラグイン(の全カテゴリーリスト化)が呼び出された際に、同時にWikiページ(カテゴリー(cache)?)としても生成してしまい、キャッシュページとして利用出来るようにした。生成されたページ内トップにはoutlineプラグインを置き、見たいカテゴリーにさっと飛べるようにもしてある
- category_listプラグインが呼び出されなければ生成されないので、キャッシュページの内容は最新の状態でない可能性もあるが、休みなく新しいページが作られたりカテゴライズされるわけでもないし、たまに呼び出して生成すれば十分使えるだろう
ページ検索を修正
- FSWikiLiteはFSWikiに比べて機能が劣っている事があるが、検索もその一つ。FSWikiLiteの検索は2ワード以上の「and」「or」検索はなくて1ワードのみで、検索結果はページ名だけを表示となっている
- 「and」「or」はともかく、結果がページ名だけしか表示されないのでは検索として使いやすいとは言えないので、FSWikiの検索用スクリプトの一部をwiki.cgiに改造移植して、検索結果にページ名と一緒に検索に該当した部分も表示するようにした
- 2ワード以上の検索も実装したいところだが、ちっと面倒そうだったので、とりあえずその移植は無し (代わりにgoogleプラグインを修正して、ANA-NOTE内検索用のものを用意した)
googleプラグインを修正
- FSWikiLiteのページ検索(searchプラグイン)では2ワード以上の検索は出来ないと今頃になって気づく(^^;)。で、それじゃあ少し困るだろうから、googleプラグインを修正して、最初の引数に「-」を指定すると、ANA-NOTE内検索用のGoogle検索フィールドを表示するようにした
{{google -}}
counterプラグインを修正
- カウンタファイルが度々壊れて数値がリセットされるので(覚悟はしていて、手作業でたまに直していたが)、プラグインを修正し、バックアップカウンタファイル(ファイル名-bak)を作って、それと比較して数値が小さいようだったらバックアップの数値で置き換えるようにしてみた
- といっても、バックアップの方も壊れる可能性もあり、上手くいくとは限らないが
2006/06/18
ヘルプ修正が追いついてないです(^^;)
iframeプラグインを修正
- iframeプラグインの元になった「BugTrack-plugin/136」を見にいったら、今年の2月にバージョンアップしていたようで。主な変更は、外部ページを自由にフレーム表示出来ると危険なため、それを制限するというもので、改造した当方のプラグインでは既にその危険性から制限を付けていたので特に直す点はなかった
- ただ、フレームに名前を付けてターゲット指定でフレーム内容の変更が出来るのは、将来使う可能性もあるかもと思い、プラグインを修正して構文を変更し、フレーム名を指定出来るようにした
- 今のところはWikiでターゲット指定出来るものはなかった気がするので(外部ページからのaタグでの指定は可能?)、特に使い道はないかも
textareaプラグインを修正
- 表示する文字を指定する引数に、ページ添付したテキストファイル名を指定すると、テキストファイルの内容をテキストエリアの形で表示出来るようにした
- 引数の最後が「.txt」になっているかで判定しているので、テキストファイルでなく「〜.txt」という文字を表示したい場合は注意が必要 (まあ判定は最後だけなので、使う上ではまず大丈夫だとは思うが・勿論ファイルの存在チェックで無い場合の処理も入れてあるし)
voteプラグイン、todoプラグイン、radioプラグインを追加
- 設置して使用しているオフ出席簿CGIからWikiに移行して同じ事をするのに、どうしても必要だなと以前から思っていて、9時間ダーツに行き来する車の中で仕組みを考え、徹夜して帰ってきたにもかかわらず寝ないで作った(^^;)。以前から作りたかったので、出来てちっと感激
- voteプラグインは、FSWikiの方では標準であるようだけれど、FSWikiLiteの方ではないので、オリジナルで。記録するテキストファイル名(ページに添付される)と表示する文字を設定。すると、表示文字、数値、投票ボタンが表示される
- counterプラグインと同じ記録方式のため、ファイルが壊れて数値リセットされる可能性は捨てきれないが、そこは諦めて貰うという事で(^^;)
- 一投票項目に付き一つのプラグインの形のため、複数の投票項目を自動比較する事は出来ないが、まあとりあえずいいかなと。FSWikiの改造した版では棒グラフで出せるものもあるようだが、それもとりあえず今は保留で
- todoプラグインは、ようはToDo用のチェック項目で、記録するテキストファイル名(ページに添付される)と表示する文字を設定すると、チェックボックス、表示文字、変更ボタンが表示される。チェックボックスの状態を変えて変更ボタンをクリックすると、その状態が保存され反映される
- radioプラグインは、質問やアンケート等に使える、3つの選択肢から選択する形のラジオボタンを表示する。必須な設定は、記録するテキストファイル名(ページに添付される)と質問等表示する文字で、更にデフォルトの選択肢番号(0〜3)、各選択肢に付ける文字も引数で設定可能
- 選択を変更して、変更ボタンを押すと、テキストファイルが作成されて変更した状態が保存される。勿論変更は何度でも可能。オフ出席ページではこれで名前と参加状態を表示、変更させるのに使っている
- voteプラグインは、FSWikiの方では標準であるようだけれど、FSWikiLiteの方ではないので、オリジナルで。記録するテキストファイル名(ページに添付される)と表示する文字を設定。すると、表示文字、数値、投票ボタンが表示される
オリジナルコメントフォーム(掲示板)を追加(質問、アンケート用)
- 上記プラグインの完成に合わせ、コメントフォームから名前と質問に対する答えを入力して貰い、プラグインを自動生成するコメントフォーム等新たに2つ追加した
- 「radio」は上記radioプラグインを生成する。他のコメントフォーム同様に、上から新しい順に追加していくので、アンケート等にも使えるかなと。後から選択肢の変更が可能なので、変更が生まれそうな場合に有益。radioプラグインの仕様から、変更するまでは余計な記録ファイルを作らないで済む
- 「question」はテーブルの形で名前と答えを追加表示していく。こちらは上記プラグインは使わず、ページ編集以外での答え変更は不可
- 今回のフォーム追加に伴い、commentプラグインで設定出来る引数を4つ増やした。他のフォームでもこれを利用して、多彩に出来るようにするかも
- 詳しくはcomment 拡張プラグイン テストを参考にしてください (といっても、これを書いてる現時点じゃまだ追加してません(^^;))
2006/06/16
6日程の間に色々修正追加した(^^;)。書き忘れもあるかも?(^^;)
オリジナルプラグインをext_io.plに移動
- これまで書式やプラグインを改造したり、新たに作って追加した際は既存のCGI(ライブラリ)ファイルに追加する形でやっていたが、オリジナルも増えてきたので、ext_io.plというファイルを新たに作り、ライブラリファイル内の改造ではないものについてはそこに移動させた。それを読み込むよう、setup.plも修正
- 将来的には、改造したものも含め皆移動させるかも
指定URLのサムネイル画像を表示するプラグインを移植
- BugTrack-plugin/291 指定URLのサムネイル画像を表示するプラグインをFSWikiLite用に移植して追加した (「url_thumbnail」プラグインとした)。このプラグインは、SimpleAPIのウェブサイトサムネイル作成API β版を利用して、プラグインで指定したURL(ページ)のサムネイル画像を表示するもの
- 本当はこれを使って、更新したWikiページの更新情報とサムネイルを組み合わせて表示出来るものが作れれば、と思って用意してみたのだが、URLの「.cgi」以降は拾ってくれないようで、FrontPageのサムネイルしか出来ず(^^;)
includeプラグインを修正
- includeプラグインで指定したページやパラグラフをインクルードする際に、指定した字数(ぴったりではなく、区切り等に応じて大体)でトリム出来るようにした。取り込んだページの一部だけを表示して、残りも見たいならそのページに移動して見る、といったような使い方も出来る。トリムには「ext_naoto.pl」内の「trim_euc」ユーティリティライブラリを利用
- プラグイン構文を変更し、第三の引数にトリムする字数を設定出来るように、第四の引数にトリムした際の最後に付ける文字を設定出来るようにした。第四の引数は省略時「…」となり、引数に「-」を指定するとそれにプラスしてページへのリンクも出る
lat_includeプラグインを追加
- 更新ページ名と更新日時を取るプラグインはあるが、一緒にページ内容も取れたら便利かもと思い、そのような事を実現するプラグインを作った(ようは、更新情報取得プラグインとincludeプラグインの合体(^^;))。更新順に、更新したページタイトルとリンク、更新日時、変更点表示へのリンク、ページ内容(トリムして一部だけも可能)が表示される
- 構文で指定出来る引数として、取得するページ数(省略時10、最大30)と、トリムする字数を設定出来る (トリムには「ext_naoto.pl」内の「trim_euc」ユーティリティライブラリを利用)。トリムせず多くのページを一度に表示させるとなるとその量の多さで問題が生じるので、とりあえず30を上限としてみた(テスト済み)
- まあこのプラグインを使うのは、更新情報を提供するWikiの管理者位かなと思う (任意のページの更新情報と内容表示をしたいなら、lastmodified_pプラグインとincludeプラグインを一緒に使えば実現出来るだろう)
ori_includeプラグイン、oritatamiプラグイン、div_sプラグイン、div_eプラグインを追加
- BugTrack-plugin/293 折りたためるアウトラインを提供するプラグインを見つけ、以前自分のブログでも折り畳みJavaScriptを使用していたし、このような機能は欲しいなと思った。しかし、ソースを見たがそのまま移植するのは少し難しく感じたので、JavaScriptでこの機能を提供しているページを色々見て参考にし、独自に作ってみた (といっても、出来た後でソースを見比べたら大差なかったが(^^;))
- 折り畳みには、「折り畳む対象」と「折り畳むスイッチ」が必要で、折り畳む対象は当初「ori_include」プラグインで生成したもののみだった (最終的には色々なものが折り畳めるように)。「ori_include」プラグインは「include」プラグインに折り畳み用の引数を追加したようなもの。「折り畳むスイッチ」にあたるのが「oritatami」プラグイン。ここで短く分かりやすく説明するのは難しいので、詳しくはヘルプと折り畳み拡張プラグインテストを参考にして下さい
- 「ori_include」プラグインは他のページかパラグラフを内包させるもので、同じページ中にあるコンテンツも折り畳めればと、それを実現するべく「div_s」プラグイン、「div_e」プラグインを用意した。div開始タグ(ID、Styleのdisplay設定可能)、div終了タグを表示するもので、それに囲まれた部分を折り畳む事が出来る。「div_s」、「div_e」プラグインは必ず対で使わなければならず、間違って片方だけになると、divタグが閉じられず、表示がおかしくなる可能性があるので注意
- 折り畳み対象を増やすために、common.pl、core.pl、_ex_table.plを修正した
- フッタ、サイドバー(サイドメニュー)にIDが付くように修正
- リストにID(設置数に応じて変化)が付くように修正
- 整形済テキストにID(設置数に応じて変化)が付くように修正
- UL+LI(ulli)にIDが付くように修正 (殆ど使う事はないだろうから、あえて他では説明せず)
- outlineプラグインにIDを付け、引数で表示(block、none)を設定出来るように修正
- テーブルにID(設置数に応じて変化)が付くように修正
txtareaプラグインを修正、textareaプラグインに
- テキストエリアを利用して文字を表示するプラグイン「txtarea」を、「textarea」という名前に変更した。CGIを改造し、折り畳み用として第四の引数に任意文字を設定すると、ID「textarea+任意文字」となり、styleも「display:none」となって、表示最初はテキストエリアが非表示の状態になるようにした (その場合、折り畳みプラグインで表示させる)
2006/06/10
Wiki変更時お知らせ機能を修正
- ページの新規作成、更新、削除、添付ファイル追加、添付ファイル削除時に、専用の隠しWikiページにテーブルの形で情報(ページ名、追加/更新/削除、日時、IPアドレス、USER AGENT)が記録されるようにしてあるが、追加や削除にカラーを付け、管理者以外のIPアドレスにもカラーを付けて見やすくした
2006/06/09
ページタイトルの一覧表示未出力機能の対象ページをsetup.plに設定するように修正
- ページ名に「__」(半角アンダーバー2つ続けて)を付けると、一覧、recent(更新情報)、カテゴリー、RSS、検索等にページ名が出ない機能を用意してあるが(リストに出ないだけで、直接アドレスを打ち込む等すれば表示可能)、これまではCGI内に設定があったのを、setup.plに設定するように修正した
- これによって、CGI中の該当部分を一つ一つ書き換えずとも、どういうページを表示させないかをsetup.plの書換追加で簡単に出来るようになった (「__」が付いてなくとも一覧に表示させない事も可能)
2006/06/08
検索サイトからページ編集に直接来た場合はページ閲覧に移動するようにedit.cgiを修正
- 検索サイトから当サイトに来る事も少なくないようだが、検索結果にWiki編集用ページアドレスが含まれている事もあって、いきなり編集ページに来た事で心無い人に荒らされるのは困るなと以前より思っていた(幸い、そういう事は今までには無かったが)。制限機能やバックアップ機能等も付けて、荒らしに対する対策はほぼ揃ったと思うが、それでも問題のタネはなるべく排除しておいた方が良い
- そこで、edit.cgiを修正し、リファラーをチェックして、検索サイトからページ編集(edit.cgi)に直接来た場合はページ閲覧(wiki.cgi)に移動するようにした。もしもリクエストされたページが存在しない場合は、FrontPageのページ閲覧(wiki.cgi)に移動する
- リファラーを取得出来るかはユーザーの環境次第で、完璧ではないが、無いよりはマシだろう
- そこで、edit.cgiを修正し、リファラーをチェックして、検索サイトからページ編集(edit.cgi)に直接来た場合はページ閲覧(wiki.cgi)に移動するようにした。もしもリクエストされたページが存在しない場合は、FrontPageのページ閲覧(wiki.cgi)に移動する
一部ページの表示パスワードロックを設定出来るようにwiki.cgiを修正
- 編集にパスワード制限を付けられるようにしたので、wiki.cgiを修正して、表示にも同様にパスワード制限がかけられるようにしてみた。パスワード制限がかけられたページを呼び出すと、パスワード入力ページが出て、そこに正しいパスワードを入れなければ表示出来ない
- といっても、こちらは多分殆ど使わないし、設定するには管理者がsetup.plを修正して制限したいページをそこに登録する必要がある (パスワードは、管理者パスか、ページ毎に設定したパスが使用可能)
- もしも任意のページを自分だけ、もしくは一部の人だけに公開したいという希望があれば(その必要が生まれれば)、管理者に言って貰えれば、判断した上で対応を検討する
- 一覧や更新情報、カテゴリー等リストに載せたくない、とりあえず人目につかなければいいというならページタイトル最後に「__」を付けて隠す「ページタイトルの一覧表示未出力機能」を使って下さい。こちらは気軽に使って貰って構いません
テーブルにカラム属性指定を追加する拡張プラグイン(_ex_table.pl)にフォントサイズ指定機能を追加
- テーブルを多彩に飾れる拡張プラグイン(_ex_table.pl)を導入しているが、フォントサイズの指定はそのプラグインにはなかった。コンマを使うテーブルの書式上、フォントサイズを変えるのに使えるspanプラグインやフォントサイズを指定出来るようにした拡張書式は一緒には使えず、テーブル内の文字は通常サイズでしか表示出来なかった
- テーブルを使っていて、フォントサイズの変更をしたいなと思ったので、改造してフォントサイズ指定出来るようにした (以前改造した方法同様だったので簡単に対応させられた)
- 使い方など詳しくはテーブル拡張プラグインテストを参照して下さい
2006/06/07
一部ページの編集パスワードロック機能を追加
- FSWikiのページを見てたら、管理者パスワード機能のないFSWiki「Lite」でも、パスワードで編集制限する方法が書かれたページを見つけ、導入した
- とりあえずFrontPageを管理者以外編集出来ない(パスが必要な)ようにしたが、他にも必要があれば付け加える
ページ作成時に編集&添付パスワードロックを設定出来る機能を追加
- 同じく、新たにページを作る際に、編集や添付をパスワードで編集制限したいという希望はあるだろうから、それが出来る機能を付けてみた
- ただし、Wikiで編集制限をするという事は諸刃の剣であり、どうしても必要でなければ基本的には使わない方がいいと思う。また、問題あるページについてはパスワードをかけてようがかけてまいが、当然ながら管理者権限で手を入れますので
- 使い方の説明等はいずれヘルプに加えるが、とりあえずここで簡単に説明しておくと、
- 新規にページを作成する際、ページタイトル最後に「_pw」と付ける
- すると、編集用ページにパスワード欄が現れるので、そこに設定したい任意のパスを書き入れて、当然ページ内容も書いて保存する (この時点でファイル添付、削除も可能)
- パスワードファイルがサーバへ保存される
- パスワードが付いたページを編集しようとすると、編集用ページにパスワード欄が現れ、そこに設定された正しいパスワードを入れないと編集や添付、削除が出来なくなる
- ページ削除時はパスワードファイルも消去される
ファイル添付のCGIエラーを修正
- この作業をしてたら、「添付ファイルを選択してない状態で添付ボタンを押す」と、CGIエラーが出ると気づいた。いじったスクリプトに問題あるのかと思ったが、どうも元々のスクリプトからしてCGIエラーが出るらしく、他サイトのFSWikiLiteでもエラーが出る(FSWikiではCGIエラーにはならないようになっている)。Lite版置き去りだなぁ(^^;)。数行足して簡単に直せた。後でFSWikiのBugTrackに報告予定 (他にも色々あっちに書こうと思ってる事が)
edit.cgiを修正
- 上記を実現するにあたり、edit.cgiを主に修正したが、ついでに、これまで編集エリアを広げる等のために、名前や内容を変えたedit.cgi(例えばedit2.cgiとか)を複数設置して対応していたのを、今回の修正に伴い元々同様edit.cgi一つにまとめた(まとめる事が出来た)
Wiki変更時お知らせ機能を追加
- ページの新規作成、更新、削除、添付ファイル追加、添付ファイル削除時に、それ(更新の場合、更新前内容も)を知らせるテキストファイルを残すように改造してあったが、BugTrack-request/3を見つけて、そのようなものもあると便利かもと思い、Wikiからも簡易に変更があったかどうかチェック出来るようにした (数日前には設置してたけど、ここに書くの忘れてた(^^;))
- 具体的には、Wikiに何らかの変更があった場合、専用の隠しWikiページに下のような感じで記録される。ページ名からはページへのリンク、追加/更新/削除からは上記テキストファイルをブラウザ表示するCGIへのリンクもある
ページ名 | 追加/更新/削除 | 日時 | IPアドレス | USER AGENT |
---|
2006/06/03
トップメニューの「一覧」を更新順と名前順の二つにした
- 参考にしようと、色々なWikiを見てみたら、FreeStyleWiki(Lite)のトップメニューにある「一覧」が少し見づらいと気づいた
- FreeStyleWiki(Lite)の「一覧」は「ページ名 - 更新日時」という形で更新順に表示されるが、それだとページ名の長さがそれぞれ異なるので、更新日時の並びが揃わず、日時を次々追って見る事がしづらい。また、更新順の一覧しか用意されていないため、ページ名順に見て、見たいページを探すという事が出来ない
- そこで、wiki.cgiとcommon.plに手を入れ、一覧についてはヘッダのトップメニューに「一覧(更新)」「一覧(名前)」と出るよう改造した。更新順の表示は「更新日時 - ページ名」という形にし、日時表示から漢字を無くして(日付のフォーマットユーティリティ関数追加)すっきり見やすくさせた
トップメニューにアイコン表示を追加
- ヘッダのトップメニューに手を入れたついでに、メニューを楽しく、手を出しやすくする意味を込めて、アイコン画像を表示するようにした。横幅が広くなってごちゃつき感も無くはないが、まあいいかなと思うのだけれど、どうでしょう!?
- アイコン画像は、「BugTrack-plugin/233」Wikiメニューにアイコン画像を表示するプラグインのEclipseStyle(KGさん作)を利用
faceプラグインに画像を追加
- 今回加えたアイコン画像はfaceプラグインで文中に表示する事も可能
lastmodified_pプラグインを修正し整理
- 指定したページの更新日時を表示出来る「lastmodified_p」拡張プラグインを改造した上導入していたが、これまでは種類を用意するのに複数のプラグインで対処していたので、一つの「lastmodified_p」プラグインに戻して、引数の指定でパターンを使い分けられるようにした
- 多彩になったが、中でも、「lastmodified_p」プラグイン一つでページリンクも同時に表示出来るようになったのは便利かと (実はこれがやりたかったからプラグインに手をいれた)
latestプラグインを修正
- せっかくだから「一覧」同様の修正日時付きページリスト(更新順)を表示出来る「latest」プラグインの方も改造。引数の指定で「更新日時 - ページ名」という形でも表示出来るようにした (今のところそれ以外は用意してないが、そのうちこちらもより多彩にするかも)
- ちなみに、更新日時を知るのにどれも皆同じように(不必要に)思えるかもしれないが、それぞれ役割は違う
- トップメニューの「一覧」は、Wikiシステムが持つもので、ユーザーがページ内の任意の位置に表示させる事は出来ない
- 「lastmodified_p」プラグインは、指定した任意のページがいつ更新したかを知るためのもので、複数ページの更新を知るにはそれぞれ分用意する必要がある
- 「latest」プラグインは、トップメニューの「一覧」同様のものをユーザーがページ内の任意の位置に表示させる事が出来、トップメニューの「一覧」と違って表示させる件数を指定出来る
- Wikiの標準プラグイン(CGIに追加する形で増やす拡張プラグインと違って、最初からWikiに備わっている機能)である「recent」「recentdays」プラグインは、更新順にリンク付きページタイトル(日時表示無し)をページ内の任意の位置に表示させる事が出来る(件数指定も可能・「recentdays」は日付毎に分けられて出力)
- ちなみに、更新日時を知るのにどれも皆同じように(不必要に)思えるかもしれないが、それぞれ役割は違う
2006/05/31
禁止IPアクセス時の「Not Found」ページに自動ジャンプを設定
- 禁止IP(ドメインやIP範囲指定可)に該当する者がアクセスするとWikiを表示しないようにしていたが、数秒したら「Not Found」からYahooのページに自動ジャンプするように修正した
ページ削除時バックアップ機能を追加
- ページ削除時、専用のディレクトリに専用の拡張子を付けて消す前のページファイルを残すようにした(そのファイルは管理者がバックアップを取った後で定期的にサーバから削除)
Wiki変更時お知らせテキスト保存機能を追加
- FSWikiLiteにはページの新規作成、更新、削除時に管理者へメール送信する機能があるが、NiftyのCGIサーバはsend mailが使えないため、オフにしていた。で、プロフィールCGIのスパム対策をしてたら、「dont-sendmail」というのをそれに導入していた事に気づき、それでWikiからもメール送信出来ないかと試すが上手くいかず(頑張ってやれば何とかなるのかもしれないが)
- 考えてみればメールにこだわる必要はないので(というか、メールチェックをあまりしない私にすれば、むしろメールじゃない方がいい)、ページの新規作成、更新、削除、添付ファイル追加、添付ファイル削除時にお知らせや変更前内容を個別のテキストファイル形式で残すようにcommon.plを改造した。テキストファイルは専用のディレクトリに保存されるので、管理者がダウンロードしてチェックやバックアップ後にサーバから削除する
「BugTrack-plugin/270」テーブルにカラム属性指定を追加するプラグインをバージョンアップ
- 既に導入していた、「テーブルにカラム属性指定を追加するプラグイン」をバージョンアップ版(2006/05/10リリース:ROWS,COLSを1カラムに組み合わせて利用した場合のバグ修正)に置き換えた(以前同様、独自改造を付け加えて)
2006/05/27
スパムのせいで余計な仕事が(-_-#)。というわけで、色々修正等した
edit2.cgiを修正
- サイドメニューに少し横幅の大きいコンテンツを貼ると、Wiki編集時、編集用フィールドと被さって編集しづらくなる事があるので、edit2.cgiを修正し、フィールドの配置位置等をずらして被らないようにした
漢数字変換ユーティリティ関数を追加
- スパム対策コメント掲示板で、投稿時のキーとなる数字のヒント(というか正解)を表示する際、数字そのままだと何となく分かってしまうので(日本語が分かれば何にしても分かるのだけれど)、数字を漢数字に変換するユーティリティ関数を追加した (ユーティリティ関数を使えるのはCGI内のみ)
wiki.cgi、edit.cgi、edit2.cgiに禁止語句チェック機能、禁止IPチェック機能を追加
- スパムが止まらないので、更に機能を強化した。それぞれのCGIに、禁止IP(ドメインやIP範囲指定可)に該当する者がアクセスすると表示させない機能を付けた
- また、それぞれで保存送信時に禁止語句チェックをし、該当する場合、禁止語句が含まれていて保存出来ないとエラー表示するようにした
- これまでは禁止IPや禁止語句は直接CGI内に書いて指定していたが、それでは不便なので、専用テキストファイルに書いておいて、それを読み出してチェックするようにした
bbsプラグインとcommentプラグインの禁止語句チェック機能を修正
- 上記修正に伴い、commentプラグインでの投稿時に禁止語句があった際に、こちらもエラー表示で保存出来ないようにした。bbsプラグインにも同様のものを設置した
「SandBox」(実際は前後括弧付き)を一覧に載せないように修正
- 今現在スパムが来て通っているルートが、『お試しページ「SandBox」(実際は前後括弧付き)』に直接来て、そこで書き込んではすぐ消える(他には行かず、来ている時間はかなり短い)というものなので、下手にそこを消して他に行かれるより残した方がいいと思い、そのページに色々細工を施した上で残す事にした
- かといって、そのページが普通に使っている人の目に触れるのもどうかと思うので、「SandBox」(実際は前後括弧付き)がページタイトルに含まれていると、一覧や更新、カテゴリー等のリストに表示されないようにした (管理人はそのページも含めたリストチェック可能)
2006/05/25
それぞれ、詳しくはANA-NOTE Help (拡張プラグイン編)を参考にしてください
wikipediaプラグイン、wikipedia2プラグインを追加
- googleプラグインを作って、同じ感じでwikipediaプラグインもいけるだろう、と作ってみたら、上手くいかない。原因はWikipediaの文字の扱いがUTF-8で、検索のクエリーで文字種を指定する事も出来ないので、EUC-JPなFSWikiLiteからの文字が化けてしまうため
- それを何とかするには、例えばJcode.pm等のライブラリというかモジュールでUTF-8に変換する必要があるが、Niftyのサーバには必要なモジュールが入っていなくて、ユーザーの方でJcode.pmを導入して使えるようにするのは大変、かつ、結構動作が重くなるという話
- どうにか手はないかと探していたら、さとーしさんが作られたsutf8.plというライブラリを発見し、それを利用したところ、どうにかUTF-8変換が可能になり、wikipediaプラグインが完成した。さらっと書いてるが、実際は数日かかり、予想していないかなりの苦労だった(^^;)
- その後JavaScriptを調べてたら、JavaScriptでもUTF-8に変換出来ると分かり、試したら確かにあっさり変換出来た(^^;)。あれだけ苦労したのに(^^;)。JavaScriptの方は検索フォームもちゃんと動くし、せっかくだからJavaScriptを使ったWikipedia検索用プラグインのwikipedia2プラグインも加えた
- ともかくこれでUTF-8の変換が出来るようになって(common.pl内ユーティリティ関数化)、この先必要になった際はなんとかなるだろう
htodayプラグインを追加
- 見に来た人が今の日時が分かるようにと、htodayプラグインを追加した
- 2024年04月30日 16時24分44秒
wtodayプラグインを追加
- 見に来た人が今日何日か分かる、だけなら上のでもいいのだが、それとWikipediaを組み合わせて、今日はどんな日(過去あった事等)か分かるようにと、wtodayプラグインを追加した
textareaプラグインを追加
- 文字を書いて表示させるのに、普通にWikiに書いて表示する方法とは別に、テキストエリアで表示させる方法があるといいなと思い(例えば、スクロールバー付きフィールドで表示出来るので、小さいエリアに多くの文字を置いたりとか)、それを実現するtextareaプラグインを追加した
faceプラグインに画像を追加
- faceプラグインで表示出来る画像を追加した
- wikipedia.gif
2006/05/22
詳しくはANA-NOTE Help (拡張プラグイン編)を参考にしてください
googleプラグインを追加
- 新しいコメントフォームでも使うので、まずgoogleプラグインを作って追加した (今後予定!?に入れていたもの)
- このプラグインによって、簡単にキーワードのGoogle検索リンクやGoogle検索フォームを設置出来るようになった
- ANA-NOTE
- 同じく予定していた、他のリンク生成プラグインも近々追加予定
faceプラグインに画像を追加
- faceプラグインで表示出来る画像を追加した
- google.gif inyou.gif
オリジナルコメントフォーム(掲示板)を追加(スパム対策したリンク用)
- リンク生成用のコメントフォームを新たに追加した
- ニュース記事をリンクしても時間がそんな経ってないのに消える事が多いので、引用の項目の追加と、タイトルでのGoogle検索を自動生成するもの。スパム対策版が必要そうなので、とりあえずスパム対策版のみ追加。詳しくはcomment 拡張プラグイン テストを参考にしてください
2006/05/20
スパムが続いてたので、今後の事も考え、更に対策を施した
wiki.cgiに禁止IPチェック機能を追加
- FreeStyleWikiLiteへのアクセスをチェックしたりアクセス制限を施すCGI(FreeStyleWikiLiteとは全く無関係なもの)を設置してあるが、残念ながらそれはIPで弾くのに個別での設定は出来ても、範囲でのIP指定は出来ないもので、IPを次々変えられてしまうと対応出来ない。そこで、FreeStyleWikiLiteへアクセスしてきたIPをチェックして、設定したIP(範囲指定あり)に当てはまると「Not Found」とする機能をwiki.cgiに付けた
commentプラグイン(コメントフォーム)に禁止語句チェック機能を追加
- それを応用して、コメントフォームで禁止語句に当てはまるコメントが投稿されると弾く機能を付けた。禁止語句の設定は、管理人のCGI直接修正による
オリジナルコメントフォーム(掲示板)を追加(スパム対策)
- スパム対策コメントフォームに新パターンを2つ追加した。一つは今月が何月かを正しくプルダウンメニューから選択しなければ投稿が反映されないというもの。一つは今日が何日かを正しく書き入れなければ投稿が反映されないというもの。詳しくはcomment 拡張プラグイン テストを参考にしてください
- キーが月日で自動で切り替わるので、手入力でのスパムでなければ、まずこれで何とかなるのではと。普通に使う人に負担をかけないよう、その時の月日は一緒に表示するようにしてあるし、書いている間に日や月が切り替わってそれに気づかず前の日や月を指定しても大丈夫なように作ってある
common.plにオリジナルユーティリティ関数を追加
- コメントフォームを追加するにあたり、common.plにオリジナルユーティリティ関数を追加した。これについてはユーザー自ら使う事はないので、特に意識する必要はない
2006/05/17
オリジナルコメントフォーム(掲示板)を追加(スパム対策)
- 最近あちこちの掲示板で掲示板スパムが見られ、14日に、丁度管理人がページ更新していたのに紛れてANA-NOTEのテスト用コメントフォームにもスパムが書かれていたのに気づいた(スパムとしては初)。それで今後の事を考えて今から対策をうっておこうと思い、掲示板CGIを改造、新しいフォーム(掲示板)を追加した
- ANA-NOTE自体にはFreeStyleWiki関連とは別に、アクセスの記録やアクセス制限を施すものを一応設置してあり、それによって経路や行動、情報を把握し、各種制限をかけられるが、どちらかというとそれは事が起きてからの対処用であり、事が起きるのを予め防ぐには今回のような対処も必要だろう
- 今回スパムに使用されたものと良く使いそうなものを中心に、そのスパム対策版として幾つかのフォーム(掲示板)を追加した。全てのフォームにスパム対策版や、何パターンかあるスパム対策パターンを追加した方がいいかもしれないが、それらは様子を見て考えるという事で、とりあえず今は幾つかだけ追加
- スパム対策としては、日本語を含まないコメント、コメントに書かれたURLが10を超えるものを弾くように。また、フォームによっては、合い言葉を必要とする、プルダウンメニューでセレクトする必要があるものも作ってみた。他にもコメントや名前が特定の文字で始まってないと弾く、特定のキーワードが含まれていると弾くとかでもいけるかな (普段使う人に負担をかけてしまっては意味がないという事は勿論頭に置きつつ、程々に)
- 今回追加したものについて、詳しくはcomment 拡張プラグイン テストを参考にしてください
2006/05/14
moveプラグインを追加
- ページトップや目次(アウトライン)等にアンカーを設置して、長く(大きく)なったページ途中からリンクでトップ等に移動出来るようにするには、既に用意してあるanchorプラグインを使えば良いが、何度もanchorプラグインの構文を書くのはちょっとめんどい
- で、どうせ大抵は同じような感じだし、新たにプラグインを作って、その構文一つで簡単にアンカー先への移動リンクを表示出来る汎用性があるプラグインを作ってみた
- 例えばこんな感じ
{{move 1rs,[今後予定!?], ,[コメント]}}
- 使い方など詳しくはANA-NOTE Help (拡張プラグイン編)を参照して下さい
このページ以前(2006年以前)のものは、こちらにあります。
質問、意見、希望等ページ内容にコメント
- 何かあれば承ります - IO (2005年08月02日 15時20分45秒)
サイト内に表記された商品名、会社名等は各社の登録商標もしくは商標です。