Check if method '$renderer->getLastlevel()' exists or if '$renderer->lastlevel' is accessible.

If not for both then always use level 1 to prevent an error causing an empty page e.g. on "hrun" and "detritus". See #11.
This commit is contained in:
LarsDW223
2016-04-30 11:56:27 +02:00
parent ede0369bdb
commit 99bbd1f698

View File

@@ -338,7 +338,19 @@ class syntax_plugin_filelist extends DokuWiki_Syntax_Plugin {
* @return void * @return void
*/ */
function _render_page($result, $params, &$renderer) { function _render_page($result, $params, &$renderer) {
$this->_render_page_section($result['files'], $result['basedir'], $result['webdir'], $params, $renderer, $renderer->lastlevel + 1); if ( method_exists ($renderer, 'getLastlevel') === false ) {
$class_vars = get_class_vars (get_class($renderer));
if ($class_vars ['lastlevel'] !== NULL) {
// Old releases before "hrun": $lastlevel is accessible
$this->_render_page_section($result['files'], $result['basedir'], $result['webdir'], $params, $renderer, $renderer->lastlevel + 1);
} else {
// Release "hrun" or newer without method 'getLastlevel()'.
// Lastlevel can't be determined. Workaroud: always use level 1.
$this->_render_page_section($result['files'], $result['basedir'], $result['webdir'], $params, $renderer, 1);
}
} else {
$this->_render_page_section($result['files'], $result['basedir'], $result['webdir'], $params, $renderer, $renderer->getLastlevel() + 1);
}
} }
/** /**