立即注册 登录
彼岸网 返回首页

牛肉炖土豆的个人空间 http://www.bian-wang.com/discuz/?10744 [收藏] [复制] [分享] [RSS]

日志

为什么发完点评后,只要一刷新其他楼层的点评会消失?

热度 2已有 544 次阅读2018-4-24 09:26 PM

天香公主好!~关于论坛点评功能的问题

一个主题,下面有a,b,c三个回复楼层
这3个回复楼层里都有被点评评论,
若我在b楼层里再发布点评,然后刷新页面,a和c楼层的点评就消失不见,再一次刷新又显示了
这个BUG能修复吗?

设置如下图
在全局设置如下图


在用户组设置如下



路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (41 个评论)

回复 carry0987 2018-5-27 12:24 AM
天香公主: 我从DZ3.4的代码出发重写了一遍, 请赐教
http://www.bian-wang.com/discuz/data/userupload/10005/dztemplate.zip
這次的結構很不一樣呢,我仔細看看
回复 天香公主 2018-5-26 10:37 AM
carry0987: 原來如此,這是為了使效能最大化的設置吧,同時也使主模板可以自動更新
我从DZ3.4的代码出发重写了一遍, 请赐教
http://www.bian-wang.com/discuz/data/userupload/10005/dztemplate.zip
回复 carry0987 2018-5-25 12:46 AM
天香公主: 我前面凭印象说了,又测试了下Discuz发现,在改动模板内容后,再在浏览器里获取该模板对应的网页时,内容自动就更新了,它是根据模板文件和缓存文件的修改时间来 ...
原來如此,這是為了使效能最大化的設置吧,同時也使主模板可以自動更新
回复 天香公主 2018-5-24 10:45 PM
carry0987: 我懂了,因為靠管理員的操作決定,因此沒有以上的問題...
我前面凭印象说了,又测试了下Discuz发现,在改动模板内容后,再在浏览器里获取该模板对应的网页时,内容自动就更新了,它是根据模板文件和缓存文件的修改时间来判断的。因为我的config_global.php里有一行tplrefresh设置成1。

但是如果改动的是一个子模板里的内容的话,那么要等第二次获取使用包含该子模板的模板对应的网页时,才能看到新内容。这是由Discuz在运行缓存文件中检查子模板是否改动的做法决定的,因为那时正在运行的缓存文件已经放在memory里不能改了,更新后的缓存文件要等下次才能用上了。
回复 carry0987 2018-5-24 12:21 AM
天香公主: 看了Discuz开发组里的人写的这篇不错
http://www.cnblogs.com/lengke/archive/2009/12/07/1618840.html

如你所知akon是通过检查模板文件的md5 hash来获知它是否 ...
說的對,用filemtime更為合適
回复 天香公主 2018-5-23 09:05 PM
carry0987: 我懂了,因為靠管理員的操作決定,因此沒有以上的問題...
看了Discuz开发组里的人写的这篇不错
http://www.cnblogs.com/lengke/archive/2009/12/07/1618840.html

如你所知akon是通过检查模板文件的md5 hash来获知它是否有变动,看了这篇里说的比较下模板文件和缓存文件的最后修改时间不更简单么
回复 carry0987 2018-5-19 10:58 AM
天香公主: 没存吧?Discuz不检查模板改没改动。它让管理员来决定何时启用修改后的模板(通过点击更新缓存)
我懂了,因為靠管理員的操作決定,因此沒有以上的問題...
回复 天香公主 2018-5-19 10:47 AM
carry0987: 天香,Dz之所以把模版的md5儲存在數據庫,是不是為了減少IO讀取?
没存吧?Discuz不检查模板改没改动。它让管理员来决定何时启用修改后的模板(通过点击更新缓存)
回复 carry0987 2018-5-19 03:18 AM
天香公主: 对,需要用某种分隔符吧。每个模板的信息都占了几行,那不同模板信息间可以用一个空白行来分隔开。

还是你要一个模板的信息占一行?那用分号做为行内不同信息的 ...
天香,Dz之所以把模版的md5儲存在數據庫,是不是為了減少IO讀取?
回复 carry0987 2018-5-13 09:59 AM
天香公主: 对,需要用某种分隔符吧。每个模板的信息都占了几行,那不同模板信息间可以用一个空白行来分隔开。

