concrete5.4.1.1とキャッシュ

2010年12月5日 at 10:01

本家でも起きているようですが
block_view_outputのキャッシュを消していないためにGoogle_mapなどで
EditとViewの表示が違う場合に、ViewでEditと同じものが表示される。

調べてみると
models/collection_version.phpの中にあるrefreshCache()で
保存時にキャッシュを消している。

そこで、block_view_outputを消す処理を追加したら消えましたが
これが正しいのかわかりませんので意見をください。

Index: concrete/models/collection_version.php
===================================================================
--- concrete/models/collection_version.php (リビジョン 160)
+++ concrete/models/collection_version.php (作業コピー)
@@ -78,6 +78,11 @@
Cache::delete('collection_version_id', $cID . ':RECENT');
Cache::delete('collection_version_id', $cID . ':ACTIVE');
}
+ $q = "select cvID,bID,arHandle from CollectionVersionBlocks where cID = ?";
+ $r = $db->query($q, array($this->cID));
+ foreach($r as $cb) {
+ Cache::delete('block_view_output', $cID . ':' . $cb['bID'] . ':' . $cb['arHandle']);
+ }
}

public function get(&$c, $cvID) {

Re: concrete5.4.1.1とキャッシュ

2010年12月7日 at 10:34
ありがとうございます。
どうしましょうコレ。5.4.1.1に入れますか?入れた方が良いと思うんですが、本家と離れるのも考えものです...
 

Re: Re: concrete5.4.1.1とキャッシュ

2010年12月7日 at 19:02
SQLにcvIDは要らなかったですね。

入れるかについては、入れた方がよいと思います。
本家にもバグ報告をした方がよいかもしれません。

本家で上がっていると聞いたような記憶があるのですが
本家のどこでこの問題を取り上げているのかわかりませんでした。
まだ、気がついていないのかな。

英語が苦手なので、どなたか報告をお願いします。
 

Re: Re: Re: concrete5.4.1.1とキャッシュ

2010年12月17日 at 4:10
解決しました。
google mapブロックのプロパティの問題でした。

protected $btCacheBlockOutputForRegisteredUsers

がtrueになってたのが原因でした。コミッットしてあります。