From e5d4768d27336a3af2fc36af663d21a1a57d0ee1 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 7 Apr 2012 20:20:22 +0200 Subject: [PATCH] added tpl_includeFile() to core --- inc/template.php | 36 +++++++++++++++++++++++++++++++ lib/tpl/dokuwiki/detail.php | 7 +++--- lib/tpl/dokuwiki/main.php | 11 +++++----- lib/tpl/dokuwiki/mediamanager.php | 3 +-- lib/tpl/dokuwiki/tpl_footer.php | 2 +- lib/tpl/dokuwiki/tpl_header.php | 2 +- 6 files changed, 47 insertions(+), 14 deletions(-) diff --git a/inc/template.php b/inc/template.php index 37848b59a..edf3ca3fb 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1526,6 +1526,42 @@ function tpl_getMediaFile($search, $abs=false, &$imginfo=null){ return $url; } +/** + * PHP include a file + * + * either from the conf directory if it exists, otherwise use + * file in the template's root directory. + * + * The function honours config cascade settings and looks for the given + * file next to the ´main´ config files, in the order protected, local, + * default. + * + * Note: no escaping or sanity checking is done here. Never pass user input + * to this function! + * + * @author Anika Henke <anika@selfthinker.org> + * @author Andreas Gohr <andi@splitbrain.org> + */ +function tpl_includeFile($file){ + global $config_cascade; + foreach (array('protected','local','default') as $config_group) { + if (empty($config_cascade['main'][$config_group])) continue; + foreach ($config_cascade['main'][$config_group] as $conf_file) { + $dir = dirname($conf_file); + if(file_exists("$dir/$file")){ + // include("$dir/$file"); + return; + } + } + } + + // still here? try the template dir + $file = tpl_incdir().$file; + if(file_exists($file)){ + //include($file); + } +} + /** * Returns icon from data/media root directory if it exists, otherwise * the one in the template's image directory. diff --git a/lib/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index baa454edc..a3516a7ed 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -9,7 +9,6 @@ // must be run from within DokuWiki if (!defined('DOKU_INC')) die(); -@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show'); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" @@ -26,7 +25,7 @@ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show <?php tpl_metaheaders()?> <meta name="viewport" content="width=device-width,initial-scale=1" /> <?php echo tpl_favicon(array('favicon', 'mobile')) ?> - <?php _tpl_include('meta.html') ?> + <?php tpl_includeFile('meta.html') ?> </head> <body> @@ -47,7 +46,7 @@ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show <div class="page group"> <?php tpl_flush() ?> - <?php _tpl_include('pageheader.html') ?> + <?php tpl_includeFile('pageheader.html') ?> <!-- detail start --> <?php if($ERROR): @@ -95,7 +94,7 @@ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show <?php endif; ?> </div> <!-- detail stop --> - <?php _tpl_include('pagefooter.html') ?> + <?php tpl_includeFile('pagefooter.html') ?> <?php tpl_flush() ?> <?php /* doesn't make sense like this; @todo: maybe add tpl_imginfo()? diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index 9bc221711..57c94f174 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -9,7 +9,6 @@ */ if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */ -@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show'); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" @@ -23,7 +22,7 @@ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show <?php tpl_metaheaders() ?> <meta name="viewport" content="width=device-width,initial-scale=1" /> <?php echo tpl_favicon(array('favicon', 'mobile')) ?> - <?php _tpl_include('meta.html') ?> + <?php tpl_includeFile('meta.html') ?> </head> <body> @@ -39,9 +38,9 @@ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show <!-- ********** ASIDE ********** --> <div id="dokuwiki__aside"><div class="pad include group"> <?php tpl_flush() ?> - <?php _tpl_include('sidebarheader.html') ?> + <?php tpl_includeFile('sidebarheader.html') ?> <?php tpl_include_page($conf['sidebar']) ?> - <?php _tpl_include('sidebarfooter.html') ?> + <?php tpl_includeFile('sidebarfooter.html') ?> </div></div><!-- /aside --> <?php endif; ?> @@ -52,11 +51,11 @@ $showSidebar = $conf['sidebar'] && page_exists($conf['sidebar']) && ($ACT=='show <div class="page group"> <?php tpl_flush() ?> - <?php _tpl_include('pageheader.html') ?> + <?php tpl_includeFile('pageheader.html') ?> <!-- wikipage start --> <?php tpl_content() ?> <!-- wikipage stop --> - <?php _tpl_include('pagefooter.html') ?> + <?php tpl_includeFile('pagefooter.html') ?> </div> <div class="docInfo"><?php tpl_pageinfo() ?></div> diff --git a/lib/tpl/dokuwiki/mediamanager.php b/lib/tpl/dokuwiki/mediamanager.php index 0651b448d..1f3b9661b 100644 --- a/lib/tpl/dokuwiki/mediamanager.php +++ b/lib/tpl/dokuwiki/mediamanager.php @@ -7,7 +7,6 @@ */ // must be run from within DokuWiki if (!defined('DOKU_INC')) die(); -@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */ ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -23,7 +22,7 @@ if (!defined('DOKU_INC')) die(); <?php tpl_metaheaders()?> <meta name="viewport" content="width=device-width,initial-scale=1" /> <?php echo tpl_favicon(array('favicon', 'mobile')) ?> - <?php _tpl_include('meta.html') ?> + <?php tpl_includeFile('meta.html') ?> </head> <body> diff --git a/lib/tpl/dokuwiki/tpl_footer.php b/lib/tpl/dokuwiki/tpl_footer.php index 6b46234d6..41ddabda2 100644 --- a/lib/tpl/dokuwiki/tpl_footer.php +++ b/lib/tpl/dokuwiki/tpl_footer.php @@ -20,4 +20,4 @@ </div> </div></div><!-- /footer --> -<?php _tpl_include('footer.html') ?> +<?php tpl_includeFile('footer.html') ?> diff --git a/lib/tpl/dokuwiki/tpl_header.php b/lib/tpl/dokuwiki/tpl_header.php index 35b3cf636..1d2517ee1 100644 --- a/lib/tpl/dokuwiki/tpl_header.php +++ b/lib/tpl/dokuwiki/tpl_header.php @@ -2,7 +2,7 @@ <div id="dokuwiki__header"><div class="pad group"> <?php html_msgarea() ?> - <?php _tpl_include('header.html') ?> + <?php tpl_includeFile('header.html') ?> <div class="headings group"> <ul class="a11y skip"> -- GitLab