还是你要一个模板的信息占一行?那用分号做为行内不同信息的 ...
喔喔! 用空白行是個好主意!!
那,用
$tpl = implode(PHP_EOL,$tpl);
這樣是否就能達到以空白行作為分隔的效果呢?
回复 天香公主 2018-5-13 09:31 AM
carry0987: 天香,如果要將所有css緩存版本的資料整合到一個文件,那麼判斷方式要用分號嗎?還是你建議別的分類方法?
对,需要用某种分隔符吧。每个模板的信息都占了几行,那不同模板信息间可以用一个空白行来分隔开。

还是你要一个模板的信息占一行?那用分号做为行内不同信息的分隔应该可以。
回复 carry0987 2018-5-13 04:04 AM
天香公主: 我最近没考虑这个问题,这两天再看看。

你写的lang和我的预期有些差别,还是你改写了lang函数?比如你把Discuz的语言文件里的那些字符串拿出来放在你的模板里试 ...
天香,如果要將所有css緩存版本的資料整合到一個文件,那麼判斷方式要用分號嗎?還是你建議別的分類方法?
回复 carry0987 2018-5-12 10:36 AM
天香公主: 我最近没考虑这个问题,这两天再看看。

你写的lang和我的预期有些差别,还是你改写了lang函数?比如你把Discuz的语言文件里的那些字符串拿出来放在你的模板里试 ...
可以用的,我用lang_email.php測試了

template的問題其實就剩下之前那個css緩存,如果有多個css檔案,它就會產生多個紀錄版本的txt,所以正在想要怎麼讓他整合到一個文件就行,如 css.version.php 這樣
回复 天香公主 2018-5-12 10:13 AM
carry0987: 天香,template的部分還有什麼是我可以幫忙的嗎?例如正則的部分
我最近没考虑这个问题,这两天再看看。

你写的lang和我的预期有些差别,还是你改写了lang函数?比如你把Discuz的语言文件里的那些字符串拿出来放在你的模板里试试能用吗?
回复 carry0987 2018-5-12 10:09 AM
天香公主: 好啊。
天香,template的部分還有什麼是我可以幫忙的嗎?例如正則的部分
回复 carry0987 2018-5-12 08:02 AM
天香公主: 好啊。
天香,這裡是lang的代碼:
$template = preg_replace("/[\n\r\t]*\{lang\s+((\S+))\}[\n\r\t]*/i", '<?=\$lang[\'$1\']?>', $template);

使用方式:
模板中 : {lang hello_word}
轉換後 : $lang['hello_word'];
回复 carry0987 2018-5-11 07:42 AM
天香公主: 好啊。
lang的部分完成了~天香你那邊的csstemplate如何?
回复 天香公主 2018-5-11 06:56 AM
carry0987: 那個,lang的部分就讓我來吧,我用新學的正則試試看
好啊。
回复 carry0987 2018-5-7 05:03 AM
天香公主: 前两天在试着加lang标签,因为不确定怎么做用起来最方便就没写完,后来就去忙别的事了。争取下个周末完成。
那個,lang的部分就讓我來吧,我用新學的正則試試看
回复 carry0987 2018-5-4 10:30 AM
天香公主: 前两天在试着加lang标签,因为不确定怎么做用起来最方便就没写完,后来就去忙别的事了。争取下个周末完成。
lang其實應該是用不太到的,不過我的留言板有使用類似的技術,看看能不能當作參考吧:我把所有的lang都存入array裡面,以這樣的形式
$lang_username = $lang['username'];
調用時就echo $lang_username,所以如果要製作類似功能,可以做成在模板中以
{$lang: username}的形式,然後將冒號替換成['變量名'],這樣就可以免除要寫一個獨立文件代表全部的$lang陣列,也就是不用寫
$lang_username = $lang['username']這種多此一舉的方法
123下一页

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|Archiver|彼岸网  

Powered by Discuz! X3.1 © 2001-2014 Comsenz Inc.
GMT-4, 2018-7-21 06:59 PM , Processed in 0.065097 second(s), 9 queries. ,ApcOn

返回顶部