15時23分19秒 [ソフト開発]
拙作のフリーCGI「てがろぐ」で、久々になかなか予想しないバグが発見されて驚きました。
どへぇ。どへぇ。どへぇ。┌(:3」└)┐
現在のてがろぐ(Ver 4.3.0)には、ある条件を満たすと『簡易適用スキンの設定が勝手に切り替わってしまう』という下記に解説するバグ(表示上の問題)があります。おそらく、予約投稿機能を実装したときから存在したバグだと思いますから、Ver 4.0.0~4.3.0の間に存在するバグだと思います。(※β版も含めると、Ver 3.9.3β以降)
(★追記:2024/05/29)
過去に1度も予約投稿をしたことがない場合には、このバグは問題を起こさないことが新たに分かりました。(つまり、発生条件は2条件ではなく3条件です。下記の話を更新しました。)
今後のバージョンで解消はしますが、とりあえず応急的に、現時点での解決策は3点あります。
そのどれかの対処をお勧め致します。
※過去に1度も予約投稿をしていない場合には、そもそも何も問題ありません。(何も対処は要りません。)
てがろぐで予約投稿機能を使っていないか、使う頻度が低い場合は、とりあえず予約投稿機能をOFFに設定しておくことをお勧め致します(※初期状態でOFFです)。予約投稿機能が無効なら、本件のバグは特に問題を起こしません。
※予約投稿機能をOFFにするには、管理画面の[設定]→[投稿欄の表示]→【日時ボタンの表示設定】→[▼未来の日時で投稿された場合の動作]で、下図の水色矢印の先のように、『予約投稿として扱う』ではなく『そのまま表示する』の方を選択して保存します。(既に『そのまま表示する』が選択されている場合は、予約投稿機能はOFFになっています。)
※予約投稿機能は、デフォルトでOFFです。(なので、自ら設定をONに変更していない限り、本件のバグの影響はありません。)
特定の発生条件(後述)を満たすと、簡易適用スキンの設定が勝手に切り替わってしまうバグです。
単に「簡易適用スキン」が切り替わるのではなく、「簡易適用スキンの設定」自体が切り替わってしまいます。(そのため、全閲覧者に一斉に影響します。)
※簡易適用スキンの設定のほか、「1ページに表示される投稿数」の設定も、そのスキンに合わせて設定値自体が変化します。
以下の3条件すべてを同時に満たしている場合にだけ、上記の問題が発生します。
[[LATESTLIST]]
が記述されている。(=メインで使うスキン以外のスキンで生成されるページ上に、新着投稿リストが表示されている)この3条件を同時に満たしているときに、『そのスキンを表示すると、簡易適用スキンの設定が勝手に切り替わってしまう』という問題が発生するバグがあることが分かりました。
次のバージョンで、このバグは解消します。(作者のローカルにあるソースは既に修正しました。)
現状のバージョンでこのバグを回避するには、下記のA・B・Cのどれかの方法をご使用下さい。
[[LATESTLIST]]
を書かない。(=メインで使うスキン以外では新着投稿リストを表示しない) $ps=scheduled
で検索すると見つかります)をすべて再編集する。(中身は変化させなくて良いので、てがろぐ上で再編集画面を出して保存するだけでOKです。要は「予約投稿だった」というフラグをなくせば良いので。)もしかしたら他にも回避方法があるかもしれませんが。今のところ上記の3つの方法があります。(どれか1つだけで充分です。)
※解決策Aの場合:予約投稿に設定している投稿がない状況でも、設定で「予約投稿機能がON」の状態ならバグの影響を受けますのでご注意下さい。「使わなければ良い」のではなく「無効に設定する」必要があります。
例えば、
……などのパターンがあります。
要するに、本来は「メインで使うスキン」で表示されるはずの通常モードでも、「直前に適用されていたスキン」で表示され続けてしまうバグです。
しかも、「簡易適用スキンの設定」自体が変化するので、閲覧者1人だけの問題ではなく、『誰かがギャラリーモードを表示すると、それ以後は全閲覧者に対して(通常モードでも)ギャラリーモード用スキンで表示されてしまう』というような影響があります。
既にこのバグの影響を受けて、意図しないスキンが常時表示されてしまっている場合は、次の2操作を行って下さい。
上記のように操作すると、表示は元通りになり、それ以後はこのバグによる表示上の問題は発生しないはずです。
普段に予約投稿機能を使っていない場合でも、「もしかしたら使うかも」と思って予約投稿機能をONに設定している方々もいらっしゃるかもしれません。
しかし、
……は、てがろぐにアクセスされるたびに(毎回)設定ファイル(標準では tegalog.ini)の書き換えが発生する仕様ですので、無駄な処理が増えます。(将来的には改善したいと思っていますが。)
したがって、予約投稿機能を使わないなら、そもそも(今回のバグの影響があるかどうかに関係なく)予約投稿機能は無効に設定しておくことをお勧め致します。
※時々は使うという場合でも、その頻度が低いのであれば、「使うときにだけONにする」という運用形態にする方が、無駄な処理は抑えられます。
なかなか予想しない驚きのバグでした。
そもそも、
……ので、ユーザさんから動作不具合をお知らせ頂いて調査してみなければ、ほぼ100%発覚しないバグだったと思います。
ご報告頂けてとてもありがたいです。
バグ報告を下さった方に感謝致します。
まだバグの解消はしていないのですが、解消方法は概ね分かりましたので、次のβ版で修正します。 ➡Ver 4.3.1βで解消しました。
発生頻度はかなり低そうな気がしているのですが、以下の条件でも同様の問題が発生するかもしれません。
ただ、このような条件が成立することがあるかどうかハッキリとはしないのですけども。
(もしこの問題がある場合で、これを回避する必要がある場合には、(今のところは)スキンの中に日付リンクリストや日付限定プルダウンメニューを含まないようにするくらいしかありません。)
まあ何にしても、次のバージョンで修正します。 ➡Ver 4.3.1βで解消しました。
この日記へのコメントはお気軽に! コメント数:0件
(前の記事) « 役に立つ記事を書かねばならないと思ってしまうとブログ更新が滞る
前後のエントリ
< 旧 / 新 >
(次の記事) 新ScanSnap iX1300を旧機種用ScanSnap Organizerで使えるようにセットアップした話 »
コメント数: 0件