No.4676, No.4675, No.4674, No.4673, No.4672, No.4671, No.4670[7件]

>>4673
にししさん、ご回答ありがとうございます。>>4671 で質問した者です。
残念ながら現状では仕様上不可能ということですが、疑問が解消されてスッキリました!
IF文を使って1ページあたりの表示投稿数を変えられないか?というのは、出来たらもっとカスタマイズの幅が広がるな〜と思って試してみたものなので、今後できるようになったらラッキー!くらいの気持ちで待っています。
>>4672 さん、いつかIF文で表示投稿数が変えられるようになると良いですね!お互いゆっくり待ちましょう。 255日前(月 20:40:03)

🍨Re:4670◆ご要望をありがとうございます。複数チェックした投稿に対して一括で何かをする操作(※今の時点でできるのは削除だけですが)も需要はあるだろうな、とは思います。特定のカテゴリに属させるとか、カテゴリを外すとか。もちろん、下書き化・下書き解除とかもですね。将来的にはできるようにしたいと思いますので、ToDoリストには入れておきます。気長にお待ち頂ければ幸いです。
🍨Re:4671◆詳しい検証をどうもありがとうございます。なるほど、そのような用途があるとは思っていなかったので、そもそも考慮していませんでした。なぜ検証頂いた結果のような動作になるのかな……と私も不思議に思いましたので調べてみたところ、なんとまあ「卵が先か、鶏が先か」問題みたいな感じの要因が出てきました。^^;
現状のてがろぐでは、「スキン内での表示件数の指定」と「IF文」との処理順序は、以下のようになっています。
- 外側スキンのソース中から [[TEGALOG:数値]] の記述を見つけて、1ページ当たりの表示件数を得る。(※見つからなければ設定値を採用)
- それを元に、ページネーション関連を計算する。
- それらを元に SITUATION:CLASS を生成する。
- その情報を元にして IF文の指定条件を解釈する。
なので、IF文とかに関係なく、スキンを構成するソースを1行目から順番に下方向に眺めて行って、最初に見えた [[TEGALOG:数値]] の数値が「1ページあたりの件数」として採用されます。
これが、No.4671にお書き下さった動作になる要因です。
最初のケースでは2行目の [[TEGALOG:10]] が「最初に見えた数値指定付きの記述」ですし、次のケースでは1行目の [[TEGALOG:10]] が「最初に見えた数値指定付きの記述」です。なので、どちらも「1ページ10件」になるわけです。
「それなら、最初にIF文を処理すれば?」と思われるかもしれませんが(私も一瞬そう思ったんですが)、
- IF文では SITUATION:CLASS の内容を元にして条件分岐するので、IF文の解釈よりも前に SITUATION:CLASS を生成しておかないと処理できないんですよね。
- ところが、SITUATION:CLASS を生成するためには、まず先に「1ページ当たりの表示件数」を知っておく必要があるんですよね。^^;
なので、[[TEGALOG:数値]] の記述を発見するよりも前の段階では、IF文の指示を解釈することができない……。┌(:3」└)┐
ならば、「IF文を解釈した後に、改めてもう一度 [[TEGALOG:数値]] の記述を探して、その値を採用すれば良いのでは?」……とも思ったんですが、
この時点では既にページネーションの計算が済んでいるので、ここで「1ページ当たりの表示件数」を変えてしまうと、表示とページ数が一致しなくなって、おかしなことになります。
……と、ここまで書いていて気付いたんですが、
さらにページネーションの計算ももう一回やり直せば良いのでは? ……という気もしてきました。
ページネーションの計算は、SITUATION:CLASS に厳密には影響していますが、再生成してもIF文の判定には影響しなさそうなので、問題ないのかな……という気もします。
畳む……というわけで、いけそうな気もするんですが、本当に大丈夫なのかどうか今の時点ではハッキリしませんので、何か良さげな方法を思いつけたら対処します。現在のバージョンでどうにかする方法は残念ながらありませんので、気長にお待ち頂ければ幸いです。
🍨Re:4672◆IF文が登場するまでのバージョンでは、本当に1回しか使えませんでした。
IF文が使えるようになったバージョン以降では、IF文の条件をうまく調整することで、(IF文の条件を適用した結果として)一連の出力の中に [[TEGALOG]] の記述が1回だけ登場するように書くなら(※2回以上登場しないのはもちろん、0回にもならないように注意が必要です。0回になるパターンではエラー画面が表示されますから)、1スキンの中に [[TEGALOG]] は何回出てきても大丈夫にはなっています。ただ、[[TEGALOG:数値]] のように件数を指定する表示が出てくると、先のように意図しない表示件数になってしまう問題がありますね。
畳む現状のリファレンスでは、先の赤色文字の部分の意味で「1回だけ使える」と表現しています。ヘルプドキュメントのこの辺にちょっとだけ補足的に書いてあります。
意外と需要があるんですね。^^; 全く想像していなかったので、なるほどそういう需要もあるのか、と新たな発見でした。お知らせ下さってありがとうございます。(╹◡╹)
256日前(月 10:01:24) 回答/返信

