1, 'credit-in-footer' => 1 ) );
}
static function deactivate() {}
static function uninstall() {
delete_option( Blogfolio::options );
}
static function config( $key = null ) {
if( ! self::$config )
return null;
if( $key !== null )
return @self::$config[$key];
else
return self::$config;
}
static function after_setup_theme() {
self::$config = get_option( Blogfolio::options );
load_theme_textdomain( 'blogfolio', get_template_directory() . '/resources/languages' );
add_theme_support( 'custom-header', array(
'default-text-color' => '444',
'default-image' => '',
'width' => 718,
'height' => 80,
'flex-height' => true,
'flex-width' => true
) );
add_theme_support( 'custom-background', array(
'default-color' => '000',
'default-image' => get_template_directory_uri() . '/resources/images/darkwood.jpg',
) );
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'post-formats', array( 'audio', 'video', 'image', 'gallery', 'link', 'chat', 'quote', 'status', 'aside' ) );
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 272, 204, true );
register_nav_menu( 'primary', __( 'Primary Navigation', 'blogfolio' ) );
// hook into major sections of the site template
add_action( 'blogfolio_topbar', array( self::template(), 'topbar' ) );
add_action( 'blogfolio_site_header', array( self::template(), 'siteHeader' ) );
add_action( 'blogfolio_before_content', array( self::template(), 'beforeContent' ) );
add_action( 'blogfolio_loop_header', array( self::template(), 'loopHeader' ) );
add_action( 'blogfolio_post_feature', array( self::template(), 'postFeature' ) );
add_action( 'blogfolio_page_header', array( self::template(), 'pageHeader' ) );
add_action( 'blogfolio_page_footer', array( self::template(), 'pageFooter' ) );
add_action( 'blogfolio_single_header', array( self::template(), 'singleHeader' ) );
add_action( 'blogfolio_single_footer', array( self::template(), 'singleFooter' ) );
add_action( 'blogfolio_attachment_header', array( self::template(), 'attachmentHeader' ) );
add_action( 'blogfolio_attachment_footer', array( self::template(), 'attachmentFooter' ) );
add_action( 'blogfolio_after_content', array( self::template(), 'afterContent' ) );
add_action( 'blogfolio_site_footer', array( self::template(), 'siteFooter' ) );
}
static function init() {
add_editor_style( 'editor-style.css' );
add_filter( 'wp_link_pages_args', array('BlogfolioTemplate', 'wpLinkPagesArgs') );
remove_action( 'the_excerpt', 'sharing_display', 19 );
}
static function widgets_init() {
// Content Sidebar.
register_sidebar( array(
'name' => __( 'Content Sidebar', 'blogfolio' ),
'id' => 'content-sidebar',
'description' => __( 'For placing widgets alongside content', 'blogfolio' ),
'before_widget' => '
',
'after_widget' => '
',
'before_title' => ''
) );
// Site Header widget area
register_sidebar( array(
'name' => __( 'Site Header Widget Area', 'blogfolio' ),
'id' => 'site-header-widget-container',
'description' => __( 'For placing widgets immediately after the site header', 'blogfolio' ),
'before_widget' => '',
'before_title' => ''
) );
// Home page widget area
register_sidebar( array(
'name' => __( 'Home Page Widget Area', 'blogfolio' ),
'id' => 'home-page-widget-container',
'description' => __( 'For placing widgets on the home page', 'Blogfolio' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
// Pre content Widget area
register_sidebar( array(
'name' => __( 'Before Content Widget Area', 'blogfolio' ),
'id' => 'before-content-widget-container',
'description' => __( 'For placing widgets before the content', 'blogfolio' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
// Post content Widget area
register_sidebar( array(
'name' => __( 'After Content Widget Area', 'blogfolio' ),
'id' => 'after-content-widget-container',
'description' => __( 'For placing widgets after the content', 'blogfolio' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
}
static function wp_enqueue_scripts() {
wp_enqueue_style( 'css.normalize', get_template_directory_uri() . '/resources/css/normalize.css' );
wp_enqueue_style( 'html.styles', get_template_directory_uri() . '/resources/css/html.styles.css' );
wp_enqueue_style( 'wordpress.styles', get_template_directory_uri() . '/resources/css/wordpress.styles.css' );
wp_enqueue_style( 'wordpress.comments', get_template_directory_uri() . '/resources/css/wordpress.comments.css' );
wp_enqueue_style( 'Blogfolio.theme', get_template_directory_uri() . '/style.css' );
wp_enqueue_script( 'html5shiv', get_template_directory_uri() . '/resources/js/html5shiv/html5shiv.js' );
}
}
/**
* Defines template fragment loader, an enhanced version of get_template_part().
* Implements behaviour for displaying major sections of site, heavily leveraging template fragments.
* Also Provides some utility functionality for showing core components of the site.
*
*/
class BlogfolioTemplate {
const fragments = 'fragments/';
static function showNavigation( $themeposition ) {
self::loadFragment( 'navigation', $themeposition, compact( 'themeposition' ) );
}
static function showWidgetContainer( $widgetcontainer ) {
self::loadFragment( 'sidebar', $widgetcontainer, compact( 'widgetcontainer' ) );
}
static function showPostPreview() {
$format = get_post_format() or $format = 'standard';
switch( $format ) {
case 'audio' :
echo '';
break;
case 'video' :
echo '';
case 'image' :
echo '';
break;
case 'gallery' :
echo '';
break;
case 'link' :
echo '';
break;
case 'chat' :
echo '';
break;
case 'quote' :
echo '';
break;
case 'status' :
echo '';
break;
case 'aside' :
echo '';
break;
case 'standard' :
default :
echo '';
the_excerpt();
echo '
';
}
}
static function paginate( $location = null ) {
self::loadFragment( 'pagination', $location);
}
// For inserting a new render type 'next_and_number' in wp_link_pages(). Makes output consistent with paginate_links()
static function wpLinkPagesArgs( $args ) {
global $page, $numpages, $more, $pagenow;
if ( ! $more || $args[ 'next_or_number' ] != 'next_and_number' )
return $args;
$args[ 'next_or_number' ] = 'number';
if( $page - 1 )
$args[ 'before' ] = $args[ 'before' ]
. _wp_link_page( $page - 1 )
. $args[ 'link_before' ]
. $args[ 'previouspagelink' ]
. $args[ 'link_after' ]
. '';
if( $page < $numpages )
$args[ 'after' ] = ' ' . _wp_link_page( $page + 1 )
. $args[ 'link_before' ]
. $args[ 'nextpagelink' ]
. $args['link_after']
. ''
.$args[ 'after' ];
return $args;
}
static function loadFragment( $slug, $name = null, array $args = array() ) {
$fragments = array();
if( isset($name) )
$fragments[] = self::fragments . "{$slug}-{$name}.php";
$fragments[] = self::fragments . "{$slug}.php";
foreach($fragments as $fragment)
if( $template = get_stylesheet_directory() . "/$fragment" and file_exists($template) )
break;
elseif( $template = get_template_directory() . "/$template" and file_exists($template) ) {
break;
}
else
$template = false;
if($template)
self::_loadFragment( $template, $args );
return $template;
}
private static function _loadFragment( $template, array $args = array() ) {
extract($args);
require($template);
}
function topbar() {
if( Blogfolio::config( 'search-in-menubar' ) ) get_search_form();
self::showNavigation( 'primary' );
}
function siteHeader() {
self::showWidgetContainer( 'siteheader' );
}
function beforeContent() {
self::showWidgetContainer( 'beforecontent' );
}
function loopHeader() {
self::loadFragment( 'header', 'loop' );
self::loadFragment( 'postmeta', 'authorship' );
}
function postFeature() {
if( is_archive() || is_search() )
self::loadFragment( 'thumbnail', 'loop' );
else
self::loadFragment( 'thumbnail' );
}
function pageHeader() {
self::loadFragment( 'header', 'page' );
}
function pageFooter() {}
function singleHeader() {
self::loadFragment( 'header', 'single' );
self::loadFragment( 'postmeta', 'authorship' );
if( has_excerpt() ) {
echo '';
the_excerpt();
echo '
';
}
}
function singleFooter() {
self::loadFragment( 'postmeta', 'classification' );
}
function attachmentHeader() {
self::loadFragment( 'header', 'attachment' );
self::loadFragment( 'postmeta', 'authorship' );
if( has_excerpt() ) {
echo '';
the_excerpt();
echo '
';
}
}
function attachmentFooter() {
global $post;
$link = get_permalink( $post->post_parent );
$linktext = sprintf( __( 'Return to %s', 'blogfolio' ), get_the_title( $post->post_parent ) );
echo '';
}
function afterContent() {
self::showWidgetContainer( null );
self::showWidgetContainer( 'aftercontent' );
self::loadFragment( 'comments' );
}
function siteFooter() {
self::loadFragment( 'sitefooter' );
}
}
?>