1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-05 14:17:49 +02:00

News cache and comment fixes.

This commit is contained in:
Cameron
2016-12-13 08:58:00 -08:00
parent 51ce94b389
commit 7858c84da0
2 changed files with 68 additions and 18 deletions

View File

@@ -45,6 +45,12 @@ class ecache {
*/
public function setMD5($text, $hash=true)
{
if($text === null)
{
$this->CachePageMD5 = md5(e_BASE.e_LANGUAGE.THEME.USERCLASS_LIST.defset('e_QUERY').filemtime(THEME.'theme.php'));
return $this;
}
$this->CachePageMD5 = ($hash === true) ? md5($text) : $text;
return $this;
}

View File

@@ -480,11 +480,13 @@ class news_front
private function setNewsCache($cache_tag, $cache_data, $rowData=array())
{
$e107cache = e107::getCache();
$e107cache->setMD5(null,true);
$e107cache->set($cache_tag, $cache_data);
$e107cache->set($cache_tag."_title", defined("e_PAGETITLE") ? e_PAGETITLE : '');
$e107cache->set($cache_tag."_diz", defined("META_DESCRIPTION") ? META_DESCRIPTION : '');
$e107cache->set($cache_tag."_rows", $rowData);
$e107cache->set($cache_tag."_rows", e107::serialize($rowData,'json'));
}
@@ -499,10 +501,17 @@ class news_front
{
$cachetag .= "_".$type;
}
$this->addDebug('CaheString lookup', $cachetag);
e107::getDebug()->log('Retrieving cache string:' . $cachetag);
e107::getDebug()->log('Retrieving cache string:' . $cachetag);
$ret = e107::getCache()->setMD5(null)->retrieve($cachetag);
return e107::getCache()->retrieve($cachetag);
if($type == 'rows')
{
return e107::unserialize($ret);
}
return $ret;
}
/**
@@ -512,6 +521,8 @@ class news_front
private function checkCache($cacheString)
{
$e107cache = e107::getCache();
$this->addDebug("checkCache", 'true');
$e107cache->setMD5(null);
$cache_data = $e107cache->retrieve($cacheString);
$cache_title = $e107cache->retrieve($cacheString."_title");
@@ -844,12 +855,19 @@ class news_front
{
$this->addDebug("Method",'renderViewTemplate()');
if($newsCachedPage = checkCache($this->cacheString))
if($newsCachedPage = $this->checkCache($this->cacheString))
{
$this->addDebug("Cache",'active');
$rows = $this->getNewsCache($this->cacheString,'rows');
e107::getEvent()->trigger('user_news_item_viewed', $rows);
$this->addDebug("Event-triggered:user_news_item_viewed", $rows);
return $this->renderCache($newsCachedPage, TRUE); // This exits if cache used
$text = $this->renderCache($newsCachedPage, TRUE); // This exits if cache used
$text .= $this->renderComments($rows);
return $text;
}
else
{
$this->addDebug("Cache",'inactive');
}
$sql = e107::getDb();
@@ -968,20 +986,18 @@ class news_front
$template = $tmp['item'];
unset($tmp);
}
ob_start();
$this->ix->render_newsitem($news, 'extend', '', $template, $param);
if(e107::getRegistry('news/page_allow_comments'))
{
global $comment_edit_query; //FIXME - kill me
$comment_edit_query = 'comment.news.'.$news['news_id'];
e107::getSingleton('comment')->compose_comment('news', 'comment', $news['news_id'], null, $news['news_title'], FALSE);
}
$cache_data = ob_get_contents();
$this->ix->render_newsitem($news, 'extend', '', $template, $param);
$cache_data = ob_get_contents();
ob_end_clean();
$this->setNewsCache($this->cacheString, $cache_data, $news);
return $cache_data;
$text = $cache_data;
$text .= $this->renderComments($news);
return $text;
}
else
{
@@ -998,6 +1014,31 @@ class news_front
}
private function renderComments($news)
{
$this->addDebug("Calling", "renderComments()");
// if(e107::getRegistry('news/page_allow_comments'))
if(isset($news['news_allow_comments']) && empty($news['news_allow_comments'])) // ie. comments active
{
global $comment_edit_query; //FIXME - kill me
$comment_edit_query = 'comment.news.'.$news['news_id'];
$comments = e107::getComment()->compose_comment('news', 'comment', $news['news_id'], null, $news['news_title'], false, true);
if(!empty($comments))
{
return e107::getRender()->tablerender($comments['caption'],$comments['comment_form'] . $comments['comment'],'comment', true);
}
}
$this->addDebug("Failed", "renderComments()");
return '';
}
private function renderDefaultTemplate()
{
$this->addDebug("Method",'renderDefaultTemplate()');
@@ -1012,7 +1053,7 @@ class news_front
$interval = $this->pref['newsposts'];
global $NEWSSTYLE;
switch ($this->action)
{
@@ -1151,7 +1192,7 @@ class news_front
} // END - switch($action)
if($newsCachedPage = checkCache($this->cacheString)) // normal news front-page - with cache.
if($newsCachedPage = $this->checkCache($this->cacheString)) // normal news front-page - with cache.
{
@@ -1297,7 +1338,7 @@ class news_front
// Deprecated
// $parms = $news_total.",".ITEMVIEW.",".$newsfrom.",".$e107->url->getUrl('core:news', 'main', "action=nextprev&to_action=".($action ? $action : 'default' )."&subaction=".($sub_action ? $sub_action : "0"));
$sub_action = intval($sub_action);
// $sub_action = intval($sub_action);
// $parms = $news_total.",".ITEMVIEW.",".$newsfrom.",".e_SELF.'?'.($action ? $action : 'default' ).($sub_action ? ".".$sub_action : ".0").".[FROM]";
$amount = ITEMVIEW;
@@ -1447,7 +1488,10 @@ class news_front
$newsObj = new news_front;
require_once(HEADERF);
$newsObj->render();
$newsObj->debug();
if(E107_DBG_BASIC)
{
$newsObj->debug();
}
require_once(FOOTERF);
exit;