にししさんではないですが自分も同じようなことをしてハマったので…
てがろぐ カスタマイズ方法 - にししふぁくとりー:「skin-cover.html」の編集方法
https://www.nishishi.com/cgi/tegalog/custom/#customize...
によると[[TEGALOG]] は「1スキン内で1回のみ記述できます。」とのことなのでIF文で囲ってもどちらかしか効かないのかなと思いましたが
実際どうなんでしょうか。IF文で囲って条件別に表示数を変えることが出来たら嬉しいですよね、もし今のバージョンでもできるのならば私もその方法を知りたいです! 256日前(日 22:01:14)

にししさん、てがろぐの開発ありがとうございます。
今回てがろぐのスキンをカスタマイズしていて、意図した表示が反映されなかったので質問させてください。#質問
自分のカスタマイズしているスキンでは、てがろぐカスタマイズ方法で説明されている『そのときの表示状況に応じてページデザインを切り替える方法』 のIF文を使って特定のカテゴリ限定表示の時に出力される内容や見た目の装飾を変えています。
ここまでは無事にカスタマイズできました。
次にIF文を使って『1ページあたりの表示投稿数』を普段の表示と特定のカテゴリ限定表示の時で変えることはできないかと試みました。これがカスタマイズが上手くいかなった部分です。
まず、設定画面の『▼1ページあたりの表示投稿数』の項目では5個の表示設定にし、同時に『スキン側に指定されている表示数を優先採用する』にチェックを入れました。
次にてがろぐスキンの『skin-cover.html』の[[TEGALOG]]記述文を以下のように書き換えました。
[[IF(-cat-カテゴリID):[[TEGALOG]]:IF]] <!-- 通常の表示 -->
[[IF(cat-カテゴリID):[[TEGALOG:10]]:IF]] <!-- 特定カテゴリ限定表示 -->
このように記述すれば特定カテゴリ限定表示では1ページに投稿が10件表示され、それ以外では5個の表示投稿数が反映されると思いましたが、どの状態でも1ページに10件投稿が表示される状態になりました。
今度は試しに設定画面の項目では5個の表示のまま、以下の記述に変えてみました。
[[IF(-cat-カテゴリID):[[TEGALOG:10]]:IF]] <!-- 通常の表示 -->
[[IF(cat-カテゴリID):[[TEGALOG:20]]:IF]] <!-- 特定カテゴリ限定表示 -->
こちらの記述ではすべての状態で投稿が10件表示となりました。
その時の表示状況によって1ページあたりの表示投稿数を変えることは仕様上不可能なのでしょうか。それとも自分の記述にどこか問題があるのでしょうか。
教えていただけたら嬉しいです。よろしくお願いします。 256日前(日 20:52:15) 質問/要望