古いバージョンに存在する重大なバグ
-
v2.26.0以前のPOTI-boardにはXSSの脆弱性があります。
悪意のあるJavaScriptが実行される可能性があります。 -
v3.09.5以前のPOTI-boardのすべてのバージョンには重大な欠陥があります。
すべてのログファイルを失う可能性があります。
また、v3.x系統のPOTI-boardはPHP8.1環境下で非推奨のエラーが発生します。
現時点では警告ですがPHP9で動作が停止します。
そのためのv6.xの開発です。v6.xの利用をおすすめします。
ダウンロード
このページの一番下のソースコードリンクからダウンロードできます。
POTI-board EVO v6.39.11リリース
2024/11/08 v6.39.11
Klecksでファイルサイズが大きすぎる時に詳細なエラーメッセージを表示
- 「ファイルサイズが大きすぎます。制限値:20MB 現在値30MB」のような形式でエラーメッセージを表示します。
Klecksで出力するPNG形式の画像ファイルとPSD形式のレイヤー情報を合計した値が、サーバの許容値を超えてしまった時に、なぜ投稿できないのかを詳細に表示します。
これまでは「投稿に失敗。時間を置いて再度投稿して下さい。」とだけ表示されていました。
レイヤー情報込みのファイルサイズなので、レイヤーの枚数が多いほど上限を超えやすくなります。
レイヤーを結合すればファイルサイズは小さくなります。
日本語表示時。
英語表示時。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_klecks.blade.php
2024/11/06 v6.39.9
ChickenPaint Be更新
- ファイルサイズがサーバの許容値を超えている時により詳細なエラーメッセージを表示します。
「ファイルサイズがサーバーの上限を超えています。」というエラーメッセージを表示します。
また、上限値と現在のファイルサイズも表示します。
これまでは「お絵かきが保存できませんでした。再度投稿してみてください。」とだけ表示されていました。
ChickenPaintのレイヤーを統合して整理すれば投稿時のファイルサイズは小さくなります。このエラーメッセージが表示されて投稿できない時はレイヤーの統合を行えば投稿が可能になる場合があります。
アップロード容量の制限値を知りたい(ファイルマネージャ、FTP、PHP) - よくあるご質問 - さくらのサポート情報
https://faq.sakura.ad.jp/s/article/000001463
さくらのレンタルサーバでは、初期設定で5MBまでとなっており、それよりも大きなファイルサイズを許容してたい時は、php.iniを編集します。
POTI-boardでは、post_max_sizeとupload_max_filesizeの両方の値をみて、より小さなほうを制限値として使いますので、以下の2つの上限値を調整する必要があります。
php.iniの編集方法はサーバのマニュアルなどでご確認ください。
以下の設定例の単位はMBです。
あまり大きくしすぎるとDdos攻撃の被害にあいやすくなる事がありますので、ご注意ください。
JavaScriptのアプリの安定性なども含めて考慮すると大きくても25MBぐらいが妥当だと思います。
設定例
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; https://php.net/post-max-size
post_max_size = 20M
; Maximum allowed size for uploaded files.
; https://php.net/upload-max-filesize
upload_max_filesize = 20M
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2024/11/03 v6.39.8
ChickenPaint Be更新
- ChickenPaint Beのテクスチャパレットがスクロールできなくなっていたのを修正しました。
( テクスチャパレットのスクロールが必要になるのはスマホのような小さな画面の端末の時です。)
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/11/03 v6.39.7
サムネイル作成の一連のGD処理をクラス化して、可読性の高いソースコードに
thumbnail_gd.php
に機能を詰め込んだ結果、ソースコードの可読性が著しく低下してしまったため静的クラスにまとめ直しました。
thumbnail_gd.php
は削除されました。
代わりにthumbnail_gd.inc.php
を使います。
thumbnail_gd.php
は不要になりましたが、サーバ上に残っていても問題ありません。
不要なファイルを削除しようとして、必要なファイルを削除してしまう事もありますので、削除する時は十分にご注意ください。
thumbnail_gd.inc.php`は、Petit Noteと共通のクラスになりました。
Petit Note、POTI-boardそれぞれの2種類のファイルをメンテナンスする必要がなくなりました。
お絵かき画像の実態サイズが縮小されるバグを修正しました
//アップロード時の幅と高さの最大サイズ これ以上は縮小
define("MAX_W_PX", "1024"); //幅
define("MAX_H_PX", "1024"); //高さ
お絵かきできる最大サイズよりも、MAX_W_PX
またはMAX_H_PX
で設定したサイズのほうが小さな時に、画像が縮小されてしまうバグを修正しました。
本来は、お絵かき画像の画像サイズの制限は、お絵かきできる最大サイズで指定するべきで、投稿したあとに、最初の画像よりも小さくなるのは意図していなかった動作でした。
テンプレートBASICに、トリップコードが表示できるようになりました。
- BASICテンプレートにもトリップコードを表示できるようにしました。(MONOには以前から実装ずみ)
この画像の「◆CSZ6G0yP9Q」の部分がトリップコードです。
名前を入力するときに「さとぴあ#abcd」のように入力すると「abcd」の部分がトリップコードに変換されます。
「◆CSZ6G0yP9Q」という文字しかわからない場合は、もとの入力がなんだったのかを推測する事が難しいため、匿名掲示板で本人である事の証明する時に使われているものです。
たとえば、掲示板の管理者と名乗る書き込みが本当に管理者によるものなのかどうかをトリップコードで確認する事ができます。
古いPOTI-boardにもともとあった機能を使う人がいないという理由で取り外していましたが、一定の需要が存在している事が判明したため、再度実装しました。
テンプレートMONOで投稿時に投稿したレスの箇所に画面がスクロールするようになりました
- MONOは入力欄が上部にあるため、投稿完了時に返信画面の一番上の位置を表示していました。
しかしながら、それでは返信コメントの投稿が完了したのかどうかわからない時があるため、返信したコメントが見える位置まで画面をスクロールするようにしました。
変更があったファイル
- potiboard.php
追加されたファイル - thumbnail_gd.inc.php
削除されたファイル
- thumbnail_gd.php
変更があったテンプレート
BASIC
- templates/basic/basic.css
- templates/basic/main.blade.php
- templates/basic/res.blade.php
MONO
- templates/mono/mono_main.blade.php
- templates/mono/mono_paint.blade.php
2024/11/01 v6.39.3
- PNG形式画像がMAX_KBを超える時は、JPEGに変換して投稿を可能にする機能を改修し、potiboard.phpで処理していたGDの処理をthumbnail_gd.phpに移動しました。
既存のGD処理を活用して、potiboard.phpのコードを短縮しました。 - お絵かきの時には画像のファイルサイズがMAX_KBで指定した値を超えていても、エラーにせず投稿を完了させるようにしました。
投稿フォームからの添付ファイルの画像は、これまで通り、MAX_KB超過時にエラーになります。
これまでも存在していてた仕様ですが、もとのファイルサイズがとても大きくても、縦横の制限で縮小が入り、MAX_KBよりファイルサイズが大きな時はPNGをJPEGに変換します。その結果、最終的なファイルサイズがMAX_KBの範囲内に収まれば投稿は成功します。
変更があったファイル
- potiboard.php
- thumbnail_gd.php
2024/10/26 v6.38.1
ChickenPaint Be 更新
ブラシプレビューの円をドラッグしてブラシサイズを変更する機能をペン対応に
- ブラシプレビューのプレビュー画面の円をドラッグしてブラシサイズを変更する操作がペンでもできるようになりました。
ペンでも操作できるようにするため、マウスに最適化されていた処理をPointerEventに書き直しました。
また、各パレットとメインメニューのtouchmoveEventのデフォルトの動作をキャンセルし、誤動作が発生しないようにしました。
ペンが画面から離れているにもかかわらず、ドラッグしている対象が動いたままになる問題を修正しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/10/25 v6.38.0
ChickenPaint Be 更新
テクスチャパレットにノイズテクスチャを追加
- 「テクスチャパレット」に「ノイズテクスチャ」を追加しました。
これまでも、「効果メニュー」の「単色ノイズ」とレイヤー効果でノイズをのせる事ができましたが、それとも少し違うノイズを出す事ができます。
ペンや鉛筆と組み合わせて使う事で、より鉛筆らしい線を描写できます。
また水彩ブラシなどの厚塗りの時にも効果を発揮します。
消しゴム使用時はテクスチャを無効化
- 消しゴム使用時はテクスチャを無効化する処理を追加しました。
テクスチャを選択している時にも、消しゴムで消去できるようになりました。
これまでは、テクスチャを選択したまま消しゴムをかけると、薄くはなるものの、消す事ができませんでした。 - 薄消しゴム使用時はテクスチャが適用されます。消しゴムを使ったテクスチャのかけ合わせによる模様の作成をする時は薄消しゴムをご利用ください。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/10/23 v6.37.8
検索処理のコードを最適化
- 同じ処理の繰り返しを関数化してコードの可読性を高めました。
この関数化により同じ繰り返を繰り返していた16行を4行にまとめる事ができました。
ChickenPaint Be更新
- Bootstrapをグローバルに宣言するのをやめ必要な箇所にimportするようにしました。
また、削減可能な処理を削除しました。
ビルドの日付が、「ChickenPaint Beについて」に入るようになりました。
これにより、いつビルドされたChickenPaint Beなのかが一目でわかるようになります。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
- search.inc.php
2024/10/15 v6.37.7
ChickenPaint Be更新
- ChickenPaint Be拡大縮小のショートカットキーをKlecksやAXNOS Paintと同じ、「+」「-」に変更しました。
これまでは、「ctrl + +」「ctrl + -」のように「ctrlキー」と一緒に押下する必要がありました。 - ChickenPaint Beのファイルサイズを23.7%削減。
ビルドツールの変更とIE互換のために使用していたポリフィルのパッケージの削除により、ファイルサイズを779KBから594KBに削減する事ができました。
軽量化により、より高速に起動できるようになりました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/10/04 v6.37.6
Lightbox更新
- Lightbox v2.11.5にアップデートし、さらにそこから再度改造してお絵かき掲示板仕様にしました。
AXNOS Paint更新
- レイヤーのサムネイル画像の背景を単色グレーから市松模様に変更しました。
- レイヤーのサムネイル画像の線画等の太さを太くして視認性を向上させました。
これはAXNOS Paintの公式対応ではなく、改造版の仕様変更です。
この仕様変更によって問題が発生した場合の責任はオリジナルのAXNOS Paintの開発者にはありませんので、そのような内容をオリジナルのAXNOS Paintの開発者に問い合わせないようお願いします。
変更があったファイル
- axnos/
- lib/lightbox/
- potiboard.php
2024/09/30 v6.37.3
PaintBBS NEO更新
別ページに移動してしまった時や、ブラウザのタブを誤って閉じた時に画像を復元する機能が、PaintBBS NEOにはありますが、復元時にあやまって小さなキャンバスサイズを選択して復元すると、その小さなキャンバスサイズにあわせて画像が切り取られていました。
その後に大きなキャンバスサイズを選択して再度復元しても、画像は小さく切り取られたままでした。
今回の更新により、再度大きなキャンバスサイズを選択すればもとのサイズで画像を復元できるようになりました。
変更があったファイル
- neo.js
- potiboard.php
2024/09/28 v6.37.2
PaintBBS NEO更新
PCの電源が落ちた状態からの画像の復元ができるようになりました
別ページに移動してしまった時や、ブラウザのタブを誤って閉じた時に画像を復元する機能が、PaintBBS NEOにはありますが、落雷による停電等でPCの電源が落ちてしまった時は、画像を復元する事ができませんでした。
ページを移動した時やタブを閉じた時にしかバックアップ用のデータを保存していなかったため、落雷等による予期しない電源の遮断時に復元データは保存されていませんでした。
そのため、復元用のデータを10ストロークごとに保存し、ブラウザを完全に終了した時にもデータを保存するようにしました。
そして、データの保存先がモバイル端末の時と同じようにローカルストレージになるように変更しました。
しかし、これだけでは問題が残ります。
試し書き等のデータが1週間後あるいはもっと先まで保存され続け、予期しないタイミングで復元される可能性があります。
それらを考え、3日以上経過した古い復元データは自動的に破棄する仕様にしました。
近年の気候変動により、雷雨による停電が増えています。
今回のPaintBBS NEO v1.6.5により、突然停電になった時でも、描画途中のデータを復元できるようになりました。
PC版のChrome、EdgeそしてFirefoxで動作確認しています。
変更があったファイル
- neo.js
- potiboard.php
2024/09/27 v6.37.0
PHP8.4対応
2024年11月リリース予定のPHP8.4RC版のテスト環境を作り、POTI-boardのテストを行いました。
結果、BladeOneで非推奨のエラーが発生する事が判明しました。
PHP8.4はまだ正式にリリースされていないため、BladeOneのPHP8.4対応はこれから行われるものと思われますが、比較的容易にパッチをあてる事ができる箇所であったため、非公式にパッチをあてたBladeOneを作成し同梱しました。
PaintBBS NEO更新
substring()とslice()が混在していたコードをslice()に統一しました。(動作変わらず)
変更があったファイル
- BladeOne/ ディレクトリを上書きアップデート
- neo.css
- neo.js
- potiboard.php
2024/09/19 v6.36.3
ChickenPaint Be更新
- Bootstrap3、Bootstrap4のレガシーなCSSクラスを整理しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/09/07 v6.36.1
ペイント画面のテンプレートを更新しました。
- Klecksで続きを描く時にPNG、JPEGなどの画像ファイルの読み込みに失敗する事があるのを修正しました。
- Klecksで透過PNGから続きを描いた時に透過にならず白塗りつぶし背景になるバグを修正しました。
レイヤー情報を記録しているPSDファイルが存在している時にはこの問題は発生しないため発見が遅れました。 - 画像を保存するためのファイルが存在しない時の404エラーのエラーメッセージを修正しました。
エラーメッセージにインクルードして使っている直接呼び出していないファイル名が表示されていました。
AXNOS Paint更新
リリースされたAXNOS Paint V2.3.0をPetit Note用に改造し直しました。
変更があったファイル
- axnos/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_axnos.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/paint_tegaki.blade.php
MONO
- templates/mono/paint_axnos.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/paint_tegaki.blade.php
2024/09/05 v6.36.0
AXNOS Paint更新
-
公式版のAXNOS Paintが更新されたため、それにあわせて起動オプションを追加しました。
AXNOS Paintを改造して1000px制限を1800pxに拡大しました。 -
AXNOS Paintで続きを描く時に、元の画像が掲示板で設定している幅と高さの最大値を超えているときは、画像の幅と高さをもとに最大値を設定するようになりました。
これにより、幅と高さの最大値が1000pxで続きを描く時の元の画像が幅2000px、高さ2000pxの時は、幅1800px 高さ1800pxのキャンバスが開きます。
お絵かきできる最大の幅と高さの最大値が1000pxでも、続きを描く時のもとの画像サイズにあわせて幅と高さを拡張します。
しかし、AXNOS Paintの制限値1800pxを超える事はありません。
AXNOS Paintの本来の最大の幅と高さは1000pxであるため、キャンバスサイズが1800pxの時に発生する問題は、AXNOS Paint公式の問題ではなく、改造版の問題です。
画像のサイズがお絵かきできる最小値より小さくなる場合も想定してPOTI-board側で調整しました。 -
AXNOS Paintの最新版でAndroid端末+消しゴムツール使用時にピンチズームが動作しなくなる事がある問題が修正されました。
変更があったファイル
- axnos/ ディレクトリを上書きアップデート
- potiboard.php
変更があったファイル
- axnos/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_axnos.blade.php
MONO
- templates/mono/paint_axnos.blade.php
2024/09/02 v6.35.5
AXNOS Paint更新
- 掲示板で設定したキャンバスサイズの最大値と最小値がAXNOS Paintの設定タブのキャンバスサイズ最大値、最小値に反映されるようになりました。
- ブラウザの優先言語の設定が日本語以外の時には英語UIで起動するようになりました。
- 改造して使用していた続きを描くための処理をAXNOS Paint公式のものに置き換えました。
klecksで発生していた軽微な問題を修正
- Klecksの自由変形処理画面の操作中にペンの長押しを検知して右クリックメニューが開いてしまう問題を修正しました。
変更があったファイル
- axnos/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_axnos.blade.php
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_axnos.blade.php
- templates/mono/paint_klecks.blade.php
2024/08/21 v6.35.3
改造版AXNOS Paintを更新
- レイヤーの合成結果がSAIやFireAlpacaと近くなるように変更しました。
これは現時点では改造版のAXNOS Paintの仕様変更です。この変更によって発生したレイヤーの合成結果に関する問題は改造版の問題であり、開発元が作成したオリジナル版のAXNOS Paintの問題ではありません。
そのような問題もあるためバージョン情報に改造版のリポジトリのURLを追記して改造版である事を明確にしました。 - AXNOS PaintとTegakiの投稿ボタン連打対策を行いました
投稿ボタンを連打すると何枚も画像が送信され、未投稿画像に入る問題を修正しました。
AXNOS Paintの仕様にそった通信処理に変更しました。
変更があったファイル
- axnos/ ディレクトリを上書きアップデート
- tegaki/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_axnos.blade.php
MONO
- templates/mono/paint_axnos.blade.php
2024/08/09 v6.35.2
AXNOS Paintを更新しました。
- MacOS+Safariブラウザで、ツールパレットを移動すると、描画時にツールパレットがカーソルと一緒についてきてしまい描く事ができなかった問題を非公式に修正しました。
この問題は、Safariの最新版では再現しません。Safari14で発生する問題に対処するための非公式な修正です。
変更があったファイル
- axnos/ ディレクトリを上書きアップデート
- potiboard.php
2024/08/08 v6.35.1
AXNOS Paintに対応しました。
AXNOS Paintとは (アクノスペイントとは) [単語記事] - ニコニコ大百科
config.phpに新規設定項目追加
//Axnos Paintを使う 使う:1 使わない:0
define("USE_AXNOS", "1");
この設定項目が存在しない時は、Axnos Paintを使うになります。
Axnos Paintをペイントアプリ選択一覧に出したくない時は、上記設定項目を追加してください。
変更があったファイル
- axnos/ ディレクトリを上書きアップデート
- potiboard.php
- config.php
Axnos Paintをペイントアプリ選択一覧に出したくない時は、config.phpを更新します。
Axnos Paintを使う設定で問題ない場合はconfig.phpを更新する必要はありません。
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
- templates/basic/paint_axnos.blade.php
- templates/basic/parts/copyright.blade.php
- templates/basic/parts/paint_form.blade.php
MONO
- templates/mono/mono_paint.blade.php
- templates/mono/paint_axnos.blade.php
- templates/mono/parts/mono_copyright.blade.php
- templates/mono/parts/mono_paint_form.blade.php
2024/08/04 v6.33.8
ChickenPaint Be更新
- ツールパレットのぼかしツールのショートカットキーをUに設定しました。
これで、キャンバスの回転とハンドツールによる移動以外のツールパレットのショートカットキーがすべて割り当てずみになりました。
キャンバスの回転は、R+ドラッグ、ハンドツールはシフト+ドラッグで同様の操作ができるため、ツールパレットのこの機能のショートカットキーは設定しませんでした。 - オリジナルのChickenPaintと同じように変形確定ボタンをパレットの横幅いっぱいに広がるようにしました。
これはBootstrap5対応にする時に、必要なCSSが一部欠落した事が原因だったため、オリジナルのChickenPaintのCSSの一部を追加しなおしました。
potiboard.phpのコードを整理
- 続きを描く時の記事番号とパスワードを照合する処理のネストを浅くしました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/07/27 v6.33.6
パスワードを連続して間違えた時のエラーメッセージを変更
これまでは、「拒絶されました。」とだけ表示されていたエラーメッセージを「 連続したパスワードの誤入力を検知したためロックしています。」に変更しました。
これまでは「拒絶されました。」というエラーメッセージが表示される個所が二個所あり、原因の特定が困難になる事がありました。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/template_ini.php
MONO
- templates/mono/template_ini.php
2024/07/27 v6.33.5
ChickenPaint Beのバグを修正しました。
- 2024/07/13 v6.32.9でChickenPaint Beがレイヤー2枚で起動するようになりましたが、その時に自動的に作成される透明レイヤーが正しく動作していなかったのを修正しました。
混色系ブラシで描画した時に黒を引き摺り画面が黒くなっていました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/07/24 v6.33.2
ChickenPaint Be更新
- コードを整理しました。機能に変更はありません。
klecksを更新
- Klecksを最新版にアップデートしました。細かな修正が行われています。
管理者パスワードを5回間違えた時のロック解除
/*セキュリティ*/
// 管理者パスワードを5回連続して間違えた時は拒絶する
// する: 1 しない: 0
// する: 1 にするとセキュリティは高まりますが、ログインページがロックされた時の解除に手間がかかります。
define("CHECK_PASSWORD_INPUT_ERROR_COUNT", "0");
//ftp等でアクセスして、
// `templates/errorlog/error.log`
// を削除すると、再度ログインできるようになります。
// このファイルには、間違った管理者パスワードを入力したクライアントのIPアドレスが保存されています。
// 上記ファイルは手動で削除しなくても、ロック発生から3日経過すると自動的に削除され、ロックが解除されます。
// また、 しない: 0 に設定しなおせば上記ファイルは削除され、ロックが解除されます。
管理者パスワードを5回連続して間違えた時は拒絶する設定を有効にして、拒絶されてしまった時の対処方法はこれまで、ftp接続して、templates/errorlog/error.log
を削除するしかありませんでした。
それでは面倒なので、3日後には自動的にロックが解除されるようにしました。
また、拒絶しないに設定しなおすと、上記エラーログが削除されるようにしました。
その後すぐに拒絶するに設定を戻してもロック解除ずみなので、次の5回連続誤入力までロックされません。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
2024/07/19 v6.32.11
ChickenPaint Be更新
- フォルダ結合アイコンのデザインを変更しました。
変更があったファイル
- potiboard.php
- chickenpaint/ ディレクトリを上書きアップデート
2024/07/15 v6.32.10
ChickenPaint Be更新
- レイヤーパレットに複製アイコンを追加しました。
レイヤーやレイヤーグループを1タップで複製できるようになりました。
これまではショートカットキーを使用するか、上段のメニューから複製を選択する必要がありました。 - 下のレイヤーと結合アイコンをより視覚的にわかりやすいものに変更しました。
- レイヤーグループ結合アイコンを下のレイヤーと結合アイコンと同じ位置に配置しました。
レイヤーグループのフォルダ選択時はグループ結合アイコンになり、レイヤーの選択時には下のレイヤーと結合アイコンに入れ替わります。
変更があったファイル
- potiboard.php
- chickenpaint/ ディレクトリを上書きアップデート
2024/07/13 v6.32.9
ChickenPaint Be更新
- 背景レイヤーと透明なレイヤー合計2枚で起動します。
白い背景レイヤーに線画を描く事故を減らせます。
変更があったファイル
- potiboard.php
- chickenpaint/ ディレクトリを上書きアップデート
2024/07/09 v6.32.8
Klecks更新
変更があったファイル
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
2024/07/05 v6.32.7
ChickenPaint Be更新
- iPad Air相当の幅または.高さが820px以下でタッチデバイスの時にモバイルモードで起動するようになりました。
これまでは、幅または高さが800px以下という条件だったため、iPad Airの時はPC用UIで起動していました。
またPCでブラウザのウィンドウサイズを小さくした時にもモバイル用の画面に切り替わっていましたが、タッチデバイス判定処理を追加した事によりPCの時はPC用のUIが起動するようになりました。
.htaccess更新
拡張子.json
の呼び出しを禁止する設定にしていましたが、PWAやスマホのホーム画面に設定するためのアイコンを設定するmanifest.json
の呼び出しも禁止になってしまいタッチアイコンが設定できなくなっていたため、ファイル名がmanifest.json
の場合は呼び出し可能になるように設定を変更しました。
この更新はmanifest.json
の設置が必要ない場合は関係ないため、その場合は更新する必要はありません。
テンプレートエンジンBladeOneを最新版に
- BladeOneの最新版v4.13に更新しました。
変更があったファイル
- potiboard.php
- .htaccess
- BladeOne/ ディレクトリを上書きアップデート
- chickenpaint/ ディレクトリを上書きアップデート
2024/06/19 v6.32.5
テンプレートMONOを更新しました。
フォーム入力欄の説明文を英語から日本語に変更しました。
スマホ時のフォームの表示方法を変更しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
MONO
- templates/mono/css/ ディレクトリを上書きアップデート
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
2024/06/12 v6.32.2
ChickenPaint Be更新
- レイヤーパレットの不透明度調整スライダの文字がぼやけてしまう問題を修正しました。
-
ツールオプションのスライダの間隔を広げて、指で操作できるようにしました。
-
画面の幅に余裕があるにも関わらずツールオプションの画面上からの位置がモバイルモード時は操作パレットの下になってしまっていたため、
画面幅-(ツールパレット+操作パレット)<200px
の時は、操作パレットの下の位置、それ以上の画面の横幅がある時は最上段に表示するようにしました。
これによりより広く画面を使えるようになります。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/06/10 v6.32.1
ChickenPaint Be更新
- 768px以下の幅と高さのデバイスの時はスマホ用のUIに切り替えてパレットを折りたたみます。UIが使用する面積が少なくなるため、より大きなキャンバスに描画する事ができるようになります。
iPad.mini.mp4
- スマホ用UIの時のカラーセットのマージンを広げ、指でタップできるようにしました。
NEOの描画画面の描画時間の時計をタップするとスクリーンキーボードが出現する問題
テンプレートMONOのCSSを調整
スマホ時のペイントアプリ選択とキャンバスサイズ設定の入力画面のマージンが足りず誤タップが発生しやすい状態だったため、行の高さを調整しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/css/ ディレクトリを上書きアップデート
- templates/mono/mono_paint.blade.php
2024/06/09 v6.31.23
ChickenPaint Be更新
- スマホモードの時のパレットのタイトルバーの厚みを折りたたみ/展開の操作を容易にするため増やしました。
- スマホモード時のレイヤーパレットの操作アイコンの間隔が狭くなっていたため広げました。
- 折りたたみ/展開のアイコンと閉じるアイコンの両方を表示する事により誤タップが発生して、誤って閉じてしまう事があったため、スマホモード時は閉じるアイコンを表示しなくなりました。
代わりに上段の表示/非表示のショートカットメニューで操作します。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/06/08 v6.31.22
ChickenPaint Be更新
- パレット表示非表示のショートカットメニューがスマホ・タブレット以外でも常に表示されるようになりました。
- 横幅にあわせたレスポンシブデザインをさらに最適化しました。
- ショートカットメニューの色を黄色からライトグレーに変更しました。
default.mp4
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/06/07 v6.31.21
ChickenPaint Be更新
- スマホ時にもあえてブランドロゴを表示して、ブラウザのホームボタンの誤タップが発生しないようにしました。
- パレット表示非表示のショートカットメニューがデバイスの幅いっぱいに広がるようにしました。
これまでは、間隔が狭すぎて意図した箇所の黄色いショートカットメニューをタップできない事がありました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/06/07 v6.31.20
ChickenPaint Be更新
- スマホ時のChickenPaintのメニュー操作で、ぼかしやグリッド設定などの数値入力を行ったあとキャンバスサイズが全画面にもどらなくなる問題を、v6.31.10で修正しましたが、パレット位置がモーダル表示前と表示後でずれる問題が残っていました。
モーダルウィンドウの表示イベントを取得して、自動的にハンバガーメニューを閉じるようにして、この問題を修正しました。 - スマホ・タブレットを縦または横に変更したときにハレットの配置を自動的に初期化します。
v6.31.10で、ウィンドウのサイズが変更になった時にパレットの配置の初期化する処理を追加しましたが、レイヤー名のリネーム時のスクリーンキーボードの出現をウィンドウのサイズ変更として検出してしまい、レイヤー名を変更できなくなっていたため、スマホ・タブレットの向きが変更された時にパレットの配置の初期化するようにしました。 - ブラシを変更しながら描きたい時に毎回折りたたまれてしまうとタップする回数が増えてしまいます。
スマホ時は全パレットの非表示もショートカットメニューをタップすれば可能なため、ツールパレットの自動折りたたみ機能を廃止しました。 - 大画面スマホの時にもパレット折りたたみ式のスマホ表示になりました。
"orientationchange"
が非推奨になっていたため、screen.orientation
オブジェクトの変更を取得するようにしました。- スマホ用のパレット表示/非表示のショートカットメニューがGoogle Pixel 7や、iPhone14 で表示されない事が判明したため、- スマホ用のパレット表示/非表示のショートカットメニューがGoogle Pixel 7や、iPhone14 で表示されない事が判明したため、デバイスのCSSピクセルが幅800px高さ768px以下の時にはスマホ用のショートカットメニューを表示するようにしました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/06/01 v6.31.10
- スマホ時のChickenPaintのメニュー操作で、ぼかしやグリッド設定などの数値入力を行ったあとキャンバスサイズが全画面にもどらなくなる問題を修正しました。
スマホを縦横に傾けた時に、レイヤーパレットの位置が期待した位置に表示されない事がある問題に対応するため、画面のリサイズ時にパレット配置の初期化を自動的に行うようにしました。
PCでブラウザのウィンドウサイズを変更した時にもサイズが変わるたびにパレットの配置が初期化されます。
これにより、ウィンドウの幅を狭くした時にパレットが左に偏ってしまいウィンドウを広げ直しても元に戻らなくなっていた問題も解決しました。
ただし、ウィンドウを少し変更するだけでパレットの配置が初期化されてしまうため、パレットの位置を動かしながら描きたい場合には問題が発生するかもしれません。
しかしながら、ウィンドウのサイズを変更しなければ初期化はされませんので、一定のブラウザのウィンドウサイズで描く分には問題ないはずです。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/05/28 v6.31.9
- ChickenPaint Beのレイヤーパレットの操作アイコンが横1列に収まるように調整しました。
これまでは、スマホやタブレットの時に改行が入り、ゴミ箱アイコンの手前で改行が入っていました。
(Androidスマホで動作確認しました。iOSでの実機による動作確認はできていません。PC版chromeのエミュレータにのみ。)
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/05/23 v6.31.8
ChickenPaint Beに左右反転アイコンを追加しました
- ChickenPaintの操作パレットに左右反転アイコンを追加しました。
キーボードショートカットキーを使うことができない端末でも簡単に左右反転できるようになりました。
ただし、レイヤー単位の左右反転になり、表示の左右反転ではなく実データの左右反転になります。
そのためこの左右反転は履歴にも残ります。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/05/23 v6.31.3
ChickenPaint Be更新
- ChickenPaint beで使用しているBootstrapをv5.3.3にアップデートしました。。
- ChickenPaint beで使用されていた非推奨の構文
returnValue
を修正しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/05/21 v6.31.2
twitter.com→x.com
設定がtwitter.com
でもx.com
、でもx.com
のURLでSNS共有リンクが作成されるようになりました。
// SNS共有の時に一覧で表示するサーバ
//例 ["表示名","https://example.com (SNSのサーバのurl)"],(最後にカンマが必要です)
$servers =
[
["X","https://x.com"],
["Bluesky","https://bsky.app"],
["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
のX(旧ツイッター)のURLがtwitter.com
のままでも問題なくx.com
のリンクが作成できるようにしました。
一覧で開くSNSの名称が「Twitter」のままでも構わなければ、config.phpを修正する必要はありません。
ただし、config.php
の設定が優先されてしまうため、旧ツイッターを「X」と表示させたい場合は、上記の該当箇所を["X","https://x.com"],
に変更する必要があります。
変更があったファイル
- potiboard.php
- sns_share.inc.php
- config.php(差分エディタ等を使用いして必要な項目だけ修正をお願いします。TwitterというSNS名のままで構わなければ変更する必要はありません。)
2024/05/13 v6.31.1
改善
- Blueskyが、共有一覧に無い時にも、直接入力で
https://bsky.app
と入力すればBlueskyに共有できるようになりました。 - スマホ等で、X、Bluesky、Misskey等に共有するときにアプリ版が起動し、共有サーバの選択画面がChrome側に残ってしまう問題を修正しました。
SNSの共有サーバ一覧画面からフォーカスが外れた時に、画面を閉じるようにしてこの問題を解決しました。
ただし、一覧画面からすでに、SNSのサイトに画面が移動している時はフォーカスが外れても閉じません。
その場合は、すでに入力中か、あるいはSNSの投稿を閲覧中だからです。
PCで使用している時にも発生していた、SNS共有ウィンドウがいくつも開いて残ってしまう問題も解決しました。
変更があったファイル
- potiboard.php
- sns_share.inc.php
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
MONO
- templates/mono/js/mono_common.js
2024/05/11 v6.31.0
「SNSで共有する」にBlueskyを追加しました
Twitter、マストドン、Misskeyに加え、Blueskyへの記事の共有もできるようになりました。
ただし、これを有効にするには、config.php
の設定が必要になる場合があります。
// SNS共有の時に一覧で表示するサーバ
//例 ["表示名","https://example.com (SNSのサーバのurl)"],(最後にカンマが必要です)
$servers =
[
["Twitter","https://twitter.com"],
["Bluesky","https://bsky.app"],
["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
に
["Bluesky","https://bsky.app"],
を追加する必要があります。
Blueskyへの記事の共有が必要ない場合は特に何もしなくてもそのほかの機能は正常に動作します。
もしも、共有するサーバ一覧が増える事で、ポップアップルメニューに入り切らなくなってしまった場合は、
//windowの高さ 初期値 490
define("SNS_WINDOW_HEIGHT","490");
を490より大きな数値に変更してみてください。
今回更新したconfig.php
は、
https://mstdn.jp/
を外し、代わりにBlueskyを追加して共有するサーバの数を増やさない形で対応しています。
ここには、マストドンやMisskeyであれば何件でもユーザーがサーバを追加できますので、必要に応じて追加や削除をお願いします。
なおこのリリース執筆時点では、Bluesky共有の際に二回分キー操作を行わないと記事の埋め込み画面が表示されない事を確認しています。
現時点ではBlueskyの仕様であるためどうする事もできません。
エンターキーを二回でもスペースキーを二回でも構いませんので、キー操作を行えば表示されます。
変更があったファイル
- config.php
- potiboard.php
- sns_share.inc.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2024/04/20 v6.30.8
- ChickenPaintの画像差し換え処理のJavaScriptの文法を厳格化
処理がより意図どおりに行われるようにするため、ChickenPaintの画像差し換え処理の時のパスワード受け渡し処理のJavaScriptの文法を厳格化しました。
この変更を行わなくても問題なく動作するのですが、関数を格納する変数を定数化した時に動作しなくなくなるため、対策を行った上で定数化しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2024/04/16 v6.30.7
自動リンク機能の Internet Archive 対応
自動リンクの正規表現を修正しました。URLとして判定する文字に:
を追加しました。
これによりInternet ArchiveのURLの自動リンクが可能になります。
この仕様は過去の投稿にさかのぼって適用されます。
自動リンクが機能するようになるURLの例
https://example.com/https://www.example.com
変更があったファイル
- potiboard.php
2024/04/10 v6.30.6
Tegaki更新
tegaki.jsが更新されたので、それを元にして、改造していた箇所を再改造して日本語化そのほかの機能を追加しました。
更新内容はアニメ再生時の不具合の修正のようです。
変更があったファイル
- potiboard.php
- tegaki/ ディレクトリを上書きアップデート
2024/03/29 v6.30.5
ChickenPaint Be更新。iPad、Safari対応。
ChickenPaintのレイヤーをリネームして、iPadのスクリーンキーボードが画面から消えた時にChickenPaintのメニューバーが隠れてしまう問題に対応しました。
スクリーンキーボードが表示されると画面が強制スクロールされますが、キーボードが消えたあとが元の位置にもどらなくなっていたのを修正しました。
CSSの新しい単位dvhを使用して、高さを100vhから、100dvhに変更しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/03/18 v6.30.3
Javaアプレット+IPv6の時にIPアドレスチェックが機能しない問題を修正しました
Javaアプレットから送信されるIPアドレスはIPv4で、PHPスクリプトではIPv6のIPアドレスが送信され、結果として同じ人が投稿した画像と判断されないケースがありました。
IPアドレス不一致により、お絵かき画像を投稿しても、お絵かきコメントの画像一覧に画像が出てこない事があったのを修正しました。
IPアドレス不一致でも、Cookieが一致すればお絵かきコメントの画像一覧に画像が出てくるのでこの問題に直面するケースは稀でした。
Tegaki更新
従来の右クリックに加え、ペン、指による長押しでも、パレットに色を登録できるようにしました。
ただし、パレットを長く押してしまうと長押しになり、色の選択ではなく色の登録になってしまいます。
色を拾うだけの時は長押しにならないようご注意ください。
ChickenPaint Be更新
ショートカットキーを追加しました。「ctrl+i」でネガポジ反転できるようになりました。
レイヤーマスクのネガポジ反転も可能です。マスクをネガポジ反転して、可視領域を反転する事もできます
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- tegaki/ ディレクトリを上書きアップデート
- potiboard.php
2024/03/11 v6.29.0
テンプレートエンジンBladeOneの更新にともない、動作環境がPHP7.4-PHP8.2になりました。
PHP7.4未満の場合は、PHP7.4以上になるようにサーバコントロールパネル等でPHPのバージョンの切り替えをお願いします。
変更があったファイル
- BladeOne/ ディレクトリを上書きアップデート
- lib/lightbox/ ディレクトリを上書きアップデート
- potiboard.php
2024/03/06 v6.28.0
iPad iOSでChickenPaint Beのセレクトメニューが動作しなくなっていたのを修正
iPad iOSのSafari、Chromeで、ChickenPaint Beのセレクトメニューが動作しなくなっていたのを修正しました。
これは、ChickenPaint Be固有の問題で、ChickenPaintの開発元のバージョンの問題ではありません。
新規投稿に管理パスを必須に設定しても、管理パス以外で投稿できてしまうバグを修正
//[新規投稿は管理者のみ]にする する:1 しない:0
//する(1)にした場合、管理者パス以外での新規投稿はできません
define("DIARY", "1");
ここで、新規投稿には管理パスが必要と設定しているにも関わらず、管理パス以外で投稿できてしまうバグを修正しました。
このバグはv3.xから存在していました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/02/26 v6.27.9
お絵かきアプリ起動時はブラウザデフォルトのショートカットキーをキャンセル
すでにいくつかのブラウザデフォルトのショートカットキーを無効化していますが、ctrl+o(開く)もキャンセルします。
描画中にファイルを開くと、描いているイラストが消えるからです。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- tegaki/ ディレクトリを上書きアップデート
- neo.js
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_klecks.blade.php
2024/02/24 v6.27.8
改善
メールで通知される記事のURLも新しく設定された記事内のIDの形式"?res={$resno}#{$no}"に統一されました。
バグ修正
すでにSESSIONが開始されている時にpicpost.inc.php
で、session_start()
が呼び出され、軽微なエラーが発生していたのを修正しました。
Chromeの警告を回避
ChickenPaintと、PaintBBS NEOのイベントリスナーの処理に、明示的にpassive:false
を指定して、Chromeの警告が表示されないようにしました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- neo.js
- picpost.inc.php
- potiboard.php
2024/02/22 v6.27.5
しぃペインターのパスワード等の機密データのGET渡しを拡張ヘッダ経由のPOSTへ
HTML5版のGETによるパスワード受け渡しをv6.26.10で廃止して、POSTに移行しました。
HTML5版は、JavaScriptなので、JavaScriptを改良・改造する事で対応できましたが、Javaアプレットのしぃペインターそのものの内部処理を変更する事はできないため、しぃペインターでは引き続きGETによる処理が必要という結論を一度は出しました。
しかし、しぃペインターの通信がセキュアではないのはやはり問題であるため、画像投稿処理のあと差し換え処理まで一気に行う方式を採用してこの問題を解決しました。
これにより、すべてのペイントアプリの機密データの受け渡しはPOSTで行われるようになり、URLに機密データを含めるGETによる処理は完全に廃止されました。
これまでとは比較にならないぐらい安全な通信に移行する事ができました。
また、Waterfox Classic等のJavaプラグインが使用できるブラウザでの実行テストを強化して、エラー発生時に画面が移動しないようにしました。
残念ながら従来のしぃペインターの仕様、error\n
で始まるエラーメッセージをJavaプラグイン使用時には解読できなくなっているため、Javaプラグイン使用時には「投稿に失敗。時間を置いて再度投稿してみてください。」という定型文のアラートのみが開きます。CheerpJ+Chromeでしぃペインターを起動している時には、本来の仕様通りの詳細なエラーメッセージのアラートが開きます。
変更があったファイル
- picpost.inc.php
- picpost.php
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
- templates/basic/res.blade.php
MONO
- templates/mono/mono_paint.blade.php
2024/02/21 v6.26.10
画像差し換えのパスワード等の機密データのGET渡しをfetchによるPOSTへ
Javaの「しぃペインター」と「PaintBBS」以外のHTML5版のアプリの機密データの受け渡しをGETからPOSTに変更する事に成功しました。
ChickenPaintとNEOに掲示板で用意したJavaScriptの関数の割り込み処理を追加しました。
こうすることによって、いくつあるかわからないいろいろな種類のお絵かき掲示板がそれぞれ必要な処理を独自に追加できるようになります。
これまでも、PHPのOpenSSL 関数を使ってパスワードを暗号化し、GET渡しといってもリダイレクトするので、履歴にも残らないため一定の安全性は確保できてはいたのですが、GETである以上、URLが第三者にわかればセットされているデータがわかってしまうという問題がありました。
今回の更新で、長い間、GETでしかデータの受け渡しができなかった画像差し換え時のパスワードをfetch APIを使ったPOSTに移行する事ができました。
KlecksとTegakiは通信部分を掲示板で作成しているため、GETで渡していた箇所をfetchに書き直しました。
残念ながら「しぃペインター」は依然としてJavaScriptで中身をいじる事ができないため、今後もGETによるデータの受け渡しになります。
「PaintBBS NEO」の事を「しぃペインター」と呼ぶ慣習がありますが、アプリとしての「しぃペインター」はJavaのアプリで、「PaintBBS NEO」はHTML5版として作成された「PaintBBS」のJavaScript版です。
「しぃペインター」には依然として従来と同じ問題がある→「PaintBBS NEO」に問題があるという事ではありません。
続きを描く時は使用するアプリの設定に関わらずすべてのアプリを使用する設定
//続きを描く時は設定に関わらずすべてのアプリが使用できるようにする する:1 しない:0
define('ALLOW_ALL_APPS_TO_CONTINUE_DRAWING', '0');
続きを描く機能を使う使わないという設定項目があったり、お絵かき機能を使う使わないという設定項目があったり、管理者はすべてのアプリを利用可能にする設定項目等があり、設定項目自体がスパゲッティ化しているのが現状なのですが、さらに設定を追加しました。
設定項目が存在しない場合は従来と同じ動作になります。
しない:0が従来と同じ動作になります。
バグ修正
//描画時間の表示 する:1 しない:0
define("DSP_PAINTTIME", "0");
描画時間を表示しない設定の時に「続きを描く」画面を表示した時に未定義エラーが発生していたのを修正しました。
Waterfox Classic+Javaプラグインの時にしぃペインターの投稿が失敗するバグを修正しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- neo.js
- potiboard.php
- config.php
(新しく追加された設定項目が必要な場合のみ更新)
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/paint_tegaki.blade.php
MONO
- templates/mono/js/mono_common.js
- templates/mono/mono_paint.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/paint_tegaki.blade.php
2024/02/18 v6.25.7
GitHub コード スキャンによって発見されたライトボックスの脆弱性を修正
変数に格納されたテキストが HTML として解釈されるXSSの脆弱性を修正しました。
現時点で配布されている最新版のlightboxに存在する問題を独自に修正しました。
NEOとしぃペインターの拡張ヘッダ
この間報告のあった投稿時のエラーの原因が拡張ヘッダと無関係だった事が判明したため、GETによる受け渡しをやめて以前と同じように拡張ヘッダ経由のPOSTを使うようにしました。
変更があったファイル
- lib/lightbox/ ディレクトリを上書きアップデート
- neo.js
- potiboard.php
- picpost.php
- save.inc.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2024/02/12 v6.25.5
PaintBBS NEOのキー入力制限の改良
NEOが起動している画面ではNEOのキーボードショートカットキーとテキスト入力以外のキー操作ができませんでした。
そのため、動的パレットの「textarea」へのパレットデータの貼り付けのためにマウスの右クリックメニューを使用する事しかできない状態でした。
また貼り付けたパレットデータの編集もできませんでした。
2024年に動的パレットのデータの取得や貼り付けを使っている人はそれほど多くいないとは思いますが、これが使えると自分専用のパレットをどこの掲示板でも使えるようになります。
今回の更新で、パレットデータの入力欄のキー入力が可能になりました。
オリジナルのPaintBBSのようにctrl+v(貼り付け)crtl+x(切り取り)ctrl+c(コピー)crtl+a(すべて選択)等がパレットデータ入力欄で使用できるようになりました。
また、NEOの文字入力機能使用時に全キー入力が許可されてしまい、ctrl+r(リロード)crtl+h(履歴)ctrl++(拡大)ctrl+-(縮小)のブラウザデフォルトのショートカットキーが作動してしまう問題も修正しました。
TegakiのアニメデータがPOST可能な上限を超過する時はアニメデータを添付しない
TegakiのデータがPOST可能な限界サイズを超えてしまう時は、アニメデータを切り捨てて画像だけ投稿するようにしました。
(前回のNEOの更新のTegaki版)
バグ修正
Paint画面でライトボックス関連のJavaScriptが未定義エラーになっていたのを修正しました。
おそらく実際の動作には影響のないエラーだと思いますが、未定義の場合は処理を行わないようにしました。
変更があったファイル
- neo.js
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/paint_tegaki.blade.php
MONO
- templates/mono/js/mono_common.js
- templates/mono/paint_tegaki.blade.php
2024/02/09 v6.25.2
neoの描画アニメのファイルサイズが大きくなりすぎて投稿不能になる問題を修正
neoの描画アニメのファイルサイズが大きくなりすぎてサーバで処理でなくなり、画像を含むすべての投稿が失敗する問題を修正しました。
サーバの投稿可能なファイルサイズの限界値をPHPスクリプトで取得して、それをneoに渡して計算し、限界を超える時には描画アニメファイルを切り捨てて、画像の投稿が成功するようにしました。
動画を切り捨てないと投稿そのものが失敗するため、動画はなくなりますが仕方ありません。
動画の投稿が成功する前提で一番上のレイヤーを塗り潰して下の絵を隠して続きを描く習慣がお絵かき掲示板にはありますが、その場合は動画が切り捨てられた時点で塗りつぶした一番上のレイヤーの画像しか残りませんのでご注意ください。
さくらのレンタルサーバのデフォルト設定では8MBがPOSTの上限で、それを超える場合は動画が切り捨てられます。
画像のみの投稿になりますが、投稿は成功します。
動画(レイヤー情報)がファイルサイズ超過で送信されない時は、「画像のみが送信されます。レイヤー情報は保持されません。」というダイヤログが開いて「OK」をタップした時のみ送信が実行され、「キャンセル」した時は送信されません。
画像のみの送信では困る状態の時は「キャンセル」してレイヤー情報が保持されない事を前提にした作画を続行する事ができます。
POSTの上限が8MBでは足りない場合は、php.ini
の設定で以下のように記述します。
upload_max_filesize = 22M
post_max_size = 22M
上記は、1つのファイルの最大ファイルサイズが22MBで、POSTの合計サイズが22MBまで投稿可能になるようにした設定例です。
必要に応じて増減してご利用ください。
(レンタルサーバの設定のサポートは掲示板開発者のサポート範囲外ですので、サーバ会社のQ&A等で調べていただく形になります)
アニメファイルアップロードペイント時に、config.phpの幅と高さの限界値の影響を受けてしまう問題を修正
描画アニメファイル、拡張子.pch
、.spch
、レイヤー情報ファイル、拡張子.psd
、.chI
を管理画面からアップロードしてキャンバスに読み込んだ時に、config.phpの幅と高さの限界の設定が優先されて画像の縦または横よりも開かれるキャンバスサイズが小さくなって画像が切れてしまう問題を修正しました。
アップロードした個別ファイルの幅と高さが優先されるようになりました。
ライトボックスの背景色の不透明度を0.65に
画像をポップアップ表示した時の背景の暗さを不透明度0.6から0.65に変更しました。
ほんの少しの変化ですが、画像の背景がより暗くなるようにしました。
変更があったファイル
- lib/lightbox/ ディレクトリを上書きアップデート
- neo.js
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2024/02/05 v6.23.1.1
しぃペインターの描画アニメ機能や動的パレットの細かな設定にも対応したCheerpJ v3.0
CheerpJ v3.0が使えるようになりました
CheerpJは、Javaアプレットをブラウザ上でJavaScriptに変換するツールです。
これまでのCheerpJ v2では、JavaアプレットのしぃペインターやPaintBBSの動的パレットの明るさの調整やグラデーションの作成ができませんでした。
また、描画アニメの再生も途中経過を表示する事ができずいきなり最後の結果が表示されていました。
PaintBBS NEOは、funigeさんが1から作り直したものですが、SNSではPaintBBS NEOのことを「しぃペインター」と呼ぶ流れになっており、今でも「しぃペインター」が使えるという話になっていて、少しややこしいのですが、「お絵かきしぃ掲示板PaintBBS」と「しぃペインター」は作者であるしぃちゃんによれば別のアプリです。
そして、PaintBBSはPaintBBS NEOに置き換えられましたが、しぃペインターは依然として2004年に作られたJavaアプレットのままです。
その古いJavaアプレットを最新の技術で、Javaアプレット非対応ブラウザのChromeで動作させるためにCheerpJを使用しています。
CheerpJのv3では残念ながらXAMPPのLocalhostでは動作しない設計になっており、しぃペインターの投稿も失敗します。
ローカル環境ではなく、インターネット上に公開されているJavaアプレットのみをサポートしているためこれはCheerpJの仕様といえます。
CheerpJ v2.3が必要な場合はconfig.phpで設定を
大きな進化を遂げたCheerpJ v3.0ですが、もしv3.0で問題が発生する場合は、以下の設定項目をconfig.php
に追加すれば、CheerpJ v2.3を使用する事もできます。
CheerpJ v3.0で問題が無い場合は、設定項目の追加は不要です。
設定項目が存在しない場合は、v3.0が使用されます。
//CheerpJ の旧バージョンを使用する する:1 しない:0
//最新バージョンで問題がでる場合は、する:1
define("USE_CHEERPJ_OLD_VERSION","0");
変更があったファイル
- potiboard.php
- config.php
(CheerpJ v3.0では問題がある場合のみ更新してください。それ以外の場合は設定ずみのconfig.phpをそのままご利用ください。)
変更があったテンプレート
BASIC
- templates/basic/parts/copyright.blade.php
MONO
- templates/mono/parts/mono_copyright.blade.php
2024/02/03 v6.22.1
LuminousからLightboxへ
画像をポップアップ表示する時に使用していたLuminousの開発が中止になり、中止されただけでなくLICENSEファイルもリポジトリから削除されてしまったため、LICENSE不明になってしまいました。
そのため、Lightboxを使用してポップアップ表示する事にしました。
しかし、Lightboxでは、Luminousではできていたいくつかの事ができません。
そのためLightboxを改造して、見た目と機能をLuminousに近づけてその問題を解決しました。
- 透過PNGを透過させる
Lightboxでは背景色が白になってしまうため、背景部分を透明にして透過PNG画像の背景が透明になるようにしました。 - 画像長押しで保存
Lightboxでは画像の長押しで画像を保存できない仕様のため、CSSを調整して画像の長押しで画像を保存できるようにしました。 - 前後のナビゲーションバーの位置を変更
画像の上に表示されていた前後の画像を表示するための矢印を、左右の横幅からの位置に変更して、左右に余白があるときは画像の上でではなく、画面の左右にナビゲーションの矢印を表示するようにしました。 - 閉じるボタン
前後ナビゲーションの矢印以外のどこを押しても画像を閉じるようにしました。
そのため閉じるボタンは必要がなくなりました。 - 画像読み込み中の画像
ローディング中の円のGIFを、透過PNGで作成した大小ふたつの円に変更。CSS3で画像が回転します。
PaintBBS NEO更新
PHPでエラーが発生している時にPaintBBS NEOでエラーを検出できず画面が移動して描いているイラストが消えてしまう問題を修正しました。。
サーバから「ok」という文字列以外が返って来た時には、「投稿に失敗。時間を置いて再度投稿してみてください。」というアラートを開いて、投稿に失敗した事を知らせます。
ペイント画面から移動しないので、描いているイラストはキャンバスに残ります。
PHPのエラーが解消されれば、投稿可能になります。
変更があったファイル
- lib/lightbox/ 追加されたディレクトリ ディレクトリごとアップロード
- potiboard.php
- neo.js
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/main.blade.php
- templates/basic/res.blade.php
- templates/basic/other.blade.php
- templates/basic/parts/copyright.blade.php
MONO
- templates/mono/js/mono_common.js
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
- templates/mono/parts/mono_copyright.blade.php
2024/01/30 v6.21.1
描画中にCookieが消えてしまった時に投稿不能になる問題を修正
HTMLにセットしたCookieの値と、実際のCookieの値を照合するシステムを廃止。
投稿時にCookieが存在しない場合もユーザーコードのCookieを再発行して投稿できるようにしました。
ユーザーのブラウザからCookieが消えた場合だけでなく、サーバのWAFの設定によってCookieが照合できなくなる問題にも対応できていると思います。
また、PaintBBS NEOとしぃペインターの拡張ヘッダに情報を詰め込んでいましたが、拡張ヘッダではなく、GETパラメータで取得する方式に切り替えました。
互換性維持のため、GETで取得できない場合は拡張ヘッダでも取得できるようにしました。
変更があったファイル
- picpost.php
- potiboard.php
- save.inc.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2024/01/25 v6.20.5
ChickenPaint Be更新
- グリッド設定のモーダルを開いた時に数値入力項目にフォーカスが移動する元の仕様が動作していなかったのを修正。
- グリッド設定の数値入力確定のエンターキーで画面が移動してペイント画面から移動する問題が残っていたのを修正。
仮に意図どおりに処理が行われなかった場合でも、エンターキーが無効になるだけにして被害が最小になるように。
その上で、グリッド・ぼかし・変形確定のエンターキーが意図どおりに動作する事を確認しました。 - グリッド、ぼかしの表示終了後はモーダルを破棄するようにしました。
この問題は改造前のChickenPaintに存在していた問題で、新しく発生したものではありません。
Klecksで特定のキーが入力できなくなっていたのを修正しました
"+", ";", "=","-","s","h","r"
が入力できなくなっていました。
これは、v6.20.2で、ctrl+rによる画面更新を防止するためにキーのDefaultの動作をキャンセルした時に発生したものです。
ctrlキーまたは⌘キーが押下されている事を確認した上でその組み合わせの場合のみDefaultの動作をキャンセルするようにしました。
変更があったファイル
- potiboard.php
- app/chickenpaint/ ディレクトリを上書きアップデート
変更があったテンプレート
BASIC
- templates/basic/paint_klecks.blade.php
MONO
- templates/mono/paint_klecks.blade.php
2024/01/24 v6.20.3
ChickenPaint Be更新
innerHTML
でテキストを使用している箇所をテキストしか入らないtextContent
へ。- ぼかしフィルタのモーダルを開いた時に数値入力項目にフォーカスが移動する元の仕様が動作していなかったのを修正。
- ヘルプの3つの項目のモーダルを非表示にしても構築されたモーダルのHTMLが見えないだけで残ってしまっていたのを消去するようにしました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/01/24 v6.20.2.5
ペイント画面では「リロード」「拡大縮小」「履歴」「ページを保存」のブラウザデフォルトのショートカットを無効化
- 「ctrl+r」による再読み込み、「ctrl++」によるブラウザ全体の拡大縮小、「ctrl+h」による履歴の表示「ctrl+s」によるページを保存といったブラウザのデフォルトのショートカットをChickenPaint、Tegaki、Klecksのペイント画面で無効化しました。
- ChickenPaintのショートカットキーを変更。「ctrl+y」をやり直し、「ctrl+h」を変形にしました。
- Macの時はマスク適用、マスク削除のショートカットキーを「⌘+」に。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- tegaki/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
- templates/basic/paint_klecks.blade.php
- templates/mono/paint_klecks.blade.php
2024/01/23 v6.20.0
ChickenPaint Be更新 ショートカットが効かなく問題を修正
これは、かなり以前から存在していた問題です。
「透明部分を保護」等のチェックボックスや「合成方法」等のセレクトボックスを操作すると、ChickenPaintのショートカットが効かなくなる問題がありました。
ショートカットが使えなくなった時は、画面のどこかをペンでタッチするとショートカットが再び使えるようになるので、操作を続行できにはできていたのですが、「ctrl++」で画面を拡大しようとした時にブラウザのショートカットが有効になりUIが拡大されてしまったり、「ctrl+s」で画像をPCに保存しようとしたらブラウザのデフォルトのショートカットとして認識されてしまって、画像の保存ではなくHTMLが保存される等の問題が発生していました。
時間がかかりましたが、何とか問題を特定し、解決方法を見つける事ができました。
問題があった箇所を操作しても、ChickenPaintのショートカットは有効なまま維持されます。
ブラウザのデフォルトのショートカットと入れ替わってしまう問題は解消されました。
しかし、念のため、UIの拡大のショートカットに使用される「+」「-」と、保存に使用される「s」のブラウザのショートカットキーを最初から無効化する処理も追加して、意図しない動作にならないようにしました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/01/20 v6.19.5
ChickenPaint Be更新。アイコンフォントを軽量化。
- icomoonで、fontawesomeのアイコンフォントのファイルサイズを1/18に。
これまでは使用していないフォントを大量に読み込んでいました。 - ドロップダウンメニューのHTMLをBootstrap5.3形式に統一しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/01/20 v6.19.3
ChickenPaint更新
拡大率縮小率を緩やかに
-
ズームの拡大率を141%に、縮小率を70.92%に変更しました。
これまでは、拡大時に200%拡大され、縮小時には50%に縮小されていました。
この拡縮率は大きすぎるため、二度拡大すると200%になるように調整しました。
また、拡大縮小を繰り返すと、100%、200%または50%に戻らなくなる事がありました。
拡大縮小を繰り返しても、100%、200%または50%に正確に戻るようになりました。 -
70.92%に縮小した時に描線がガタガタに表示されてしまうため、ズーム時に補完して表示するオプションをデフォルトで有効になるようにしました。
ドットの状態を確認したい時には、この機能をオフにする必要があるため「表示」→「ズームをなめらかに表示する」をオフにしてご利用ください。
未翻訳箇所の日本語訳を行いました。
- ショートカットキー一覧、送信ダイヤログの未翻訳箇所の日本語訳を追加しました。
「Right」「Left」も「右」「左」に翻訳しました。
この間の更新でレイヤーマスクやブラシサイズのスライダーのショートカットキーも追加されていますので、見やすくなったショートカットキー一覧のヘルプをぜひご利用ください。
コードの最適化
- 必要がなくなったコードを整理しました。
余計なコードが残っていると、そのコードに何らかの意味があるかもしれないとなって、今後の保守作業に影響がでます。
また、Bootstrap5の文法にそって記述していれば追加のJavaScriptが必要ない事が判明した箇所のJavaScriptのコードの撤去も行いました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/01/16 v6.19.1
ChickenPaint更新
未翻訳箇所の日本語訳を行いました。
ドロップダウンメニューのメニュー項目にカーソルを合わせた時に英語の説明文が表示されていましたが、表示する項目を整理して必要なものだけ残し、それを日本語に翻訳しました。
レイヤーマスクのショートカットキーを追加しました。
レイヤーマスクのサムネイルをクリックして使用するショートカットキーを追加しました。
これにはマニュアルに記載がなかったものの機能として最初から存在していたものも含まれます。
- シフト+クリックでレイヤーマスクの表示/非表示
- alt+クリックでレイヤーマスクのマスク部分を表示
- ctrl+クリックでレイヤーマスク適用
- シフト+ctrl+クリックでレイヤーマスク削除
このショートカットキーの追加で、レイヤーパレットの右クリックメニューに存在していた処理を行う事がでるようになりました。
どのぐらいの方が使っていたのかわかりませんが、レイヤーパレットの右クリックメニューにはグループ結合や、レイヤーマスクの表示/非表示等数多くの項目が存在していました。
CSSフレームワークBootstrapをBootstrap4からBootstrap5対応に変更する作業で、この右クリックメニューを再実装する事ができなかったため、多くの埋め合わせを行いました。
レイヤーパレットにグループ結合アイコンを追加したのもそのためです。
しかし、iPad等最初から右クリックが使えない環境の場合は、より操作しやすいChickenPaintになっていると思います。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/01/14 v6.19.0
バグ修正
トップページの静的HTMLにアクセスするだけではブラウザにCookieはセットされませんが、その静的HTMLのトップページからペイントボタンを押した時にCookieの有無をチェックする機能が働いて、「Cookieが存在しません」というエラーになっていました。
ペイントボタンを2回押せば動くには動くのですが、静的HTMLからのpostでCookieを確認するのは無理があるので、ペイント時にはCookieを確認しないようにしました。
ChickenPaint更新
レイヤーパレットにグループ結合アイコンを追加しました。
通常の下のレイヤーと結合で結合するとクリッピングが解除されてしまいますが、レイヤーグループ内で下のレイヤーとクリッピングしていれば、グループ結合でレイヤーを結合しても、クリッピングが維持できます。 また、たくさんレイヤーがある時はグループ化して閉じればレイヤーパレットの場所を取らず便利です。
しかし、これまではグループレイヤーを結合するには右クリックメニューから選ぶか上段のメニューからグループ結合を選択する必要がありました。
そして、レイヤーの右クリックメニュー機能を再実装できなかったので、実質上のメニューか、ショートカットキーでしか操作できなくなっていました。
そこで、レイヤーパレットに「グループ結合」アイコンを追加しました。
1タップで、グループフォルダ内のレイヤーを結合して1つにします。
レイヤーパレットのマスクアイコンの動作を変更
レイヤーパレットのマスクアイコンの動作を変更しました。
選択しているレイヤーにマスクが無い時は「マスク追加」になり、マスクが存在している時は「マスク適用」に変わります。
これによりペン操作で簡単にレイヤーマスクを適用できようになります。
これまでの、マスクアイコンには「マスク追加」機能しかありませんでした。
ショートカットキーをさらに追加
- SHIFT+Mでマスク削除
追加されたショートカットキーの一覧はこのページを確認して覚える必要はありません。
メニューの横にショートカットキーが表示されていますので、追加されたショートカットキーはそこからご確認できます。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/01/13 v6.18.9
ChickenPaint更新
緩やかに変化するスライダーの動作を修正
- 右クリックで、ブラシパレットのスライダーが緩やかに変化するようになる機能を改善しました。
従来は、ブラシサイズと、不透明度以外のスライダーも右クリックによる緩やかなスライダーの変化の動作に入っていましたが、スライダーの種類によっては28%や56%でスライダーが動かなくなる等の問題が発生していました。
また、右クリックしながらスライダーを調整するのは結構面倒です。
以下の改善を行いました
- 右クリックによるドラッグに加え、SHIFT+左ドラッグでもスライダーが緩やかに変化するようにしました。
ペンを使っている時は、シフトキーを押しながらペンでスライダーを調整するだけで緩やかに変化するようになります。 - ブラシサイズと不透明度以外の期待通りに動作しないスライダーには緩やかなスライダーの変化を適用しないようにしました。
ブラシサイズと不透明度以外のスライダーが途中で止まったり、スライダーが入力できなくなったりする項目のスライダーは最初から緩やかに変化するスライダーのモードに入らないようにしました。
アプリ名更新
「ChickenPaint」のロゴ部分を「ChickenPaint Be」に変更して、改造版である事が一目でわかるようにしました。
掲示板のエンドユーザーの方には直接関係ありませんが、「ChickenPaint Be」のソースコードはここにあります。
satopian/ChickenPaint_Be: お絵かき掲示板Petit Noteのためのbootstrap5対応のChickenPaint
改造したものを再配布する時のライセンス上の条件にソースコード公開の義務があります。
そのためヘルプページにも「ChickenPaint Be」のGitHubのリポジトリのURLを記載しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2024/01/11 v6.18.8
ChickenPaint更新
ChickenPaintのショートカットキーを追加
全レイヤー結合とグループ結合、マスク適用のショートカットキーを追加しました
オリジナルのChickenPaintからのショートカットキー追加一覧は以下
ChickenPaintのショートカットキーを拡張しました|さとぴあ
- R+左クリックでキャンバスの回転
- Hでレイヤーの左右反転
- Wで水彩
- Aでエアブラシ
- Sで薄消しゴム
- Dで指先ツール
- Cで混色ツール
- SHIFT+CTRL+Eで全レイヤー結合
- SHIFT+CTRL+Gでグループ結合
- CTRL+Mでマスク適用
レイヤーパレットに「下のレイヤーと結合」アイコンを追加
- 「下のレイヤーと結合」をペンによる操作で簡単に実現できるようにするため、レイヤーパレットに「下のレイヤーと結合」アイコンを追加しました。
ヘルプページのショートカットキー一覧の翻訳
英語のみだったショートカットキー一覧の説明ページの日本語辞書を追加して、日本語と英語を自動的に切り替えで表示できるようになりました。
これで、ほとんどの日本語未翻訳箇所の日本語翻訳作業が完了しました。
satopian/ChickenPaint_Be: お絵かき掲示板Petit Noteのためのbootstrap5対応のChickenPaint
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/basic.css ※
MONO
- templates/mono/css/ cssディレクトリを上書きアップデート ※
MONOの4種類の配色違いのcssが更新されています。
※cssの修正は、著作リンクのChickenPaint Beの半角スペースが折り返しにならないようにしただけです。
cssを更新しなくても、機能上特に問題はありません。
2024/01/09 v6.18.6
ChickenPaint更新
- レイヤーを変形しようとした時にレイヤーが非表示または不透明度0%の時にも、非表示、不透明度0%というメッセージをポップオーバーで出すようにしました。
これまでは、単に変形できないだけで、なぜ変形できないのかを説明するメッセージの表示がありませんでした。 - レイヤー名をマウスで変更できなくなっていたのを修正しました。
ペンタブレットやタッチデバイスの場合はダブルタップでレイヤー名の変更が可能ですが、マウスではそれが出来ません。
従来は、マウスの右クリックで、「マスク追加」「クリッピング」「レイヤー名変更」などのコンテキストメニューが開いていたので、そのメニューを使ってレイヤー名を変更する事が可能でした。
しかしながらBootstrap5に更新した結果、同じコンテキストメニューを表示を表示する事が困難になってしまったため、マウスの場合は右クリックでレイヤー名の変更になるようにコードを変更しました。
たったそれだけの作業でしたが、解明が困難な軽微なエラーメッセージが表示される問題を解決するためだけに20時間以上費やしてしまいました。 - ファイルメニューで「PCに保存」(CTRL+S)した時のファイル名に投稿日時分秒が入るようになりました。
これによりファイル名を変更して保存しなくても、同一フォルダに途中経過を保存できるようになりました。
これまではファイル名が「oekaki.png」固定でした。
ChickenPaint Be
改造版に固有の機能が存在し、オリジナルには存在している機能が無くなっている事や、改造版に固有の問題が発生している可能性もある事から、オリジナルの「ChickenPaint」と区別するために、改造版の「ChickenPaint」の名称を「ChickenPaint Be」としました。
satopian/ChickenPaint_Be: お絵かき掲示板Petit Noteのためのbootstrap5対応のChickenPaint
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/parts/copyright.blade.php
MONO
- templates/mono/parts/mono_copyright.blade.php
2024/01/07 v6.18.5
ChickenPaint更新
ChickenPaintの各パレットやドロップダウンメニュー、ポップオーバーを作成しているCSSフレームワークBootstrapをバージョン4からバージョン5に変更しました。
- Bootstrap4ではjQueryで制御していた箇所が、Bootstrap5ではJavaScriptとなり、大幅なコードの書き換えが必要になりました。
また、従来の書き方を単に置き換えただけでは意図した動作にならないケースがいくつかあり、新しく処理を追加して対応しました。
気が遠くなるような作業量でしたが、将来廃止予定のJavaScriptがBootstrap4のコードに入っていたため、これから先の数年後もChickenPaintが使えるようにするために必要な作業でした。
satopian/ChickenPaint_Be: お絵かき掲示板Petit Noteのためのbootstrap5対応のChickenPaint
↑
ビルドするためのソースコードはここにありますので、気になる方はご確認ください。
ChickenPaintのダイヤログ、ポップオーバーの日本語未翻訳箇所を翻訳して実装しました
変形確定前に別のレイヤーを選択、または新規レイヤーを追加しようとした時に表示されるダイヤログの動作を改良
ChickenPaint-Bootstrap5.-Petit.Note-Chrome-2024-01-07-10-55-53-Trim.mp4
- 変形確定前にレイヤーを追加しようとすると変形を確定する取り消すなどの操作を促すダイヤログが表示されますが、従来の動作では、変形確定のエンターキーの押下で変形は確定されるものの、ダイヤログはすぐには消えず、レイヤーの追加も行われませんでした。
今回の修正により、エンターキーによる変形の確定と同時にダイヤログは閉じられ、かつ、レイヤーも追加されるようになります。
また、一連のダイヤログの日本語対応も行いました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/parts/copyright.blade.php
MONO
- templates/mono/parts/mono_copyright.blade.php
2023/12/30 v6.17.9
ChickenPaintのグリッド設定のバグを修正しました
ChickenPaintのグリッド設定で数値入力確定のエンターキーを押下すると、掲示板トップに画面が移動して描いていた絵が消えてしまうバグを修正しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
- 2023/11/30 v6.16.6で、古いブラウザに対応させるための修正を行った時に、
function
のスペルミスが発生し構文エラーになっていたのを修正しました。
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2023/12/27 v6.17.8
ユーザーコードのCookieが何らかの理由で消えてしまった場合でも投稿が可能になるように修正しました
- 「ユーザーコードが一致しません」というエラーが発生して本来なら投稿できるはずの投稿に失敗する事例の報告がありました。
そのためユーザーコードのCookie単体でのチェックではなく、SESSIONデータにもユーザーコードをセットしてCookieとSESSIONのどちらかが一致すれば投稿ができるようにしました。 - お絵かき画面の起動時にCookieチェックを行い、ユーザーコードの存在とCookieまたはSESSIONのユーザーコードと一致するかどうかを事前にチェックするようにしました。
描画がはじまったあとで問題が発生するのではなく、描き始める前の時点で問題が発生している時はエラーにします。
これにより、描画作業が失なわれる確率を下げる事ができます。
変更があったファイル
- potiboard.php
- picpost.php
- save.inc.php
2023/12/26 v6.16.18
Tegaki更新
- Tegakiのブラシサイズが1pxの時にも円カーソルを表示するようにしました。
- 従来は1pxの時には表示されない仕様でした。
- 1pxの円カーソルは小さすぎて見えないので、1pxの時は2px相当の円カーソルを表示します。
- モバイルでは円カーソルを表示しないようにしました。
タッチしている時にしかカーソルが動かないため。
PaintBBS NEO更新
- 開発元リポジトリのバージョン表記にあわせて、v1.6.1に。
バージョン表記以外は前回更新したものと同じです。
Klecks更新
- プレビューウィンドウの拡大縮小機能が追加されました。
変更があったファイル
- klecks/ ディレクトリを上書きアップデート
- tegaki/ ディレクトリを上書きアップデート
- neo.js
- potiboard.php
2023/12/24 v6.16.15
- 独自カスタマイズ版のChickenPaintを更新しました。
描画時の円カーソル表示を別の方法で再実装しました。
タッチデバイス以外のPC等で描画時にも円カーソルを表示します。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2023/12/23 v6.16.12.1
ペイントアプリを更新
- 独自カスタマイズ版のChickenPaintを更新しました。
描画中の円カーソルの表示をあきらめ、もとに戻しました。 - 独自カスタマイズ版のPaintBBS NEOを更新しました。
タッチデバイスでは円カーソルを表示しないようにしました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- neo.js
- potiboard.php
2023/12/22 v6.16.10
ペイントアプリを更新
- Klecksを更新しました。
- 独自カスタマイズ版のChickenPaintを更新しました。
- 独自カスタマイズ版のPaintBBS NEOを更新しました。
NEO、ChickenPaintともに、描画中にも円カーソルを表示するようにしました。
また、オリジナルのPaintBBSの動作にあわせて8px以下のブラシサイズの時には円カーソルを出さないようにしていたPaintBBS NEOの仕様を変更して1pxの時にも2px相当の円カーソルを表示するようにしました。
これは、Windows Inkのペンタブレット+Chromeの時に、ブラウザのデフォルトのカーソルが消える問題に対応するための改造です。
視認性が高い黒の1pxの描線の時には、カーソルが見えなくても描線が見えるので何とかなるのですが、視認性が悪い薄い色の線を長く引きたい時にはカーソルが見える必要があるからです。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- klecks/ ディレクトリを上書きアップデート
- neo.js
- potiboard.php
2023/12/17 v6.16.9
コード整理。コードが3行短くなりました。
変更があったファイル
- potiboard.php
2023/12/11 v6.16.8
Klecks更新
変更があったファイル
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
2023/12/02 v6.16.7
ChickenPaintのショートカットキーを更に追加しました
指先ツールと、混色ツールのショートカットキーを追加しました。
追加されたショートカットキーの一覧
- 「R+左クリック」キャンバスの回転
- 「H」レイヤーの左右反転
- 「S」薄消しゴムに切り替え
- 「W」水彩ブラシに切り替え
- 「A」エアブラシに切り替え
- 「D」指先ツールに切り替え
- 「C」混色ツールに切り替え
231125_ChickenPaint_._._.mp4
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2023/11/30 v6.16.6
EdgeのIEモードでしぃペインター起動した時に、JavaScriptの構文エラーが発生していたのを修正しました
- Javaアプレットのしぃペインター(注意:PaintBBS NEOではない)は、CheerpJよりも、Javaプラグインを使って起動したほうが安定しています。
- そのためにはJavaが起動するブラウザが必要です。そのブラウザのひとつ、EdgeのIEモードで、JavaScriptの構文エラーが発生していたのを修正しました。
- IEでは動作しないアロー関数を、従来のfunction()を使った関数に置き換えました。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2023/11/30 v6.16.5
PaintBBS NEOのショートカットキーAltキーのキーアップ時に、Firefoxのメニューバーの表示/非表示の動作になる問題を修正
- Altキーのキーアップのデフォルトの動作をキャンセルしてこの問題を修正しました。
- PaintBBS NEO+Firefox時の問題は解決できましたが、CheerpJを使って起動したしぃペインターでは、AltキーでFirefoxのメニューバーの表示/非表示の動作が発生してしまいます。
CheerpJが起動した時点で、キーアップイベントの取得ができなくなるようです。
Chromeではこの問題はなく、FirefoxとFirefox派生ブラウザで発生します。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2023/11/29 v6.16.3
tegaki.js更新
- 「Altキー」押下直後にショートカットキーが効かなくなる問題が、tegaki.jsでも発生していました。
- ChickenPaintと同じように「Altキー」を離した時点で「altキー」のデフォルトの動作をキャンセルする事でこの問題を解決しました。
変更があったファイル
- potiboard.php
- tegaki/tegaki.js
2023/11/28 v6.16.1
ChickenPaint更新。以前から存在していた、「altキー」押下直後にショートカットキー効かなくなる問題を修正しました。
- 「R+左クリック」でキャンバスを回転するショートカットキーの動作確認中に、キャンバスが回転せずブラシツール等の描線が意図せず引かれてしまう問題に気が付きました。
一連のショートカットキーの追加などのスクリプトの改造が原因かもしれないと疑い、調査した結果、もともとこの動作だった事がわかりました。
しかしながら、「altキー」を押して色をスポイトそのまま、「R+左クリック」でキャンバスを回転といった処理をしたい時もあります。
この問題の原因を探るため、「altキー」で追加している処理をすべて削除してみましたが問題は解決しませんでした。
原因はaltキーのデフォルトの動作そのものでした。
altキーを離した時点でaltキーのデフォルトの動作をキャンセルする事でこの問題を解決する事ができました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
この間のChickenPaintの更新もご確認ください。
2023/11/25 v6.15.9で、ChickenPaintのショートカットキーを追加。
その後発生したバグをv6.15.9.3で修正しています。
2023/11/26 v6.16.0.1
スレッド個別表示時にスレッドをリロードしやすくするためスレタイに固定リンクのURLをリンク
- 個別スレッド時のスレタイへの個別スレッドの固定リンクを追加しました。
- メインページ同様スレタイをクリックすると、その個別スレッドが表示されます。
- 個別スレッド表示時に、スレタイをクリックするとスレッドをリロードできるようになります。
(テンプレートBASICのみ)
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/res.blade.php
2023/11/26 v6.15.9.3
更新した独自仕様版のChickenPaintのバグを修正
- ブラシツールを選択しているにも関わらずキャンバスの回転の動作のままになるバグの原因を特定しました。
キャンバスの回転ツール選択時に「R+左クリック」でキャンバスを回転すると、キーを離したあと元のキャンバスの回転ツールが動作しなくなる事に対応するために追加したコードに問題がありました。
キャンバスが回転したままになるコードを除去しました。
そのコードを除去しても、キャンバスの回転ツール選択時に「R+左クリック」でキャンバスを回転したあと、キーを離すと正常動作する事を確認しました。
R+左クリックへの書き換えが必要なコードが残っていた事がそもそもの原因でした。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
2023/11/26 v6.15.9.3
更新した独自仕様版のChickenPaintのバグを修正
- キャンバスが回転したまま、他のツールが使用できなくなる問題が発生したため、Rキーでキャンバスの回転モードに入る条件を細かく設定しなおしました。
- また、GitHubのコードスキャンで見つかったブラウザの言語を取得する処理のJavaScriptのコードの脆弱性を修正しました。
ChickenPaintのショートカットキーをさらに追加
- エアブラシのショートカットキーを追加しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
2023/11/26 v6.15.9.2
独自版のChickenPaintのショートカットキー関連のバグを修正
- v6.15.9からv6.15.9.1のChickenPaintにバグが見つかりました。
お手数をおかけしますが、ChickenPaintの更新をお願いします。
ツールのキャンバスの回転ボタンを選択中に、新しく追加されたキャンバスの回転のRキー+左クリックを行うと、元のキャンバスの回転のツールボタンが無効になるバグが修正されています。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
2023/11/25 v6.15.9.1
独自版のChickenPaintの構文エラーを修正
- v6.15.9のChickenPaintがバグっていました。
お手数をおかけしますが、ChickenPaintの更新をお願いします。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
2023/11/25 v6.15.9
ChickenPaintのショートカットキーを追加
- 動作しなくなっていたキャンバスの回転のショートカットキーを別のショートカットキーに変更して改修しました。
キャンバスの回転の元のショートカットキーは、「altキー+スペースキー+左クリック」でした。この元のショートカットキーを動くようにしても、ブラウザの、「alt」を押したあと「スペース」でブラウザのメニューが開くため操作を間違えるとタブを閉じてしまいます。
また、キーを2つ同時に押す必要が発生します。
そこで、「Rキー+左クリック」にショートカットキーを変更して、「Rキー」を押している間だけ、キャンバスが回転するようにしました。 - レイヤーの左右反転のショートカットキーを追加しました。
「Hキー」を押すたびに、選択中のレイヤーが左右反転します。 - ツールの切り替えのショートカットキーを2つ追加しました。「薄消しゴム(Sキー)」「水彩(W)」
「ソフトイレーサー」の「S」。水彩=Water Colorで、「W」です。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2023/11/23 v6.15.8
ChickenPaint更新
- 独自仕様版のChickenPaintを更新しました。
個別スレッド表示で画像が複数枚ある時は画像のポップアップ表示をギャラリーモードに
- luminousによる画像のポップアップ表示を個別スレッド表示でかつ画像が複数枚存在する時は、ギャラリーモードで表示します。
前後の画像を表示する横矢印で画像を順番に表示します。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
- search.inc.php
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/res.blade.php
MONO
- templates/mono/js/mono_common.js
- templates/mono/mono_main.blade.php
2023/11/18 v6.15.6
「Pale Moon」「Waterfox Classic」といった、Javaプラグインが今でも使用できるブラウザに対応
Waterfox Classic | Waterfox Classic
「Pale Moon」古い「Firefox」の拡張機能も動作する派生版Webブラウザー - 窓の杜
該当ブラウザは上記URLからダウンロード可能です。
IEとEdgeのIEモードではオラクルのJava8の32bit版を使いますが、「Waterfox Classic」と「Pale Moon」は64bit版のJava8が必要で、EdgeのIEモードも、「Waterfox Classic」と「Pale Moon」も使いたい時は、32bit版のJavaと64bit版両方のJavaのインストールが必要です。
この「Waterfox Classic」と「Pale Moon」でJavaプラグインを使ったしぃペインターを起動する事はできていましたが、投稿に失敗する状態だった事がわかりました。
独自に追加したセキュリティチェックでエラーになっていました。
この問題を修正して、「Waterfox Classic」と「Pale Moon」でも、Javaプラグインをつかったしぃペインターからの投稿ができるようにしました。
Windowsであれば、EdgeのIEモードを使う事でJavaプラグインによる安定した環境でしぃペインターを利用可能でしたが、Macでは、「Waterfox Classic」や「Pale Moon」を使うしかJavaプラグインを使う方法が存在しないため、対応しました。
どうすれば手動でJavaをダウンロードしてWindowsコンピュータにインストールできますか。
オラクルのJava8のインストールはここから
インストールしても、例外サイトリストに登録しないと起動しません。
若干不安定ではあるものの、Google ChromeではCheerpJでJavaプラグインを使用しなくてもしぃペインターが起動します。
また、ネット上で「しぃペインター」という用語で呼ばれているレイヤー2枚の「お絵かきしぃ掲示板 PaintBBS」は、「しぃペインター」ではなく「PaintBBS」です。「PaintBBS」はHTML+JavaScriptの「PaintBBS NEO」へ移行しているため、Javaは必要なく、上記のJava関連の問題とは関係ありません。
改善
-
しぃペインターから送信された画像の破損チェック機能を追加しました。
しぃペインター以外のお絵かきアプリにはすでに実装ずみの画像の破損チェックを追加しました。
画像の破損が確認された場合は、お絵かき画面から移動せず、スクリーンショットの撮影を促すエラーメッセージを出します。 -
PaintBBS NEOではない、古いJavaのPaintBBSからの投稿時に、ツール名が「Shi-Painter」になっていたのを「PaintBBS」になるように修正しました。
HTML5版のPaintBBS NEOとは別の古いJavaAppletのPaintBBSから送信されたデータの場合はツール名が「PaintBBS」になるようにしました。
JavaプラグインではPaintBBSからの送信に失敗し、CheerpJv2.3からの送信の場合にも失敗しますが、CheerpJv3では成功するため、古いpchデータをキャンバスに読み込んで送信する事が可能になります。
その時のツール名が「PaintBBS」になるように調整しました。
CheerpJ のv3は、正式版がでてから対応する予定です。
Klecks更新
- Klecksを更新しました。
変更があったファイル
- klecks/ ディレクトリを上書きアップデート
- picpost.php
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
2023/11/04 v6.12.1
お絵かきアプリから送信されたPNG画像が破損していたら、お絵かき画面から移動せず、スクリーンショットの撮影を促すエラーメッセージを出すようになりました。
ImageCreateFromPNG()
で画像を生成する事ができるかどうかチェックする事で、画像が破損しているかどうかを検出する事に成功しました。
これにより、画像が破損した状態で投稿され作品が失われる確率をさげる事ができました。
psdファイルやchiファイル等アプリ固有ファイルのチェックは含まれていません。固有ファイルが破損して、同時に画像を上のレイヤーで隠している場合は、画像の復旧ができませんのでご了承ください。
破損状況を確認する事ができたのはPNG形式の画像のみです。
変更があったファイル
- potiboard.php
- save.inc.php
2023/11/04 v6.11.11
ペイントアプリを更新
- ChickenPaintを更新しました。
- klecksを更新しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
2023/11/02 v6.11.10
Klecks更新
- Klecksを最新版に更新しました。
改善
JPEG画像が回転していたり、位置情報がついている事が判明した時の処理が改善されました。
これまでは、回転または位置情報を検出した時には同じサイズのJPEG画像を出力していました。
今回の更新でMAX_W_PX
やMAX_H_PX
で指定した値(例えば1024px)で縮小されるようになりました。
これにより、幅と高さが、指定した値を超える時の二度目の画像処理を行わなくてもすむようになります。
JPEG画像を作成して、さらにJPEG画像を作成する処理の無駄と画質の劣化どちらも解決します。
変更があったファイル
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
2023/10/29 v6.11.5
バグ修正
- Tegakiのみを使う設定の時にお絵かき機能が有効にならないバグを修正しました。
CheerpJ v3対応のための準備
- CheerpJ v3で動的パレットの明るさの明+明-が動くようになります。
しかしながら、掲示板のJavaScriptにも手を加える必要があり、なおかつEdgeのIEモードやFirefox51等でオラクルのJava8を使った時にもパレットを動作させる必要があります。
それぞれに対応するため処理の追加と振り分けができるようにしました。
具体的にはJavaScriptのawait
が使用可能かどうかUAから判断して、利用可能な場合はasync
、await
をJavaScriptに追加します。
Exifを解析
- Exifを解析して位置情報が検出された時はGDで作成した画像で上書きして位置情報を削除するようにしました。
- Exifに画像の回転情報が入っている時は、画像の向きを修正した新しい画像を作成するようにしました。
これにより例えばスマホの縦長の写真 をアップロードした時に、横長になってしまう問題が解決するかもしれません。
大きすぎる画像を適正サイズに
- デジカメ写真や印刷用途の解像度のイラストはWebへのアップロードには適していない場合があります。
- 今回の更新では、Petit Noteですでに採用ずみの処理を使い、1024px以上の画像を1024px以内に収まるようにします。
これにより、「大きな画像はアップロードする前に縮小してください」とお願いしなくても、自動的に適正サイズに縮小されます。
ただし、あまりにも過大なファイルサイズの場合はサーバで処理できずアップロードがそもそもできない事が多いので、すべてのケースをカバーできる訳ではありません。
config.phpに新規設定項目を追加
//アップロード時の幅と高さの最大サイズ これ以上は縮小
define("MAX_W_PX", "1024"); //幅
define("MAX_H_PX", "1024"); //高さ
添付した画像がこの幅と高さの範囲を超えていたらサムネイルではなく投稿される画像そのもののサイズが範囲内に収まるように縮小されます。
設定項目が存在しない場合は、幅、高さともに1024pxで固定になります。
変更があったファイル
- thumbnail_gd.php
- potiboard.php
- config.php
(新規設定項目が必要ない方は更新の必要はありません)
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
- templates/basic/other.blade.php
- templates/basic/paint.blade.php
- templates/basic/res.blade.php
MONO
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
- templates/mono/mono_paint.blade.php
2023/10/24 v6.10.8
mobile判定して、Javaのしぃペインター等のPC用のメニューを非表示にしていたJavaScriptの関数を外部化しました。
またそのJavaScriptの処理には関数名が必要ないため、アロー関数に置き換えられました。
potiboard.php
の使用していないコードを削除しました。
テンプレートの更新が多めですが、かならず更新しなくてはならないというわけではなく、できるだけコードを繰り返しかかなくてすむようにするためのコードの整理になります。
テンプレートをカスタマイズしていない方は、templates/
ディレクトリを上書きすればテンプレートの更新が終わります。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/main.blade.php
- templates/basic/other.blade.php
- templates/basic/paint.blade.php
- templates/basic/paint_tegaki.blade.php
- templates/basic/res.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
- templates/mono/paint_tegaki.blade.php
2023/10/24 v6.10.7
v6.10.6で、しぃペインターが起動しなくなっていたのを修正しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
- templates/basic/paint.blade.php
- templates/mono/mono_paint.blade.php
2023/10/23 v6.10.6
Klecks更新
- Klecksを更新しました。
コード整理
- CheerpJ v3のRC1がリリースされたため、CheerpJ v3にもv2にも対応できるようにペイント画面のJavaScriptを調整しました。
- PNG画像のファイルサイズが一定の容量を超過した時はjpegに変換してファイル容量を縮小する処理を関数化しました。
PNGからJPEGに変換される条件が変わりました。
/アップロードしたPNG画像のファイルサイズが設定値より大きな時はJPEGに変換
//JPEGに変換した画像ともとのPNG画像を比較してファイルサイズが小さなほうを投稿します
//単位kb
define("IMAGE_SIZE", "512");
これまでは、お絵かき画像もアップロード画像もここで設定したファイルサイズを超える時はPNGからJPEGに変換していましたが、ここで設定した値の影響を受けるのはアップロード画像だけになりました。
お絵かき画像は例えば、上記設定の"512"
kbを超えていてもPNG形式のまま保存されます。
//投稿容量制限 KB phpの設定により2Mまで
//PNG形式の画像をJPEGに変換する事でこの制限を回避できる場合はJPEGに変換します
define("MAX_KB", "1000");
投稿容量制限を超えてしまい、そのままではエラーになって投稿ができなくなる時は、お絵かき画像も、アップロード画像もPNGからJPEGに変換されます。
変換後投稿可能なファイルサイズに縮小されていればJPEG形式で投稿されます。
変更があったファイル
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
- templates/basic/paint.blade.php
- templates/mono/mono_paint.blade.php
2023/10/21 v6.10.2
お絵かきアプリの幅と高さの最小値が設定できるようになりました。
- お絵かきアプリの幅と高さの最低値はこの間300px固定でしたが、100x100pxの絵を描きたいという要望もあり、エンドユーザーの方が自分で改造しているケースがありました。
今回の更新で、幅と高さの最低値をconfig.phpで設定できるようになりました。
これにより、改造しなくても、100x100pxのサイズも選択可能になります。
極端な例になりますが、10x10pxの絵も描けます。
//お絵描き最小サイズ(これ以下は強制でこの値
define("PMIN_W", "300"); //幅
define("PMIN_H", "300"); //高さ
config.phpのどこでも構いませんので、上記設定項目を追加すれば、最小サイズの幅と高さを設定できます。
設定項目が存在しない時は、これまで通り最小値が300px固定になります。
- 幅300px以下の時にレイアウトが崩れていたPaintBBS NEOを独自にカスタマイズ
横幅が300px以下でも、操作に支障がでないようにPaintBBS NEOのCSSを調整しました。
これまでは、操作のためのボタンがキャンバスの内側に入り込んでいました。
ただし、この表示はオリジナルのPaintBBSと異なってしまうため、開発元のリポジトリにはプルリクエストを行わず、POTI-boardとPetit Note用の独自版とします。
といってもCSSを2行追加しただけであとは同じものです。
メール通知機能のコードを整理
メール通知機能関連のコードを整理しました。削除できる箇所は削除し、未定義になる可能性のある箇所は未定義にならないように処理し、エスケープが必要な箇所にはエスケープ処理を追加しました。
メールで通知される記事のURLに投稿時刻のIDを追加して、URLをクリックした時に該当記事までスクロールするようにしました。
ChickenPaintを更新
依存関係の脆弱性を修正して、再度ビルドしたChickenPaintを同梱しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- neo.css
- potiboard.php
- config.php
(お絵かきアプリの幅と高さの最小値の設定が必要ない方は今使っているconfig.phpをそのままご利用ください。) - noticemail/noticemail.inc
(メール通知機能を使用している場合のみ)
変更があったテンプレート
BASIC
- templates/basic/basic.css
- templates/basic/js/basic_common.js
- templates/basic/main.blade.php
- templates/basic/paint.blade.php
- templates/basic/parts/paint_form.blade.php
MONO
- templates/mono/mono_main.blade.php
- templates/mono/mono_paint.blade.php
- templates/mono/parts/mono_paint_form.blade.php
- templates/mono/js/mono_common.js
CSS
- 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/ディレクトリを上書きアップデートすればテンプレートの更新が完了します。)
2023/10/17 v6.09.0
改善
- レス返信画面の表示処理の高速化を行いました。
省メモリ化のために、すべてのログファイルから必要な行数のみを取得する処理をv6.07.8で追加しました。
それにより実際に稼働している掲示板での実測値でメモリ消費量を50%削減する事に成功しました。
その処理でも十分に速度がでていましたが、さらに軽快に動作させるためコードを最適化しました。
処理に必要な時間が22%短縮されました。
これは、in_array()を使用せず、配列とキーを反転してから、issetを使うハックによる高速化です。 - 投稿直後に表示されるスレッドにIDを追加して、投稿した記事の位置までスクロールするようにしました。
続きを描くからの投稿直後にも個別の投稿の位置までスクロールします。
また検索結果からのリンクにも記事の位置までスクロールするためのIDが入るようになりました。
残念ながら対応できたのは、Template BASICのみです。
MONOは投稿フォームがスレッドの一番上にあるため、下方向にスクロールすると使いにくくなるからです。 - JavaScriptを最適化しました。
別タブで開くボタンの場合は二度押し防止のJavaScriptが無効になるように調整しました。
一度押すと無効になったまま復帰しないからです。
変更があったファイル
- potiboard.php
- search.inc.php
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/res.blade.php
MONO
- templates/mono/js/mono_common.js
2023/10/13 v6.08.0
改善
ペイントフォームの外部化と共通化。
parts/ディレクトリにペイントフォームを外部化しました。
1つのファイルを変更するだけで、すべてのペイントフォームに反映されるようになります。
バグ修正
お絵かきアプリを使用しない設定で、かつ管理者投稿画面ではお絵かきアプリを使う設定の時に、ペイントアプリのキャンバスサイズが表示されなくなるバグを修正しました。
変更があったファイル
- picpost.php
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
- templates/basic/res.blade.php
MONO
- templates/mono/mono_main.blade.php
- templates/mono/parts/mono_paint_form.blade.php
2023/10/11 v6.07.11
ChickenPaintを更新しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
2023/10/10 v6.07.10
セキュリティアップデート
JavaのしぃペインターとPaintBBSの動画ファイルのmime typeチェックを追加しました。
変更があったファイル
- picpost.php
- potiboard.php
2023/10/09 v6.07.9
ペイントアプリを更新
- Klecksを更新しました。
- ChickenPaintを更新しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/paint_tegaki.blade.php
MONO
- templates/mono/mono_paint.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/paint_tegaki.blade.php
2023/10/03 v6.07.8
メモリ消費量を50%削減
これまでのPOTI-boardは、返信画面に1件のコメントしか表示しない場合でも、ログファイルに1万発言記録されている時はその1万発言分のデータを読み込んでいました。
この問題を解決するため、返信画面とカタログ画面を表示する時に、必要な部分のみをログファイルから取得できるようにしました。
掲示板の返信画面で5MBメモリを消費していた実際に運用している掲示板のメモリ消費量は半分の2.5MBですむようになりました。
該当の掲示板ではカタログモードの時にも5MBメモリを消費していましたが、2.5MBのメモリ消費量で動作するようになりました。
tegaki.js の数値入力を改善
独自改造版のtegaki.jsを更新しました。
ブラシサイズや不透明度の数値による直接入力を改善しました。上矢印キーで数値が上がり、下矢印キーで数値が下がります。
変更があったファイル
- potiboard.php
- tegaki/ ディレクトリを上書きアップデート
2023/10/02 v6.06.1
お絵かきアプリからの投稿の場合は、画像の重複チェックをしないようにしました
直前の投稿に真っ白な画像が投稿されていると、同じサイズで同じく真っ白な画像が投稿不能になります。
実際には何時間もかけて描いているのに時間をかけて描いたレイヤーを非表示にして真っ白な画像を途中経過として投稿する人もいます。
そのような時に、その投稿が「同じ画像がありました。」というエラーにならないようにするための措置です。
アプリ固有ファイルのダウンロードの時に、mime typeをチェックするようにしました。
- アプリ固有ファイルのダウンロードの時に不正なmime typeのファイルが検出された時には、エラーになるように修正しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/paint.blade.php
MONO
- templates/mono/mono_paint.blade.php
- templates/mono/parts/mono_copyright.blade.php
2023/10/01 v6.05.2
セキュリティアップデート
ChickenPaintの.chi
形式ファイルの受信時の、mime typeチェックが行わていませんでした。
不正な投稿が成立しないように様々な工夫を凝らしてはいますが、アップデートをお願いします。
tmp/
ディレクトリへの不正なファイルのアップロードが成立する可能性があります。
不正なmimeタイプのファイルは移動前にmime typeがチェックされているためsrc/
ディレクトリに移動する事はありません。
拡張子はプログラム側で.chi
固定になっています。不正なファイルの拡張子が.php
や、.cgi
、.exe
などになる事もありません。
返信画面下段の前後の画像の表示を改善しました
返信画面下段の6つ並んでいる前後のスレッドの画像の表示を改善しました。
表示しているスレッドの位置にもよりますが、現在のスレッドより手前の3つと現在のスレッドより後ろの3つに分割しました。
表示するときに、3枚+3枚で合計6枚の現在のスレッドの前後の画像を表示します。
現在の位置より手前の画像が3枚存在しない場合は、現在の画像より後ろの6枚を表示して、可能な限り、6枚の画像がならぶように調整しました。
変更があったファイル
- potiboard.php
- save.inc.php
- search.inc.php
2023/09/21 v6.03.0.2
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
2023/09/21 v6.03.0
改善
- ChickenPaintの送信処理を古いxhrからfetch APIに書き直しました。
(PaintBBS NEO、Tegaki、klecksはすでにfetch APIを使って送信しています) - 新規投稿の時も返信の時も投稿完了後に該当スレッドを表示するようにしました。
これまでは、新規投稿時は掲示板のトップを、返信の時は該当スレッドが表示されていました。
バグ修正
ペイント画面で入力したものをそのままツール名としてログファイルに記録していました。
仮に不正な文字列が入力された場合でも、ログファイルのバージョンが6ではなく5として扱われるだけの被害にとどまるとは思いますが、バリデーションをほどこして、予想されるツール名以外のツール名が入力された時は空白を記録するようにしました。
出力時のバリデーションはすでに実施ずみでした。
また、ツール名にJavascriptが含まれている場合でも、テンプレートの出力時にHTMLの特殊文字はエスケープしていますので、xssなどのリスクはここには存在しません。
テンプレートのWeb StyleをTemplateに変更
Web Style by BASICという表記はオリジナルのPOTI-boardを踏襲したものでしたが、英語圏ではbyに続く文字は作者名の事が多い事が多いため、Template BASICのような形式で記載する事にしました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- potiboard.php
- save.inc.php
変更があったテンプレート
BASIC
- templates/basic/parts/copyright.blade.php
MONO
- templates/mono/parts/mono_copyright.blade.php
2023/09/13 v6.01.7.1
テンプレートBASICの前後ナビゲーションとページネーションのパーツを分離しました。
上段の前後ナビゲーションの箇所にページネーションが表示される状態になっていたのを修正しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/catalog.blade.php
- templates/basic/main.blade.php
- templates/basic/parts/paging.blade.php
- templates/basic/parts/prev_next.blade.php
2023/09/11 v6.01.7
- search.inc.phpに、2286年問題が残っていたのを修正。(160年後の誤動作防止)
- ページングの最初のページと最後のページが表示できるようになりました。「最後」をクリックすると一番古い投稿を表示します。
- カタログモードの時に1ページに表示する画像の枚数が30枚で固定になっていたのを設定可能に。
変更があったファイル
- potiboard.php
- search.inc.php
- config.php
(カタログ表示時の1ページあたりの表示枚数が30でよければ更新の必要はありません)
変更があったテンプレート
BASIC
- templates/basic/catalog.blade.php
- templates/basic/main.blade.php
- templates/basic/parts/prev_next.blade.php
MONO
- templates/mono/parts/mono_prev_next.blade.php
2023/09/10 v6.00.10
- ユーザーエージェントの無いブラウザ以外からのアクセスの時に軽微なエラーが発生していたのを修正。
- 描画アニメファイルの拡張子チェックをする前に存在するかどうか確認して負荷を削減。
- 描画時間の文字列が折り返しになってしまうのを修正(テンプレートBASIC)
- 検索画面の最終更新日の計算箇所が、2286年問題に対応していなかったのを修正。
変更があったファイル
- potiboard.php
- search.inc.php
変更があったテンプレート
- templates/basic/basic.css
- templates/mono/parts/mono_copyright.blade.php
2023/08/31 v6.00.7
使用ツール名の表記の修正
- shi-Painter→Shi-Painter
変更があったファイル
- potiboard.php
- picpost.php
2023/08/30 v6.00.6
バグ修正
- アップロード投稿時に「Tool:Upload」と表示されないバグを修正しました。
変更があったファイル
- potiboard.php
2023/08/28 v6.00.5
ログファイルを拡張しました
- 使用したペイントツールの名称が表示されるようになりました。
- 2286年問題に対応。ユニックスタイムスタンプが11桁になっても正常に動作するようにしました。
(現実問題としては、2286年になる前にシステムが動かなくなっている可能性のほうが高いです。11桁になるのは263年後です。) - 動画ファイルの種類、サムネイルの有り無しがログファイルに記録されるようになりました。これにより、毎回ファイルの存在確認をしなくてもよくなるため負荷を下げる事ができます。
このver6.0用に作成されたログファイルは、ver1から、ver5までのすべてのPOTI-boardで使用できます。
ver6.0で新たに追加されたログファイルの情報は古いPOTI-boardでは読み込む事ができませんが、古いバージョンのPOTI-boardでは新しく追加された情報を無視して動作します。
ログファイルの変換の必要もなく、ver6.0以後のPOTI-boardを使用した時には、新しい情報が追加され、古いログファイルにはその情報が存在しないだけです。
バグ修正
- テンプレートMONO使用時に、続きを描く画面で「Tegaki」が選択できなくなっていたのを修正しました。
- 続きを描く画面で余分な波括弧が表示されていたのを修正しました。
- 検索画面で次ページのリンクが正しく動作していなかったのを修正しました。
変更があったファイル
- picpost.php
- potiboard.php
- search.inc.php
削除されたファイル
- save.php
- saveklecks.php
- saveneo.php
追加されたファイル
- save.inc.php
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
- templates/basic/paint.blade.php
- templates/basic/paint_klecks.blade.php
- templates/basic/paint_tegaki.blade.php
- templates/basic/parts/copyright.blade.php
- templates/basic/res.blade.php
MONO
- templates/mono/mono_main.blade.php
- templates/mono/mono_paint.blade.php
- templates/mono/paint_klecks.blade.php
- templates/mono/paint_tegaki.blade.php
- templates/mono/parts/mono_copyright.blade.php
23/08/16 v5.63.9.1
検索画面の次ページのリンクが動作していなかったのを修正しました。
変更があったファイル
- search.inc.php
23/08/16 v5.63.9
独自カスタマイズ版ChickenPaintのバグを修正
- カラーセットをPCから読み込む事ができなくなっていたのを修正しました。
変更があったファイル
- chickenpaint/ ディレクトリを上書きアップデート
- picpost.php
- potiboard.php
- save.php
- saveklecks.php
- saveneo.php
23/08/13 v5.63.8
管理者モードのリンクを非表示にする設定項目を追加しました。
config.phpに以下の設定項目を追加しました。
//管理画面へのリンクを表示する する:1 しない:0
define("USE_ADMIN_LINK", "1");
//しない:0 で、管理画面へのリンクが表示されなくなります。
設定項目が存在しない場合は、従来と同じ動作になり、管理画面へのリンクが表示されます。
変更があったファイル
- potiboard.php
- config.php (設定項目の追加が必要ない場合は現在使用中のconfig.phpをそのままご利用ください。)
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
MONO
- templates/mono/mono_catalog.blade.php
- templates/mono/mono_main.blade.php
- templates/mono/mono_other.blade.php
- templates/mono/mono_paint.blade.php
23/08/07 v5.63.7
Klecks更新
非表示レイヤーの色がスポイトされる問題が修正されました。
変更があったファイル
- klecks/ ディレクトリを上書きアップデート
- potiboard.php
変更があったテンプレート
小さな画像の時は画面サイズにフィットさせるKlecksの新しい機能を無効化するオプションを追加しています。
- templates/basic/paint_klecks.blade.php
- templates/mono/paint_klecks.blade.php
23/08/04 v5.63.6.1
KlecksとTegakiの更新
- klecks/ ディレクトリを上書きアップデート
- tegaki/ ディレクトリを上書きアップデート
23/07/27 v5.63.6
バグ修正
- EdgeのIEモードで表示できなくなっていたのを修正しました。
変更があったファイル
- potiboard.php
- templates/mono/js/mono_common.js
- templates/mono/parts/style-switcher.blade.php
23/07/27 v5.63.5
変更があったファイル
- potiboard.php
- search.inc.php
(変数が未定義になっていた箇所を修正)
変更があったテンプレート
BASIC
- templates/basic/paint_tegaki.blade.php
(tegaki.js使用時のiPadのダブルタップズームを回避)
MONO
- templates/mono/mono_main.blade.php
(searchのリンクがsearch.phpのままになっている箇所があったのを修正) - templates/mono/paint_tegaki.blade.php
(tegaki.js使用時のiPadのダブルタップズームを回避)
23/07/13 v5.63.3
SNS共有時に開くWindowsの幅と高さをconfig.phpで設定できるようにしました。
config.phpに新規設定項目を追加しました。
// SNS共有の時に開くWindowsの幅と高さ
//windowの幅 初期値 350
define("SNS_WINDOW_WIDTH","350");
//windowの高さ 初期値 490
define("SNS_WINDOW_HEIGHT","490");
SNS共有時のサーバ一を追加した時に、共有画面のWindowの高さが不足して、スクロールする必要があるケースがありました。
SNS共有時のサーバ一覧の共有画面のWindowsの幅と高さを設定できるようにして、その問題を解決しました。
上記設定項目がconfig.phpに存在しない時は、デフォルト値の、幅350px、高さ490pxが適用されます。
変更があったファイル
- potiboard.php
- config.php (新規設定項目が必要な場合のみ更新)
変更があったテンプレート
BASIC
- templates/basic/js/basic_common.js
- templates/basic/main.blade.php
- templates/basic/res.blade.php
MONO
- templates/mono/js/mono_common.js
- templates/mono/mono_main.blade.php
[2023/07/11] v5.63.2
投稿を共有するSNSのサーバ一覧画面の操作性を向上
共有するサーバの選択時にラベルの文字列の上にカーソルをあわせなくても選択できるようにしました。
ラベルの文字列の右側の余白をタップした時にも選択できるうようになりました。
- set_share_server.blade.php
のHTMLの文法エラーを修正しました。
変更があったファイル
- potiboard.php
変更があったテンプレート
BASIC
- templates/basic/set_share_server.blade.php
MONO
- templates/mono/css/mono_mayo.min.css
- templates/mono/set_share_server.blade.php
[2023/07/11] v5.63.1
検索処理をsearch.phpからsearch.inc.phpへ
jQueryのバージョン設定やその他の関数がpotiboard.phpとは別に設定されていたsearch.phpの構造を根本から見直して、potiboard.phpにincludeするclassに修正しました。
検索結果は、これまではsearch.php?
のようなURLで表示されていましたがpotiboard.php?mode=search&
のようなURLに変わります。
テンプレートMONOのCSS切り替え箇所を外部化して共通化
templates/mono/parts/style-switcher.blade.php
にこれまでいくつものテンプレートに記述していた以下の箇所をまとめました。
<style>
body{
visibility: hidden;
}
</style>
<noscript>
<style>
body{
visibility: visible;
}
</style>
</noscript>
<link rel="stylesheet" href="{{$skindir}}css/mono_main.css?{{$ver}}">
<link rel="stylesheet" href="{{$skindir}}css/mono_dark.css?{{$ver}}" id="css1" disabled>
<link rel="stylesheet" href="{{$skindir}}css/mono_deep.css?{{$ver}}" id="css2" disabled>
<link rel="stylesheet" href="{{$skindir}}css/mono_mayo.css?{{$ver}}" id="css3" disabled>
また、ここにvisibility: hidden;
というCSSを設定してDOMの読み込みとJavaScriptの読み込みが完了するまで画面を表示しないようにしました。
これにより、MONOの色設定が一瞬別の配色で表示されるのを防ぎます。
検索で、大文字小文字を区別しない
名前検索で完全一致オプションの時に、アルファベットの大文字小文字を区別しなくなりました。
変更があったファイル
- potiboard5/potiboard.php
- search.inc.php
変更があったテンプレート
BASIC
- templates/basic/main.blade.php
- templates/basic/res.blade.php
- templates/basic/search.blade.php
- templates/basic/search.css
MONO
- templates/mono/ ディレクトリを上書きアップデート
(テンプレートをすべて更新)
[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/ディレクトリをすべて上書きアップデート。
ダウンロード
下記ソースコードリンクからダウンロードできます。