POTI-board EVO v5.62.3 リリース v3.09.x以下の古いバージョンには重大なバグがあります。
古いバージョンに存在する重大なバグ
-
v2.26.0以前のPOTI-boardにはXSSの脆弱性があります。
悪意のあるJavaScriptが実行される可能性があります。 -
v3.09.5以前のPOTI-boardのすべてのバージョンには重大な欠陥があります。
すべてのログファイルを失う可能性があります。
また、v3.x系統のPOTI-boardはPHP8.1環境下で非推奨のエラーが発生します。
現時点では警告ですがPHP9で動作が停止します。
そのためのv5.xの開発です。v5.xの利用をおすすめします。
ダウンロード
このページの一番下のソースコードリンクからダウンロードできます。
POTI-board EVO v5.62.3 リリース
[2023/07/08] v5.62.3
投稿をシェアするサーバの一覧画面のデザインを調整しました。
テンプレート BASICの共有画面を調整しました。
ラジオボタンのチェックサークルを非表示にしました。
選択済みの時のラベルの文字を太字にしました。
変更があったファイル
- potiboard.php
- templates/basic/basic.css
- templates/basic/set_share_server.blade.php
[2023/07/08] v5.62.2
バグ修正
検索機能が動かなくなっていました。
このバグは、v5.58.10で発生し、v5.62.2で修正されました。
ツーイートボタンから「Twitter」「Mastodon」「Misskey」共有へ。
「Twitter」以外の、「Mastodon」「Misskey」等の短文投稿SNSに投稿を共有できるようにしました。
config.phpで設定すれば以前のツイートボタンに戻す事もできます。
また、共有するMastodon、Misskeyのサーバ一覧を編集する事もできます。
/* ---------- SNSシェア機能詳細設定 ---------- */
//シェア機能に、Mastodon、Misskeyの各サーバを含める 1:含める 0:含めない
define("SWITCH_SNS","1");
// SNS共有の時に一覧で表示するサーバ
//例 ["表示名","https://example.com (SNSのサーバのurl)"],(最後にカンマが必要です)
$servers =
[
["Twitter","https://twitter.com"],
["mstdn.jp","https://mstdn.jp"],
["pawoo.net","https://pawoo.net"],
["fedibird.com","https://fedibird.com"],
["misskey.io","https://misskey.io"],
["misskey.design","https://misskey.design"],
["nijimiss.moe","https://nijimiss.moe"],
["sushi.ski","https://sushi.ski"],
];
config.phpに設定項目が増えていますが、細かく設定したい人のためのものです。
設定項目が存在しない場合は、新しいSNS共有リンクになります。
変更が必要ではない方は、すでに設定ずみのconfig.phpをそのままご利用ください。
追加されたファイル
- sns_share.inc.php
変更があったファイル
- config.php
- potiboard.php
- search.php
変更があったテンプレート
BASIC
変更があったディレクトリ
- templates/basic/icomoon/ ディレクトリを上書きアップデート
変更があったテンプレート
-
templates/basic/basic.css
-
templates/basic/catalog.blade.php
-
templates/basic/js/basic_common.js
-
templates/basic/main.blade.php
-
templates/basic/other.blade.php
-
templates/basic/paint_klecks.blade.php
-
templates/basic/paint_tegaki.blade.php
-
templates/basic/res.blade.php
-
templates/basic/search.blade.php
-
templates/basic/tgkr_view.blade.php
#####追加されたテンプレート -
templates/basic/set_share_server.blade.php
MONO
変更があったテンプレート
- templates/mono/js/mono_common.js
- templates/mono/img/share-from-square-solid.svg
- templates/mono/mono_main.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/paint_tegaki.blade.php
- templates/mono/tgkr_view.blade.php
#####追加されたテンプレート
- templates/mono/set_share_server.blade.php
(テンプレートをカスタマイズしていない方は、templates/
ディレクトリをまるごとアップデートしてください)
[2023/06/24] v5.61.2
tegaki.jsが使えるようになりました。
英語圏最大の画像掲示板で使われているお絵かきアプリ「tegaki.js」に対応しました。
現時点では、続きを描くと描画アニメは消えてしまいます。
(NEOの画像から続きを描くと同じ)
ChickenPaintの独自修正版を同梱しました。
非推奨のJavaScript、jQueryの構文を独自に修正したものを同梱しました。
投稿者名をコピー機能を改善
投稿者名をコピーボタンを押したときに、テキストカーソルの位置に名前が挿入されるようになりました。
これまではテキストフィールドの文末に追加されていました。
追加されたディレクトリ
- tegaki/ ディレクトリをアップロード
更新されたアプリ
- chickenpaint/ ディレクトリを上書きアップデート
更新されたファイル
- potiboard.php
- saveklecks.php
(klecksのデータ受信ファイルをTegakiのデータも受信できるように改良しています。) - config.php
(Tegakiを使う/使わないを選択する設定項目が追加されています。設定項目が存在しない時は使うになります。)
更新されたテンプレート
BASIC
- templates/basic/main.blade.php
- templates/basic/res.blade.php
- templates/basic/paint.blade.php
- templates/basic/parts/copyright.blade.php
- templates/basic/parts/paint_form.blade.php
追加されたテンプレート
- templates/basic/paint_tegaki.blade.php
- templates/basic/tgkr_view.blade.php
MONO
- templates/mono/mono_main.blade.php
- templates/mono/mono_paint.blade.php
- templates/mono/parts/mono_copyright.blade.php
- templates/mono/parts/mono_paint_form.blade.php
追加されたテンプレート
- templates/mono/paint_tegaki.blade.php
mono/tgkr_view.blade.php
テンプレートをカスタマイズしていない方は、
templates/
ディレクトリを上書きアップデートしてください。
[2023/06/11] v5.60.0
ペイントアプリの非推奨になったJavaScriptを修正
- PaintBBS NEOをv1.6.0に更新しました。独自拡張版として運用していたバージョンを開発元にマージしていただく事ができました。
- ChickenPaintの独自修正版を同梱しました。
Klecksがレイヤー二枚で起動するようになりました。
変更があったディレクトリ
- chickenpaint/ ディレクトリを上書きアップデート
変更があったファイル
- neo.js
- potiboard.php
変更があったテンプレート
- templates/basic/paint_klecks.blade.php
- templates/mono/paint_klecks.blade.php
[2023/05/20] v5.59.0
バグ修正
- Tweetボタンを押した時に記事の固定リンクのURLが正しくセットされなくなっていたのを修正しました。
- このバグはv5.58.6で発生し、v5.59.0で修正されました。
jQuery更新
- jQueryをjQuery3.6.0からjQuery3.7.0に更新しました。
- jQueryのバージョン管理はpotiboard.phpの内部で行っているため、個別のテンプレートの修正は必要ありません。
非推奨になったJavaScriptとjQueryの構文を修正しました
- templates/basic/js/basic_common.js
- templates/mono/js/mono_common.js
各ファイルの非推奨になったJavaScriptとjQueryの構文を修正しました。
変更があったファイル
- potiboard.php
追加されたファイル
- lib/jquery-3.7.0.min.js
変更があったテンプレート
- templates/basic/js/basic_common.js
- templates/mono/js/mono_common.js
[2023/05/07] v5.58.9.1
Klecks更新
- klecks/ ディレクトリを上書きアップデート
BladeOne更新
- BladeOne/ ディレクトリを上書きアップデート
変更があったテンプレート
MONO
- templates/basic/js/basic_common.js
- templates/basic/other.blade.php
(非推奨になったjQueryの構文を修正しています)
BASIC
- templates/mono/js/mono_common.js
- templates/mono/mono_other.blade.php
(非推奨になったjQueryの構文を修正しています)
[2023/05/03] v5.58.9
klecks更新
- /klecks ディレクトリを上書きアップデート
変更があったファイル
- potiboard.php
[2023/04/25] v5.58.8
chickenpaint更新
chickenpaintをiPadのフルスクリーンモード、あるいはiPhoneで使用した時に、パレットメニューが画面外に出る、描画領域の縦横比が縦に伸びる、横に伸びるなどの問題が発生していました。
フルスクリーンモードの時のスタイルシートが原因でした。ただしこれは、iPad、iPhoneの時にのみ発生する問題です。
逆にいうと、PC+Chromeで問題が発生していなくても、iPadユーザーがChickenPaintを使用する時にはトラブルが発生していたということです。
v5.58.8と、控えめなバージョン番号の差ですが、chickenpaint/
ディレクトリの上書きアップデートのみでも構いませんので、更新をご検討ください。
現時点では開発元での修正はまだ行われておらず、これは独自修正版です。
プルリクエストを行い、開発元にこれを統合するかどうかの判断をお願いしているところです。
thenickdude/chickenpaint#52
変更があったディレクトリ
- chickenpaint/ ディレクトリを上書きアップデート
変更があったファイル
- potiboard.php
変更があったテンプレート
MONO
- templates/mono/mono_paint.blade.php
BASIC
- templates/basic/paint.blade.php
(iPad+ChickenPaintのフルスクリーンモードで発生していた問題が解決したので、ChickenPaintがフルスクリーンモードで起動する設定に戻しました。)
[2023/04/13] v5.58.5
ChickenPaint更新
- iPadでデバイスの向きを変更すると描画領域のアスペクト比が壊れる問題に対応するため、ChickenPaintを独自にカスタマイズしてビルドしたバージョンのものを同梱しました。(問題が解決するまでの暫定措置)
- この問題はChickenPaintをフルスクリーンモードで使用している時にだけ発生します。
- そのためフルスクリーンモードでの起動をとりやめて通常モードで起動するようにしました。
ChickenPaintのメニューバーからフルスクリーンモードを選択すればフルスクリーンモードへの表示の切り替えは可能です。
改善
PaintBBS NEOの動的パレットの非推奨になったJavaScriptを修正
- WCS動的パレットスクリプトのsubstr()をsubstring()に書き直しました。
String.prototype.substr() - JavaScript | MDN MDN
続きを描く→新規投稿の時に同じスレッドに投稿するかどうかを選択可能に
古いバージョンでは、続きを描く→新規投稿を選択すると新しいスレッドへの投稿になっていました。
たとえば1枚の線画の塗り絵を10名が行う時に10スレッド必要でした。
これを1つのスレッドにまとめる事ができるようになります。
また返信として投稿されたお絵かき画像からの続きを描く時には、同じスレッドへの投稿になるようにしていましたが、こちらも返信からの新規投稿を新しいスレッドに投稿したい場合があり、自由に選択できるようにするべきという結論に達しました。
その選択のために「同じスレッドに投稿する」というチェックボックスを追加しました。
しかし「画像差し換え」の場合は同じスレッドに投稿するより他ないためこの選択肢は不要です。
そこで、JavaScriptを使って、新規投稿を選択した時のみ「同じスレッドに投稿する」というチェックボックスを表示するようにしました。
ホスト名が逆引きできずIPアドレスになる時の拒絶処理を修正
ホスト名で拒絶する時の一般的な例は後方一致です。
example.com
のように後ろの方が一致する部分を拒絶します。
しかし、IPアドレスの場合は前方一致で拒絶する必要があります。
ホスト名が取得出来ないIPアドレスからの投稿の時はホスト名にIPアドレスが表示されますが、IPアドレスの拒絶処理も後方一致になってしまい拒絶不能になっていました。
そこで、ホスト名とIPアドレスが同じユーザーの時は、ホスト名として表示されているIPアドレスの前から数文字分を指定して前方一致で拒絶できるようにしました。
$badhost =["example.com","100.100.200"];
このように設定した場合、
"example.com"は後方一致で拒絶処理が行われ、"100.100.200"は前方一致で拒絶処理が行われます。
変更があったディレクトリ
- chickenpaint/ ディレクトリを上書きアップデート
- BladeOne/ ディレクトリを上書きアップデート
変更があったファイル
- config.php (設定項目が一箇所減っていますが、すでに設定ずみのconfig.phpと互換性がありますので変更する必要はありません)
- potiboard.php
- search.php
変更があったテンプレート
MONO
- templates/mono/css/ ディレクトリを上書きアップデート
cssをカスタマイズしている方はエディタの内容比較機能等をご利用ください。
かならずしもcssの変更が必要になる訳ではありませんので問題がなければ変更せずそのままお使いください。 - templates/mono/mono_catalog.blade.php
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
- templates/mono/mono_paint.blade.php
- templates/mono/search.blade.php
- templates/mono/template_ini.php
BASIC
- templates/basic/basic.css
cssをカスタマイズしている方はエディタの内容比較機能等をご利用ください。
かならずしもcssの変更が必要になる訳ではありませんので問題がなければ変更せずそのままお使いください。 - templates/basic/catalog.blade.php
- templates/basic/main.blade.php
- templates/basic/other.blade.php
- templates/basic/paint.blade.php
- templates/basic/res.blade.php
- templates/basic/search.blade.php
- templates/basic/template_ini.php
[2023/02/26] v5.56.3
Klecksを最新版にアップデート
- ダークテーマが選択可能になりました。
- フランス語に対応しました。
- iPhone、iPadのタッチジェスチャーでフリーズする問題が修正されました。
BladeOneを最新版にアップデート
- BladeOneをv4.8に更新しました。
改善
- 検索画面の並び方が、最新順にならないケースがあったのを修正しました。
- 検索画面のコードを改善しました。
変更があったディレクトリ
- klecks/ ディレクトリを上書きアップデート
- BladeOne/ ディレクトリを上書きアップデート
変更があったファイル
- potiboard.php
- search.php
POTI-board EVO v5.56.2.3 リリース
[2023/02/11] v5.56.2.3
バグ修正
サーバのステータスが「502 Bad Gateway」の時に描いていた絵が消えてしまうバグを修正しました。
サーバのステータスが200以外の時には「投稿に失敗時間を置いて再度投稿してください」というアラートを表示するのみで、画面を推移しないようにしました。 画面を推移しないので、スクショを取る事が可能になります。また、ほとんどの場合、再度投稿ボタン押せば投稿に成功します。
変更があったテンプレート
BASIC
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_klecks.blade.php
[2023/02/09] v5.56.2.2
- 入れ忘れていたklecksのヘルプファイルを追加しました。
klecks/
フォルダをアップデート、または、klecks/help.html
を個別にアップロードします。
[2023/01/19] v5.56.2
config.phpで、URLの入力欄を使用するしないを設定できるようになりました。
//URL入力欄を使用する する:1 しない:0
define("USE_URL_INPUT_FIELD", "1");
//しない:0 で、フォームの入力欄からURL欄が消えます。
//フォームを偽装してもURLの入力ができなくなります。
本文へのURLの書き込み禁止にあわせて、URL欄へのURLの記入もできなくすれば、URLを書き込む事が目的の広告スパムを排除する事ができます。
本文へのURL書き込み禁止のURL判定はかなり厳しい条件になっているため、例えばhttp://
を省略しても広告スパムのURLを書き込む事はほぼできない筈です。
テンプレートにURL欄や題名欄が存在しない時にJavaScriptのエラーで送信できなくなる問題を修正しました。
これはバグではないのですが、ユーザーによるテンプレートの修正があった場合でも正常に動作するようにJavaScriptを書きなおしました。
PaintBBS NEOでコピー、レイヤー結合などキャンバス周辺を含む操作で画面が上下に動かないようにする工夫
コピーやレイヤー結合などの時にキャンバス周辺の紫の網目のところをスワイプしても画面が上下に動かなくする工夫を行っていましたが、その事が原因でモバイル端末で操作不能になるケースもありました。
今回の更新で、開いたキャンバスサイズの幅に対して端末の横幅に余裕がある時だけ、NEOのキャンバスの周囲の網目のところでスワイプしない形に変更になりました。
NEOの網目のところをつかんでスクロールできるようにしておかなければ操作不能になるからです。
キャンバスサイズと比較して、端末の横幅に余裕がある時は、NEOの網目のところをつかんでもスクロールしなくなります。
コピーやレイヤー結合、Bz曲線の操作の時に画面が上下に動いてしまうからです。
また、ピンチズームで拡大している時も網目のところをつかんでスクロールできるようになりました。
操作不能になるのを回避するためです。
これらは、NEOのペイント画面のインラインのJavaScriptで実装していますので、ペイント画面のテンプレートの更新が必要です。
変更があったファイル
- neo.js
- potiboard.php
- config.php
config.phpは、新規設定項目が必要な方のみ更新すればいいようになっています。
従来通りの設定で構わない場合は、変更せずそのままご利用ください。
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/res.blade.php
- templates/basic/other.blade.php
- templates/basic/paint.blade.php
MONO
- templates/mono/js/mono_common.js
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
- templates/mono/mono_paint.blade.php
[2023/01/19] v5.55.8.5
バグ修正
- PHP8.1、PHP8.2ではエラーが発生しないため見落としてしまっていた
saveneo.php
の大きなバグを修正しました。
PHP5.6-PHP7.x環境で、PaintBBS NEOのデータの受信がまったくできなくなっていました。これは、古いバージョンのPHPでは致命的エラーになる書き方をしてしまっていたためです。
saveneo.phpの上書きアップデートをお願いします。
変更があったファイル
- saveneo.php
[2023/01/14] v5.55.8.2
バグ修正
//セキュリティタイマー(単位:秒)。設定しないなら""で
define("SECURITY_TIMER", "");
で、描画に必要な最低秒数が設定されているときに、本来であれば「あと15秒」のように表示されるべきアラートの表示が、すべて「あと0秒」になるバグを修正しました。
例えばこのバグがある状態でも60秒で設定していれば、60秒を超えていれば普通に投稿できます。
しかし、残り時間は正確に表示されず、すべて「あと0秒」になっていました。
変更があったファイル
- picpost.php
- save.php
- saveklecks.php
- saveneo.php
[2023/01/14] v5.55.8.1
バグ修正
- saveneo.phpのバグを修正しました。
昨日追加したばかりの新しいNEOの受信PHPスクリプト、saveneo.phpのバグを修正しました。
不正画像検出時のエラー、対応ブラウザでは無かった時のエラーの時に、お絵かき画面にアラートが開いてエラーメッセージを知らせる箇所にバグがありました。
上記該当エラー発生時に、描いている絵の画面から画面が推移してしまい投稿画像が消えてしまうバグを修正しました。
[2023/01/13] v5.55.8
WAFによる誤検知のエラーを回避するためPaintBBS NEOの通信を生データからformDataに変更しました。
- 従来のお絵かき掲示板に投稿できるようにするために、生データを送信していたNEOを改造して、formDataでヘッダ、画像、動画データを送信できるようにしました。
この変更によりWAFがNEOの送信データを攻撃と判断して遮断する確率が低くなり投稿が成功する確率が飛躍的に高くなります。
ここ数年セキュリティを確保するためにWAFを導入しているレンタルサーバが増えています。
しかしながら、攻撃ではない通常の投稿もWAFによって遮断される事があります。
NEOはこれまで生データを古い掲示板との互換性を確保するために送信してきました。今回の独自拡張でによってそれが、formDataに変わります。
現時点では独自規格ですが規格が乱立するのはよくない事ですので、開発元にプルリクエストを出しています。
予定では3月頃のようですが、formData対応版の正式版がNEOの開発元から出た時点で、再度、掲示板側の対応を行います。
WAFに攻撃と判断されないようにするため、formDataで個別にデータを送信するオプションを追加。 by satopian · Pull Request #94 · funige/neo
そのため、WAFの影響で投稿できなくて困っている人のための緊急アップデートのような形になりました。
これは暫定措置ですので、仕様が今後変更になる可能性があります。
重要な変更点
- しぃペインターのデータの受信はこれまで通り、
picpost.php
で行います。
しかし、PaintBBS NEOのデータの受信は、新しく追加した、saveneo.php
で行います。
このファイルのアップロードを忘れると、NEOからの投稿ができなくなりますので、必ずアップデートしてください。
potiboard.phpと同じディレクトリに転送します。 - Paint画面のテンプレートの更新
mono_paint.blade.php
paint.blade.php
の更新をお願いします。
formDataで送信するモードに切り替えるためのパラメータが追加されています。
ここで重要なのは、neo.jsがブラウザによってキャッシュされている場合です。
新しいバージョンのneo.jsがブラウザに読み込まれる前に、その他のファイルが更新された時は、saveneo.phpによる受信に失敗します。
日付が午前0時になると、neo.jsのキャッシュがクリアされる仕様ですので、午後11時30分ごろに更新するのが一番安全です。
更新作業の途中で描き始めていた方がいたとしても、従来のpicpost.phpによる受信がおそらく成功するでしょう。
とにかく、WAFが必須な時代になってもしぃお絵かき掲示板が使える環境がなんとかできたという事で、WAFによってお絵かき掲示板が絶滅させられる心配がほぼなくなりました。
使用するお絵かアプリの設定方法
//PaintBBS NEOを使う 使う:1 使わない:0
define("USE_PAINTBBS_NEO", "1");
//しぃペインターを使う 使う:1 使わない:0
define("USE_SHI_PAINTER", "1");
//ChickenPaintを使う 使う:1 使わない:0
define("USE_CHICKENPAINT", "1");
//klecksを使う 使う:1 使わない:0
define("USE_KLECKS", "1");
//管理者は設定に関わらすべてのアプリを使用できるようにする する:1 しない:0
define('ALLOW_ADMINS_TO_USE_ALL_APPS_REGARDLESS_OF_SETTINGS', '1');
これまでは、PaintBBS NEOを使用するアプリから外す事ができませんでしたが、NEOを使う使わないも選択可能になりました。
すべて使わないに設定すると、お絵かき機能を使用しない設定になります。
Klecksだけ使う、ChickenPaintだけ使う設定にする事もできます。
使用するアプリが1つしか無い時はアプリ選択のプルダウンメニューが消えてすっきりした画面になります。
描画時間による制限
たとえば1分以下で描いた線だけの投稿は拒絶したい時は、
//セキュリティタイマー(単位:秒)。設定しないなら""で
define("SECURITY_TIMER", "");
で必要最低限の描画時間を指定する事ができましたが、これまでは、しぃペインターと、PaintBBS NEOにのみ有効でした。
今回の更新で、ChickenPaintやKlecksでもこの設定が有効になるようになりました。
古い方式では、違反の時は別のサイトに飛ばす(例えば警視庁のサイト)がありましたが、その方式ではなく、「描画時間が短すぎます。あと30秒。」といった内容のアラートが開きます。
変更があったファイル
- neo.js
- picpost.php
- potiboard.php
- save.php
- saveklecks.php
- saveneo.php
- config.php
config.phpを細かく設定している方はそのまま使用していただいて大丈夫です。
新しく追加された設定項目が必要な方だけ更新してください。
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
- templates/basic/other.blade.php
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/parts/paint_form.blade.php
MONO
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
- templates/mono/mono_paint.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/parts/mono_paint_form.blade.php
※ parts/paint_form.blade.phpのような、parts/ディレクトリの更新も必要です。
テンプレートをカスタマイズしていない場合は、templates/ディレクトリをすべて上書きアップデート。
[2022/12/30] v5.52.8
Javaのpchデータから幅と高さを取り出す事ができるようになりました。
管理画面からのpchファイルのアップロードがより簡単になりました。
v5.22.2で、HTML5版のPaintBBS NEOのpchファイルとしぃペインターのspchファイルをアップロードした時に、自動的にキャンバスサイズがセットされるようになりました。
これまでは、Java版のPaintBBSのpchファイルの幅と高さは自動的に計算されず、例えばキャンバスサイズが500x500の時にそれよりも小さな画像のpch(アニメデータファイル)をアップロードすると、キャンバスの周囲に余白ができる事がありました。
この時に、塗りつぶしなどの操作が含まれている場合は、本来塗りつぶす筈ではない箇所が塗りつぶされる事もありました。
今回の更新で、HTML5版、Java版ともにpchデータから幅と高さを取り出す事ができるようになり、この問題を解決する事ができました。
↑
pchデータとキャンバスサイズが一致していない時と一致している時を比較。
一致している画面は今回の更新でpchデータから幅と高さを取得したもの。
しかしながら、CheerpJアプレットランナーの最新版では、Java版のPaintBBSからの投稿ができなくなっていますので、実質、pchデータをキャンバスに読み込んで画像化するところまでしかできなくなっています。
Javaアプレットからの投稿はすべて受け付けなくなっている訳ではなく同じくCheerpJで起動したしぃペインターからの投稿も、オラクルのJavaで起動したしぃペインターからの投稿も可能です。
EdgeのIEモードでJavaを使用すれば2023年の環境でしぃペインターを安定的に使う事ができます。
ただし、オラクルのJava8をインストールして、使用するサイトをセキュリティの例外に追加する必要がありますので、少しだけ面倒です。
↑
Javaを使用するサイトを例外リストに追加すればそのサイトでJavaが起動します。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/other.blade.php
- templates/basic/parts/paint_form.blade.php
MONO
- templates/mono/mono_other.blade.php
- templates/mono/parts/mono_paint_form.blade.php
[2022/12/28] v5.52.2
PaintBBS NEOの動画ファイルのアップロードペイントが簡単に
- PaintBBS NEOとJavaのしぃペインターの動画の管理者画面からのアップロードペイントがより簡単・便利になりました。
これまで動画ファイルをキャンバスに読み込む前にキャンバスサイズを指定する必要がありました。
v5.52で、動画ファイルからキャンバスサイズを自動的に取得できるようになりました。
ただし、Java版のPaintBBSの動画ファイルのアップロード時にはキャンバスサイズの指定が必要です。(v5.22.8で解決)
HTML5版のPaintBBS NEOの動画ファイルのアップロード時のキャンバスサイズは自動取得できます。
↑
これは、しぃペインター、PaintBBS NEO、Klecks、ChickenPaintそれぞれの固有形式のファイルを管理者画面からアップロードした時の動作を紹介するために制作したGIFアニメです。
キャンバスサイズは300x300のままですが、本来のサイズでキャンバスが開いています。
PSDファイルのダウンロードができるのならアップロードは?と疑問に感じていた方への説明の意味も含めて、ChickenPaintの.chi
ファイルと、Klecksの.psd
ファイル(Photoshop形式)のアップロードも行い動画に記録しました。
変更があったファイル
- potiboard.php
[2022/12/24] v5.51.0
-
PaintBBS NEO 更新 v1.5.16
-
WAF(ウェブアプリケーションファイアウォール)をオンにすると、JavaScriptでCookieを読み込めなくなる問題に対応しました。
WAFをオンにするとCookieが、暗号化され、httpOnly属性が付きます。
POTI-boardでは静的HTMLファイルへのJavaScriptによるCookieのロードを行っています。
そのため、従来のPOTI-boardではWAFをオンにするとフォーム入力内容のCookieを読み込む事ができませんでした。
フォーム入力内容のCookieをPHPプログラムによる発行に加え、JavaScriptでも発行することでこの問題を解決しました。
もっとも、JavaScriptでCookieを読み込む事ができないようにするhttpOnlyのCookieを使ったほうが安全性は高くなりますので、httpOnlyのCookieを使ったお絵かき掲示板を使いたい方は、Petit Noteの利用をご検討ください。
POTI-boardからのログの変換も可能です。
satopian/PetitNote_plugin: お絵かき掲示板 Petit Note のプラグイン -
フォーム入力内容のCookieを発行するJavaScriptをHTMLファイルに入れるとインラインのJavaScriptの行数が多くなってしまうため、外部化しました。
そこには、スクロールすると出てくる上に戻るボタンやLuminousのポップアップ表示のためのJavaScriptも入っています。
たびたびテンプレートの更新が必要になってしまいお手数をおかけしますがよろしくお願いします。
templates/basic/js/
のような、JavaScript用のディレクトリもできました。
このディレクトリのアップロードを忘れると、スクロールするとでてくる上に戻るボタンや、画像をクリックすると同じ画面にポップアップするJavaScriptなどが動作しなくなりますので、ご注意ください。
たくさん注意事項を書きましたがテンプレートをカスタマイズしていない方は、templates/
ディレクトリをすべて上書きするだけです。
新規設置の方もすべてアップロードするだけです。
PaintBBS NEO更新 v1.5.16
- neo.js
変更があったファイル
- potiboard.php
変更があったテンプレート (ほぼすべて)
BASIC
- templates/basic/catalog.blade.php
- templates/basic/main.blade.php
- templates/basic/other.blade.php
- templates/basic/parts/paint_form.blade.php
- templates/basic/res.blade.php
- templates/basic/search.blade.php
追加されたファイル
- templates/basic/js/basic_common.js
MONO
- templates/mono/mono_catalog.blade.php
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
- templates/mono/parts/mono_paint_form.blade.php
- templates/mono/search.blade.php
追加されたファイル
- templates/mono/js/mono_common.js
[2022/12/21] v5.50.11
改善
- XSS対策のためキャンバスサイズのプルダウンメニュー式生成のループの書式を変更しました。
- W3C Markup Validation Serviceによるチェックで警告がでるため、自己終了タグを撤去。
- same-originチェックを追加。別Orijinからの不正な投稿を拒絶するようにしました。
ただしEdgeのIEモード等、Orijinヘッダ非対応ブラウザの場合は、Orijinヘッダのチェックを行いません。
このチェックが必須になると、Javaを使ったしぃペインター起動ができなくなるからです。
たとえば、CheerpJでは、しぃペインターの描画アニメをスムーズに再生する事ができないため、Javaを起動する必要があります。 - 導入が可能な箇所にpost時のCookieチェックを追加しました。
- ディレクトリトラバーサル攻撃からの防御。fopen()に変数が入る時は、basename()で
../../
などの階層を無効化。 - パスワードを5回連続して間違えた時は拒絶。
管理者パスワードを5回連続して間違えた時はそれ以上入力できないように拒絶する事ができるようになりました。
この機能を使いたい方は、config.phpのどの場所でも構いませんので以下の設定項目を追加してご利用ください。
// 管理者パスワードを5回連続して間違えた時は拒絶する
// する: 1 しない: 0
// する: 1 にするとセキュリティは高まりますが、ログインページがロックされた時の解除に手間がかかります。define("CHECK_PASSWORD_INPUT_ERROR_COUNT", "0");
//ftp等でアクセスして、
//templates/errorlog/error.log
// を削除すると、再度ログインできるようになります。
//このファイルには、間違った管理者パスワードを入力したクライアントのIPアドレスが保存されています。
-
IPアドレス、ホスト名の取得方法を変更。getenv()が使えないサーバに対応しました。
-
user-code repcodeの発行にuniqid()を使用。マイクロタイム単位で変化するようになりました。
-
リプレースコードの文字数を8文字から12文字に増やしました。
-
PaintBBS NEOにWAF誤検知時のエラーメッセージを独自に追加しました。
このエラーメッセージの表示については開発者であるfunigeさんのRepositoryにプルリクエスト中ですが、正式版が今後どうなるのかはまだわかりません。
WAFをオフにするとセキュリティが脆弱になり、WAFをオンにすると、NEOの投稿が失敗する事があるという状況にありますが、WAFによる誤検知だとわかれば、少し加筆すると攻撃とみなされるパターンではなくなる事がほとんどのため、このエラーメッセージに従っていただければ投稿できるようになると思います。
変更があったファイル
- noticemail/noticemail.inc
- config.php
- neo.js
- picpost.php
- potiboard.php
- save.php
- saveklecks.php
- thumbnail_gd.php
config.php
の更新は新規設定項目が必要な時だけで構いません。
テキストエディタの内容比較機能を使用して、必要な設定項目を追加する事をおすすめします。
変更があったテンプレート
BASIC
- templates/basic/.htaccess
- templates/basic/main.blade.php
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/parts/paint_form.blade.php
- templates/basic/res.blade.php
- templates/basic/search.blade.php
- templates/basic/template_ini.php
MONO
- templates/mono/.htaccess
- templates/mono/mono_main.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/parts/mono_paint_form.blade.php
- templates/mono/search.blade.php
- templates/mono/template_ini.php
[2022/11/30] v5.36.6
更新
- klecksを更新しました。
ブラシのショートカットキーの動作が修正されています。 - BladeOneをv4.7.1に更新しました。
改善
-
投稿時刻の重複を回避。
作業ファイルで使用しているタイムスタンプが重複している時にも投稿時刻を1秒未来へ進めてタイムスタンプの重複を回避。
これまでは、作業ファイルが別のファイルで上書きされる可能性がありました。 -
比較対象の投稿時刻が未来の時はエラーにしない。
投稿の待ち時間の計算処理の時に現在時刻よりも未来の投稿時刻が検出された時は、エラーにならないようにしました。
例えば、なんらかのミスで投稿時刻が1年後になっていた時は、1年経過しないと次の投稿ができなくなるため待ち時間が負の値の時にはエラーにせず通過するようにしました。 -
BladeOne v4.7.1。それにともないキャッシュディレクトリの自動生成を
potiboard.php
で行う形に変更。
BladeOneからキャッシュディレクトリの自動作成機能が削除されました。それに代わる機能としてpotiboard.php
にキャッシュディレクトリ自動作成機能を追加しました。キャッシュディレクトリのパーミッションはこれまでBladeOne側の指定で0777(777)
でしたが、今回の変更で0707(707)
になりました。0777(777)
では動作しないサーバでも動作するようになりました。 -
書き込みが必要なファイルのパーミッションを事前に
0606(606)
に変更。外部表示不可のログファイルは0600(600)
。
ログ変換したファイルをアップロードすると、potiboard.php
が生成したHTMLファイル、画像ファイル、ログファイルのパーミッションは自動的に変更されないままでした。
今回の変更でログファイルやHTMLファイル、そして画像ファイルのパーミッションがある程度自動的に設定できるようになります。
たとえば画像ファイルを削除する処理をする直前に0606(606)
に変更して削除できるようにしたり記事の書き込み時にログファイルを0600(600)
に変更して、ログファイルを外部から呼び出せないようにします。 -
PaintBBS NEOで投稿に失敗した時のユーザーコード不一致の時のエラーメッセージを追加。
PaintBBS NEOのユーザーコード不一致の時のエラーメッセージを追加しました。
ユーザーコードが一致しない時は「時間をおいて再度投稿してみてください。」というエラーメッセージは適切ではなく、時間をおいても投稿不能だからです。 -
Klecksで投稿に失敗した時のエラーメッセージを追加。
サーバのステータスが200以外の時にはエラーメッセージのアラートが開くようになりました。
サーバがダウンしていたり、通信回線が切断されている時にもエラーメッセージが表示されるようになりました。
変更があったディレクトリ
- BladeOne/
- klecks/
変更があったファイル
- picpost.php
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_klecks.blade.php
[2022/10/29] v5.35.3
改善
テンプレート共通
- 管理画面の画像ファイルをクリックした時にluminousでポップアップ表示するようになりました。
これまでは画像が別タブで開かれていました。 - 従来の記述では出力するHTMLタグがスクリプト本体にありテンプレートではエスケープする事ができなかった箇所を修正。HTMLパートをテンプレートに移動。出力する値のエスケープをテンプレートで行う事ができるようにしました。
- tweetをTweetに修正しました。
- TOOLをToolに修正しました。
テンプレートMONO
- テンプレートMONOにスクロールすると出てくる上に戻るリンクを追加しました。
- スマホ表示を最適化しました。iPad(768px)以下の解像度の時は画像のfloatを解除。画像のマージンを0に。
これにより、スマホ表示時の画像の左右の余白が同じになります。
これまでは、画面右側の余白が大きくなっていました。 - MONOの管理者削除画面でも、番号をクリックすると管理人による記事の編集ができるようになりました。
セキュリティ
- CheerpJ Applet Runner のスクリプトの中身がハッキング等によって改ざんされた時にはそれを検知してスクリプトが実行されないようにしました。
サブリソース完全性参考MDN。
この技術は、jQueryをCDNで利用する場合にも活用されているものですが、CheerpJのスクリプトのハッシュ値が公開されているわけではありませんので、Linuxのコマンドを使ってハッシュ値を独自に生成しました。
CheerpJのバージョンを変更した時には、ハッシュ値も変更しなければ動かなくなります。
しかしながら、計算ずみのハッシュ値はpotiboard.phpの最新バージョンに開発時に入りますので、エンドユーザーがハッシュ値を意識する必要はありません。 - しぃアプレットや、PaintBBS NEOのデータを受信しているpicpost.phpで受信した画像部分のファイルがjpeg、png等の画像ではなかった時は不正を検知してファイルを削除するようにしました。
しぃアプレット、PaintBBS NEOの描画に必要な時間工程数による拒絶処理を変更しました。
- 描画時間が短かったり、作画工程数が少ない時にお絵かき画面を警視庁のサイトにぶっとばす機能がしぃちゃんによって開発され、その仕様書どおりに警視庁のサイトにリダイレクトする掲示板が数多く存在していました。
しかし、この機能は実用的ではなく、使い所が無い仕様になっていました。
そこで、いきなりお絵かき画面から指定したどこかへぶっとばすのではなく、お絵かき画面に「描画時間が短すぎます」「工程数が少なすぎます」というアラートを表示する仕様に変更しました。
強制サムネイル機能が復活
- v1.3には存在していた強制サムネイル機能を復活させました。
最新のthumbnail_gd.php
を使用する事でこの機能がオンになります。
1MBを超えるファイル容量の時にはjpeg形式のサムネイル画像を出力します。
想定されるケース。縦横のサイズは小さいもののファイルサイズが大きなGIFアニメ画像ファイルの時に、ファイルサイズが1MBを超えていたらGIFアニメではなく、jpeg形式のサムネイル画像が表示されます。
画像をクリックすればもとのGIFアニメが表示されます。
そのほか
- 動的パレット配色生成箇所のコードを整理しました。
- 画像ファイルが存在しない時は動画の再生を止めてエラー画面を表示するようにしました。以前のままでも実害はありませんが、サーバにエラーログが蓄積される可能性がありました。
- 初期エラーメッセージを日本語・英語自動切り替えに変更しました。
- アップロード可能な上限数を大きめに設定。さくらのレンタルサーバでは5MBが上限なのでphp.iniの設定変更を推奨します。
- 必要のない処理を回避して負荷を削減。例えばコメントが無い時は、コメントの長さ、NGワードを調べる必要がないのですぐにreturnする事で負荷を削減します。
Klecks更新
ゆがみを使用したあとに白く塗りつぶした箇所にゆがみの形にそった線が入る問題が修正されています。
ヘルプページに使い方の動画リンクが追加され、グラデーションのショートカットキーの項目が追加されました。
変更があったディレクトリ
- klecks/
変更があったファイル
- potiboard.php
- picpost.php
- save.php
- saveklecks.php
- thumbnail_gd.php
変更があったテンプレート
- templates/basic/ のすべて
- templates/mono/ のすべて
[2022/10/03] v5.26.8
ChickenPaintを最新版に更新
Chromeのバグを回避
- ChickenPaintのカラーピッカーで色を選択する操作をすると、表示されていた色が消え、真っ白になる問題がChromeのバグによって発生しました。
このGoogle Chromeのバグを回避して動作するChickenPaintの最新版に更新しました。
klecksを最新版に更新
- グラデーションツールに消しゴム化オプションが追加されました。
- 集中線を描写する機能が追加されました。
luminousでポップアップ表示
- サムネイルをクリックすると別タブで開く従来の表示方式を見直し。同じタブにポップアップ表示するライトボックス「luminous」を使用して表示します。
searchにスクロールするとでてくる上に戻るボタンを追加。
検索画面にもスクロールするとでてくる上に戻るボタンを追加しました。
変更があったディレクトリ
- chickenpaint/
- klecks/
- lib/luminous/
変更があったファイル
- potiboard.php
- search.php
変更があったテンプレート
テンプレートのカスタマイズをしている方がテンプレートを変更するのは大変な作業ですので、
luminousによるポップアップ表示など新機能に対応させたい方だけテンプレートを更新していただければ幸いです。
BASIC
- templates/basic/
ディレクトリ以下の全て
MONO
- templates/mono/
ディレクトリ以下の全て
[2022/09/20] v5.26.3
更新
- Klecksを最新版に更新しました。
グラデーションツールとパターンフィルタが追加されました。 - BladeOneをv4.6に更新しました。
バグ修正
- 返信画面の記事番号に親以外の記事番号を指定すると、E-WARNINGレベルのPHPのエラーが発生するバグを修正しました。
この問題は、v5.18.12で発生し、v5.26.3で修正されました。
正しい記事番号が指定されている時には発生しない上、軽微なエラーですがサーバのエラーログにエラーが記録され続ける可能性がありますのでアップデートをよろしくお願いします。
potiboard.php
をアップデートするだけでもこの問題に対応できます。
改善
- コンティニュー認証と
.pch
、.chi
、.psd
ダウンロード認証時も、パス欄が空白の時はCookieのパスを代入するようにしました。
編集画面ではパスワード入力欄が空白で、パスワードのCookieがあるときはCookieのパスワードがパスワードとして使用されていましたが、コンティニュー認証やダウンロード認証の時には、パスワードの入力が必要でした。
これらの仕様を統一しました。 - パスワード照合のための関数
check_password()
を修正。パスワードの入力がなく、Cookieのパスワードも存在しない時には鍵が開かないようにしました。 - メール通知機能の多国語対応が不十分だったのを修正しました。
メールのヘッダのハングル文字またはそのほかの文字が文字化けしていたのを修正しました。 - テンプレート MONOのページ番号の間隔を広げました。
- テンプレートMONOのmayoのボタンの背景色を変更しました。
- NEOのペイント画面の時計のJavaScriptを修正しました。
- 管理画面のファイルサイズの単位をバイトからKBに変更しました。
変更があったファイル
- noticemail/noticemail.inc
- potiboard.php
変更があったディレクトリ
- klecks/
- BladeOne/
変更があったファイル
- potiboard.php
- picpost.php
変更があったテンプレート
テンプレートはv5.xのBladeOne対応ものであれば更新しなくても大丈夫です。
この間の変更はスマホ操作に適していないというGoogleのテストの結果をうけて調整している側面が強いため、現状困っていないのであればそのままで。
テンプレート BASIC
- templates/basic/other.blade.php
- templates/basic/paint.blade.php
- templates/basic/template_ini.php
テンプレート MONO
- templates/mono/css/mono_dark.css
- templates/mono/css/mono_deep.css
- templates/mono/css/mono_main.css
- templates/mono/css/mono_mayo.css
- templates/mono/mono_other.blade.php
- templates/mono/mono_paint.blade.php
- templates/mono/parts/mono_mainte_form.blade.php
- templates/mono/template_ini.php
[2022/08/17] v5.23.8.1
更新
- Klecksを最新版へ。
ノイズフィルタが追加されました。
- v5.23.8.1でv5.23.8の透明化フィルタの輝度反転が動作しない問題を修正しました。
- BladeOneをv4.5.5に更新。
- jQueryを3.6.0に更新。
ファイルの存在チェックをしていますので、同梱のjQueryが存在しない時はプログラムが動きません。
ファイルが存在しない事を伝えるエラーメッセージがでます。
改善
- クリックジャッキングの脆弱性を修正しました。
フレームまたはインラインフレームでの表示ができなくなります。
セキュリティは向上しますが、フレーム内に表示したい方がいる事も知っています。
そのため、config.phpに新規設定項目を追加して、フレーム内に表示するしないを選択できるようにしました。
フレーム内に表示する必要がない方は、設定項目を追加する必要はありません。
//iframe内での表示を 拒否する:1 許可する:0
//セキュリティリスクを回避するため "拒否する:1" を強く推奨。
define('X_FRAME_OPTIONS_DENY', '1');
新しくconfig.phpを1から書き直すのは大変だと思いますので、上記設定項目をどこでもいいので追加していただければ、フレーム内への表示ができるようになります。
-
モバイルユーザービリティを改善しました。
タップターゲットのサイズ、間隔を最適化しました。 -
ページの読み込み速度の改善
jQueryや、loadcookie.jsといった外部読み込みのJavaScriptを先読みして、レンダリングをブロックしないようにしました。 -
JavaScript実行のタイミングを
DOMContentLoaded
へ。 -
注意深く記述しないと致命的エラーになる箇所を修正しました。error()関数を組み込み関数die()へ。
-
テンプレートを直接いじらなくても、jQueryのバージョンを変更できるようにしました。
-
検索画面の画像の幅と高さを追加しました。
-
読み込み速度高速化のため最初から表示されれる範囲にloading="lazy"を適用しないようにしました。
-
PaintBBS起動画面の下のタイマーのJavaScriptの記述が非推奨の記述方法になっていたため、修正しました。
コンテンツセキュリティポリシーを設定したらPOTI-boardのお絵かき画面の時計が動かなくなりました。|さとぴあ|note
追加されたファイル
- lib/jquery-3.6.0.min.js
変更があったファイル
- thumbnail_gd.php
- potiboard.php
- config.php
- search.php
変更があったディレクトリ
- klecks/
- BladeOne/
変更があったテンプレート
- templates/basic/
- templates/mono/
テンプレートは、CSSも含めてすべて変更になりました。
BASICには、スクロールすると出てくる上に戻るボタンを追加しています。
サイトの高速化や、スマホ操作のしやすさを改善し、jQueryのバージョンを管理できるようになりました。
しかし、すでにカスタマイズしている方は、テンプレートを変更しなくても大丈夫です。
その場合はjQueryのバージョンが、v3.5.1のままになりますので、ご留意ください。
[2022/07/11] v5.20.2
改善
- お絵かき画像の投稿時にファイル名の重複が発生する確率を1/1000に。
- 仮に重複しても投稿時刻に1秒追加。
- 投稿された画像の存在確認処理を追加し、お絵かき画像が確実にサーバに送信されてた事を確認してから画面を推移。
更新
- Klecksを更新しました。編集機能にグリッドが追加されました。
- BladeOneを更新しました。軽微なバグが修正されています。
変更があったファイル
- potiboard.php
- picpost.php
- save.php
- saveklecks.php
変更があったディレクトリ
- BladeOne/
- klecks/
[2022/06/30] v5.19.1
- PHP7.1では動作しなくなっている事が確認されたため、必要な動作環境をPHP7.2以上に変更しました。
PHP7.1環境では、起動せずPHPのバージョンが低い事を伝えるエラーメッセージを出します。 - 未投稿画像のリンクはコメント未記入で画面から離れてしまったあとでも、再度投稿できるようにするためにあります。
しかしながら、コメントの記入欄や画像のアップロード欄があり、未投稿画像がない時にも送信フォームが表示されていました。
未投稿画像が存在しない時はフォームを表示しないようにしました。 - PaintBBSの画像を受け取り処理している
picpost.php
に画像とユーザーデータのファイルの存在確認を追加しました。
それらの必要なファイルが存在しない時はお絵かき画面から推移せずエラーをアラートで表示します。
画面を推移してしまうと、投稿に失敗したまま投稿画面の画像も消えてしまうためアラートで知らせます。
変更があったファイル
- potiboard.php
- picpost.php
変更があったテンプレート
MONO
- templates/mono/mono_other.blade.php
- templates/mono/css/
(未投稿画像の箇所にフォームが表示されるこれまで通りの画面で構わければ更新の必要はありません)
BASIC
- templates/basic/other.blade.php
(未投稿画像の箇所にフォームが表示されるこれまで通りの画面で構わければ更新の必要はありません)
[2022/06/11] v5.18.25
バグ修正
- レス省略件数の区切りの横線のレイアウトが崩れていたのを修正しました。
(テンプレートMONO使用時)
改善
- ChickenPaintが全画面で起動するようになりました。
- futaba.phpのログファイルを読み込んで表示できるようになりました。
カンマの数が一致しない事が原因で発生していたエラーを修正しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
MONO
- templates/mono/mono_main.blade.php
レス省略件数の表示レイアウトが崩れていたのを修正しました。 - templates/mono/mono_paint.blade.php
ChickenPaintが全画面表示で起動するようになりました。
BASIC
- templates/basic/paint.blade.php
ChickenPaintを全画面表示で起動するようになりました。
[2022/05/25] v5.18.9
Klecks更新
Klecksを最新版にアップデートしました。
CheerpJをv2.3へ
しぃペインター使用時にJavaアプレットをJavaScriptに変換するCheerpJをv2.3に更新しました。
バグ修正
- テキストの編集時に、不要なスペースが入るバグを修正しました。
- スパム対策のための拒絶する文字列や拒絶するurlに、
/
(スラッシュ)が含まれていると正しく処理できなくなるバグを修正しました。 - テンポラリ不要ファイルの削除処理の経過日数の計算時に軽微なエラーが発生していたのを修正しました。
- 指定経過日数でレスフォームを閉じる時の日時の基準が親の投稿日時ではなく最新レスの投稿日時になっていたのを修正しました。
- Paintフォームの「Size」の文字の色指定が他の文字と異なっていたのを修正しました。
コード整理
- forで記述されていた箇所をforeachへ。file()で開いていたログファイルをfopen()に変更しました。
- PCHアップロードペイントの作業ファイルの削除処理を正規表現を使用する重い関数からstrpos()に変更しました。
改善
- トリップ機能を再実装。
隠し機能的な再実装になりますので、テンプレート「MONO」でのみ表示できます。
BASICは非対応。 - 空行が存在するログファイルを処理できるようになりました。
変更があったディレクトリ
- klecks/
変更があったファイル
- potiboard.php
- search.php
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
(見た目上の差異なので、気にならなければそのままでも) - templates/basic/parts/paint_form.blade.php
(見た目上の差異なので、気にならなければそのままでも) - templates/basic/other.blade.php
(記事の編集時に余分な空白が入ってしまう問題を修正しました) - templates/basic/paint_klecks.blade.php
(サーバからのエラーがぴったり400番だった時にもエラーのアラートが開くようになりました)
MONO
- templates/mono/paint_klecks.blade.php
(サーバからのエラーがぴったり400番だった時にもエラーのアラートが開くようになりました)
[2022/04/28] v5.16.8
Klecksを更新しました。
- iPadOSで発生するいくつかの問題が修正されました。
- 使用可能な言語に繁体字中文が追加されました。
テンプレートエンジンBladeOneを更新しました。
- BladeOneをv4.5.3に更新しました。
改善
-
klecksの送信失敗の原因がサーバーエラーの時はエラー番号をアラートで表示します。
例えば、Klecksのデータを受信するsaveklecks.php
が存在しない時は、「エラー404」というアラートを表示します。 -
ファイルサイズが指定サイズよりも大きなときに、PNGからJPEGに変換する処理の作業ディレクトリを
TEMP_DIR
に変更しました。
処理に失敗して作業ファイルが残ってしまっても、テンポラリの自動削除機能で一定時間経過後に削除されるようになります。
バグ修正
- 動画(PCH)保存ディレクトリ
define('PCH_DIR', 'src/');
に、'src/'
以外のディレクトリが指定されている時にディレクトリの自動作成が機能せず、NEOの動画、ChickenPaintの.chi
ファイル、klecksの.psd
ファイルが保存できなくなっていたのを修正しました。ディレクトリが存在しない時は自動的に作成するようになりました。
変更があったディレクトリ
- BladeOne/ (BladeOne/ ディレクトリを上書きアップデート)
- klecks/ (klecks/ ディレクトリを上書きアップデート)
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_klecks.blade.php
[2022/04/02] v5.16.5.1
Klecks更新
- レイヤーの最大枚数が8枚から16枚に増えました。
バグ修正
- テンプレートBASICのバグを修正しました。
search画面の画像の一覧のリンクが機能していなかったのを修正しました。
原因はHTMLの文法のミスでした。 - search画面のHTMLの文法エラーを修正しました。
checked="checked"
のクオートがエスケープされて文法エラーになっていたのを修正しました。
変更があったファイル
- search.php
変更があったディレクトリ
- klecks/
ディレクトリ単位で上書きアップデート。
変更があったテンプレート
BASIC
- templates/basic/search.blade.php
MONO
- templates/mono/search.blade.php
[2022/03/25] v5.16.5
改善
Klecksの日本語訳
- Klecksを日本語に翻訳しました。
POTI-boardにも、日本語対応版を同梱する事ができました。
この新しいバージョンのKlecksは、ブラウザの言語の優先順位を自動検出して言語を切り替えてくれます。
また、ブラウザの言語の設定にかかわらず使用する言語を指定する事もできます。
英語、ドイツ語、日本語が選択できます。
中文は簡体字のみで細部はまだ英語のままです。
日本語訳のリソースはすでに開発元に統合されています。
アプリ固有ファイルのダウンロードボタンができました。
アプリ固有形式一覧
.pch
ファイル(PaintBBS).chi
ファイル(ChickenPaint).psd
ファイル(Klecks)
Klecksのレイヤー情報を含むファイルはPhotoshop形式の.psd
ファイルです。
ダウンロードした.psd
ファイルはクリスタやSAIそのほか多くのアプリで開く事ができます。
.pch
と、.chi
は、それぞれNEOとChickenPaintで開く事ができます。
管理者投稿過画面から.pch
、.chi
、.psd
を添付してペイントボタンを押せば、キャンバスに読み込んで投稿できます。
透過PNG、透過GIFのサムネイルの透明部分を白に変更
- 透過PNGの透明部分がJPEG化する時に、真っ黒になっていたのを修正しました。
透明色が黒も間違いではないのですが、意図しない結果になる事が多いため、透過GIF、透過PNGからJPEGに変換する時は、透明色を白に変換します。
バグ修正
- 管理者ログイン時に使うアップロードペイントアプリ固有形式、pch、chi、psdなどの不要になったファイルの自動削除機能の動作時に軽微なエラーが発生するケースがあったのを修正しました。
BladeOne更新
テンプレートエンジンBladeOneをv4.5に更新しました。
変更があったファイル
- potiboard.php
- thumbnail_gd.php
変更があったディレクトリ
- BladeOne/
- klecks/
ディレクトリ単位で上書きアップデート。
変更があったテンプレート
BASIC
- templates/basic/basic.css
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/template_ini.php
MONO
- templates/mono/mono_paint.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/template_ini.php
ダウンロード
下記ソースコードリンクからダウンロードできます。