にしし らぼらとりー

にしし(西村文宏)製スクリプトの公開開発実験場(ラボラトリー)です。各種スクリプトの最新版やβ版の動作確認ができます。バグ報告や、機能面でのご要望などもお気軽にお知らせ下さい。

※当ウェブサイトは、にしし製フリーCGIなどの動作確認サンプルを公開したり、製作進行に関する呟きを掲載している実験場のようなものです。 各種CGIスクリプトの配布パッケージを入手したい場合や、にしし(西村文宏)の個人サイトをお探しの場合は、 本家サイト「にしし ふぁくとりー」へお越し下さい。(╹◡╹)ノ

RSS Feed

開発放言 2023年11月の投稿[23件]

新規投稿 / 管理用

この実装方法を考えていたときに気付いたのだが、てがろぐの全文検索では AND、OR、NOT検索が可能ではあるものの、ORの構成要素にNOTを使う検索はできない仕様だった。
例えば -りんご -みかん のようにAND検索の構成要素にNOTを使うことはできるが、 -りんご|-みかん のようにOR検索の構成要素にNOTを使うことはできないと気付いた。そんな需要があるかどうか分からないが(なさそうな気もする)。どちらにしても、激しく面倒なので対応する気はない。┌(:3」└)┐ ChatGPTに頼めば良さげなアルゴリズムを教えてくれそうな気はするけども。

by nishishi. てがろぐ <278文字> 編集

