ブロックに最新記事1ユーザー1記事で制御したい
- このフォーラムに新規トピックを投稿できます
- このフォーラムではゲスト投稿が許可されています
投稿ツリー
- ブロックに最新記事1ユーザー1記事で制御したい (d3diaryありがと?, 2009/7/14 16:53)
- Re: ブロックに最新記事1ユーザー1記事で制御したい (なーお, 2009/7/14 17:54)
- Re: ブロックに最新記事1ユーザー1記事で制御したい (なーお, 2009/7/16 14:29)
- Re: ブロックに最新記事1ユーザー1記事で制御したい (d3diaryありがと?, 2009/7/21 13:32)
- Re: ブロックに最新記事1ユーザー1記事で制御したい (なーお, 2009/7/21 21:29)
- Re: ブロックに最新記事1ユーザー1記事で制御したい (d3diaryありがと?, 2009/7/22 20:06)
- Re: ブロックに最新記事1ユーザー1記事で制御したい (なーお, 2009/7/22 22:59)
ブロックに最新記事1ユーザー1記事で制御したい
msg# 1d3diaryありがと? 感謝です。
ブロックの最新記事表示で、最新記事何件だけではなく、1ユーザー最大表示件数みたいなものを付けていただけないでしょうか?
例で言うなら
日記全体の更新状況
2009-07-19 Aさん
2009-07-18 Aさん
2009-07-17 Bさん
2009-07-16 Cさん
2009-07-15 Aさん
2009-07-11 Dさん
2009-07-05 Eさん
2009-07-02 Fさん
ブック設定:表示件数4、1ユーザー1件
の時、ブロック表示は
2009-07-19 Aさん
2009-07-17 Bさん
2009-07-16 Cさん
2009-07-11 Dさん
ためしに自分で挑戦しましたが・・・
b_diarylist.phpの118行目あたりのSQL文を直せばいいのかな?と言う点までは把握できたのですが、MSSQLしか使った事がないので、mySQLでの書き方がわからずはまっています。
すみませんが、アドバイスまたは機能追加をお願いします。
m(__)m
d3diaryありがと?さん、こんにちは。
日記リストブロックの個人別最大表示件数の設定ということで、現状はソースの一部を変更すれば可能です。
b_diarylist.php の 130行目付近
1 |
|
これは一人4件のはずですので、
1 |
|
こうすれば一人1件になると思います。
もしならなかったら、数値を変えるなりして試してみてください。
なお、ブロックオプションの最大表示件数の設定は、大きめにしておかないと、全員の分が出ない場合もあると思います。
次のバージョンあたりで、オプション設定が可能なように検討してみます。
本件、d3diary-ver0.04にて組み込みました。
また、外部ブログと内部ブログを合わせた件数で規制をかけるように変更しました。
Re: ブロックに最新記事1ユーザー1記事で制御したい
msg# 1.3対応ありがとうございます。
すこし残念なのは、
表示件数5件、1ユーザー1件と設定した場合、
必ず表示件数が5件になるわけでは無いと言う
点です。
日記全体の更新状況
2009-07-19 Aさん
2009-07-18 Aさん
2009-07-17 Bさん
2009-07-16 Cさん
2009-07-15 Aさん
2009-07-11 Dさん
2009-07-05 Eさん
2009-07-02 Fさん
ブック設定:表示件数5、1ユーザー1件
の時、ブロック表示は
2009-07-19 Aさん
2009-07-17 Bさん
2009-07-16 Cさん
2009-07-11 Dさん
2009-07-05 Eさん
になって欲しいのに・・・
2009-07-19 Aさん
2009-07-17 Bさん
2009-07-16 Cさん
になっている気がします。
あと、
内部公開、外部公開に関係なく表示件数はキープして欲しいのですが。。。
(投稿者数が指定ユーザー数以下の場合はしかたがない)
すみません、要求ばかりで・・・ m(__)m
d3diaryありがと?さん、こんにちは。
ご指摘の事象については、今回のバージョンアップの時に どうしようか悩んだのですが、要望次第かな? ということで現状仕様としてあります。(SQLでテーブルから検索する件数を現状は最大件数設定数分取得して表示不可の記事を消去)
なにぶん、XSNSやmyfriends連携での閲覧権限制御や、外部ブログとの混合表示など、SQLで取得後に判定することが多いため、致し方ないという判断です。
この件数を完全に正しくするのはコストがかかりすぎますし速度的にも問題になりそうですので、次なる手としては、SQLでテーブルから何件か余計に取得しておいてから、表示不可を消去してゆくという考えです。
これでしたら、単純な変更でできますが、ではあと何件余分に検索するか、ということが課題になります。 増量が少ないと、表示件数が多い場合にやはり同様の問題が出ますし、 増量が多すぎるとメモリを多消費するだけです。
次のバージョンで何かしらの形で取り込もうと思いますが、ご意見ありましたらどうぞお願いします。
私の考えとしては、 設定された最大件数=n1とおくと、SQLで検索する件数は、
n1< 10 のとき、n=2 x n1
n1>=10 のとき、n=10 + n1
といった具合かな。。 なんて考えています。
Re: ブロックに最新記事1ユーザー1記事で制御したい
msg# 1.3.1.1おせわになります。 m(__)m
私が思ったのは、SQL文で解決させる方法です。
次の開発修正に繋がればと思い、
MSSQLしかわからないので、と、言うかこれでイイのか?と言うSQL文ですが・・・
投稿します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
何かの役に立てば幸いです。 m(__)m
すみません m(__)m
d3diaryありがと? さん、こんにちは。
SQL文まで考えていただき、ありがとうございます。
ただ残念ながら、サブクエリが使えるのはMySQL4.1以上でして、minidiaryからのインポートを考えると、MySQL4.0.xでも使えるようにしておきたいところです。 この機能のためだけに、MySQL4.1以上必須とするのも気が引けます。
サブクエリではなく、複数回のクエリに分割してしまう手もあるのですが、これもコスト(負荷)増方向ですので、minidiaryからのバージョンアップ時の体感速度をあまり遅くしたくないので、特にTOPページに配置することの多いこのブロックは慎重に検討すべきと考えています。
また、実際にはcategoryテーブルconfigテーブルも結合してますし、外部ブログも別SQLクエリで取得して配列をマージしてからソートしてますので、単純な話ではありません。
もう少し検討はしてみますけれども、あまり期待しないでください。 たぶん、基本的には http://www.naaon.com/modules/d3forum/index.php?topic_id=1001#post_id4024 の方法になると思います。
では。