お絵かき掲示板PHPスクリプトPOTI-boardを改良していくプロジェクトです。
PHP7.1~PHP8.1 対応。
English translated version is here. POTI-board EVO-EN
繁體中文版本 POTI-board EVO-zh-TW
-
v2.26.0以前のPOTI-boardにはXSSの脆弱性があります。
悪意のあるJavaScriptが実行される可能性があります。 -
v3.09.5以前のPOTI-boardのすべてのバージョンには重大な欠陥があります。
すべてのログファイルを失う可能性があります。
また、v3.x系統のPOTI-boardはPHP8.1で非推奨のエラーが発生します。
現時点では警告ですがPHP9で動作が停止します。
そのためのv5.xの開発です。
v5.xの利用をよろしくお願いします。
v3.0で従来のPaintBBS NEO、しぃペインターに加え高機能なHTML5のペイントアプリChickenPaintの使えるようになりました。
スクリプトの名称はPOTI-board EVO(Evolution)になりました。
PHP8.1以降に対応するためテンプレートエンジンをBladeOneに変更しました。
v3.x系統の開発は終了し、v5.xになりました。
PHP8.1~PHP9に対応するためにテンプレートエンジンをBladeOneに変更し、potiboard.phpのコードの見直しを行いました。
v3.xのテンプレートは使えなくなりました。v5.xに対応したテンプレートをご利用ください。
v5.10.0で、新しいHTML5のペイントアプリklecksが使えるようになりました。
POI-board EVO v5.x で変わる事 · Discussion #15
設置はとても簡単です。
potiboard5ディレクトリをアップロードして、アップロードしたディレクトリにアクセスするだけで設置できます。
管理者パスワードの設定は必須です。
config.phpの最初の数行に必須設定項目がありますので、変更してください。
お絵かき掲示板簡単設置方法
お絵かき掲示板PHPスクリプトPOTI-board改公式サイトと、設置サポート掲示板 をオープンしました。ご利用ください。
設置サポート掲示板にはさとぴあが常駐しています。
- ログファイルの形式は同じです。どのバージョンのPOTI-boardのログファイルでも動作します。
potiboard.php
search.php
save.php
picpost.php
config.php
の再設定が必要です。新しいconfig.php
を使用して再設定する必要があります。
saveklecks.php
chickenpaint/
klecks
BladeOne/
templates/
拡張子blade.php
のファイルがHTML部分です。CSSファイルもtemplates/
ディレクトリの中にあります。
parts/
ディレクトリにもいくつかのblade.php
形式のファイルが入っています。 laravel-blade - Visual Studio Marketplaceを使うとBladeの文法にそって色分けされて表示されます。
これによりBladeのHTMLファイルの編集が容易になります。
エディタも拡張機能も無償で利用できます。
この掲示板はテンプレートを入れ替える事ができます。
BASIC
とMONO
2種類のテンプレートを同梱しました。
MONOのHTMLとCSSをv3.07.5で大幅に更新しました。
そのためv3.07.5より古いCSSファイルを使用すると一部のデザインが正しく表示されなくなります。
たとえば、フッターやカタログの見た目が意図通りになりません。
その場合は、カスタマイズしたCSSファイルと同じ配色のCSSと同じになるように作り直す必要があります。
もし配色のみを変更したいのであれば、SCSSファイルもありますのでどうぞご利用ください。
SCSSファイルはmono/css/dev/sass/
ディレクトリに入っています。
配色とその他のデザインに設定が分かれているため、配色を容易に変更できます。
Visual Studio Code – コード エディターと拡張機能DartJS Sass Compiler and Sass Watcher
があればコンパイルできます。エディタと拡張機能どちらも無償で利用できます。
potiboard_plugin: お絵かき掲示板 POTI-boardのための外部phpプログラム
パレットデータ(やこうさんパレット)、BBSNoteのログファイルをPOTI-board形式に変換するログコンバータなどがあります。
HTMLタグも旧独自タグも廃止してしまいましたが、urlの自動リンクは使えます。
また、マークダウン形式のテキストリンクも使えます。
[テキストリンク](https://example.com/)
と書くと
テキストリンクのようなテキストリンクを作成できます。
- レイヤーの最大枚数が8枚から16枚に増えました。
- テンプレートBASICのバグを修正しました。
search画面の画像の一覧のリンクが機能していなかったのを修正しました。
原因はHTMLの文法のミスでした。 - search画面のHTMLの文法エラーを修正しました。
checked="checked"
のクオートがエスケープされて文法チェッカーでエラーになっていました。
リリースから安定版をダウンロードできます。
POTI-board EVO v5.16.5.1 リリース
- Klecksを日本語に翻訳しました。
POTI-boardにも、日本語対応版を同梱する事ができました。 この新しいバージョンのKlecksは、ブラウザの言語の優先順位を自動検出して言語を切り替えてくれます。
また、ブラウザの言語の設定にかかわらず使用する言語を指定する事もできます。
英語、ドイツ語、日本語が選択できます。
中文は簡体字のみで細部はまだ英語のままです。
日本語訳のリソースはすでに開発元に統合されています。
.pch
ファイル(PaintBBS).chi
ファイル(ChickenPaint).psd
ファイル(Klecks)
Klecksのレイヤー情報を含むファイルはPhotoshop形式の.psd
ファイルです。
ダウンロードした.psd
ファイルはクリスタやSAIそのほか多くのアプリで開く事ができます。
.pch
と、.chi
は、それぞれNEOとChickenPaintで開く事ができます。
管理者投稿過画面から.pch
、.chi
、.psd
を添付してペイントボタンを押せば、キャンバスに読み込んで投稿できます。
- 透過PNGの透明部分がJPEG化する時に、真っ黒になっていたのを修正しました。
透明色が黒も間違いではないのですが、意図しない結果になる事が多いため、透過GIF、透過PNGからJPEGに変換する時は、透明色を白に変換します。
- 管理者ログイン時に使うアップロードペイントアプリ固有形式、pch、chi、psdなどの不要になったファイルの自動削除機能の動作時に軽微なエラーが発生するケースがあったのを修正しました。
- Apple Pencilでメニューが操作できなくなっていたのを修正しました。
ChickenPaintやKlecksのメニュー操作がで操作できなくなっていたのを修正しました。
v3.19.5でペイント関連のテンプレートに追加したJavascriptが原因でした。
該当のJavascriptを削除して正常に動作することを確認しました。
- Klecksを最新版にアップデート。
新しいブラシが追加されました。ミラーペインティングができるようになりました。
- 新しいペイントアプリKlecksに対応しました。
わかりやすいUIと強力なブラシが使えるアプリです。
レイヤーは8枚使えます。
数多くのフィルタが使えます。輝度を透明に変換、明るさ/コントラスト、色調補正など。
このアプリの追加にともない、管理画面からアップロードできるファイル形式に「PSD」が追加されました。
PSDファイルを選択してペイントボタンを押すとKlecksのキャンバスにPSD画像が読み込まれます。
- 複数の未投稿画像がある時に、一番新しい画像が投稿できるようになりました。
これまでは、コメント欄のすぐ上の画像は投稿されず画面の一番上の画像が投稿されていました。
- 強制sageが機能しなくなっていたのを修正しました。
- 未定義エラーを含む多くのマイナーなバグが修正されました。
- 古いコードを整理ました。投稿する前にプルダウンメニューでJPEG/PNGを切り替える機能やペイント画面から新しい設定でお絵かきする機能は削除されました。
- 同梱テンプレートは対応していないものの、機能としては残っているのは文字色選択機能だけになりました。
- テンプレートBASICで管理者モードの時に「投稿フォーム」という文字列が「投稿フォーム」以外の時にも表示されていたバグを修正しました。
- img.logとtree.logの内容が一致しない時にレス画面に前後の画像を表示する機能で未定義エラーが発生する問題を修正しました。
しかし、img.logとtree.logの内容が一致しないという時点でそのログファイルは壊れています。
ログファイルが壊れるようなテストを行っていた過程でみつけた問題です。通常の使用ではログファイルは壊れないと思います。
拒絶する文字列で指定された文字列がURLに存在する時は拒絶するようになりました。
また、拒絶する文字列とは別に使用できないURLの設定項目も追加しました。
//拒絶するurl
$badurl = array("example.com","www.example.com");
これまでは、URLのスパムワードチェックは何も行われていませんでした。
日記モードに設定しても、ペイントボタン下に表示される説明文が表示されたままになっていたのを改善しました。
しかし、追加の説明文 $addinfo
は表示する必要があるため、$addinfo
が存在するときは表示するように工夫しました。
指定日数を超えた記事の編集をロックするだけでなく、続きを描く(画像の編集)もロックするようにしました。
これらの設定項目を作ったのはパスワードが第三者によって侵害されて記事が改変されるのを防ぐためです。
記事の編集はロックされますがユーザーによる削除はできます。
また管理者は指定日数を過ぎていてもテキストの編集ができます。
しかし、一定の指定日数でロックがかかると困る方もいらっしゃると思います。
define('ELAPSED_DAYS','365');
365
で1年以上経過したスレッドはロックされますが、
define('ELAPSED_DAYS','0');
0
に設定するとロックされません。
- 描いている最中に指定日数を過ぎてしまった時は新規投稿になります。
また描いている最中にスレッドが削除されていた時も新規投稿になるようにしました。
noteにまとめました。 PHP8.1対応作業。テンプレートエンジンに苦しめられる。|さとぴあ|note
PHP8.1環境でSkinny.phpから非推奨のエラーが発生するため、テンプレートエンジンをbladeOneに変更しました。
しかし、それはテンプレートの互換性がなくなる事を意味します。
拡張子HTML
のテンプレートは、拡張子blade.php
のテンプレートに置き換えられました。
拡張子がHTML
ではないのでカスタマイズが難しそうに感じられるかもしれません。
しかし、中身は従来のテンプレートとほとんど同じです。
同梱したテンプレートは、これまで同梱していたPINKとMONOをBladeOneで使えるように修正したものです。 PINKの背景色を白に変更。名称もBASICに変更しました。
BASICは 黒鋼彗牙さんのCOOL SOLIDをベースにして作成したものです。
著作表記はテンプレートのLICENCEにあります。
- PHP5.6環境でも動作するように開発していましたが、BladeOneのv4.2はPHP7.1以上の環境でなければ動作しない事がわかりました。
POTI-board EVO v5.xにはPHP7.1以上の環境が必要になりました。
- 日記モードを調整しました。新規投稿は管理者のみに設定してもペイントボタンは表示されたままで、絵を描き終わって投稿を完了させようと思ったら管理パス以外での投稿はできないというエラーになっていました。
新規投稿には管理パスが必要と設定した時点で新規投稿のためのペイントボタンが非表示になるようにしました。
管理者投稿画面にお絵かき機能を実装して、管理者はそこからお絵かき投稿が可能になるように作り直しました。
- 今後のPHPのバージョンアップで文字列の処理にnullを入力できなくなりますが、採用しているテンプレートエンジンSkinny.phpでその箇所のエラーが発生しました。現時点では今後は使えなくなるという警告にどどまっていますがPHP9では動作が停止します。
そのエラーがでなくなるように修正したのが今回のバージョンになります。
しかしながら、採用しているテンプレートエンジンでエラーがでるような状況のまま使い続けるわけにもいきませんので、次のバージョンで、BladeOneにテンプレートエンジンを入れ替えます。
バージョン3.x系統の開発を今回のバージョンで終了し、次のメジャーバージョンアップ、バージョン5にとりかかります。
ログファイルの互換性は確保します。
リリースから安定版をダウンロードできます。
POTI-board EVO v3.22.8 リリース
- 返信画面の下に前後のスレッドと前後のスレッドの画像が表示されるようになりました。
-
レスの画像からの続きを描く時は「新規投稿」もレス画像になりました。
これまでは、レスの画像から「新規投稿」で続きを描くと新規スレッドが作成されていました。 -
返信したあとに表示される画面がスレッドの返信画面になりました。 これまでは、どの位置のスレッドに返信しても、投稿処理が完了するとトップページが表示されていました。
-
レスモード、カタログモードからの編集・削除の処理の完了時にもとの画面が表示されるようになりました。
-
続きを描いて投稿が完了した時にスレッドの返信画面が表示されるようになりました。
これまでは、35ページ目にある画像から続きを描いた場合でも投稿が完了した時にトップページが表示されていました。
そのため、投稿した画像がどこにあるのか探さなければならなくなっていました。 -
ChickenPaintの画面の特定の箇所でスワイプすると画面が上下に動く問題がありました。該当箇所をJavaScriptで制御しました。
-
初期設定では、index.html、設定を変更すればfoo.htmlに変更可能なトップページへのリンクが
<a href="./"></a>
となっている箇所が数箇所見つかりました。ほとんどのケースでは問題はでませんが、実害がでてしまっているサイトも存在しているため修正しました。
- 新規設置の時に必要なindex.phpを更新しました。
PHPのバージョンがPHP5.3以下の時にもPHPのバージョンが古い事が原因で動作しない事をエラーメッセージで表示するようにしました。
これまでは、致命的エラーになっていました。
そのため設置が成功しない原因がわからなくなっていました。 - ChickenPaintのパレットを長押しした時にコンテキストメニュー(名前を付けて保存ほか)が開く問題に対応
ChickenPaintのパレットをペンで長押しした時に、不要なマウスの右クリックメニューが開いてしまう問題に対応しました。
この問題はwindows inkをonにしている時や、Apple Pencil、またはスマホなどで発生していました。 各テーマのPaint画面のテンプレートにJavaScriptを追加する形で対応しましたので、Paint画面のテーマの更新をお願いします。
同梱したテーマは対応ずみですが、他の作者の方が作成したテーマはまだ未対応かもしれませんし、今後も対応しないかもしれません。
その場合は各作者の方に対応してもらうか、自分でコードを追加するなどの対応をお願いします。
<script>
function fixchicken() {
document.addEventListener('dblclick', function(e){ e.preventDefault()}, { passive: false });
document.querySelector('#chickenpaint-parent').addEventListener('contextmenu', function (e){
e.preventDefault();
e.stopPropagation();
}, { passive: false });
}
window.addEventListener('DOMContentLoaded',fixchicken,false);
</script>
(同梱テーマは対応ずみ)
- PaintBBS NEOで、コピーやレイヤー結合を行う時に画面が上下に動く問題に対応しました。
長方形の選択を行う事でコピーやレイヤー結合の操作を行うため、キャンバスからペンが少しはみ出る操作になる事があります。
この時にNEOのキャンバスが上下に動く事があります。
windows inkや、Apple Pencilを使っている時に発生します。
iPad以上の画面の横幅を検出した時にはNEOのキャンバスの周囲の網目の上でスワイプしても画面が動かなくなるようにしました。
スマホの時は従来と同じ動作としました。ピンチアウトでキャンバスを拡大したときにスワイプできなくなると操作不能に陥るからです。
こちらも、同梱テーマのみの対応になる可能性があります。
その場合は各作者の方に対応してもらうか、自分でコードを追加するなどの対応をお願いします。
<script>
function fixneo() {
if(screen.width>767){//iPad以上の横幅の時は、NEOの網目のところでtouchmoveしない。
console.log(screen.width);
document.querySelector('#NEO').addEventListener('touchmove', function (e){
e.preventDefault();
e.stopPropagation();
}, { passive: false });
}
}
window.addEventListener('DOMContentLoaded',fixneo,false);
</script>
(同梱テーマは対応ずみ)
- picpost.php
エラーメッセージの日本語・英語自動切り替えがiPadのja-jp
に対応していなかったを修正しました。
これまでは、iPadまたはja-jp
を返す端末でエラーが発生した時に英語のエラーメッセージが表示されていました。
-
chiアップロードペイント後のファイルの削除処理
管理者投稿でChickenPaint固有ファイル、chi形式のファイルをアップロードしてキャンバスに読み込んだあとのchiファイルの削除処理が抜けていたのを修正、追加しました。
今回の修正でアップロードから5分経過していればtempディレクトリから削除されるようになりました。この修正を行う前でも、数日経過すれば不要になったファイルは削除されていました。 -
画像のALT文の見直し。続きを描く時の画像にもイラストのタイトルと作者名
続きを描く時に表示される画像のALT文にタイトルと作者名が入るようになりました。
- 続きを描く時のthumbnail画像の幅と高さやHTMLの画像の幅と高さの計算方法を修正しました。
connfig.phpの設定値を最大値としてセットし計算を最初からやり直す形になりました。
ChickenPaintでは、画像の縦横を回転により変更可能ですが、これまでは回転するたびにサムネイル画像のサイズが小さくなっていました。 - cookieに実際のキャンバスサイズがセットされるようになりました。これまでは、ユーザーが入力した値がそのままセットされていました。キャンバスサイズには最大値があるため、例えば最大で800pxの時に、8000pxと入力しても、実際に開くキャンバスサイズは800pxです。
これまではこのようなケースでもcookieに8000pxがセットされていました。 - 不正な長さのファイル名が入力された時はエラーを返すようになりました。
- レスナンバーの長さをチェックして不正な長さの時はエラーにを返すようになりました。
- 返信画面に表示される記事の説明文に親のコメントの全文が表示される仕様を修正し、300バイト以上は省略するようになりました。
potiboard.phpのアップデートをお願いします。
- 外部サイトからの不正な投稿を緩和するため、投稿処理時のusercodeとcookieにセットされたusercodeをチェックするようになりました。
picpost.phpとsave.phpのアップデートをお願いします。
「書き込む」を「送信する」に変更するなどいくつかのテーマのHTMLの変更を行いましたが機能としては同じなので、v3.12.2のままです。
リリースのタグもv3.12.2のままですが、zipファイルの中身は更新されています。
- パスワードの長さチェックを追加しました。
- 各入力項目の長さチェックを処理の前半に移動しました。
- 管理画面を表示した時に発生していた軽微なエラーを修正しました。
この問題を修正するために必要なファイルは、potiboard.php
です。
potiboard.php
の上書きアップデートをお願いします。
- 従来のすべてのバージョンのPOTI-boardに存在する重大な欠陥が見つかりました。
すべてのログファイルを失う可能性があります。早急に最新版にバージョンアップしてくださいますようお願いいたします。 - POTI-board v2(改二)を利用されている方へ。
potiboard.php
の差し換えのみではv3系統の全機能を使う事はできませんが、この問題に対処する事はできます。
potiboard.php
の上書きアップデートをお願いします。
-
脆弱なパスワードの使用を防ぐためパスワードが5文字以下の時はエラーメッセージを出すようになりました。エラーメッセージは「パスワードが短すぎます。最低6文字。」。
-
第三者による記事の改ざんを防ぐため設定した日数より古いスレッドへの返信をロックする機能を拡張し古い記事の編集もロックするようになりました。
削除はできます。また管理者は編集・削除ともに従来通り可能です。 -
以下の設定項目が無い古いconfig.phpを使用すると、画像なしのチェックを入れたり外したりする必要がありました。
//画像なしのチェックボックスを使用する する:1 しない:0
define('USE_CHECK_NO_FILE', '0');
このデフォルト値を「する:1」 から 「しない:0」 に変更になりました。 config.phpのバージョンが古い場合でも「画像なし」のチェックを入れたり外したりする必要はなくなりました。
- サイトの著作リンクの変更。 https://paintbbs.sakura.ne.jp/poti/
- POTI-board EVO v3.08.1 のバグを修正しました。
必要なJavaScriptを誤って削除していたため、テーマMONOの配色の切り替えに不具合が発生していました。
このバグの影響を受けるのは、テーマMONOです。PINKには配色切り替え機能がないためこの影響を受けません。
- ブラウザのヒストリーバックやエラー画面の戻るで元の画面に戻った時に送信ボタンが無効化されたままになり操作できなくなる不具合を修正しました。
- ブラウザの言語が日本語以外の時にPaintBBSのメニューの表示がおかしくなっていたのを修正しました。
- 描画時間計算をするしないを判断している箇所の計算方法が間違っていたのを修正しました。描画開始時間が存在しない時にも計算がはじまっていました。
- 投稿処理の途中でエラーが発生しても、未投稿画像からお絵かき画像の再投稿ができるようにしました。ワークファイルの削除を投稿処理のほぼ最後の箇所に移動しました。これまでは、投稿処理の後半でエラーが発生すると、投稿したイラストはサーバに残るものの掲示板には表示できなくなっていました。
日付が変わってもipアドレスが同じ時は同じIDを表示するようになりました。
1日の投稿件数が数十件に及ぶケースでは一日限りのIDでも使いみちがありますが、数日間に数件しか投稿がない掲示板ではIDが意味をなさないからです。
他のPOTI-board系統の掲示板でも同じIDが表示される可能性があります。それを回避したいときは、config.php
で
//ID生成の種
define('ID_SEED', 'IDの種');
を変更すれば、その掲示板で生成されるIDがユニークなものになります。
- MONOのスレッドのタイトルをリンクに。
- search の画面の配色を掲示板に近づけました。
記事の編集削除の時に記事番号を入力して編集ボタンを押すと、ユーザー名を記事番号としたセットでパスワードが保存される事がありました。
この問題を回避するためCSSで非表示にした入力欄を別途作成しました。
これにより名前をユーザー名としたパスワードの保存が容易になります。
- config.phpで設定したタイムゾーンがsearchに反映されず、searchの設定を変更しない限り「Asia/Tokyo」のままになっていたのを修正しました。
日本時間に設定していた人の表示はなにも変わりません。
-
ChickenPaintのアイコンが一新されました。
-
テーマ MONOの配色を変更しました。
原色系の配色を見直しました。 -
管理者削除画面
セキュリティ向上。XSS対策を強化しました。
1ページに表示する件数を2000件から1000件に変更しました。 -
アップロードペイントのエラーメッセージを修正
ファイルをアップロードしてキャンバスに読み込む機能にChickenPaintの「chi」ファイルも対応しているため、対応フォーマットの説明に「chi」を追加しました。
2021/08/23 ChickenPaintの新しいアイコンが入っていませんでした。
修正版をリリースしましたのでお手数ですが、ChickenPaintディレクトリの上書きアップデートをお願いします。
(v3.06.8.1) で修正済み。
- Tweetや通知メールがHTMLエスケープされた文字化けした文字になるためデコード処理を追加。
- Tweetに使用する、題名と名前に相当する出力の変数を追加。
<% def(oya/share_sub)><% echo(oya/share_sub) %><% else %><% echo(oya/sub|urlencode) %><% /def %>
<% def(oya/share_name)><% echo(oya/share_name) %><% else %><% echo(oya/name|urlencode) %><% /def %>
POTI-board本体のバージョンが低い時は新しく追加した変数が未定義になります。
それを回避するため、テーマのHTMLで、変数が存在していたら新しく設定したTweet用の変数を使い、でなければ古い形式のまま出力としました。
- ChickenPaintがアップデートし、iOS関連の多くの不具合が解消されました。
パームリジェクション関連の不具合が解消されました。
手のひらとApple Pencilの識別ができるようになりました。これまでは、意図しない直線が発生していまた。
- iPadでChickenPaintを使う時に、意図しないダブルタップズームが発生し、描画が困難になる問題に暫定対応しました。
各テーマのPaint画面のHTMLの更新をお願いします。 <img loading="lazy">
。各テーマのimg
タグにloading="lazy"
を追加しました。
ディスプレイに表示されていない範囲の画像を読み込まなくなるので転送量が少しだけ減ります。
- 固定トークンを使った、CSRF対策を導入しました。
サイト外部からの不正な投稿を拒絶する事ができます。
テーマのHTMLがトークンに対応していない時は、
define('CHECK_CSRF_TOKEN', '1');
を
define('CHECK_CSRF_TOKEN', '0');
に変更します。テーマが対応していない時にこの設定を有効にすると投稿ができなくなります。
この設定項目がconfig.phpに存在しない時は、
define('CHECK_CSRF_TOKEN', '0');
と同じ扱いになります。 - 出力時にHTMLをチェックする方式に移行しました。管理者もHTMLタグの使用ができなくなりました。
すでに入力済みのHTMLタグは除去されます。
除去してさらにエスケープ処理を行ったものを出力します。 - トップページのフォームと、各スレッドに表示するミニレスフォームを廃止しました。
静的HTMLファイルにはCSRFトークンをセットする事ができないからです。 - ChickenPaintがスマホ対応になりました。
- MONOのCSS切り替えのJavaScriptを大幅に更新。
非推奨の古いJavaScriptの関数の使用をやめました。
CSSファイルを外部からセットするのではなく、あらかじめ用意したものを読み込むかどうか指定する形になりました。
themeディレクトリのHTML全5ファイルの上書きアップデートをお願いします。
- 投稿を通知する処理を行っている
noticemail.inc
を改修。多国語対応に。
- ChickenPaintの画面が選択される問題に対応。
- PaintBBS NEOとしぃペインターの時は、Windows inkや二本指によるジェスチャーでブラウザバックしないようにした。
- potiboard.phpのコードを整理。global変数削減、コンティニュー時の処理をまとめた。
- MONOのCSS切り替えをプルダウンメニューに。
-
日本語に翻訳されたChickenPaintの最新版に更新。
ブラウザの言語が日本語以外の場合は英語で表示。ブラウザの言語が日本語なら日本語で表示。 -
管理画面のページング 2000件単位で改ページ。
-
メインページとカタログページのページングを改良。
35頁単位でページングする方式に移行しました。 -
しぃペインターが起動しないCheerpJのバージョンに対処。
CheerpJの起動に必要なJavaScriptのurlをpotiboard.phpで管理するようになりました。
- ChickenPaintを日本語訳対応版にアップデートしました。
- PaintBBS NEOをv1.5.11にアップデートしました。
picpost.php
更新。PaintBBS NEOv1.5.11の、エラー発生時はペイント画面にとどまるようにする機能に対応しました。- NEOの画像から続きを描く時にJavaのPaintBBSが起動するバグを修正しました。
- ChickenPaintに対応しました。
- v2.xからv3.xになりました。
- それにともない、改二からEVOに名称変更しました。
- 改二のテーマも引き続き利用できます。
各テーマのPOTI改公式サイトのURLを変更しました。
著作表記を(C)POTI改 POTI-board redevelopment team.に変更しました。
テーマの細かな修正を行いました。
別リポジトリで配布していたテーマファイル、PINKを同梱しました。
- png2jpgの作業ディレクトリをsrcのリアルパスに。関数化される前と同じ動作になるようにしました。
- レス先が無い投稿の時に添付ファイルでアップロードした画像が画像ディレクトリに残るバグを修正。
- 続きから描いた時に画像の縦横比が正しくセットされないバグを修正。
- v2.12.7 lot.200822 から関数化されたpng2jpgの作業ディレクトリが、srcやtmpではなく、potiboard.phpと同じディレクトリだったのを変更。
config.php
の設定例にドメイン名の例示のために予約されているセカンドレベルドメインexample.comを使用。- テーマのcss修正。
(by さとぴあ)
- v2.26.3の「e-mailとして不正な形式のものはリンクに出さないようにした」に関するバグの修正。
- レス先が存在しないレス投稿の時にE_WARNINGレベルのエラーが発生するのを修正 (by さとぴあ)
- POTIv1.33b1とは別の方法で、img.logへの書き込み処理が発生しないようにした。
- ユーザー削除のエラー処理でfopen()したファイルが閉じられていなかったのを修正。
- 管理者の削除画面のバグを修正 (by さとぴあ)
- メールアドレスを検証フィルタに通し、e-mailとして不正な形式のものはリンクに出さないようにした。
- MD5が表示されなくなっていたのを修正。
- E_WARNINGレベルのエラーが発生していたのを修正 (by さとぴあ)
potiboard.php
のほかにpicpsot.php
に変更があります。
- ログに記録されているメールやURLの形式が正しく無い時は、出力時にチェックしてリンクに出さないよう修正 (by さとぴあ)
- 記事のHTML更新の時に、form()関数がHTMLの枚数分コールされていたのを変数に代入して一回ですむようにした (by さとぴあ)
- ごくわずかな、わからないぐらいの差です。
- Cookieにセットできない文字列があったのを修正 (by さとぴあ)
- アニメファイル(.pch/.spch)アップロード時のエラーメッセージをtemplate_ini.phpで設定できるようにした (by さとぴあ)
- 最大ログ保持数が未設定または未定義の時はエラーになるようにした (by さとぴあ)
- また、最大ログ保持数の最低値を1000件に設定 (by さとぴあ)
- 誤った設定によりログファイルと投稿画像を失うリスクの軽減です。
- v2.23.5 lot.210209.0で発生していた、最終ページが10件未満の時に直前のページのログが入り込むバグを修正 (by さとぴあ)
- おかしくなっていたのは表示部分でログファイルへの影響はありません。
- 最大ログ数をオーバーした時のコードを書き直した (by さとぴあ)
- 管理者パスワードが未定義の時はエラーにするように (by さとぴあ)
- 管理モードでのみ規制するための文字列が通常の書き込みでも拒絶されていたのを修正 (by さとぴあ)
- themeの
template_ini.php
にメッセージの追加があります。
- themeの
- v2.23.5で発生したバグ修正 (by さとぴあ)
- パスワードまたはadminがNULL時かつ、管理パスの変数が設定されていない時に管理モードが開いてしまう事があるのを修正 (by さとぴあ) config.phpが正しく設定されていればこれまでのバージョンでも問題ありません。
- お絵かきのCookieが無い時に、通常のコメントのCookieがエラーで取得できなくなっていたのを修正 (by さとぴあ)
loadcookie.js
の上書きアップデートをお願いします。
- コード整理 (by さとぴあ)
- コメントのエスケープの関数、入力チェック、改行コードの関数を統合。
- メアド欄にメールアドレスとして正しい文字列が入っていないとリンクを作成しないように修正 (by さとぴあ)
- sage とか。
- 定数に置き換えたはずのメッセージに日本語が残っていたのを修正 (by さとぴあ)
- ログ保持件数を超えた時にログファイルに大量の空行が発生する現象を修正 (by さとぴあ)
- クッキーの二重Encodeを修正 (by さとぴあ)
- readme.txt 改定 (by さこつ)
- filter_input()で取得可能な変数を関数の引数に使用しない (by さとぴあ)
- 入力チェックの関数化 (by さとぴあ)
- picpost.systemlogの設定をpicpost.phpに移動 (by さとぴあ)
- レス0件省略と表示される事があるバグを修正 (by さとぴあ)
- PHP8環境で致命的エラーが出るバグを修正 (by さとぴあ)
- 1発言分のログが4096バイト以上の時に処理できなくなるバグを修正 (by さとぴあ)
- 多国語対応。投稿通知メールのメッセージをtemplate_ini.phpで設定できるようにした。(by さとぴあ)
theme/template_ini.php
に設定項目が増えていますが、そもままでも大丈夫です。
- php8でタイムスタンプがログに存在しない時に致命的エラーが発生するのを回避 (by さとぴあ)
- picpost.systemlogのパーミッションもconfig.phpで設定できるようにした。(前回の作業の漏れ)
- config.phpの設定項目を分類しなおし (by さとぴあ)
- タイムゾーンをconfig.phpで設定できるようにした (by さとぴあ)
potiboard.php
picpsot.php
を上書き、config.php
に設定追加。
- 定数が2重定義になるバグを修正 (by さとぴあ)
- 投稿者名の敬称の設定がthemeのHTMLに反映されるようにした (by さとぴあ)
- 対応テーマが必要です。(mono、nee2は対応済み)
- template_ini_phpで設定した投稿者名の敬称がthemeのHTMLに自動的に反映されるように (by さとぴあ)
- 主に外国語版向け機能です。
- 多国語対応。template_ini.phpで、すべてのメッセージを設定できるようにした。(by さとぴあ)
- ログファイルに投稿時間(UNIXtimestamp)が記録されていない時に致命的エラーが発生するバグを修正。(by さとぴあ)
- PHPが出力するファイル、ディレクトリのパーミッションの値を設定できるようにした(by さとぴあ)
- webp形式からのサムネイル作成に対応(by さとぴあ)
- 重要 php8環境で画像から続きを描くとエラーになるのを修正(by さとぴあ)
- 新しいpicpost.php、search.phpへの差し換えをお願いします。PHP5.5~PHP7.xでも動作します。
- 動画表示モード、続きを描くでの時に画像がない時はエラーにする(by さとぴあ)
- 画像が無い時はエラー表示「記事がありません」になります。
- webp仮対応(by さとぴあ) -画像がアップロードできるだけです。サムネイルは作成されません。しぃペインターやオリジナルのPaintBBSはwebpから続きを描けないので、何を選択してもNEOが起動します。
potiboard.php、picpost.php、search.php のアップデートをお願いします。
- $_REQUESTによる$modeの取得を廃止
-
config.php
- 「新規投稿でコンティニューする時にも削除キーが必要 必要:1 不要:0」のデフォルト値を0に変更。(パスワードを公開しなくても合作ができる事がわかりにくく、パスワードが公開される事例が多いため。)
-
picpost.php
readme.txt
- 著作リンク(ちょむ工房URL)が現在はまったく別のサイトになっているのを修正。
- php8ではE_WARNINGレベルのエラーになるUndefined offsetを修正(by さとぴあ)
palette.txt
せぴあ→セピア(ひらがなからカタカナへ)
- 旧PaintBBSのPCHファイルの動画再生と続きを描くに対応
- 旧PaintBBSのPCHファイルアップロードペイントが可能に
- (テンプレートに更新があります)
- 描画時間関連の軽微なエラーを修正(by さとぴあ)
- 続きを描いた時の描画時間を合計表示に
- 従来は1時間10分2秒+2分6秒のように+で描画時間をつないでいましたが、1時間12分8秒のような描画時間の合計になります。従来の表記も選択可能です。
- 今回更新が必要なファイルは、
potiboard.php
、thumbnail_gd.php
(できれば)、config.php
(設定を変更したい場合のみ)です。
- 動画から続きを描く時に動画ファイルをしらべて、元のアプレットで開くようにする処理を追加しました。
- 設定を変更してお絵かきできるテーマを使用した時に発生していたバグおよび問題を修正しました。(by さとぴあ)
- 続きを描く時に元の画像と違うサイズのキャンバスが開くことがあるバグを修正(by さとぴあ)
- v2.18.10 lot.201103でキャンバスサイズをCookieに記録するようになりましたが、そのキャンバスサイズが続きを描く時のキャンバスサイズにも反映されてしまうバグが見つかり報告がありました。続きを描く時のキャンバスにCookieのキャンバスサイズは使用されなくなります。
- lot.201110(2.19.0~)の投稿完了時間が記録されないバグを修正。
- picpost.phpの上書きアップデートが必要です。
- フォームが閉じられているスレッドへの投稿はエラーにする(by さとぴあ)
- 未投稿画像からの投稿でもレス先への投稿になるように(by さとぴあ)
- potiboard.phpとpicpost.phpの更新が必要です。
- ファイルサイズが2MBを超えている時のエラー処理の追加(by さとぴあ)
$_FILES['userfile']['error']
を使ったエラーチェックを行うようにし、ファイルサイズが大きすぎる時のエラー処理が入るようにしました。サイズが大きすぎて画像がアップロードされなかった時はエラー表示になりスクリプトの実行は中断されます。
- キャンバスサイズ、パレット、アプレット選択の値をCookieに保存(by さとぴあ)
- potiboard.phpとloadcookie.jsの更新が必要です。
- リファクター及びオートリンクの仕様変更とloadcookie.jsの更新(by さとぴあ)
- 逆変換テーブルのリファクターと関連するバグを修正(by さとぴあ)
- 軽微なエラーの修正とわかりやすい変数名への変更(by さとぴあ)
- 描画時間の$ptimeが未定義変数になるケースがあったのを修正。(by さとぴあ)
- 書き込み可能かどうかのチェックの必要がないファイルをチェックから除外。関数整理。(by さとぴあ)
- 画像なしのチェックボックスによるチェックは面倒なので、その機能を使用しないオプションを追加(by さとぴあ)
- 管理パスの厳密化(by さとぴあ)
- hiddenフィールドにパスワードの入力値がそのまま表示されていたのを修正(by さとぴあ)
- search.php
- 波ダッシュと全角チルダを区別しない、ログの区切りのカンマの数がひとつ多かったのを修正(by さとぴあ)
- config.php
- ログ保存件数1000は少なすぎるので2000に増やした
- 一度投稿ボタンを押すと2度目は無効になる、jQueryを使ったスクリプトをthemeに追加。
- NEO更新
- 投稿ボタン連打でテンポラリに同じ画像が何枚も入る、続きを描く時にNEOの投稿ボタンを連打→画像がありませんとなる、このような問題を回避できます。
- potiboardphp search.php search.htmlに変更があります。
- potiboard.php コード整理。行数を30行短縮。
- search.php search.htmlの不具合の修正
- ページ番号未入力の時にページ数が正しく認識されていなかったバグを修正。
- 反復処理が入れ子になっていた箇所を修正。
- パレット切り替え機能でパレット名を任意に設定できるように(by さとぴあ)
- potiboard.phpとconfig.phpに変更があります
- 記事編集しても投稿日時を変更しないようにする設定をconfig.phpに追加他(by さとぴあ)
- potiboard.php、config.php、thumbnail_gd.php に変更があります。
- コード整理(by さとぴあ)
- function filter_input_default 一箇所でしか使っていない、他の変数で使う訳でもない、ユーザー定義関数を整理
- thumbnail_gd.php サムネイルの作成に失敗したときの返り値をFalseに変更
- パレットデータファイル切り替え機能を追加(by さとぴあ)
- config.phpに設定の追加があります
- クリックしても何も起きない箇所のlabelタグを整理(by さとぴあ)
- コード整理(by さとぴあ)
- thumbnail_gd.php
- サムネイルの作成に失敗していても、幅と高さの情報が返り値に入る可能性があったのを修正(by さとぴあ)
- 重要 親の投稿が最新のときにレス画面が表示されないバグ修正
- 投稿途中の画像の本人確認の処理を修正 (by さとぴあ)
- thumbnail_gd.phpも更新。
- コード整理(by さとぴあ)
-「お絵かきコメント」「画像差し換え」のglobal変数をローカル変数に。
- 描画時間の計算を「投稿フォーム」から「お絵かきコメント」に移動。
- 「投稿途中の絵」からの投稿でも描画時間がでるように (by さとぴあ)
- 描画時間に関する情報をuserdataに記録する方式への移行 (by さとぴあ)
- コメントを記入しなかったお絵かき画像の投稿は「投稿途中の絵」からの投稿になります。しかし、その場合は描画時間を表示する事ができませんでした。また、描画時間が入っていても信頼性がかなり低い状態でした。 これらの問題を解決するため、描画時間の元となるお絵かき開始時間と終了時間を、userdataに記録するようにしました。potiboard.phpだけでなく、picpost.phpの更新も必要になります。picpost.phpの上書きアップデートを同時に行わなければ描画時間は表示されなくなります。
- カタログのHTMLの縦横比が正しくなかったの修正(by さとぴあ)
- ソースコード整理(by さとぴあ&きつねこ)
- 使用されていない定数USE_MBを削除
- create_res() にオプション引数を追加して、動画チェックを行うかどうかを選べるようにした
- 親レスでしか使われていない値のセットをcreate_res() の外に出した
- ソースコード整理(by きつねこ)
- img.log 行からレス表示用データの生成ロジックを関数化など
- $pictmp,$picfileを関数内に移動。カタログモードの時の画像のHTMLHTMLの幅と高さを出力できるようにした。(by さとぴあ)
- v2.8.9の削除キー未入力時のバグを修正(by さとぴあ)
- template_ini.phpのパスと未定義定数の確認(by さとぴあ)
- 異常系を前に出してネストを浅くした(by きつねこ)
- ソースコード整理(by きつねこ)
- テンプレートが利用できない場合にもエラーを出せるよう修正(by きつねこ)
- 動画表示時には
$shi
がなくても動画ファイルの存在で種類をチェックするよう修正(by きつねこ)
- 元画像、サムネ、動画 を削除している箇所を関数化(by きつねこ)
- pchかspchかチェックする場所を関数化(by きつねこ)
- is_file ~ unlink を関数化
- サーバーのPHPバージョンが古い場合エラーを出して動作を停止するよう修正
- POTI-board改二の動作にはphp5.5以上の環境が必要です。
- ソースコード整理(by きつねこ) -描写時間計算ロジックを関数化
- ソースコード整理(by きつねこ)
- 参照代入を値代入に変更、不要なunsetを削除
- foreach内で1行ずつ改行コードを追加しているのを implodeで挟むよう修正
- カタログにレス数を表示できるように変数を追加(by funige)
- 新規投稿時に画像ファイルがあるときは、画像のアップロードが成功しましたとでていたが、でなくなっていたのを修正。
- オートリンク関連(by さとぴあ)
- ソースコード整理(by きつねこ)
- 必ず代入される箇所を三項演算子に置換
- 各種処理後のリダイレクトを関数化
- 続きを描くでneoのpchなのにしぃペインターが起動してしまうバグ修正(by さとぴあ)
- トリップ廃止の後方互換性確保
function head()
→function basicpart()
- トリップ廃止
- メールアドレスが入っていてもIDを表示。
- 管理者画面にアップロード欄を出す時の処理を変更(by さとぴあ)
- 画像アップ禁止コメントのみも禁止の時は投稿フォームをださない
- 画像アップロード禁止でも管理者は許可
- コメントのみの新規投稿を拒否するしないの新規設定項目を追加。
- 画像アップロード機能を使う、使わないを設定可能できるように
- 負荷削減。カタログモードの時はpchの存在確認の処理をしない(by さとぴあ)
- index.php(初期動作用)を同梱
- 設置がより簡単になりました。
<% echo (oya/encoded_name) %>
<% echo (oya/res/encoded_name) %>
追加(by さとぴあ)- search.phpをリポジトリに統合
- 文字列のエラーチェックを先に行いGDを使った画像関連の処理はそのあとで(by さとぴあ)
- 規定容量を超えるとJPEGに変換、JPEGとPNGを比較してファイルサイズが小さなほうを出力(by さとぴあ)
- テーマ開発用のファイルを削除しリポジトリを分離poti-kaini-themes
- 投稿されたPNG画像が指定kbを超えた時にJPEG化する処理の調整(by さとぴあ)
- 本文へのURLの書き込みを禁止時、通常の投稿でも削除キーが管理パスと一致すればurlの投稿ができるように
- neoのpchかどうかの確認時に使用する関数をバイナリセーフなものに(by さとぴあ)
- 動画再生の時にNEOのpchかJavaのpchかを判定(by さとぴあ)
- php5.6,php7.2の時に致命的エラーが発生していたv2.6.3以降のバージョンの文法ミスを修正。
- 画像アップロードやNEOのPNGファイルも設定したファイルサイズの上限を超過した時はJPEGに変換、そのJPEG画像がファイルサイズに違反していなければ投稿できるようにした。
- それにともないHTMLのフォームによるファイルサイズの制限を2MB、picpost.phpで受信できる画像のファイルサイズを3MBにそれぞれ緩和。
- 文字色選択のバグ修正
- config初期値変更
- メール通知設定整理 (by さとぴあ)
- loadcookie.js with文の見直し
- Skinny.php 設定変更(キャッシュを1時間→1日に)
- suEXECを導入してあるサーバーで動かない可能性があるのを修正(Skinny.php)
- スキン/テンプレートの呼び名を「テーマ(テンプレート)」に
- デフォルトテーマ(テンプレート)のディレクトリ名変更
- Firefox、およびcheerpJのインストールなしでもchromeでしぃペインターが使用可能に
- 強制サムネイル機能を削除 (thumbnail_gd.phpのバージョンアップがあります)
- ユーザー削除権限の変更(config.phpに変更があります) (by さとぴあ)
- 「投稿者名をコピー」機能搭載。(by さとぴあ)
- configの説明追加、デフォルト値変更。
- アプレットのセキュリティチェックに引っかかった場合のURL用htmlファイルを同梱。
- デフォルト設定ではお絵かき掲示板のindex.htmlに飛ばされてしまうため、なぜ投稿失敗したのかがわからないから。
- セキュリティにヒットした場合の飛び先を define('SECURITY_URL', './security_c.html'); に設定変更してください。
- ミニレスフォームを日数経過で閉じる機能追加(スキンの仕様が変わりました)
- v2.1までとconfigの互換性がなくなっていますので注意。(CRYPT_PASSが大文字になっただけです)
- configデフォルト変更
- PROXY_CHECK関連のコードを削除(by さとぴあ)
- 改行の抑制とProxyチェックを廃止(by さとぴあ)
- palette.txtの読み込み処理(by さとぴあ)
- 独自タグ廃止に関するエラー修正。(2.0.0動かないです)
- スキン修正
- $getで記事の編集をできないように変更(byさとぴあ)
- 独自タグ廃止
- noticemailのutf-8以外を削除
- 満を持して2.0.0として公開
- デフォルトスキン変更、スキンフォルダ作成 (config.php要再設定!)
- palleteの問題に暫定対処
- htmlの生成に成功(byさとぴあ) 大感謝。
- スキンのエラー修整。
- プロジェクト開始
- ログが生成されるのは確認、HTML生成されず