IF文の実装には、ソースを10行くらいしか追加していない。一番面倒だと思われた条件指定部分 [[IF(この部分):~~~ は、元々てがろぐに実装していた全文検索関数にそのまま丸投げすることで済んだので、ほとんどコードを書く必要がなかった。なので、中身は全文検索機能そのままなので、SITUATION:CLASSとして出力される各キーワードと完全一致ではなく部分一致でも使える。例えば、投稿単独表示時には onelog で、複数投稿の連結時には somelogs というキーワードになる仕様なので、[[IF(log):~~~ とだけ書くと、その両方にマッチできる。この仕様があるので home を条件に指定すると問答無用で grandhome にもマッチしてしまうのだが、元々 grandhome は home を内包しているので問題なかった(たぶん)。

by nishishi. てがろぐ <376文字> 編集

てがろぐ本文に書ける装飾記法等は入れ子にできるのだが(できないと不便だから頑張ったのだが)、この判定が凄まじく面倒くさいことに(入れ子を可能にするための)実装段階で気がついた。始まりは [B: のように英字が付いているので探すのは簡単なのだが、終わりは単に閉じカッコ ]があるだけなので、それだけでは「どの装飾の終わりなのか?」が分からない。なので、カッコの対応を外側から順に判別しながらでないと終わりを特定できない。たぶん本職のプログラマが見たら噴飯物の力業で解決してある。世の中にはもっとスマートな解決策があるような気がするが。で、今回実装したIF文にもその問題があるのだが、さすがに面倒くさすぎるので、[[IF(…): で始まるだけでなく ~:IF]] で終わる仕様にした。書くのが少々面倒だが、IF文はそんなに頻繁に書くわけではないだろうから容認してもらいたい。┌(:3」└)┐ なお、IF文自体は入れ子にできない。ELSEとかもない。条件指定部分でAND・OR・NOTを併用できるので、IF文を入れ子にする必要性はないのではないかと思っている。ELSEがあれば便利なのはよく分かるのだが、実装方法を考えるだけで気が遠くなるので考えていない。

by nishishi. てがろぐ <525文字> 編集

このIF文は、外側スキンでも内側スキンでも両方で使える。 >>2462

by nishishi. てがろぐ <35文字> 編集

IF文を使って、特定の状況だけでHTMLの出力を切り替えられる機能も実装できた。めでたい。
全文検索と同じように、AND OR NOT検索で状況を指定できるようにした。
  • [[IF(onelog):~~~:IF]] と書けば「~~~」の部分が投稿単独表示時にだけ出力される。
  • マイナス記号を付けて [[IF(-onelog):~~~:IF]] と書けば「~~~」の部分は投稿単独表示時以外の状況で出力される。
丸括弧の中は home とか grandhome とか cat-info とか user-tomoyo とか、SITUATION:CLASS に出力される状況キーワードを全部使える。AND OR NOT検索と同じ要領で、複数の単語を同時に指定もできる。
なので、
  • 例えば、[[IF(selected-cat -cat-info):~~~:IF]] と書けば、カテゴリ限定表示時(ただしカテゴリinfoの表示時は除く)だけの状況で出力できる。
これは、便利なのでは……。(自画自賛!)

この機能を使うと、状況別にHTMLを出し分けられるだけではなくて、今までなら複数のスキンを併用しないといけなかったことも、もしかして単一のスキンで済むようにもできたりするのではないか……。(いや、深くは考えていないけども。)

by nishishi. てがろぐ <567文字> 編集

ユーザ設定の「紹介文」欄に入力した内容を出力する記法 [[USERINTRO]] を追加した。
USERで始まる記法が複数あるので、どうせなら USER:INTRO とか USER:ID とかにする方が読みやすいかな……と思ったものの、これ以上は増えなさそうだし、そこまで気にするほどでもないかと思い直して、やめた。

by nishishi. てがろぐ <158文字> 編集

どうせなら、[[SITUATION:CLASS]]書いたときに出力されるキーワードをそのまま全部使える仕様だと活用の幅が広がって便利かもしれない。 >>2458
例えば [[[IF(onelog): ~ ]]] と書けば、[[SITUATION:CLASS]]に「onelog」と出力される状況(=投稿単独表示時)だけで出力される、とか。その場合は、否定の記法も用意して [[[IFNOT(onelog): ~ ]]] みたいなのもあると使いやすそうな気がする。

by nishishi. てがろぐ <232文字> 編集

状況別に出力を切り替えられる記法を用意したい。例えば [[[IF:ONELOG: ~ ]]] と書いたら、その範囲は投稿単独表示時にしか出力されない、とか。今でもCSSで非表示にすることで切り替えられるが、それだと(スキンの内容とか1ページあたりの表示件数によっては)無駄なHTMLが大量に出力されることになるので、もうちょっとスリムにできるようにしたい。

by nishishi. てがろぐ <178文字> 編集

たぶん、もうCGIソース冒頭(77行目)の $howtogetpath = の値は修正しなくても良くなった気がする。どこのサーバでも。一応、ダメだった場合に備えて、変更後の動作は従来と同じにしてあるけども。(まだ配布していない Ver 4.1.4βの話)配布した

by nishishi. てがろぐ <132文字> 編集

てがろぐ生成ページのうち、トップページだけは index.html ファイルとして静的ファイルに出力する仕様にすると負荷軽減の役に立って良いかもしれないな……。 #済 とりあえず試験的に実装してみた。うまく役に立つかどうかはしばらく使ってみないと分からない。

by nishishi. てがろぐ <129文字> 編集

カレンダー表示ツールとしては「さんごよみ」を用意しているが、スケジュール表示が基本のツールなので、もっとシンプルに「指定した日付に丸を付けられれば良い」というだけの場合には多機能すぎる面があると分かった。もっともっとシンプルなUIで、カレンダーの日付をクリックしたらその場でそこに指定色の丸印が付く、というだけしか機能がないくらいの、ミニマムなCGI(PHP)を作りたい。

by nishishi. さんごよみ,開発ネタ <186文字> 編集

画像一覧モードとギャラリーモードの違いが分かりにくいかもしれないので、ギャラリーモード(のための標準添付用スキン)はもうちょっと本文もしっかり表示するような感じで、画像クリックで本文が見えるような動作になるように作り替える方が良いかもしれない。

by nishishi. てがろぐ <122文字> 編集

>>2450 やっぱり効いていなかった(というか、設定値をまったく処理に使っていなかった)ので、設定が効くように修正した。新着画像リストにもちゃんと(サムネイルがある画像は)サムネイルの方が出力されるようになった。

by nishishi. てがろぐ <107文字> 編集

「イメージリストモード」という名称だと長いので、素直に「画像一覧モード」という名称にした。機能そのものは実装できた。わりとあっさり作れて良かった。標準添付用のスキンを作って、ヘルプドキュメントも書く必要があるので、配布はもうちょっと先になりそうだが。うまくいけば週末の間に配布できるか……? 無理か……?
進捗1:設定画面進捗2:動作例

by nishishi. てがろぐ <169文字> 編集

イメージリストモードの良さげなアルゴリズムを思いついたので、行けそうな気がしてきた。₍₍ (ง ˙ω˙)ว ⁾⁾

by nishishi. てがろぐ <57文字> 編集

設定→ページの表示→【新着画像リストの表示】→「新着画像リストに表示する対象」の『サムネイル画像があればサムネイルの方を表示』設定って、効いてる?

by nishishi. てがろぐ <73文字> 編集

「動画の投稿機能」として作るよりも、「任意の添付ファイルUP機能」として作っておいて、そこにZIPでもMP4でも何でもUPできるようにすれば良い気もする。で、動画はvideo要素を埋め込める専用記法を別途用意しておけば良いのでは。[PICT:~] に対する [VIDEO:~] みたいな。ダウンロード専用の添付ファイルとして掲載したい場合は [FILE:~] かな。

by nishishi. てがろぐ <183文字> 編集

カテゴリでもハッシュタグでもなく、例えば〔重要〕みたいなフラグを立てる機能が欲しい。メーラみたいに。代用するとしたら「隠れハッシュタグ」機能が近いかもしれないが。その場合は本文中に書いておかないといけないからな……。ただ、「隠れハッシュタグ」だけをCSSで非表示にしてしまえば、見た目には見えないフラグにはなりそうな気はする。……ああ、それでいいか? いや、隠れハッシュタグだとリストアップされないので、「今どんなフラグが存在するのか」を知る方法がないのでちょっと困るな。「リストアップはされるんだけど、一覧には表示されない『一見すると隠れているけども管理者には見える』ハッシュタグ」みたいな中間ハッシュタグ機能があればいいのか。マイナス記号の代わりに、プラス記号を使うとか……?(^_^;)

by nishishi. てがろぐ <346文字> 編集

もうちょっとデータファイルから無駄を省くようにした方が良いだろうか。ファイルサイズを減らすために。カテゴリに属していない投稿に <cat></cat> とか、フラグが何もない投稿に <flag></flag> とか記録しても無駄だものな……。総投稿数が少ないうちは、微々たる差ではあるけども。

by nishishi. てがろぐ <146文字> 編集

動画の投稿機能を作る場合は、画像保存用のimagesとは別のディレクトリで管理する方が望ましいだろうか?

by nishishi. てがろぐ <52文字> 編集

?mode=rss でリクエストされたときは、毎回そのまま素直にRSS用スキンを解釈するのではなくて、一定期間だけ生成結果のRSSフィード(=スキンの適用結果)をキャッシュしておく仕様にしておくと、データ量が多い場合の負荷軽減になるかもしれない。

by nishishi. てがろぐ <123文字> 編集

どっへえ。ロリポップの古いサーバ(かなり昔に契約されたサーバ)「ハイスピードプラン」以上のプランのサーバだと、1行目を #! /usr/local/bin/perl に書き換えた上で、77行目を my $howtogetpath = 0; に書き換えないと動作しないということを、直接この目で確認した。(たまたま、セットアップ先として依頼されたサーバがそういう古い仕様のサーバだった。)
77行目は、デフォルトの 2 だと Not Found になり、 1 にすると 500 Internal Server Errorになるので、0 にしないといけなかった。

by nishishi. てがろぐ <280文字> 編集

TegUpを作って、PHPからでもてがろぐの設定を問題なく簡単に読めることが分かったので、「てがろぐにUPされている画像だけを順番に表示する」機能は、てがろぐ内部での実装ではなく、別途「imageディレクトリに置いたPHP(index.php)」でどうにかさせる手もあるような気もしてきた。まあ、構成ファイル数が増えてしまう問題はあるが。今時「Perlは実行できるのにPHPは実行できない」みたいなサーバはないと考えて良いだろうか。 画像一覧モードを作った。

by nishishi. てがろぐ <229文字> 編集

Powered by てがろぐ Ver 4.5.2.

DASHBOARD

■開発放言について

にしし製CGIの開発進行に関する放言です。思いついたことを適当に放り込む空間なので、どんな呟きも確定的な開発予定というわけでは全くありません。しかしながら、機能面でのご要望や開発予定機能への支持表明はお気軽にどうぞ。ただし、ここには直接は投稿頂けませんので、公式動作テスト用てがろぐ等をご利用下さい。

編集

■全文検索:

■日付検索:

■カレンダー:

2023年11月
1234
567891011
12131415161718
19202122232425
2627282930

■ハッシュタグ:

▼現在の表示条件での投稿総数:

23件

▼最後に投稿または編集した日時:

2025年01月16日(木) 20:43:42