Your IP : 18.222.112.116


Current Path : /var/www/html/wp-content/themes/church-event/vamtam/admin/classes/
Upload File :
Current File : /var/www/html/wp-content/themes/church-event/vamtam/admin/classes/config-generator.php

<?php
/**
 * A meta programming helper used to generated the html code needed for a configuration page
 *
 * @package wpv
 */

/**
 * class WpvConfigGenerator
 */
class WpvConfigGenerator {

	/**
	 * Options page name
	 * @var string
	 */
	public $name;

	/**
	 * Options page config
	 * @var array
	 */
	protected $options;

	/**
	 * Initialize the generator
	 *
	 * @param string $name
	 * @param array $options definitions for the config page
	 */
	public function __construct($name, $options) {

		$this->name = $name;
		$this->options = $options;

		if(isset($_POST['save-wpv-config']))
			$this->save_config();

		$this->render();

		add_action('admin_footer', array(__CLASS__, 'print_templates'));
	}

	/**
	 * Save the current page config
	 */
	private function save_config() {
		wpv_save_config($this->options);

		global $wpv_config_messages;

		$wpv_config_messages .= '<div class="message updated fade"><p><strong>Updated Successfully</strong></p></div>';
	}

	/**
	 * Single options row template
	 * @param  string $template template name
	 * @param  array  $value    options row config
	 */
	protected function tpl($template, $value) {
		extract($value);
		if(!isset($desc))
			$desc = '';

		if(!isset($default))
			$default = null;

		if(!isset($class))
			$class = '';

		include WPV_ADMIN_HELPERS . "config_generator/$template.php";
	}

	/**
	 * Renders the option page
	 */
	private function render() {
		echo '<div class="wrap wpv-config-page">';
		echo '<form method="post" action="">';
		if(isset($_GET['allowreset'])) {
			echo '<input type="hidden" name="doreset" value="true" />';
		}

		if(isset($_GET['cacheonly'])) {
			echo '<input type="hidden" name="cacheonly" value="true" />';
		}

		foreach($this->options as $option) {
			if (method_exists($this, $option['type'])) {
				$this->{$option['type']}($option);
			} else {
				$this->tpl($option['type'], $option);
			}
		}

		echo '</div>'; // #theme-config

		if( !isset($this->options[0]['no-save-button']) ) {
			$this->tpl('save', array());
		}

		echo '</form>';
		echo '</div>';
	}

	/**
	 * Prints the templates for the Backbone.js-powered parts of our admin
	 */
	public static function print_templates() {
		$templates = apply_filters('wpv-admin-backbone-template-files', array(
			WPV_ADMIN_TEMPLATES . 'social-links.php'
		));

		foreach($templates as $file) {
			readfile($file, true);
		}
	}

	/**
	 * Auto fill <select> options
	 * @param  string $type autofill type
	 * @return array        options list
	 */
	public static function get_select_target_config($type) {
		return self::target_config($type);
	}

	/**
	 * Auto fill <select> options
	 * @param  string $type autofill type
	 * @return array        options list
	 */
	public static function target_config($type) {
		$config = array();
        switch($type){
			case 'page':
				$entries = get_pages('title_li=&orderby=name');
				foreach($entries as $key => $entry)
					$config[$entry->ID] = $entry->post_title;
			break;
			case 'cat':
				$entries = get_categories('orderby=name&hide_empty=0');
				foreach($entries as $key => $entry)
					$config[$entry->term_id] = $entry->name;
			break;
			case 'post':
				$entries = get_posts('orderby=title&numberposts=-1&order=ASC');
				foreach($entries as $key => $entry)
					$config[$entry->ID] = $entry->post_title;
			break;
			case 'portfolio':
				$entries = get_posts('post_type=portfolio&orderby=title&numberposts=-1&order=ASC');
				foreach($entries as $key => $entry)
					$config[$entry->ID] = $entry->post_title;
			break;
			case 'portfolio_category':
				$entries = get_terms('portfolio_category', 'orderby=name&hide_empty=0');
				foreach($entries as $key => $entry)
					$config[$entry->slug] = $entry->name;
			break;
			case 'tribe_events_category':
				$entries = get_terms('tribe_events_cat', 'orderby=name&hide_empty=0');
				foreach($entries as $key => $entry)
					$config[$entry->slug] = $entry->name;
			break;
			case 'wpv_sermons_category':
				$entries = get_terms('wpv_sermons_category', 'orderby=name&hide_empty=0');
				foreach($entries as $key => $entry)
					$config[$entry->slug] = $entry->name;
			break;
			case 'testimonials':
				$entries = get_posts('post_type=testimonials&orderby=title&numberposts=-1&order=ASC');
				foreach($entries as $key => $entry)
					$config[$entry->ID] = $entry->post_title;
			break;
			case 'testimonials_category':
				$entries = get_terms('testimonials_category', 'orderby=name&hide_empty=0');
				foreach($entries as $key => $entry)
					$config[$entry->slug] = $entry->name;
			break;
			case 'sidebars':
				$sidebars = wpv_get_option('custom-sidebars');
				$sidebars = explode(',', $sidebars);

				foreach($sidebars as $sidebar) {
					$config[$sidebar] = str_replace('wpv_sidebar-', '', $sidebar);
				}
			break;
		}

		return $config;
	}
}