Exemple #1
0
/**
 * Returns the class corresponding to the template that a particular page is supposed to mimic. In case of single posts this gets the value
 * of the meta field 'suf_pseudo_template' for that post, and returns the template corresponding to that.
 * 
 * @return array
 */
function suffusion_get_pseudo_template_class()
{
    global $suffusion, $suffusion_sidebar_context_presets, $post;
    if (!isset($suffusion) || is_null($suffusion)) {
        $suffusion = new Suffusion();
    }
    $context = $suffusion->get_context();
    foreach ($suffusion_sidebar_context_presets as $preset) {
        if (in_array($preset, $context)) {
            $count_option = "suf_{$preset}_sidebar_count";
            global ${$count_option};
            if (isset(${$count_option})) {
                $special_template = ${$count_option};
            }
        }
    }
    // The current view is not any preset ('search', 'date', 'author', 'tag', 'category', 'blog'). Check if this is a single post.
    if (!isset($count_option)) {
        $post_template = suffusion_get_post_meta($post->ID, 'suf_pseudo_template', true);
        if (is_singular() && !is_page()) {
            $special_template = $post_template == '' || $post_template === 0 || $post_template == "0" ? 'default' : $post_template;
        } else {
            if (is_page()) {
                if ($post_template != '' && $post_template !== 0 && $post_template != "0" && !(is_page_template('no-sidebars.php') || is_page_template('1l-sidebar.php') || is_page_template('1r-sidebar.php') || is_page_template('2l-sidebars.php') || is_page_template('2r-sidebars.php') || is_page_template('1l1r-sidebar.php'))) {
                    $special_template = $post_template;
                }
            }
        }
    }
    if (!isset($special_template)) {
        return array();
    }
    switch ($special_template) {
        case 'default':
            $template = '';
            break;
        case '0':
        case 'no':
            $template = 'no-sidebars.php';
            break;
        case '1l':
            $template = '1l-sidebar.php';
            break;
        case '1r':
            $template = '1r-sidebar.php';
            break;
        case '1l1r':
            $template = '1l1r-sidebar.php';
            break;
        case '2l':
            $template = '2l-sidebars.php';
            break;
        case '2r':
            $template = '2r-sidebars.php';
            break;
        default:
            $template = '';
            break;
    }
    if ($template != '') {
        $template = 'page-template-' . str_replace('.', '-', $template);
        $suffusion->set_body_layout($template);
        $template = array($template);
    } else {
        $template = array();
    }
    return apply_filters('suffusion_pseudo_template_class', $template);
}