Esempio n. 1
0
/**
 * Retrieve the name of the highest priority template file that exists.
 *
 * Searches in the STYLESHEETPATH before TEMPLATEPATH so that themes which
 * inherit from a parent theme can just overload one file. If the template is
 * not found in either of those, it looks in the theme-compat folder last.
 *
 * @since bbPres (r3618)
 *
 * @param string|array $template_names Template file(s) to search for, in order.
 * @param bool $load If true the template file will be loaded if it is found.
 * @param bool $require_once Whether to require_once or require. Default true.
 *                            Has no effect if $load is false.
 * @return string The template filename if one is located.
 */
function bbp_locate_template($template_names, $load = false, $require_once = true)
{
    // No file found yet
    $located = false;
    // Try to find a template file
    foreach ((array) $template_names as $template_name) {
        // Continue if template is empty
        if (empty($template_name)) {
            continue;
        }
        // Trim off any slashes from the template name
        $template_name = ltrim($template_name, '/');
        // Check child theme first
        if (file_exists(trailingslashit(STYLESHEETPATH) . $template_name)) {
            $located = trailingslashit(STYLESHEETPATH) . $template_name;
            break;
            // Check parent theme next
        } elseif (file_exists(trailingslashit(TEMPLATEPATH) . $template_name)) {
            $located = trailingslashit(TEMPLATEPATH) . $template_name;
            break;
            // Check theme compatibility last
        } elseif (file_exists(trailingslashit(bbp_get_theme_compat_dir()) . $template_name)) {
            $located = trailingslashit(bbp_get_theme_compat_dir()) . $template_name;
            break;
        }
    }
    if (true == $load && !empty($located)) {
        load_template($located, $require_once);
    }
    return $located;
}
Esempio n. 2
0
 static function add_template_locations($locations)
 {
     $stylesheet_dir = get_stylesheet_directory();
     $template_dir = get_template_directory();
     $compat_dir = untrailingslashit(bbp_get_theme_compat_dir());
     foreach ($locations as $k => $location) {
         // append 'kr' to all locations
         if (strpos($location, $compat_dir) === 0 || strpos($location, BBPKR_PATH) === 0) {
             // var_dump($location);
             continue;
         }
         if ($location == $template_dir || $location == $stylesheet_dir) {
             // unset( $locations[$k] );
             continue;
         }
         $locations[$k] .= 'kr';
     }
     return $locations;
 }