<?php



include_once( 'helpers/functions.php' );



class Bunch_Base extends Bunch_Functions

{

	public $path = '';

	public $url = '';

	public $inc = '';

	public $inc_url = '';

	public $page_settings;

	

	

	function __construct()

	{

		$this->path = get_template_directory().'/';

		$this->url = get_template_directory_uri().'/';

		$this->inc = $this->path.'includes/';

		$this->inc_url = $this->url.'includes/';

		

		parent::__construct();

	}

	

	function __set_attrib( $attr = array() )

	{

		$res = ' ';

		foreach( $attr as $k => $v )

		{

			$res .= $k.'="'.$v.'" ';

		}

		

		return $res;

	}

	

	function option( $key = '' )

	{

		$theme_options = get_option( BUNCH_NAME.'_theme_options' );

		

		if( $key ) return bunch_set( $theme_options, $key );

		

		return $theme_options;

	}

	

	function includes( $path = '', $url = false )

	{

		$child = get_stylesheet_directory().'/';

		if( file_exists( $child.$path ) ) {

			if( $url ) return get_stylesheet_directory_uri().'/'.$path;

			else return $child.$path;

		}

		

		if( $url ) return get_template_directory_uri().'/'.$path;

		else return $this->path.$path;

	}

	

	function get_meta( $key = '', $id = '' )

	{

		global $post, $post_type;

		$post_type = $post->post_type;//( $post_type ) ? $post_type : $post->post_type;

		

		$id = ( $id ) ? $id : bunch_set( $post, 'ID' );

		

		$key = ( $key ) ? $key : '_bunch_'.$post_type.'_settings';



		$meta = get_post_meta( $id, $key, true );

		

		return ( $meta ) ? $meta : false;

	}

	

	function set_meta_key( $post_type )

	{

		if( ! $post_type ) return;

		

		return '_bunch_'.$post_type.'_settings';

		

	}

	

	function get_term_meta( $key = '' )

	{

		$object = get_queried_object();

		

		//$id = ( $id ) ? $id : bunch_set( $post, 'ID' );

		$key = ( $key ) ? $key.$object->term_id : '_bunch_'.$object->taxonomy.'_settings'.$object->term_id;



		$meta = get_option( $key );

		

		return ( $meta ) ? $meta : false;

	}

	

	function set_term_key( $post_type )

	{

		if( ! $post_type ) return;

		

		return '_bunch_'.$post_type.'_settings';

		

	}

	

	function page_template( $tpl )

	{

		$page = get_pages(array('meta_key' => '_wp_page_template','meta_value' => $tpl));

		if($page) return current( (array)$page);

		else return false;

	}

	

	function user_extra( $extras = array() )

	{

		$this->extras = $extras;

		

		add_filter('user_contactmethods', array( $this, 'newuserfilter' ) );



		

	}



	function newuserfilter($old)

	{

		$array = $this->extras;

		

		$new = array_merge($array, $old);

		return $new;

	}

	

	function first_last( $current, $cols )

	{

		$current++;

		if( $current == 1 ) return ' first';

		else if( (( $current ) % $cols ) == 0 ) return ' last';

		else if( ( ( $current - 1 ) % $cols ) == 0 ) return ' first';

	}



}



$GLOBALS['_bunch_base'] = new Bunch_Base;















