<<[19]
2008.5
>>[21]
[xpWiki開発日記[66]] |
||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1[67] | 2[68] | 3[69] | ||||
4[70] | 5[71] | 6[72] | 9[75] | 10[76] | ||
11[77] | 12[78] | 13[79] | 15[81] | 17[83] | ||
18[84] | 19[85] | |||||
25[91] | 27[93] | 29[95] |
Tag: 初期ページ[101] Bugfix[102] プラグイン[103] JavaScript[104] SPAM対策[105] Q&A認証[106] インポート[107] スキン[108]
fusen.dat[水平タブ][文字エンコーディング]
例:
fusen.dat EUC-JP
今回の更新分 |
|
Tag: プラグイン[103] Bugfix[102]
ページデータからページ情報部分( #pginfo() )を取り除く、remove_pginfo() 関数は、引数が参照渡しでなく値渡しなのに、参照渡しとして使用していた部分があったので、適切に修正しました。
$this->func->remove_pginfo($str);
↓↓↓
$str = $this->func->remove_pginfo($str);
今回の更新分 |
|
Tag: 基本設計[134] JobStack[135] ファイルロック[136]
バックグラウンド処理を登録し、アクセスがある度に一件ずつバックグラウンドで処理をする仕組みを新たに追加しました。
それに、伴い ゲートウェイ "bgrun" を "jobstack" に統合しました。
プラグインを作成する時の参考となりますので、簡単に説明しておきます。
現状で、jobstack には、任意のHTTPアクセス(GETリクエスト)を行う "http_get" と ページ更新後の重い処理(plainDB 更新) を行う "plain_up" があります。
実際にジョブを登録するには、$this->func->regist_jobstack($data, $ttl) とします。 $data は、連想配列で例えば次のように指定します。
1 2 |
|
$ttl は整数値で、そのジョブが実行される有効期限を秒数で指定します。省略可能で省略時の値は 864000 (10日間) です。
"http_get" アクションは、アクションプラグインを呼び出し、各種処理を行ったりすることに利用できます。
"plain_up" アクションは、内部的に func->need_update_plaindb() 内で使われています。プラグインでのコンバート時、plainDB のリフレッシュを行いたい場合は、$this->func->need_update_plaindb($page) とすればOKです。$page は省略可能で省略時の値は $this->root->vars['page'] の値となります。
pukiwiki.dev[143] の pukiwiki.dev:BugTrack2/306[144] に上がっていた問題です。
fopen() でオープンし flock() でファイルロックを掛けた後、fclose() の前に flock() でアンロックすると、バッファに溜まっているデータがフラッシュされる前だとファイルが壊れることがあるという問題です。
自分なりに簡単に調べてみたところ、確かにそのようでしたので、その修正を行いました。
今回の更新分 |
|
Tag: ini設定[152] UpdatesPing[153] XOOPS[154] 環境設定[155]
ブログなどで実装されている更新 Ping の送信を実装しました。送信タイミングは、ページ作成時とタイムスタンプを更新するページ更新時で、そのページがゲストアクセス可能な場合のみです。また、最短送信間隔は、30分となっています。
設定はデフォルトで無効となっていますので、有効にしたい場合は、管理画面の環境設定画面で設定してください。デフォルトの送信先は、次の通りです。
http://api.my.yahoo.co.jp/RPC2 http://blog.goo.ne.jp/XMLRPC http://blogsearch.google.co.jp/ping/RPC2 E http://feeds.feedburner.com/ArakiNotes E http://ping.bloggers.jp/rpc/ http://r.hatena.ne.jp/rpc http://rpc.technorati.com/rpc/ping E http://rpc.weblogs.com/RPC2 E http://www.blogpeople.net/servlet/weblogUpdates E
末尾の [半角スペース]E は、Extended Ping を意味します。(d3pipes と同様の設定方法です。)
なお、この機能には、HypCommonFunc Ver. 20080515 以上が必要となります。
今回の更新分 |
|
Tag: 高速化[167] 最適化[168] セキュリティ[169] CSS[170] enbug[171]
BugTrack/162 (ページ生成時間を40%削減) - PukiWiki Plus![177] を参考にして、xpWiki[119] もチューンアップしてみて、40%向上とまではいきませんが確実に性能が向上しましたので、コミットしてみました。
レンダリング速度が、10%〜20% 程度は向上した模様です。 :thumb_up:
nas_B さん、ありがとうございました。(xpWiki[119] のことで、PukiWiki[118] Plus! のサイトにお礼を書き込むことはできないので、この場で失礼します。)
CSSXSS については、メジャーな最新のブラウザでは、対策されているようですが、念のため はてなダイアリーXSS対策 - はてなダイアリーのヘルプ[180] と まだまだあるクロスサイト・スクリプティング攻撃法:ITpro[181] を参考に、ページに添付した style.css をサニタイズして出力するようにしました。
今回の更新分 |
|
Tag: 静的URL[190] PATH_INFO[191] ini設定[152]
"/index.php/ページ名", "/index/ページ名" というようなスタイルの静的URLに対応しました。
環境変数 PATH_INFO を利用しているため、サーバー環境によっては、動かないことがあるかも知れません。
設定は、管理画面の「環境設定」に設定項目を追加しました。
「ページURLの形式」で、?[PAGE] | [ID].html | index/[PAGE] | index.php/[PAGE] のいづれかを選択します。
「index/[PAGE]」を選択した場合は、.htaccess にて以下の設定が必要になります。
Options +MultiViews <FilesMatch "^index$"> ForceType application/x-httpd-php </FilesMatch>
また、[PAGE] の部分を UTF-8 エンコーディングして運用できる設定「ページURLを UTF-8 にする」も追加しました。
あと、管理画面にはありませんが、pukiwiki[118].ini.php にて、"index" 部分を変更することも可能です。
1 2 3 4 5 6 7 |
|
このサイトの UsersWiki[196] では、この "index" を "person" として運用しています。
1 2 |
|
1 2 3 |
|
今回の更新分 |
|
Tag: ナビゲーション[204] HTML構造[205] 先読み対策[206] FireFox[207] 言語ファイル[208]
1 2 3 |
|
今回の更新分 |
|
Tag: クリッカブルリンク[221]
今回の更新分 |
|
Tag: Enbug[231] Bugfix[102] 高速化[167]
このバグの影響で、検索用データベーステーブル(plainDB) と ページ間リンク情報が正常に処理されていないページがある可能性があります。
管理画面の「管理用ツール一覧」-「データベースシンクロ」で「検索用テキストDB と ページ間リンク情報DB」のみを選択し「検索用テキストDBが空のページのみ処理する。」オプションで実行することで、正常な状態に戻ります。
今回の更新分 |
|
Tag: Enbug[231]
今回の更新分 |
|
Tag: 新規プラグイン[254] Bugfix[102] 新規関数[255]
pukiwiki:自作プラグイン/addline.inc.php[262] を xpWiki[119]用に調整したものです。原作者は sha さんです。
オリジナルの addline の機能に「auth」オプションを追加してあります。 「auth」オプションを指定すると、編集権限がないときは、「追加」ボタンが表示されず、実際の追加処理もキャンセルされます。
「auth」オプションの指定方法は2種類あります。
今回の更新分 |
|
xpWiki[119] では、表示文字エンコディングで表せない文字は、数値文字参照に置き換えて保存し便宜上表示できるようにしていますが、単語検索時にこの数値文字参照の部分が検索できていませんでしたので、正しく検索できるようにしました。
例えば、韓国語で「こんにちは」を意味する言葉は「안녕하세요」だと思います。
「안녕하세요」を検索してみます。 -> 検索:안녕하세요[276]
今回の更新分 |
2008-05-26 18:13 nao-pon[116] * plugin[117]/addline.inc.php (1.2): Too much "htmlspcialchars()" on inline plugin[117]. |
Tag: 画像表示[285] コメント統合[286] Wikiレンダラー[287]
今回の更新分 |
|
Tag: XSS[297] セキュリティ[169] XCL[298] Wikiレンダラー[287]
今回の更新分 |
|
(This host) = https://xoops.hypweb.net