X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fplugin.php;h=e25e9e85b1c367529743f859893968031465b430;hb=75be187216255c7c45421cb5f9596118a954f878;hp=2cb94b3504b3989377f1bbbd30aa9f3ef9b50de5;hpb=7e83ba090f7ff3889aec8a2e8f2b578210a66dc8;p=friendica.git diff --git a/include/plugin.php b/include/plugin.php index 2cb94b3504..e25e9e85b1 100644 --- a/include/plugin.php +++ b/include/plugin.php @@ -534,3 +534,41 @@ function upgrade_bool_message($bbcode = false) { $x = upgrade_link($bbcode); return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ; } + +/** + * @brief Get the full path to relevant theme files by filename + * + * This function search in the theme directory (and if not present in global theme directory) + * if there is a directory with the file extension and for a file with the given + * filename. + * + * @param string $file Filename + * @param string $root Full root path + * @return string Path to the file or empty string if the file isn't found + */ +function theme_include($file, $root = '') { + // Make sure $root ends with a slash / if it's not blank + if($root !== '' && $root[strlen($root)-1] !== '/') + $root = $root . '/'; + $theme_info = $a->theme_info; + if(is_array($theme_info) AND array_key_exists('extends',$theme_info)) + $parent = $theme_info['extends']; + else + $parent = 'NOPATH'; + $theme = current_theme(); + $thname = $theme; + $ext = substr($file,strrpos($file,'.')+1); + $paths = array( + "{$root}view/theme/$thname/$ext/$file", + "{$root}view/theme/$parent/$ext/$file", + "{$root}view/$ext/$file", + ); + foreach($paths as $p) { + // strpos() is faster than strstr when checking if one string is in another (http://php.net/manual/en/function.strstr.php) + if(strpos($p,'NOPATH') !== false) + continue; + if(file_exists($p)) + return $p; + } + return ''; +}