Your IP : 18.191.83.45


Current Path : /home/church/www/wp-content/plugins/event-list/admin/includes/
Upload File :
Current File : /home/church/www/wp-content/plugins/event-list/admin/includes/admin-functions.php

<?php
if(!defined('WP_ADMIN')) {
	exit;
}

require_once(EL_PATH.'includes/options.php');

// This class handles general functions which can be used on different admin pages
class EL_Admin_Functions {
	private static $instance;
	private $options;

	public static function &get_instance() {
		// Create class instance if required
		if(!isset(self::$instance)) {
			self::$instance = new self();
		}
		// Return class instance
		return self::$instance;
	}

	private function __construct() {
		$this->options = &EL_Options::get_instance();
		$this->options->load_options_helptexts();
	}

	public function show_option_form($section, $options) {
		$options = wp_parse_args($options, array('page' => admin_url('options.php'), 'button_text' => null, 'button_class' => 'primary large'));
		$out = '
		<form method="post" action="'.$options['page'].'">
		';
		ob_start();
		settings_fields('el_'.$section);
		$out .= ob_get_contents();
		ob_end_clean();
		$out .= $this->show_option_table($section);
		$out .= get_submit_button($options['button_text'], $options['button_class']);
		$out .='
		</form>';
		return $out;
	}

	public function show_option_table($section) {
		$out = '
			<div class="el-settings">
			<table class="form-table">';
		foreach($this->options->options as $oname => $o) {
			if($o['section'] == $section) {
				$out .= '
					<tr>
						<th>';
				if($o['label'] != '') {
					$out .= '<label for="'.$oname.'">'.$o['label'].':</label>';
				}
				$out .= '</th>
					<td>';
				switch($o['type']) {
					case 'checkbox':
						$out .= $this->show_checkbox($oname, $this->options->get($oname), $o['caption'], isset($o['disable']));
						break;
					case 'dropdown':
						$out .= $this->show_dropdown($oname, $this->options->get($oname), $o['caption'], isset($o['disable']));
						break;
					case 'radio':
						$out .= $this->show_radio($oname, $this->options->get($oname), $o['caption'], isset($o['disable']));
						break;
					case 'text':
						$out .= $this->show_text($oname, $this->options->get($oname), isset($o['disable']));
						break;
					case 'textarea':
						$out .= $this->show_textarea($oname, $this->options->get($oname), isset($o['disable']));
						break;
					case 'file-upload':
						$out .= $this->show_file_upload($oname, $o['maxsize'], isset($o['disable']));
				}
				$out .= '
					</td>
					<td class="description">'.$o['desc'].'</td>
				</tr>';
			}
		}
		$out .= '
		</table>
		</div>';
		return $out;
	}

	public function show_checkbox($name, $value, $caption, $disabled=false) {
		$out = '
							<label for="'.$name.'">
								<input name="'.$name.'" type="checkbox" id="'.$name.'" value="1"';
		if($value == 1) {
			$out .= ' checked="checked"';
		}
		$out .= $this->get_disabled_text($disabled).' />
								'.$caption.'
							</label>';
		return $out;
	}

	public function show_dropdown($name, $selected, $value_array, $class_array=null, $disabled=false) {
		$out = '
							<select id="'.$name.'" name="'.$name.'"'.$this->get_disabled_text($disabled).'>';
		foreach($value_array as $key => $value) {
			$class_text = isset($class_array[$key]) ? 'class="'.$class_array[$key].'" ' : '';
			$selected_text = $selected===$key ? 'selected ' : '';
			$out .= '
								<option '.$class_text.$selected_text.'value="'.$key.'">'.$value.'</option>';
		}
		$out .= '
							</select>';
		return $out;
	}

	public function show_radio($name, $selected, $value_array, $disabled=false) {
		$out = '
							<fieldset>';
		foreach($value_array as $key => $value) {
			$checked = ($selected === $key) ? 'checked="checked" ' : '';
			$out .= '
								<label title="'.$value.'">
									<input type="radio" '.$checked.'value="'.$key.'" name="'.$name.'">
									<span>'.$value.'</span>
								</label>
								<br />';
		}
		$out .= '
							</fieldset>';
		return $out;
	}

	public function show_text($name, $value, $disabled=false) {
		$out = '
							<input name="'.$name.'" type="text" id="'.$name.'" value="'.$value.'"'.$this->get_disabled_text($disabled).' />';
		return $out;
	}

	public function show_textarea($name, $value, $disabled=false) {
		$out = '
							<textarea name="'.$name.'" id="'.$name.'" rows="5" class="large-text code"'.$this->get_disabled_text($disabled).'>'.$value.'</textarea>';
		return $out;
	}

	public function show_file_upload($name, $max_size, $disabled=false) {
		$out = '
							<input name="'.$name.'" type="file" maxlength="'.$max_size.'">';
		return $out;
	}

	public function get_disabled_text($disabled=false) {
		return $disabled ? ' disabled="disabled"' : '';
	}
}
?>