タグ「不具合修正」を含む投稿[26件]
➡ https://www.nishishi.com/cgi/tegalog/
バージョンアップするには、
- 1クリックでバージョンアップできる専用PHP「TegUp」のご使用をお勧め致します。
- もしくは、最新版のZIPの中から tegalog.cgi と fumycts.pl の2ファイルだけを抜き出して上書きアップロードして下さい。
🆕 Ver 4.5.0の更新点(概要):
《▼大きな機能追加》
●何でも簡単入力ボタン機能
●鍵入力フォームの掲載位置を好きにできる機能
●画像管理画面で画像を検索できる機能
●どの投稿でも使われていない画像を探す「未使用画像を探す」機能
●複数の画像のフラグ設定を一括で変更する機能
●複数カテゴリの一括(生データ)編集機能
●画像ファイルのタイムスタンプ自由修正機能
●迷惑Bot対策:指定頻度の超過アクセスに「429 Too Many Requests エラーを返す」機能
《▼その他の機能追加》
●何らかのカテゴリの限定表示時では QUICKPOST の当該カテゴリに最初からチェックを入れておく機能
●最終更新日時ではなく最新投稿日時(最も新しい投稿の投稿日時)を出力する記法の新設
●ギャラリーモードで「画像を(原寸画像への)リンクにする」項目を独自に設定できる機能
●リスト記法の拡充:丸囲み記号のサポート
●自由装飾ボタンの追加:汎用装飾1~9
●投稿欄下部の「先頭に固定」等のラベル名も自由変更できる設定機能
●特殊表示モードの名称だけを得る記法3種を追加
●スキン内で使える専用コメント記法を追加
●画像管理画面での絞り込み表示時に「1ページ当たりの表示件数」を拡張する機能
《▼細かな機能追加》
●投稿一覧画面の上部に「下書き・鍵付き・下げる」の各投稿を一覧できるリンクを追加
●画像一覧画面に「一覧外・NSFW」の各フラグ付き画像だけを一覧できるリンクを追加
●投稿欄の編集領域を広げる、編集最大ボタンを追加
●読み上げを停止するボタンを追加
《▼仕様改善》
●リスト記法の先頭記号に使える文字数を緩和
●投稿欄下部のボタン群から [機能] を分離して [公開状態] を新設
●投稿本文が0文字(空欄)でも、投稿画像が指定されていれば投稿可能にする仕様改善
●画像の削除アルゴリズムを見直して、高速に削除可能に
●画像インデックスファイルの肥大化を防ぐ仕様を追加
●総ページ数が数百ページを超える場合に極端に表示が遅くなる問題を解決
●画像の絞り込み表示中は、ページ上部のフォームを畳んでおくよう改善
●画像管理画面での画像の絞り込み表示状態から、特定の画像のメタデータを編集した場合でも、元の絞り込み状態の画面に戻るよう動作を改善
《▼スキン更新》
●標準添付の各スキンに、自由装飾記法のサンプルを1つ追加
《▼不具合修正》
❎内側スキンの中で INCLUDE記法を使って合成したファイルの中に書かれた IF文が機能しない不具合を解消
❎鍵入力フォームの解除後で、状況に依存した前後投稿へ移動できなくなる問題を解消
❎本文中にカスタム絵文字があるとき、プレーンテキストで出力される場面では、絵文字の位置にJavaScriptソース等がそのまま出力されてしまう不具合を解消
▼今回の大きな機能追加:
🌸何でも簡単入力ボタン機能
頻繁に使う表現や絵文字などをあらかじめ設定画面に1件1行で列挙しておくと、編集領域の下部で各々がボタンの形で表示され、押すとその文字がカーソル位置に入力される機能を追加しました。
▼解説:
何も設定していない初期状態では、サンプルとして 😋・🎉・✅ の3つの絵文字が登録されています。
例えば上図のように5個(5行)を登録しておくと、下図のように投稿欄の下部に5つのボタンとして表示されます。(標準では [機能] ボタンを押すことで展開されます。)
ボタンではなくセレクトボックスで出すこともできます。たくさん登録した場合は、ボタンよりセレクトボックスの方が省スペースになって良いかもしれません。その場合は下図のように表示されます。
基本的には「入力したい内容をそのまま1件1行で列挙する」だけですが、
- 入力内容とは別にボタンラベルを指定したい場合
- 改行を含む文章を登録したい場合
- 半角コロン記号を含む内容を登録したい場合
ボタン個数が多くなる場合は特に、分かりやすいボタンラベルを指定しておくと使いやすくなるでしょう。
詳しくは、使い方・設定方法ページの『何でも簡単入力ボタン機能(定型文を事前登録しておくことでボタン入力できる機能)』区画内の「定型文の登録方法」項目をご覧下さい。
🌸鍵入力フォームの掲載位置を好きにできる機能
鍵付き投稿の本文中の好きな位置に「鍵入力フォーム」を表示し、それまではすべて表示し、それ以後をすべて隠せる機能を加えました。
▼解説:
鍵付き投稿の場合、管理画面で設定できる選択肢は「全文を見せない/1行目だけ見せる/2行目まで見せる」の3択ですが、任意の位置に鍵入力窓を挿入できる機能も用意しました。
この機能によって、例えば「98行目までを見せて、残りだけに鍵を掛ける」のような表示など、『見せる/隠す』境界をどこでも好きな位置にできるようになります。
上図で示した「鍵入力位置」ボタンを押すと、カーソル位置に [SYS:KEYFORM] という記述が挿入されます。この記述があれば、
- その位置に鍵入力フォームを表示し、
- それ以前の部分はすべて最初から見せておき、
- それ以後の部分だけを隠す
▼補足:
- この機能を使って鍵入力フォームを表示した場合、正しい鍵が入力された後のページには、鍵入力フォームのあった位置に目印のアンカーHTMLが出力されます。「隠されていた位置」を基準にして何らかの装飾を加えたい場合に使えるかもしれません。
- 『見せる/隠す』の境界に関係なく、OGP+Twitter Cardでの本文表示範囲や画像表示の有無は、管理画面側の設定だけに従います。
➡ 詳しくは、使い方・設定方法ページの『鍵付き投稿(パスワード保護)機能の使い方』区画にある「鍵入力フォームの掲載位置を好きな位置にできる機能」項目をご覧下さい。
🌸画像管理画面で画像を検索できる機能
画像管理画面に表示されている「てがろぐ上にアップロードされている画像の一覧」から、画像ファイル名、キャプション、フラグ、UP日時の情報を使って絞り込み検索ができるようにしました。
▼解説:
てがろぐの他の検索窓と同様に、AND検索のほか、|記号でOR検索、-記号でNOT検索(除外検索)もできます。
🟢ファイル名での検索:
- 画像のファイル名でも検索ができます。てがろぐのデフォルト設定では、画像ファイル名は 20240918202955-admin.png のような形式になるのであまり意味がないかもしれませんが。システム設定で「元のファイル名をできるだけ維持する」を ON にして使っている場合には役に立つでしょう。
- なお、拡張子も対象ですから「 .png 」で検索すれば PNG形式の画像だけに絞り込めます。
- キャプションに指定されている文字列は、すべてそのまま検索対象です。
- 検索語に「NSFW」を指定すれば、NSFWフラグ付きの画像を検索できます。ただし、キャプションにNSFWという文字列が含まれる場合も該当しますが。除外検索の書き方を使って「 -NSFW 」と指定すれば、NSFW以外の画像だけを検索できます。
- 検索語に「一覧外」または「nolisted」を指定すれば、一覧外フラグ付きの画像を検索できます。ただし、キャプションにそれらの文字列がそのまま書かれている場合も該当します。
- 2023年にUPした画像だけを見るなら「 2023/ 」を指定すると良いです。
- 2023年11月にUPした画像だけを見るなら「 2023/11/ 」を指定すると良いです。
- 年に関係なく12月にUPした画像を見るなら「 /12/ 」を指定すると良いです。
- 年に関係なく12月25日または12月24日にUPした画像を見るなら、OR検索の書き方を併用して「 /12/25|/12/24 」を指定すると良いでしょう。
🌸どの投稿でも使われていない画像を探す「未使用画像を探す」機能
画像管理画面に表示されている「てがろぐ上にアップロードされている画像の一覧」から、どの投稿でも使われていない『未使用画像』を探せる機能を加えました。未使用画像を一括削除する用途などに活用できるでしょう。
▼解説:
未使用画像を探す機能は、画像の絞り込み検索窓の右側端にある「未使用画像を探す」ボタンを押して下さい(下図参照)。
画像と投稿情報を一旦ブラウザにダウンロードして、ローカルマシンパワーを使って探すため、下図のような(作業中を示す)中間画面を挟んで進行します。
上図と下図の3段階で画面が更新されますが、この間はブラウザに触れずに作業完了まで待って下さい。
すべての作業が終わったら、下図のように未使用画像だけに絞り込んだ画像一覧画面が出ます。
このとき、絞り込み検索窓には「unused」と入力されています。一度でも未使用画像を探しておけば、それ以後は(再度探す機能を使わなくても)「unused」という検索語を使うことで、未使用画像に絞り込んで表示できます。
▼補足:
ただし、未使用画像を一度探した後でも、
- 新規投稿したり既存投稿を編集したりした場合
- 複数画像のフラグを一括して外す操作をした場合
※①の場合は未使用画像が変化している可能性がありますし、②の場合は不可視のフラグである「未使用」フラグも同時に外れる仕様なためです。
🌸複数の画像のフラグ設定を一括で変更する機能
画像管理画面でチェックを入れた複数の画像ファイルに対して、一括してフラグを付加したり外したりできるようにしました。
▼解説:
従来は、複数の画像ファイルに対して一括で処理できる操作は「新規投稿に使う」か「削除する」だけしかありませんでしたが、上図の矢印の先にあるように、
- フラグ『一覧外』付きにする
- フラグ『NSFW』付きにする
- フラグなしにする
キャプションやファイル名等で絞り込んでから一気に選択すると便利かもしれません。
※フラグを付ける場合:指定のフラグを加えるだけで、既に付いているフラグはそのまま変わりません。
※フラグを外す場合:既に付いているフラグが何であっても(いくつであっても)、全部が同時に外れます。
🌸複数カテゴリの一括(生データ)編集機能
従来、カテゴリは専用画面から1件ずつ登録するしかなかったので、多数のカテゴリを修正したい場合とか、複数のてがろぐを結合させる際とかで「あっちのカテゴリを全部こっちに移したい」場合などにとても面倒でした。ので、生カテゴリデータの状態で一括編集できる機能も用意してみました。
▼解説:
カテゴリ管理画面の右下に表示されている「複数カテゴリの一括生編集」ボタン(上図の赤丸部分)を押すと、下図のようにカテゴリの生データ編集画面が出ます。
ここには、すべてのカテゴリデータが1つの編集領域に表示されていますので、複数のカテゴリ情報をまとめて編集できます。(※データには該当件数も含まれているので、この画面では該当件数の数値も自由に書き換えられますが、そこを書き換えても再集計された際に正しい数値に置き換わりますので特に意味はありません。^^;)
- 行を追加すれば新規にカテゴリを追加もできますし、
- 行を削除すればカテゴリを削除できます。
別途テキストエディタ等にコピーすることで、カテゴリの設定情報を一括バックアップしておく用途にも活用できるでしょう。
別のてがろぐで使っていたカテゴリ情報をコピーして流用するのも簡単です。
ただし、記法に沿って記述しないと正しく更新できないのでご注意下さい。
➡ 詳しくは、使い方・設定方法ページの「複数カテゴリの一括(生データ)編集方法」項目をご覧下さい。
🌸画像ファイルのタイムスタンプ自由修正機能
画像ファイルのタイムスタンプを修正可能にすることで、間接的に画像の並び順を自由に変更可能にする機能を追加しました。
▼解説:
下図のように、画像管理画面からアクセスできる『各画像の情報編集画面』から、画像ファイルのタイムスタンプ(=UP日時)を変更できるようになりました。(※この機能は、サーバに存在する画像ファイルのタイムスタンプを直接書き換えます。)
画像を投稿に埋め込んで表示する場合には関係ありませんが、『画像一覧モード』や『新着画像リスト』等では、画像はタイムスタンプの新しい順に並びますので、画像の並び順を変えたい場合に使えます。
➡ 詳しくは、使い方・設定方法ページの『画像の並び順を変える方法』区画にある「画像ファイルのタイムスタンプの変更方法」項目をご覧下さい。
🌸迷惑Bot対策:指定頻度の超過アクセスに「429 Too Many Requests エラーを返す」機能
迷惑Bot対策として、『同一IPアドレスから xx秒間に xx回を超えるアクセスがあったら、以後のxx秒間は、そのIPアドレスに対しては 429 Too Many Requests エラーだけを返す』機能を追加しました。(※「xx」の部分は自由に設定できます。)
▼解説:
毎秒数回みたいな高頻度でスクレイピングしてくるBotの影響でサーバ負荷が高まってしまうのを防ぐための機能です。(デフォルトではOFFです。この機能は管理画面からは設定できず、使うためには事前準備が必要です。)
このエラーでは、HTTPステータスコードの429を返した上で、次にアクセスするまでに指定秒数間ほど待つように指示する「Retry-After ヘッダ」も出力します。Retry-Afterの指示に従うかどうかはBot次第ですが(たいていの非紳士的なBotは無視するでしょうが)従わなければ、永遠に429エラーが返るだけになります。😃
あくまでも「様々なURLに対して絨毯爆撃してくるBot」(≒毎秒数件みたいな超人頻度でスクレイピングしてくるBot)への対策が目的の機能ですから、下記に挙げる種類のページは制限の対象外です。
- 何の表示条件も限定されていないページを出力するURL(2ページ目以降も含む)
- RSSフィードを出力するURL
- 管理画面を出力するURL
特に、RSSフィードは、RSSリーダーサービスからのアクセスが毎回同じIPアドレスの可能性がありますから。
➡ 詳しくは、使い方・設定方法ページの『高頻度アクセス制限機能 (迷惑Bot対策機能)』区画をご覧下さい。設定方法や動作内容を詳しめに解説しています。
▼今回のその他の機能追加:
🌺何らかのカテゴリの限定表示時では QUICKPOST の当該カテゴリに最初からチェックを入れておく機能
特定のカテゴリで投稿をする際、最初からそのカテゴリページにアクセスしておけば、チェックを入れる手間が省けるので、多少の労力削減になるかもしれません。
例えば下図のように、🟠橙色矢印で示したカテゴリを表示している際は、🟡黄色矢印で示したようにそのカテゴリのチェックボックスが最初からONになっています。
この機能はデフォルトではOFFなので、使いたい場合には下記の水色矢印で示した設定項目をONにする必要があります。
➡ 詳しくは、使い方・設定方法ページの『管理画面からの投稿/QUICKPOSTからの投稿』区画の「カテゴリ限定表示時で、QUICKPOSTの当該カテゴリに最初からチェックを入れておく機能」項目をご覧下さい。
🌺最終更新日時ではなく最新投稿日時(最も新しい投稿の投稿日時)を出力する記法の新設
従来からある記法 [[INFO:LASTUPDATE]] は最終更新日時を表示します。これは、更新された時点の日時を表示しますから、必ずしも「最新の投稿の投稿日時」になるとは限りません。そこで、更新日時に関係なく『「最新の投稿」の投稿日時』を表示できる記法を新設しました。
追加した新記法は下記の2点です。
- 記法 [[INFO:LATESTPOSTDATE]] は、最新投稿の投稿日付を表示します。
- 記法 [[INFO:LATESTPOSTDATE(NOWCOND)]] は、「そのときの表示状況」に限った中での最も新しい投稿の日時を出力します。
例えば、ギャラリーモードでこれらの記法を使った場合、以下の表示になります。
- 前者だと、『ギャラリーモードで表示対象になっている投稿の中での最新投稿』の投稿日付が表示されます。
- 後者だと、全投稿の中での最新投稿の投稿日付が表示されます。
例えば、特定のカテゴリに限定表示されている際に使うと、以下のようになります。
- 前者だと、『そのカテゴリに属する投稿の中での最新投稿』の投稿日付が表示されます。
- 後者だと、全投稿の中での最新投稿の投稿日付が表示されます。
➡ 詳しくは、カスタマイズ方法ページの中にある、リファレンスの【細かな情報要素】区画をご覧下さい。区画最後の脚注欄で、それぞれの記法の違いを詳しく解説しています。
🌺ギャラリーモードで「画像を(原寸画像への)リンクにする」項目を独自に設定できる機能
通常の表示モードとは別に、ギャラリーモードで『画像を(原寸画像への)リンクにするかどうか』を個別に設定できる機能を用意しました。
ギャラリーモードでは、画像クリックで(画像拡大ではなく)記事へリンクさせたい場合などにご活用頂けます。
※従来は、全モード共通の設定として、以下の箇所で設定するほかありませんでした。しかし、ここでの設定に関係なくギャラリーモードでどうするのかだけを(上図の設定箇所で)個別に指定できるようになりました。
この設定機能を活用することで、
✅通常モードでは、画像をその場で拡大表示されるようにしておきつつ、
❎ギャラリーモードでは、画像を「投稿単独ページへのリンク」にする
……というような動作も簡単に作れるようになります。
➡ 詳しくは、カスタマイズ方法ページの中にある、『ギャラリー用スキンの作り方・使い方』区画の中にある「表示される画像を原寸画像へのリンクにするかどうかをギャラリーモードだけ個別に設定する方法」項目をご覧下さい。
🌺リスト記法の拡充:丸囲み記号のサポート
丸囲み数字や英字記号で先頭記号をリストアップできる機能を追加しました。先頭記号には ①~、➊~、⓵~、㊀~、㋐~、ⓐ~、Ⓐ~ の7種類をサポートしています。
丸囲みの記号①②③等を使ってリストを書くのが好きなんですけども、CSSにそういう指定方法がないので、てがろぐ側のリスト記法オプションで対応させました。
例えば [L:Ⓐ:リスト中身~] のように、記号「Ⓐ」をオプションとして指定してからリストを書くと、上から順番に ⒶⒷⒸⒹⒺ… と先頭記号が割り振られます。
それぞれ、以下の範囲で順番に割り振られます。(※途中の番号から始めることはできません。)
- [L:①: ~ ] の場合、①~⑳ の20個
- [L:➊: ~ ] の場合、➊~❿ の10個
- [L:⓵: ~ ] の場合、⓵~⓾ の10個
- [L:㊀: ~ ] の場合、㊀~㊉ の10個
- [L:㋐: ~ ] の場合、㋐~㋾ の47個
- [L:Ⓐ: ~ ] の場合、Ⓐ~Ⓩ の26個(※Ⓐ~Ⓩの直後にⓐ~ⓩが続くのでそれも含めると52個)
- [L:ⓐ: ~ ] の場合、ⓐ~ⓩ の26個
このリスト記法の詳しい書き方や注意事項は、下記のヘルプドキュメントにあります。
➡ 詳しくは、使い方・設定方法ページの『リストのオプション記述方法』区画内にある「丸囲み記号による番号付きリスト」項目をご覧下さい。
🌺自由装飾ボタンの追加:汎用装飾1~9
自力でclassを用意すると使える「自由装飾」記法が従来から1つありましたが、さらに9個追加しました。全10種類の独自装飾ボタンを用意して簡単に文字装飾ができます。
この機能を使うと、自由装飾で複数の要素を使い分けられるようになります。下図のように、編集領域の下部に出すボタンも追加できます。デフォルトではすべて非表示なので、使いたいボタンだけONにして下さい。
従来からある自由装飾記法の書き方は [F:class名:~中身~] でしたが、追加の汎用装飾記法は、下記の「シンプル」と「class名付き」の2通りの書き方ができます。
▼シンプル:
✅ [1:さくら] と書くと <span class="decoration1">さくら</span> と出力。
✅ [2:さくら] と書くと <span class="decoration2">さくら</span> と出力。
: : :
✅ [9:さくら] と書くと <span class="decoration9">さくら</span> と出力。
▼class名付き:
✅ [1:tomoyo:知世] で <span class="decoration1 deco-tomoyo">知世</span> と出力。
✅ [2:tomoyo:知世] で <span class="decoration2 deco-tomoyo">知世</span> と出力。
: : :
✅ [9:tomoyo:知世] で <span class="decoration9 deco-tomoyo">知世</span> と出力。
※上記ではspan要素を使いましたが、出力にどのHTML要素を使うかは、先の図で示した画面で設定を変更できます。(デフォルトではspan要素が使われます。)
多数の独自装飾を使い分けて本文を書きたい場合にご活用頂けるでしょう。
また、いちいちclass名を書きたくない場合にも(従来の自由装飾記法より)便利かもしれません。
➡ 詳しくは、使い方・設定方法ページの「追加の汎用装飾記法」項目をご覧下さい。
🌺投稿欄下部の「先頭に固定」等のラベル名も自由変更できる設定機能
投稿欄下部の「先頭に固定」や「下書き(非公開)」等のチェックボックスのラベル名も自由に書き換えられる設定機能を追加しました。
てがろぐ投稿欄の下部に表示される各種ボタンのうち、「機能」ボタンや「公開状態」ボタンで現れる各種ボタンやチェックボックスのラベルもカスタマイズできるようにしました。
「下書き(非公開)」とか「下げる(一覧外)」とか、ちょっと長いよな……と思っていた場合には、適当に短くできます。絵文字も使用可能です。
🌺特殊表示モードの名称だけを得る記法3種を追加
ギャラリーモード、画像一覧モード、サイトマップページモード の3モードは、そのモードで表示される際にタイトル等で使用するための「モード名称」を自由に設定できる仕様になっています。この名称を自作スキン側から利用できるように、専用の記法を追加しました。
具体的には、以下の3記法を追加しました。
- 画像一覧モード: [[GALLERY:NAME]]
- ギャラリーモード: [[PICTS:NAME]]
- サイトマップページモード: [[SITEMAP:NAME]]
外側スキンで使えます。詳しくは、リファレンスの【表示モード要素】項目をご覧下さい。
🌺スキン内で使える専用コメント記法を追加
てがろぐスキン(外側スキン・内側スキン両方)で使えるコメント記法 [[!-- ~ --]] を追加しました。
投稿本文内で使えるコメント記法としては従来から [!-- ~ --] がありましたが、これは投稿本文で使えるだけであって、スキンを記述する際には使えません。スキンを記述する際には、HTMLのコメントタグ <!-- ~ --> を使う手はありますが、そのコメントの範囲に「てがろぐ専用記法」を含む場合には望ましくないケースがありました。
そこで、スキン内で使用可能な、てがろぐ専用のコメント記法として [[!-- ~ --]] を追加しました。(※角括弧が二重に必要なのでご注意下さい。)
- この記法の内側に書いた文字列は「てがろぐ専用記法」も含めてすべてが無視されますので、「てがろぐ専用記法を一時的にコメントアウトする用途」にも活用できます。
- (HTMLのコメントはソースを見ると読めますが)この記法でのコメントはそもそも出力されませんので、ユーザが生成ページのHTMLソースを見ても見えません。
🌺画像管理画面での絞り込み表示時に「1ページ当たりの表示件数」を拡張する機能
画像を絞り込んだ後、該当画像を一括して操作しやすいように、通常時とは別に表示数を多めに指定できるようにしました(デフォルトは500個)。
上記の黄色矢印部分のように設定しておくと、
- 通常の画像管理画面では、1ページあたり25個の画像が表示されるが、
- 絞り込み表示時には、1ページあたり750個の画像が表示される
これによって、たくさんの画像を同時に選択しておけるようになるため、まとめて消したり、まとめてフラグを付けたりする操作が(多少は)楽になるでしょう。
※ただし、Ⓑ側に指定した個数がⒶ側に指定した個数よりも少ない場合は、設定値は無視されて、常時Ⓐ側に指定した個数で表示されます。
▼その他の細かな機能追加:
🌷投稿一覧画面の上部に「下書き・鍵付き・下げる」の各投稿を一覧できるリンクを追加
投稿一覧画面で、「下書き・鍵付き・下げる」の各投稿だけを探しやすくしました。該当件数も分かります(※該当件数が1件以上ある場合にだけ表示されます)。
下図では、下書き投稿:17件、鍵付き投稿:23件、下げる投稿:19件 があることが示されています。押すと、その条件で絞り込み検索ができます。
既に何らかの単語で絞り込み検索がされている状況では、その「絞り込まれた中での該当件数」が表示されて、追加で絞り込めます。
例えば下図は、「テスト」という検索語(※水色矢印の先)で既に絞り込まれた後の表示です。橙色矢印の先を見ると、「+下書き(9)、+鍵付き(8)、+下げる(4)」のように「+」記号が表示されています。
これは、現在の絞り込み条件の中で、下書きが9件、鍵付きが8件、下げるが4件ある、という意味です。押すと、その条件を追加して再検索されます。
これらの追加リンクが表示されない場合は、「その条件に該当する投稿はない」という意味です。存在しない場合には「下書き(0)」のようには表示されず、リンク自体が表示されません。
下書き投稿がとてもたくさんある場合には役に立つかもしれません。(^_^;)
絞り込んだ上で「全部選択」ボタンを押せば、一括削除も簡単です。
🌷画像一覧画面に「一覧外・NSFW」の各フラグ付き画像だけを一覧できるリンクを追加
フラグ付き画像だけを探す手間を軽減すべく、画像一覧画面の絞り込み検索窓の隣に「フラグ付き画像を簡単に検索できるリンク」を設けました。
下図の黄色矢印で示した箇所に見えます(※該当する画像がない状況では、リンクは表示されません)。
そのフラグに該当している画像の個数も同時に表示されます。既にキーワードで絞り込み中の場合は、総数ではなく「その条件内での該当個数」が表示されます。
🌷投稿欄の編集領域を広げる、編集最大ボタンを追加
「今回だけはたくさん文章を書きたい」という場合などのために、押すと投稿欄の編集領域が(その他の各種ボタンが見える範囲の中で)最大化される「編集最大」ボタン機能を加えました。
従来でも、[Ctrl]+[↓]キーを2~3回押せば最大化されていましたが、その方法では各種ボタンが見えなくなってしまうデメリットがありました。今回に追加した「編集最大」ボタンでは、編集領域の上下に表示されているボタンは見える状態を維持したままで最大限まで編集領域を広げます。
編集画面だけではなくQUICKPOSTでも使えます。(※QUICKPOSTで本当に機能するかどうかは、そのとき適用されているスキン次第ですが。)
※「編集最大」ボタンを押した後に、[装飾]や[区分]など複数のボタンやチェックボックスが現れるようなボタンを押すと、一時的にそれらが画面外に出てしまう可能性があります。その場合は、再度「編集最大」ボタンを押せば、画面内の占有面積が再計算されて、編集領域のサイズが再調整されます。
➡ 詳しくは、使い方・設定方法ページの『管理画面からの投稿/QUICKPOSTからの投稿』区画の「投稿欄の編集領域を(ボタンが見える範囲で)最大化する機能」項目をご覧下さい。
🌷読み上げを停止するボタンを追加
読み上げを中断するボタンを表示する機能を加えました。(表示は投稿欄下部のみですが、ページ内部に設置された読み上げ機能による読み上げも停止できます。)
➡ 読み上げ機能について詳しくは、カスタマイズ方法ページの『投稿本文も合成音声で読み上げ可能にする方法』区画をご覧下さい。
▼仕様改善:
🌳リスト記法の先頭記号に使える文字数を緩和
半角英数以外の文字なら2文字まで使用可能になりました。
リスト記法では従来から [L:🍔: ~~~ ] のように数字以外の任意の1文字を使ってリストの先頭記号にする機能がありました。この1文字だけに限られていた制限を、半角英数以外の文字なら2文字まで使用可能なように緩和しました。例えば先頭記号として「**」などを指定したいたい場合に使えます。
※2文字でも、それが半角数字だけで構成されている場合は、『「番号付きリスト」の開始番号』だと解釈されます。
※2文字でも、それが半角英数字だけで構成されている場合は、『任意に付加するclass名』だと解釈されます。
なので、それ以外の文字が2文字ある場合に限って「先頭記号」として使われます。
この仕様によって、「見た目は1文字だが、Perl的には2文字だと解釈される絵文字」を先頭記号に使うこともできるようになります。
➡ リスト記法で使えるオプションの書き方について詳しくは、使い方・設定方法ページの『リストのオプション記述方法』項目をご覧下さい。
🌳投稿欄下部のボタン群から [機能] を分離して [公開状態] を新設。
「先頭に固定」や「下書き」・「鍵付き」等の公開状態を示す選択肢が『機能』ボタンで現れる仕様なのは(しかも「読み上げ」と並んで表示されるのも)分かりにくいので、設定機能数も増えてきたことですから、『公開状態』というボタンに分離しました。(ボタンラベルは好きに変えられます。)
このボタンを押したときに何が表示されるのかは、下図の箇所で自由に設定できます。ボタンラベルそのものも、ここから自由に変更できます。
🌳投稿本文が0文字(空欄)でも、投稿画像が指定されていれば投稿可能にする仕様改善。
※これは仕様改善というか、一時的に悪化していた仕様を元に戻した感じですが。
(QUICKPOSTではなく管理画面の新規投稿画面で)投稿欄が空欄の状態で「投稿する」ボタンを押すと、本文の入力を促すアラートを表示する仕様にしていたのですが、その仕様だと「本文はナシで、画像だけを投稿したい」という場合に投稿できない問題がありました。
そこで、本文が0文字でも、新規画像の投稿が指定されているならアラートは表示されない仕様にしました。
※QUICKPOSTでは、以前から「本文ナシ・新規画像だけ」の状態でも投稿は可能でした。
🌳画像の削除アルゴリズムを見直して、高速に削除可能に。
画像管理画面から複数の画像を一括して削除しようとするとき、従来バージョンでは例えば1000個の画像を削除するのに15分以上の処理時間が必要でした(そんなに掛かったら「固まった」と解釈されるでしょうね。^^;)が、今バージョンからは3000個でも1秒で削除可能になりました。
なので、大量の画像を一括削除しようとする場合は、従来バージョンではなく、今回以降のバージョンを使って下さい。(^_^;)
🌳画像インデックスファイルの肥大化を防ぐ仕様を追加。
てがろぐ上ではなく、FTP等を使って直接画像ファイルを削除していると、次第に画像インデックスファイルが肥大化してしまう可能性がありますが、そうならないように仕様を改善しました。
従来は、画像管理画面を経由せずにFTP等の手段で画像を削除された場合は(画像を差し替える目的での一時的な削除である可能性を考慮して)画像インデックスファイル内にはその画像の情報(キャプションなど)を残したままにしておく仕様でした。なので、その方法での削除が繰り返されると、画像インデックスの中身が肥大化してしまう可能性がありました。
今回のバージョンからは、てがろぐの画像管理画面から画像を削除する操作をしたときに、その時点で存在しない画像ファイルに対する情報(=おそらくFTP等の手段を使って削除された画像に関するデータ)も、一緒にまとめて画像インデックス内から抹消するよう改善しました。
※画像インデックスファイルというのは、画像保存用ディレクトリの中に自動生成される index.xml ファイルのことです。ここに、各画像のキャプションやフラグ等の情報が保存されています。
🌳総ページ数が数百ページを超える場合に極端に表示が遅くなる問題を解決。
総ページ数が800とか900とか莫大になる場合で、ページ番号リンクを(省略せずに)全量出力する設定で使っていると、ページ生成時に動作が重たくなる(=ページ生成に長大な待ち時間が発生する)現象を解消しました。
↓なが~いページ番号リンクの表示例
さすがにここまで総ページ数が多い状態で、ページ番号を省略しないままの設定で使う人は少ないとは思うのですけども。^^;
従来のバージョンでも、100ページくらいなら全然問題なかったんですが、1,000ページ超だと表示に20秒くらい待ち時間が発生していました。
今回のバージョンからは、1,000ページの全リンクを出力する設定でも、問題なく普通の速度で動作します。
とはいえ、ここまでページ数が莫大なら、途中のページ番号は省略して下図のように表示する方が(見た目に)良いと思いますけどもね。^^;
なお、ページ番号リンクの省略方法には、バリエーションがあります。詳しくは、カスタマイズ方法ページの「ページ番号の省略を始める総ページ数や、ページ番号リンクの両端に何ページずつ固定表示するかを変更する」項目をご覧下さい。
🌳画像の絞り込み表示中は、ページ上部のフォームを畳んでおくよう改善
画像管理画面で何らかの絞り込み表示中には、ページ上部にある新規画像の投稿フォームの存在が邪魔にならないように、畳んだ状態にするよう改善しました。(特に画面の狭いモバイル端末では1画面目を占有してしまいますから。)
上図の黄色矢印部分のボタンをクリックすれば、普段の新規投稿フォームが表示されます。
🌳画像管理画面での画像の絞り込み表示状態から、特定の画像のメタデータを編集した場合でも、元の絞り込み状態の画面に戻るよう動作を改善
細かな話ですけども、従来は(絞り込み状態からの編集操作では)以下のような動作になっていました。
- 検索語「さくら」で画像を絞り込み検索する。
- 検索結果に出てきた画像のキャプションを編集すべく「編集」ボタンを押す。
- その画像の編集画面が出る。
- キャプションを変更して「保存する」ボタンを押す。
- 通常の画像一覧画面に戻ってしまう。
- 当初の『検索語「さくら」で絞り込まれた状態のページ』に戻る。
▼スキン更新:
●標準添付の各スキンに、自由装飾記法のサンプルを1つ追加
標準添付の各スキンのうち、ギャラリーモード等の特殊なモードで使われるスキンを除いた各スキンには、自由装飾記法の使用例として以前から3種類ほど書いていました。そこに4つ目の使用例として deco-flex を加えました。
Flexboxを使って、その内側のBoxを横並びに表示する装飾です。 [F:flex: ~~~ ] と書くと使えます。
キャプション付き画像とか、Spotifyの埋め込みとか、デフォルトでは横並びにならないオブジェクトを横並びで表示させたい場合に使えるかもしれません。
※その1点以外に変化はありませんので、標準添付の各スキンをお使いの場合でも、必ずしもスキンを上書きアップデートして頂かなくても問題ありません。
▼#不具合修正 :
❎内側スキンの中で INCLUDE記法を使って合成したファイルの中に書かれた IF文が機能しない不具合を解消。
てがろぐ用スキンの中では、別ファイルを合成できる [[INCLUDE:ファイル名]] 記法が使えます。合成されたファイルの中でも各種「てがろぐ専用記法」が使用可能なのですが、IF文だけは機能しない不具合がありました。それを解消しました。
なお、INCLUDE記法の使い方について詳しくは、カスタマイズ方法ページの『スキン内で別ファイルの中身を合成する書き方』項目をご覧下さい。
❎鍵入力フォームの解除後で、状況に依存した前後投稿へ移動できなくなる問題を解消。
Ver 4.2.5以降では、スキン側で [[PERMAURL:KEEPCOND]] 等の記法を使うことで、「その状況で表示対象になる投稿」だけに限定した隣接投稿に移動できるようになりました。しかし、鍵付き投稿の場合で、正しい鍵を入力した後に限っては、状況を無視した隣接投稿にしか移動できない不具合がありました。その点を解消しました。
なお、「その状況で表示対象になる投稿」だけに限定した隣接投稿に移動に関して詳しくは、使い方・設定方法ページの「表示条件が限定されている場合に採用される移動先」項目等をご覧下さい。
❎本文中にカスタム絵文字があるとき、プレーンテキストで出力される場面では、絵文字の位置にJavaScriptソース等がそのまま出力されてしまう不具合を解消。
本文をプレーンテキストで出力する記法が使われているとき、カスタム絵文字の表示箇所にJavaScriptソース等がそのままテキストで出力されてしまう不具合を解消しました。なお、プレーンテキストではカスタム絵文字を表現できないので、「(絵文字)」という代替テキストが出力されます。
以上、ご活用頂ければ幸いです。
※不具合の修正も含んでおりますので、使いたい追加機能がない場合でもバージョンアップ頂くことをお勧め致します。
前回の正式版以降に公開されたβ版をお使いの場合は、そのβ版にあった不具合の修正(※上記には記載していません)も含んでおりますので、バージョンアップをお願い致します。
※バージョンアップしても、ログインし直す必要はありません。ログイン状態は維持されます。データや設定はそのまま引き継げますし、もし必要になれば後からバージョンダウンすることも可能です。バージョンアップ方法について詳しくは、「CGIの更新方法」をご覧下さい。
なお、開発進捗状況報告サイトでフォロー頂くと、てがろぐCGIの最新β版や正式版の公開時にメールで連絡を受け取ることもできますので、ぜひご活用下さい。(╹◡╹)ノ
フォロー数が増えると、私の開発モチベーションが向上するメリットもあります!!!🤩
:17476文字 修正
てがろぐ Ver 4.4.0 を公開しました! #Update
➡ https://www.nishishi.com/cgi/tegalog/
バージョンアップするには、
- 1クリックでバージョンアップできる専用PHP「TegUp」のご使用をお勧め致します。
- もしくは、最新版のZIPの中から tegalog.cgi と fumycts.pl の2ファイルだけを抜き出して上書きアップロードして下さい。
🆕 Ver 4.4.0の更新点(概要):
《▼大きな不具合の修正》
●ある条件を満たすと『簡易適用スキンの設定が勝手に切り替わってしまう』バグ(表示上の問題)を修正。
《▼大きな機能追加》
●文字装飾で実際に出力されるHTML要素の変更機能。
●検索語のハイライトに使われるHTML要素を strong 以外に変更できる機能。
《▼細かな機能追加》
●鍵付き投稿で、本文の1行目だけでなくさらに2行目も常時見せるようにできる設定機能。
●ログイン者限定動作時にTOPに表示されるメッセージを自由に書き換える機能。
●ハッシュタグ未集計時の文言の変更機能。
《▼仕様改善》
●任意のディレクトリにあるスキンを手動指定できる設定項目を、条件によっては非表示にするよう改善。
●文字装飾記法の「隠す」を使って隠される範囲全体を指定要素で囲むよう改善。
●高負荷Botへの軽い対策を追加。
●別タブで開くリンクにrel属性も出力する仕様改善。
《▼スキン更新》
(なし)
《▼不具合修正》
●IF文の条件にパーセントエンコーディングされた文字列を含めると、IF文として解釈されなくなる不具合を修正。
●カテゴリ概要文にHTMLを使用可能にしているとき、カテゴリツリーではソースがそのまま見えてしまっていた不具合を修正。
▼大きな不具合の修正 :
❎ある条件を満たすと『簡易適用スキンの設定が勝手に切り替わってしまう』バグ(表示上の問題)を修正。
下記の3条件をすべて同時に満たす場合にだけ、スキンの簡易適用設定が勝手に変わる(可能性がある)バグを修正しました。
--- --- --- --- --- --- --- --- ---
🟢【前提条件①】予約投稿機能がONになっている。
🟢【前提条件②】メインで使うスキン以外のスキンに「新着投稿リスト」が掲載されている。
🟢【前提条件③】過去に1度でも予約投稿をしたことがあり、その投稿を(掲載日以降に)再編集したり削除したりしないまま掲載し続けている。
🔴【トリガー】 アクセス者(誰でも)が②のスキンを使ってページを見る。(=②のスキンを使ってプレビュー表示する)
--- --- --- --- --- --- --- --- ---
上記の【前提条件①~③】の3つ全部を同時に満たす場合に限って、上記の【トリガー】の操作をすると、そのスキンが(プレビューではなく)簡易本番適用されてしまう(=てがろぐのスキン設定が書き換わってしまう)というバグがありました。
このバグは、予約投稿機能を実装した最初から潜んでいたバグなので、1年以上前にリリースした Ver 4.0.0(β版も含めると Ver 3.9.3β以降)から存在していたことになります。
この問題をご報告下さった方に、感謝致します!
※詳しい背景は、ブログ記事『てがろぐに「簡易適用スキン」の設定が勝手に切り替わるバグがあった話』に書きました。
▼今回の大きな機能追加:
🌸文字装飾で実際に出力されるHTML要素の変更機能。
文字装飾記法を使ったときに実際に出力されるHTML要素を変更できるようにしました。
▼解説:
例えば「強調装飾にはemではなくstrongを使いたい」とか、「取消装飾にはdelではなくsを使いたい」など、望みのHTML要素が別にある場合にご活用頂けます。
元の役割に関係なく変更できますから、例えば「斜体は使わないから『I』はボタンラベルを『コード』に変えて、出力要素もcodeにする」といったカスタマイズも可能です。
設定箇所は、下図で示すように [設定]→[投稿欄の表示]→【装飾ボタンの表示設定】です。従来から存在する設定表に「出力要素」の列が追加されています。なお、どの要素に変更しても class="decorationX" 等のclass名は常に出力されますから、スキン側がこのclass名(だけ)を使って装飾を指定しているなら、変更後も同じ装飾が適用されます。
なお、要素の指定に関しては重要な注意点もありますので、詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内にある『文字装飾記法・色指定記法の書き方』項目内の、「文字装飾で実際に出力されるHTMLタグの変更方法」をご覧下さい。
🌸検索語のハイライトに使われるHTML要素を strong 以外に変更できる機能。
全文検索結果に含まれる検索語をハイライト表示する際のHTML要素を変更できるようにしました。
▼解説:
全文検索した際、従来は検索語をstrong要素固定でマークアップしていました。この要素を、strong、span、mark、em の4通りから選択できるようにしました。
管理画面の[設定]→[ページの表示]→【全文検索/表示】→[検索結果の表示]→『検索語の強調に使う要素』項目で下図(水色矢印の先)のように選択できます。
HTMLの仕様に存在する「mark要素」が、まさしくこの種の機能(=検索結果のハイライト表示)で使うために用意されているような感じの要素ですので、mark要素も選べるようにしました。
とはいえ、デフォルト設定は、(何の装飾も指定されていないスキンを使っていても太字で表示されるように)strong要素のままです。お望みの要素があれば設定で変更して下さい。
詳しくは、ヘルプドキュメント「カスタマイズ方法」ページ内にある『検索結果の表示時に検索語に対して適用されるハイライト(強調)の装飾方法』項目をご覧下さい。
▼その他の細かな機能追加:
🌷鍵付き投稿で、本文の1行目だけでなくさらに2行目も常時見せるようにできる設定機能。
『本文の1行目をタイトルとして扱うスキンを使っていて、なおかつ、「どんな内容を鍵付きにしているのか?」の情報も示したいので、本文の1行目だけでなく2行目も含めた計2行を常に見せたい』 ……という状況に対応するため、「本文の2行目も常時表示する」よう設定できる機能を加えました。
[設定]→[ページの表示]→【鍵付き(パスワード保護)投稿の表示】区画で、下図の緑色矢印の先に見える『本文の1行目だけは常に見せる(全1行の場合は除く)』項目にチェックが入っているとき、さらに水色矢印部分の『本文の2行目も常に見せる』項目にもチェックが入っているなら、1行目だけでなく2行目も常に見えるようになります。
➡ 詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内にある『鍵が掛かっていても一部を見えるようにする設定方法』項目内の、「1. 本文の1行目だけは常時表示させる設定にもできる(必要なら2行目も常時表示させられる)」をご覧下さい。
🌷ログイン者限定動作時にTOPに表示されるメッセージを自由に書き換える機能。
「ログイン者限定動作」に設定されているときは、非ログイン者がてがろぐにアクセスしても、『ログインしている状態でしか表示されません云々』というメッセージが表示されるだけになります(下図の黄色矢印参照)。このメッセージを、自由文と差し替えられる機能を加えました。
この機能を使うと、下図の紫色矢印のように好きな文言を表示できます。
設定箇所は、[設定]→[システム設定]→【高度な設定】→「▼動作形態」の『初期画面に表示するメッセージ』欄です(下図黄色矢印の先)。ここに1文字以上を入力すると、(標準のメッセージは表示されなくなり)ここに入力したメッセージだけが掲載されるようになります。
➡ 詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内にある『ログイン済みでないとどのページも閲覧できなくする「ログイン者限定表示」機能』項目内の、「ログインを促すメッセージを自由に書き換える方法」をご覧下さい。
🌷ハッシュタグ未集計時の文言の変更機能を追加。
ハッシュタグリストに表示する内容が何もない状況で強制的に出力されていた『ハッシュタグは見つかりませんでした。(または、まだ集計されていません。)』の文言を、管理画面の設定から自由に変更できるようにしました。
設定箇所は、[設定]→[ページの表示]→【システムメッセージ・表示用語】→「ハッシュタグリストが空の場合のシステムメッセージ」欄です。
✅ハッシュタグリストを非表示にしているか、
✅ハッシュタグリストを表示している場合でも、ハッシュタグが1つ以上ある状況
……では表示されないシステムメッセージですから、あまり需要はないかもしれませんけども。
ここは空欄にした状態で保存することもできますので、何も表示したくない場合には、入力欄の中身を消して保存して下さい。
▼仕様改善:
🌳任意のディレクトリにあるスキンを手動指定できる設定項目を、条件によっては非表示にするよう改善。
管理画面の「スキンの切替」画面には、スキンリストの最下部に「任意のディレクトリにあるスキンを手動指定」という自由入力枠が表示されていました。ここに、スキンとしては使えないディレクトリ名を入れてしまうなどしてトラブルになるケースが散見されましたので、「CGI本体の存在するディレクトリよりも浅い階層を参照する指定」の使用が許可されていない状況(※デフォルトでは許可されていません)では、この枠自体を非表示にするように仕様改善しました。
この枠は、[設定]→[システム設定]→【スキンの適用制限】→[適用可能なスキン]項目で、『CGI本体の位置より浅いディレクトリを参照する相対パスや、絶対パスで指定されたスキン』項目(下図の黄色矢印の先)にチェックが入っている場合に限って表示されるようになります。
※単に、不要な状況で不要な設定項目を表示しないようにしただけの話なので、機能としては何も変わっていません。この設定枠を普段からお使いだった場合は、これまで通り表示されるハズです。(もし表示されない場合は、上図の黄色矢印の先に見える項目をONにして下さい。)
➡ 詳しくは、ヘルプドキュメント「カスタマイズ方法」ページ内の『複数のスキンを同時に使用する方法』項目内の、「スキンは、直下のサブディレクトリ以外の別階層にあっても使える」等をご覧下さい。
🌳文字装飾記法の「隠す」を使って隠される範囲全体を指定要素で囲むよう改善。
隠される本文だけではなく、「続きを読む」ボタンも含めた『隠すためのすべてを含む大外枠』を、<指定要素 class="decorationH"> ~ </指定要素> のタグで囲むように改善しました。隠す関連部分全体を装飾したい場合等にご活用頂けます。
具体的には、下図の赤色枠(青色矢印の先部分)のように、大外枠を作る要素を加えました。
また、今回のバージョンで追加した新機能である「文字装飾で実際に出力されるHTML要素の変更機能」も使うことで、隠す空間に使われる要素をspan要素から他の要素に変更することもできます。(例えば、div要素で囲まれるようにすることもできます。)
➡ 詳しくは、ヘルプドキュメント「カスタマイズ方法」ページ内の『「続きを読む」ボタンによって隠された範囲の装飾方法』項目内の、「「続きを読む」機能によって隠される範囲に使われるマークアップ(HTMLタグ)をカスタマイズする方法」をご覧下さい。
🌳高負荷Botへの軽い対策を追加。
➡ 「不正アクセスではないのだけど、様々なパラメータで絨毯爆撃してきてサーバの負荷を高めてしまう」……という系統のBotへ向けた、軽い対策を追加しました。(試験的な実装です。)
単なる重複コンテンツになりそうなパラメータが指定された場合(で、ユーザエージェント名の中に「 bot 」が含まれる場合)には、403 Forbidden の短いエラー文だけを返すことで、無駄に負荷が高まらないようにします。
(今のところ、この対策仕様をOFFにする設定はありません。)
🌳別タブで開くリンクにrel属性も出力する仕様改善。
リンクテキストに :NEW を付けた場合や、設定で「リンク先を別タブで開く」ように設定されている場合には、リンクを作るa要素に target="_blank" と一緒に rel="noopener noreferrer" も出力するよう仕様改善しました。
※同時に rel="nofollow" も出力する設定になっている場合(または、リンクテキストの末尾に :NEW だけでなく :NF も加えた場合)は、すべてを一緒にまとめて rel="follow noopener noreferrer" という属性を出力します。
最近のブラウザでは、 target="_blank" とさえ指定されていれば、HTML側には何もrel属性が書かれていなくても rel="noopener noreferrer" が指定されたものとして動作します。なので、てがろぐ側がrel属性を出力する必要性はそこまでないとも言えますが。ただ、あらゆる閲覧者が最近のブラウザを使っているとは限りませんので、念のために出力するようにしました。
(何も設定しなくても出力されます。この機能をOFFにする設定はありません。)
➡ なお、 :NEW や :NF など、リンクラベルに加えられるオプション記法については、使い方・設定方法ページ内の『リンクラベルに加えられるオプション』項目をご覧下さい。
➡ リンクに関する設定項目の詳細については、『リンクの書き方』項目をご覧下さい。
▼#不具合修正 :
❎IF文の条件にパーセントエンコーディングされた文字列を含めると、IF文として解釈されなくなる不具合を修正。
IF文の条件の中に「%」記号を含めると、IF文として解釈されなくなる不具合がありましたので解消しました。(ハッシュタグ限定表示時を条件にしてIF文を書きたい場合に問題になっていました。)
❎カテゴリ概要文にHTMLを使用可能にしているとき、カテゴリツリーではソースがそのまま見えてしまっていた不具合を修正。
管理画面の[設定]→[システム設定]→【高度な設定】で、「カテゴリ概要文の入力欄にHTMLの記述を許可する」項目にチェックを入れていても、カテゴリツリー内に概要文を表示する際(=[[CATEGORY:TREE:識別子]] の記法で識別子に「D」を加えた際)には、HTMLソースがそのまま見えてしまっていた不具合を解消しました。
以上、ご活用頂ければ幸いです。
今回は大きめのバグ修正も含んでいますので、使いたい追加機能がない場合でもバージョンアップして頂くことをお勧め致します。
※バージョンアップしても、ログインし直す必要はありません。ログイン状態は維持されます。データや設定はそのまま引き継げますし、もし必要になれば後からバージョンダウンすることも可能です。バージョンアップ方法について詳しくは、「CGIの更新方法」をご覧下さい。
なお、開発進捗状況報告サイトでフォロー頂くと、てがろぐCGIの最新β版や正式版の公開時にメールで連絡を受け取ることもできますので、ぜひご活用下さい。(╹◡╹)ノ
フォロー数が増えると、私の開発モチベーションが向上するメリットもあります!!!🤩
:6833文字 修正
てがろぐ Ver 4.3.0 を公開しました! #Update
➡ https://www.nishishi.com/cgi/tegalog/
バージョンアップするには、
- 1クリックでバージョンアップできる専用PHP「TegUp」のご使用がお勧めです。
- もしくは、最新版のZIPの中から tegalog.cgi と fumycts.pl の2ファイルだけを抜き出して上書きアップロードして下さい。
🆕 Ver 4.3.0の更新点(概要):
《▼大きな機能追加》
●隣接・近傍投稿の一括閲覧機能(隣り合う数投稿をまとめて表示する機能)の追加。
●「その状況で表示対象になっている投稿」だけに限定した隣接投稿に移動できる機能(※同カテゴリに限定した隣接投稿への移動機能)の追加。
●条件指定パラメータを引き継いだ単独投稿にリンクできる記法(=「その状況で表示対象になっている投稿」だけに限定した隣接投稿に移動できる機能が使える状態の単独投稿へリンクできる記法)の追加。
●ログイン済みでないとどのページも閲覧できなくする「ログイン者限定表示」機能の追加。
●新規投稿/編集画面に自由なHTML(edit.htm)をスキン別に加える機能の追加。
《▼その他の機能追加》
●そのとき限定されているカテゴリの各種情報を挿入できる専用記法の追加。
●ゲストIDで投稿を禁止する設定(=ログイン者限定表示と併用することで「読者用ID」になる機能)の追加。
●リスト記法で、リストの種類や記号を指定するオプションを使っている場合でも、さらに任意のclass名を指定できる機能を追加。
●SITEMAP XMLを静的ファイルに出力する機能を追加。
●カテゴリの概要文でHTMLを使えるようにできる設定の追加。
《▼細かな機能追加》
●カスタム絵文字のファイル名にハイフン・ドット・アンダーバーが含まれているとき、それらで分割した文字列を使ったclass名をさらに加える機能を追加。
●アタック目的のアクセスを簡易的に検出して拒否する(400 Bad Requestを返す)機能を追加。
《▼仕様改善》
●既存ハッシュタグ簡単挿入機能で、ハッシュタグの後ではなく前に半角スペースを挿入できる(または一切挿入しない)設定機能を追加。
●「任意URLリンク」ボタンで、リンク先が丸括弧で囲まれる場合には、直後に半角スペースを自動挿入しない仕様に改善。
●データファイルを読むよりも前にパラメータの不正をチェックすることで、無駄なデータ読み込みを発生させないよう改善。
●QUICKPOSTで投稿欄が空っぽの状態で投稿したときの動作を改善。
●投稿単独表示時の隣接投稿への移動先解釈の改善。
●管理画面のボタンの行高を固定することで、一部のモバイル端末でボタンの高さがガタガタになる現象を解消。
●YouTubeの埋め込みに「ライブ動画の共有用URL」も使用可能に。
《▼不具合修正》
●URLを丸括弧で囲む [ラベル](URL) 記法の直後に半角丸括弧を書いたとき、記法末尾の「)」記号がURLの一部だと誤解されてしまう不具合を修正。
▼今回の大きな機能追加:
🌸隣接・近傍投稿の一括閲覧機能(隣り合う数投稿をまとめて表示する機能)の追加。
ある特定の投稿の前後に、どんな投稿があるのかを一括して閲覧できる方法を追加しました。
▼解説:
例えば、パラメータ ?postid=123&mode=around3 で、No.123 の前後3件ずつの最大計7投稿を一括閲覧できます。
前後の何件ずつを一括表示するのかは数値(1~9)で指定できるため、
✅「 ?postid=123&mode=around1 」なら前後1件ずつの計3投稿
✅「 ?postid=123&mode=around2 」なら前後2件ずつの計5投稿
: : :
✅「 ?postid=123&mode=around9 」なら前後9件ずつの計19投稿
……が閲覧できます。
※数字を省略した場合は、後述する設定値の数(=標準では 3 )が指定されたとみなされます。
過去の投稿に言及したいとき、>>123 みたいな感じでその投稿番号へリンクしておくことがよくあります。このリンクをたどれば No.123 の投稿を単独で閲覧できるわけですが、「その投稿の前後にはどんな投稿をしていたんだっけ?」という疑問を持つことがあります。
その場合、従来は『前後に1件ずつ移動するリンク』を使って1件ずつ見ていくしかありませんでした。本当に隣接する1件を見れば済むだけならそれで良いのですが、もうちょっと幅広く参照したいと思うこともよくあります。
そんなときに今回実装したこの機能を使えば、「いま単独表示しているこの投稿の前後にどんな投稿があるのか?」を、前後の数件まとめて一括閲覧できます。
▼使用方法:
投稿単独表示時に本文の後に出力されるユーティリティリンク枠に、下図のように『この投稿に隣接する前後3件をまとめて見る』というリンクが追加されていますので、ここからでもアクセスできます。(非表示に設定することもできます。)
▼設定箇所:
標準では前後3件ずつを見るリンクが出力されますが、何件ずつにするのかは設定(下図水色矢印部分)で変更できます。また、このリンクの表示をOFFにするには、下図の緑色矢印部分の項目をOFFにすれば良いです。
➡ 詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内の『隣接投稿の一括閲覧機能(隣り合う投稿をまとめて表示する方法)』項目をご覧下さい。
🌸「その状況で表示対象になっている投稿」だけに限定した隣接投稿に移動できる機能(※同カテゴリに限定した隣接投稿への移動機能)の追加。
以前から『同じカテゴリに限定して隣接投稿へ移動できるようにして欲しい』というご要望を頂いていました。その機能を実装しました。カテゴリに限らず、ハッシュタグ限定表示でも、全文検索の指定でも何でも、表示条件を絞るあらゆる条件で「その条件を満たす投稿に限った隣の投稿」へ移動できるようになりました。
▼解説:
下表のような属性・カテゴリ・内容の No.96~103 の投稿があり、「現在は No.100 が単独で表示されている」という場合を例にして説明します。
表示条件が限定されていない ?postid=100 のパラメータでアクセスされている場合は、表示対象外である下書きだけを飛ばして「« No.99」と「No.102 »」がリンク先になります。(※従来のバージョンでは、下書きを飛ばすこともせず、単純に隣接する「« No.99」と「No.101 »」がリンク先になっていました。)
ここで、表示条件を加えると、下記のように前後のリンク先が変化します。
✅カテゴリinfo限定表示 ?postid=100&cat=info なら、
➡「« No.97」と「No.103 »」がリンク先になります。
✅カテゴリdiary限定表示 ?postid=100&cat=diary なら、
➡「« No.96」と「No.102 »」がリンク先になります。(下書きは飛ばすため。)
✅ハッシュタグ#Test限定表示 ?postid=100&tag=Test なら、
➡「« No.97」と「No.102 »」がリンク先になります。
そのほか、全文検索(qパラメータ)、ユーザ限定(useridパラメータ)、日付限定(dateパラメータ)を使って表示対象を限定することもできます。
どの場合でも、「条件を満たす投稿に限定した隣」が前後の移動リンクとして出力されます。
➡ 詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内の『「その状況で表示対象になっている投稿」だけに限定した隣接投稿に移動できる機能』項目をご覧下さい。
また、このような「条件指定パラメータを維持した状態で投稿単独ページへ移動するためのURL」を出力する専用の記法も用意しています。その点は、次の項目で解説します。
🌸条件指定パラメータを引き継いだ単独投稿にリンクできる記法(=「その状況で表示対象になっている投稿」だけに限定した隣接投稿に移動できる機能が使える状態の単独投稿へリンクできる記法)の追加。
投稿単独ページへ移動できるURLを出力するための記法 [[PERMAURL]] のオプションを追加しました。これによって、投稿単独表示時に「同一カテゴリだけに限定した隣接投稿」などへ前後移動できるようになります。
▼解説:
「条件指定パラメータを引き継いだ単独投稿」に移動できるURLを出力する専用記法を追加しましたので、
- 投稿単独表示時に「本当に隣接している投稿」に移動するスキン
- 投稿単独表示時に「その状況で表示対象になっている投稿に限定した隣接投稿」に移動するスキン
追加した記法の意味は以下の通りです。
- [[PERMAURL:KEEPCOND]] と記述すると、その位置に『そのとき表示対象になっている条件』を引き継いだ状態で、投稿単体を表示するための固有URLが相対パスで挿入されます。
- [[PERMAURL:KEEPCOND:FULL]] と記述すると、それが絶対URLで挿入されます。
また、「どの条件を維持するのか?」を識別子で選択的に指定できる拡張記法 [[PERMAURL:KEEPCOND(識別子)]] もあります。
識別子には、下記の7種類が使えます。
① M :モード を維持する
② U :ユーザ限定 を維持する
③ C :カテゴリ限定 を維持する
④ H :ハッシュタグ限定 を維持する
⑤ S :検索語 を維持する
⑥ D :日付指定 を維持する
⑦ O :表示順序 を維持する
これによって、例えば、
➊『カテゴリ限定表示時から投稿単独ページに移動した場合には、同カテゴリに属する投稿に限定した隣接投稿に前後移動できるようにしたい。しかし、カテゴリ以外の条件でさらに絞り込まれていたとしてもそれらの条件は無視して、カテゴリだけに限定した隣接投稿に移動させたい』
➋『ギャラリーモードで、ハッシュタグやカテゴリや検索語で絞り込まれている場合には、その条件に該当する投稿だけに限定した隣接投稿に前後移動できるようにしたい。しかし、モードは解除して、投稿者IDや日付で絞り込まれている場合は無視したい』
……といったスキンが作れます。
具体的には、
➊は、 [[PERMAURL:KEEPCOND(C)]] と書けば良く、
➋は、 [[PERMAURL:KEEPCOND(CHS)]] と書けば良い
です。
なお、識別子を指定せずに [[PERMAURL:KEEPCOND]] と書いた場合は、[[PERMAURL:KEEPCOND(MUCHSD)]] と書いた場合と同じになります。(つまり、「O=表示順序」以外のすべての条件が維持されます。)
➡ 記法について詳しくは、リファレンス内の【投稿単独URL出力要素】区画をご覧下さい。[[PERMAURL]]系統のすべての記法を一覧できます。
➡ また、『「その状況で表示対象になっている投稿」だけに限定した隣接投稿に移動できる機能』について詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内にある 『1投稿の単独閲覧時(投稿単独ページ表示時)での前後移動』項目をご覧下さい。
(※そこに含まれる『Ⓑ 表示条件が限定されている場合に採用される移動先』項目もご参照頂くと、より分かりやすいかもしれません。)
🌸ログイン済みでないとどのページも閲覧できなくする「ログイン者限定表示」機能の追加。
自分専用または内輪専用として使いたい場合等のために、てがろぐにログイン済みの状態でなければどのページも閲覧できない動作モードを追加しました。
▼解説:
非ログイン状態でアクセスすると、ログインを促すメッセージ(下図)が表示されるだけになります。管理画面では、常に右上に橙色で「ログイン者限定表示中」のサインが見えます。
▼設定:
設定は、管理画面の[設定]→[システム設定]→【高度な設定】→[動作形態]項目(下図の黄色矢印の先)からできます。ただし、後述の事前準備が必須です。
ここで、「ゲストIDによる投稿を禁止する」にチェックを入れておくと、「ゲスト権限のID(=Lv.1のID)」を読者専用IDとして機能させることもできます。(※その機能については後述の『🌺ゲストIDで投稿を禁止する設定』項目で改めて解説します。)
▼事前準備(必須):
ブラウザのアドレス欄にデータファイル(tegalog.xml)のURLを打ってみたときに、そのままファイルが閲覧・ダウンロード可能になっている状態では、この機能の意味がありません。したがって、この機能はデータファイルへの直接アクセスをブロックする .htaccess ファイルによるアクセス制限を併用する必要があります。
そのため、.htaccessファイルが存在しない状態で設定しようとしても、下図のように設定が拒否される仕様になっています。
したがって、この機能を有効にする前に、まずは .htaccess ファイルを設置してからご使用下さい。
なお、この機能を使っても画像は保護されません(=何らかの方法で画像のURLが分かれば、誰でもその画像を閲覧できます)。何もかもを保護するには、サーバ側の認証機能(Basic認証等)をお使い頂く必要があります。この機能は、あくまでも「簡易版の非公開モード」のような位置づけである点にご注意下さい。
➡ 詳しくは、ヘルプドキュメントの「ログイン済みでないとどのページも閲覧できなくする「ログイン者限定表示」機能」項目をご覧下さい。
特に、……の両項目もご参照下さい。
🌸新規投稿/編集画面に自由なHTML(edit.htm)をスキン別に加える機能の追加。
編集画面に自前の edit.css と edit.js を読み込む機能は従来からありましたが、スキン別に異なるファイルを読み込みたい場合のために、「そのとき適用されているスキンのディレクトリ」の中にある edit.htm を挿入する機能も用意しました。
▼解説:
この機能を使うと、
- 適用中のスキンに応じたカスタマイズを新規投稿/編集画面にも施せる。
- (CSSやJavaScriptだけでなく)任意のHTMLを挿入してカスタマイズできる。
- 新規投稿/編集画面内に、任意のメッセージや画像等を挿入できる。
※edit.css と edit.js の挿入仕様は従来のまま(=適用スキンに関係なく、CGI本体のあるディレクトリに存在するファイルを読み込み)です。
※ファイル名がバッティングすると紛らわしいので、edit.htm というHTMLを挿入する形にしました。(CSSやJavaScriptをスキン別に読ませたい場合は、edit.htmの中に直接記述すれば良いでしょう。)
機能の違いをまとめると、下記のようになります。
- edit.css , edit.js は、スキンに関係なく読み込まれる(※tegalog.cgiファイルと同じディレクトリに格納する)。
- edit.htm は、スキン別に読み込まれる(※スキンディレクトリの中に格納する)。
▼事前設定:
デフォルトでは無効なので、使いたい場合には下記の場所で有効に設定して頂く必要があります。
▼出力位置:
挿入される位置は、下図の赤色帯の部分です。投稿フォームよりも後に出力されますから、JavaScriptで投稿フォームそのものをカスタマイズする際にも制御がしやすいでしょう。
そのほか、単純に文章を掲載する用途にも使えますから、投稿本文を行ごとに分割して活用するスキンの場合には、「何行目が何の役割なのか」をここに書いておくことで、編集を分かりやすくできるかもしれません。
➡ 詳しくは、ヘルプドキュメントの「新規投稿/編集画面に自由なHTMLをスキン別に加える方法」項目をご覧下さい。
▼今回のその他の機能追加:
🌺そのとき限定されているカテゴリの各種情報を挿入できる専用記法の追加。
カテゴリ限定表示時(=特定のカテゴリに属する投稿に限定して表示されている状況)で、そのカテゴリに関する各種情報(カテゴリ名や、カテゴリ概要文など)を挿入できる専用記法4つを用意しました。
カテゴリの名称だけは、従来から『 カテゴリ××に属する投稿 [xx件] 』のような形で、SITUATION部分に表示されましたが、この記法を使えば、概要文やアイコンも自由に配置して掲載できます。また、カテゴリIDは、HTMLソース内でclass名等に活用できるでしょう。
具体的には、下記の記法を追加しました。
✅[[INFO:NOWCAT:NAME]]
➡そのとき限定されているカテゴリの名称が挿入されます。
✅[[INFO:NOWCAT:DESCRIPTION]]
➡そのとき限定されているカテゴリの概要文が挿入されます。
✅[[INFO:NOWCAT:ICON]]
➡そのとき限定されているカテゴリのアイコンが挿入されます。
✅[[INFO:NOWCAT:ID]]
➡そのとき限定されているカテゴリのIDが挿入されます。
※カテゴリ限定表示時ではない状況では、何も出力されません。
※事前に許可設定をしていれば、カテゴリ概要文の中に任意のHTMLソースを含めることもできます。
➡ 詳しくは、ヘルプドキュメントのリファレンスの【現在カテゴリ情報要素】項目をご覧下さい。
🌺ゲストIDで投稿を禁止する設定(=ログイン者限定表示と併用することで「読者用ID」になる機能)の追加。
ゲスト権限(Lv.1)のIDでの投稿を禁止することで、ゲストIDを「読み専」にできる設定を追加しました。ログイン者限定表示機能を使っている場合でも、ログインパスワードを知っている人々からの閲覧は許容したい場合等にご活用頂けます。
この設定をすると、すべてのゲストIDの動作が変わります(※既にあるIDも、これから作るIDも)。
この機能を有効にしている状態だと、ゲストIDでログインした場合には、通常の管理画面ではなく、下図のような「読み専ID専用の管理画面」だけが見えます。(てがろぐHOMEへの移動か、ログアウトのどちらかしかできない画面です。)
なお、この機能が有効な場合は、(ゲスト権限のIDでは)ログイン中でも QUICKPOST(=ページ上に埋め込んで表示される投稿欄)は表示されません。その際は、非ログイン時と同じ出力になります。
詳しくは、『読み専ID(読むだけのユーザID)を作成する方法』項目や、『ログイン者限定表示の仕様』項目をご覧下さい。
🌺リスト記法で、リストの種類や記号を指定するオプションを使っている場合でも、さらに任意のclass名を指定できる機能を追加。
文字装飾記法には以前からリストを作る記法を用意していました。この記法にはオプションで、先頭記号や開始番号などを指定できました(➊)。また、任意のclass名を指定することもできました(➋)。しかし、その両者(➊と➋)を併用することはできませんでした。今回のバージョンでは、その併用を可能にしました。
例えば:
✅ [L:🌰:hogehoge: ~ ] と書くと、class名として listdeco-hogehoge が指定された、先頭記号が「🌰」の箇条書きリストになります。
✅ [L:5:hogehoge: ~ ] と書くと、class名として listdeco-hogehoge が指定された、5から始まる番号付きリストになります。
✅ [L:DL:hogehoge: ~ ] と書くと、class名として listdeco-hogehoge が指定された説明リスト(=dl+dt+dd要素から構成されるリスト)になります。
あらかじめ用意してあるスタイルを適用させつつ、先頭記号や番号等を指定したい場合にご活用頂けます。
詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内にある『リストのオプション記述方法』項目内の、「任意のclassを指定」の後半をご覧下さい。
🌺SITEMAP XMLを静的ファイルに出力する機能を追加。
新規投稿や既存投稿の再編集タイミングで、SITEMAP XMLを sitemap.txt というファイルに出力する機能を加えました。(試験実装)
SITEMAP XMLを毎回動的生成するのはサーバ資源の無駄な気もしますので。投稿データの編集時に sitemap.txt として静的ファイルに出力しておけば、サイトマップXMLの参照時にはCGIを稼働させずに済むため、サーバの負荷軽減に役立つ気がします。
➡ 詳しくは、ヘルプドキュメントの「SITEMAP XML(静的出力)」項目をご覧下さい。
※この機能は試験実装です。仕様は将来のバージョンで変更される可能性があります。現在のところ、出力されるファイル名は sitemap.txt ですが、ファイルの中身はXMLです。(ファイル拡張子 .xml のファイルを一括アクセス制限している場合のために、そのような仕様にしています。それでSITEMAP XMLとしてどこでも認識されるのかどうかはハッキリしないので、ダメそうなら将来的にはファイルの中身もプレーンテキストに変更する可能性があります。)
🌺カテゴリの概要文でHTMLを使えるようにできる設定の追加。
カテゴリの概要文中に書いたHTMLソースを、HTMLとして出力もできるようにしました。
これによって、 [[INFO:NOWCAT:DESCRIPTION]] 等の記法を使ってカテゴリ概要文を表示する際に、任意のHTMLを出力することもできるようになります。
ただし、この機能はデフォルトではOFFなので、HTMLを書きたい場合は事前に下記の設定をする必要があります。
詳しくは、ヘルプドキュメント「使い方・設定方法」ページ内の『カテゴリ設定』区画にある『カテゴリ概要文にHTMLを書きたい場合の設定』項目をご覧下さい。
なお、カテゴリの概要文を掲載するスキンの書き方については、
🟣リファレンスの【現在カテゴリ情報要素】項目や、
🟠カスタマイズ方法ページの『カテゴリツリー内の掲載内容を指定できる CATEGORY:TREE:識別子 の書き方』項目をご覧下さい。
▼その他の細かな機能追加:
🌷カスタム絵文字のファイル名にハイフン・ドット・アンダーバーが含まれているとき、それらで分割した文字列を使ったclass名をさらに加える機能を追加。
カスタム絵文字を出力する際には、絵文字ごとに特別な装飾をCSSで施しやすいように、絵文字名(ファイル名)をベースにしたclass名が出力される仕様です。この仕様をさらに拡張して、「複数のカスタム絵文字に共通する装飾」を簡単に用意できるようにしました。
具体的には、下図の①②③のclass名が新たに追加出力されるようになります。
――― ▼従来からある仕様:―――
例えば、カスタム絵文字を挿入する [:takoyaki-large:] と [:takoyaki_ikayaki-set:] という記法を書いたとき、従来は次のような2つのclass名を含むHTMLソースが出力されていました。
<span class="cemoji ce-takoyaki-large"><img 絵文字画像></span>
<span class="cemoji ce-takoyaki_ikayaki-set"><img 絵文字画像></span>
この場合は
✅「cemoji」が、どんなカスタム絵文字にも共通する装飾に使えるclass名で、
✅「ce-takoyaki-large」や「ce-takoyaki_ikayaki-set」のように「ce-絵文字名」が、その絵文字専用の装飾に使えるclass名です。
――― ▼今バージョンでの追加仕様: ―――
今バージョンでは、カスタム絵文字の名称(ファイル名)にハイフン・ドット・アンダーバーが含まれているときには、それらで分割した文字列もさらにclass名として加わる仕様を追加しました。
例えば、カスタム絵文字を挿入する [:takoyaki-large:] と [:takoyaki_ikayaki-set:] という記法を書いたとき、次のようなclass名が出力されます。
✅cemoji、ce-takoyaki-large、ce-takoyaki、ce-large
✅cemoji、ce-takoyaki_ikayaki-set、ce-takoyaki、ce-ikayaki、ce-set
つまり、class名「ce-takoyaki」を使うと、これら2つのカスタム絵文字を一括して装飾できます。絵文字名に記号を使って分類名等を含めておけば、それらに共通して適用される装飾(CSS)を簡単に用意できるでしょう。
- 独立したclass名に分割されるのは、半角ハイフン記号「-」、半角アンダーバー記号「_」、半角ドット記号「.」の3つだけです。それ以外の文字では分割されません。
- どのclass名にも「ce-」の接頭辞が付きます。これは Custom Emoji の略です。
- カスタム絵文字を指定する際に、[:umai-takoyaki.png:] のようにファイル拡張子も含めて記述した場合は、拡張子も独立したclass名になります。この場合は、cemoji、ce-umai-takoyakipng、ce-umai、ce-takoyaki、ce-png が出力されます。
なお、カスタム絵文字の装飾方法について詳しくは、カスタマイズ方法ページ内の「カスタム絵文字の装飾方法」区画や、その中の「複数の絵文字に共通する装飾を指定したい場合の装飾方法」項目をご覧下さい。
🌷アタック目的のアクセスを簡易的に検出して拒否する(400 Bad Requestを返す)機能を追加。
不正アクセスの試みによって負荷が高まってしまうのをできるだけ防ぐ仕様を追加しました。
Web上に設置した何らかのシステム(※てがろぐCGIに限らずWordPressなど何でも)は、不正なパラメータを付加して不正侵入等を試そうとするSQLインジェクションのような攻撃を受けることがあります(※てがろぐはデータベースを使っていないので、そもそもそんな攻撃に意味はありませんが)。高頻度でそのような不正アクセスが集中するとサーバ負荷が高まる原因になるかもしれません。その悪影響を軽減させるため、SQLインジェクション攻撃っぽいパラメータが指定された場合には、内部でデータファイルの読み込み等の処理をするよりも前に、下図のようにほんの短い(140Bytes程度の)エラーメッセージと「400 Bad Request」のコードを返すようにしてみました。
※サーバ側の機能としてWAF(Web Application Firewall)が提供されているなら、WAFを使うことを推奨致します。(サーバのログに 400 Bad Request が多数記録されるようなら特に。)
▼仕様改善:
●既存ハッシュタグ簡単挿入機能で、ハッシュタグの後ではなく前に半角スペースを挿入できる(または一切挿入しない)設定機能を追加。
投稿欄下部の「既存のハッシュタグを簡単に挿入できるセレクトボックス」からハッシュタグを追加する際、(従来は)ハッシュタグの直後に強制的に半角スペースが1つ追加されていました。この仕様を、
Ⓐ ハッシュタグの後に半角スペースを挿入
Ⓑ ハッシュタグの前に半角スペースを挿入
Ⓒ 半角スペースは一切挿入しない
……の中から選べるようにしました。
強制挿入される半角スペースをいちいち消していた場合には、この設定を変更することで、面倒な手間を減らせるでしょう。
設定箇所は、管理画面の[設定]→[投稿欄の表示]→【既存ハッシュタグ簡単入力機能】→「既存ハッシュタグ入力ボタンの動作」項目です。(上図:水色矢印の先)
●「任意URLリンク」ボタンで、リンク先が丸括弧で囲まれる場合には、直後に半角スペースを自動挿入しない仕様に改善。
投稿欄下部の「任意URLリンク」ボタンを使ってリンク先を入力したとき、そのリンク先が、
✅相対パス
✅(スラッシュ記号で始まる)絶対パス
✅メールアドレス・電話番号
……だった場合には、丸括弧で囲む記法が出力されます。そのように「リンク先を丸括弧で囲む」場合は、記法の直後に半角スペースは要りませんから、自動挿入しないように仕様を改善しました。
※リンク先が丸括弧で囲まれない記法が出力される場合には、従来通り、半角スペースが出力されます。丸括弧のありナシについては、使い方・設定方法ページの「リンクの書き方」区画にある「リンクになる書き方のバリエーション」項目で解説しています。
※URLの直後に続く文字が全角文字や絵文字等のように半角英数字ではないなら、半角スペースは消しても正しく動作します。ここで半角スペースを強制挿入しているのは、(直後に半角文字を続けてしまった場合などに対処するための)ほぼ「念のため」というくらいの意味であって、必須というわけではありません。
※リンク先を丸括弧で囲まなくても良い場合は、丸括弧で囲んでも問題なく動作します。(逆に、丸括弧で囲まなければならない場合は、丸括弧を省略すると正しく動作しません。)
●データファイルを読むよりも前にパラメータの不正をチェックすることで、無駄なデータ読み込みを発生させないよう改善。
てがろぐ本体(tegalog.cgi)に与えるパラメータがおかしい場合には、従来から下図のようなエラー画面が表示されます。しかし従来は、この類いの画面を表示する場合でも、内部では全データファイルを(無駄に)読み込んでいました。
今バージョンから、この類いの画面はデータファイルを読み込む処理よりも前に表示するよう改善したため、無駄なディスクアクセスを削減できるようになりました。
※人間のユーザがこの画面を見る機会はあまりないと思うのですけども、何やらよく分からないBotがテキトーなパラメータで大量アクセスしてくるケースに遭遇しましたので、そういう場合に余計な負荷が高まらないようにするための対策です。
●QUICKPOSTで投稿欄が空っぽの状態で投稿したときの動作を改善。
従来はQUICKPOSTから投稿欄が空っぽの状態で投稿した際には「処理内容がありません。データファイルをリフレッシュしました。」と表示されていましたが、そうではなく新規投稿画面に移動するよう動作を改善しました。(※ただ、内部ではデータファイルを再生成・再出力している動作は同じです。)
なお、新規投稿画面で投稿欄が空っぽの状態で投稿ボタンを押した際には、どこにも移動せずに「投稿本文を何か入力して下さい。」とAlertを表示するだけにしました。
●投稿単独表示時の隣接投稿への移動先解釈の改善。
従来は、隣接する投稿が下書きだろうと何だろうと、とにかく「直接隣接する投稿」へのリンクが出ていましたので、リンクをクリックした結果「指定された番号の投稿は存在しない」と表示されてしまうケースがありました。その種の問題を、下記のような動作にすることで解消しました。
例えば、下表のような属性・カテゴリ・内容の No.96~103 の投稿があり、「現在は No.100 が単独で表示されている」という場合を例にして説明します。
✅上記のような場合、No.100 の前後は No.99 と No.101 ですから、従来は下図左側のように「« No.99」と「No.101 »」のリンクが出力されていました。しかし、ここでは No.101 は下書き状態ですから(投稿者本人以外が)アクセスすると「指定された番号の投稿は存在しません」というメッセージだけが見えてしまいます。
その仕様を改善して、(表示対象外である下書き投稿は飛ばして)No.102 を「次の投稿」だと認識する仕様にしました。
✅また、ギャラリーモードでの投稿単独表示時でも、従来は単純に両隣にある投稿として「« No.99」と「No.101 »」のリンクが出力されていました。この場合、下書き状態の No.101 に先と同様の問題があるだけでなく、No.99 も(画像が含まれていないので)ギャラリーモードの表示対象にならないため、「表示対象外なために表示できません」というメッセージが表示されるだけになっていました。(下図左側)
その仕様を改善して、(ギャラリーモードでは)画像が含まれる投稿に限った場合の最も直近にある投稿を「隣の投稿」だと認識する仕様にしました。その結果、ここでは下図右側のように「« No.96」と「No.103 »」のリンクが出力されます。
このように、「隣だと認識する投稿」を、その投稿の中身や属性を勘案して選ぶように改善しました。
●管理画面のボタンの行高を固定することで、一部のモバイル端末でボタンの高さがガタガタになる現象を解消。
一部のモバイル環境では、管理画面HOMEに並んでいる各ボタンの高さが揃っていないようでしたので、CSSに調整を加えました。
●YouTubeの埋め込みに「ライブ動画の共有用URL」も使用可能に。
YouTubeのライブ動画の共有用URL(=URL内に/live/が含まれるもの)を使った埋め込みにも対応しました。
※従来でも、watch?v=XXXXXX のようなURLを使えば、ライブ動画でも埋め込むことはできました。ただ、YouTube側のUIを使って共有用URLを得ると、ライブ動画では異なる形態のURLが出力されていましたので、それに対応させました。
詳しくは、『YouTube動画を埋め込む書き方』をご覧下さい。
▼#不具合修正 :
❎URLを丸括弧で囲む [ラベル](URL) 記法の直後に半角丸括弧を書いたとき、記法末尾の「)」記号がURLの一部だと誤解されてしまう不具合を修正。
※URLにリンクラベルを付けるだけの場合は、URLを丸括弧で囲まない書き方もできます。「リンクになる書き方のバリエーション」で解説しています。
以上、ご活用頂ければ幸いです。
※不具合の修正と動作仕様の改善も含んでおりますので、使いたい追加機能がない場合でもアップグレード頂くことをお勧め致します。
※バージョンアップしても、ログインし直す必要はありません。ログイン状態は維持されます。データや設定はそのまま引き継げますし、もし必要になれば後からバージョンダウンすることも可能です。バージョンアップ方法について詳しくは、「CGIの更新方法」をご覧下さい。
なお、開発進捗状況報告サイトでフォロー頂くと、てがろぐCGIの最新β版や正式版の公開時にメールで連絡を受け取ることもできますので、ぜひご活用下さい。(╹◡╹)ノ
フォロー数が増えると、私の開発モチベーションが向上するメリットもあります!!!🤩
:15047文字 修正
てがろぐ Ver 4.5.0 を公開しました! #Update
⌚ 2024年11月20日(水) 12:00:00