Cache: Add additional state variables + single entry mode
fetchEntries is heaviliy realient on glboal state variables, and that was missed initially. The last commit c8bbb35aac fixed that partially, but did not catch all global state variables. Additionally, this fixed the clean_page mode as used by staticpage by adding the logic and event hook to printEntriesCached
This commit is contained in:
@@ -211,7 +211,7 @@ function &serendipity_fetchEntries($range = null, $full = true, $limit = '', $fe
|
||||
|
||||
if ($serendipity['useInternalCache']) {
|
||||
$cache = serendipity_setupCache();
|
||||
$key = md5(serialize($initial_args) . $serendipity['GET']['page']);
|
||||
$key = md5(serialize($initial_args) . $serendipity['short_archives'] . '||' . $serendipity['range'] . '||' . $serendipity['GET']['category'] . '||' . $serendipity['GET']['hide_category'] . '||' . $serendipity['GET']['viewAuthor'] . '||' . $serendipity['GET']['page'] . '||' . $serendipity['fetchLimit'] . '||' . $serendipity['max_fetch_limit'] . '||' . $serendipity['GET']['adminModule'] . '||' . serendipity_checkPermission('adminEntriesMaintainOthers') . '||' .$serendipity['showFutureEntries'] . '||' . $serendipity['archiveSortStable']);
|
||||
|
||||
$entries = $cache->get($key, "fetchEntries");
|
||||
if ($entries !== false) {
|
||||
@@ -462,7 +462,8 @@ function &serendipity_fetchEntries($range = null, $full = true, $limit = '', $fe
|
||||
}
|
||||
|
||||
if ($serendipity['useInternalCache']) {
|
||||
$key = md5(serialize($initial_args) . $serendipity['GET']['page']);
|
||||
$key = md5(serialize($initial_args) . $serendipity['short_archives'] . '||' . $serendipity['range'] . '||' . $serendipity['GET']['category'] . '||' . $serendipity['GET']['hide_category'] . '||' . $serendipity['GET']['viewAuthor'] . '||' . $serendipity['GET']['page'] . '||' . $serendipity['fetchLimit'] . '||' . $serendipity['max_fetch_limit'] . '||' . $serendipity['GET']['adminModule'] . '||' . serendipity_checkPermission('adminEntriesMaintainOthers') . '||' .$serendipity['showFutureEntries'] . '||' . $serendipity['archiveSortStable']);
|
||||
|
||||
$cache->save(serialize($ret), $key, "fetchEntries");
|
||||
$cache->save($serendipity['fullCountQuery'], $key . '_fullCountQuery', "fetchEntries");
|
||||
}
|
||||
@@ -1057,6 +1058,8 @@ function serendipity_printEntries($entries, $extended = 0, $preview = false, $sm
|
||||
serendipity_smarty_init(); // if not set, start Smarty templating to avoid member function "method()" on a non-object errors (was draft preview error, now at line 1239)
|
||||
}
|
||||
|
||||
$initial_args = array_values(func_get_args());
|
||||
|
||||
if ($use_hooks) {
|
||||
$addData = array('extended' => $extended, 'preview' => $preview);
|
||||
serendipity_plugin_api::hook_event('entry_display', $entries, $addData);
|
||||
@@ -1276,10 +1279,8 @@ function serendipity_printEntries($entries, $extended = 0, $preview = false, $sm
|
||||
|
||||
if ($serendipity['useInternalCache']) {
|
||||
$cache = serendipity_setupCache();
|
||||
|
||||
$args = func_get_args();
|
||||
$args = array_values($args);
|
||||
$key = md5(serialize($args));
|
||||
$key = md5(serialize($initial_args));
|
||||
|
||||
$cache->save(serialize($dategroup), $key, "printEntries");
|
||||
}
|
||||
|
||||
@@ -1307,6 +1308,26 @@ function serendipity_printEntriesCached($entries, $extended = 0, $preview = fals
|
||||
$key = md5(serialize($args));
|
||||
|
||||
if (($dategroup = $cache->get($key, "printEntries")) !== false) {
|
||||
|
||||
if ($use_hooks) {
|
||||
$addData = array('extended' => $extended, 'preview' => $preview);
|
||||
serendipity_plugin_api::hook_event('entry_display', $entries, $addData);
|
||||
|
||||
if (isset($entries['clean_page']) && $entries['clean_page'] === true) {
|
||||
if ($serendipity['view'] == '404') {
|
||||
$serendipity['view'] = 'plugin';
|
||||
}
|
||||
|
||||
$serendipity['smarty']->assign(array(
|
||||
'plugin_clean_page' => true,
|
||||
'view' => $serendipity['view'])
|
||||
);
|
||||
serendipity_smarty_fetch($smarty_block, 'entries.tpl', true);
|
||||
return; // no display of this item
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$dategroup = unserialize($dategroup);
|
||||
$serendipity['smarty']->assign('entries', $dategroup);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user