# share-button/0.9/classes/class-admin.php

Social Share Buttons, version 0.9. 154 lines.

- Page: https://pluginprobe.com/plugins/share-button/0.9/code/classes/class-admin.php
- Raw: https://pluginprobe.com/plugins/share-button/0.9/raw/classes/class-admin.php
- Modified: 2017-11-22T15:53:42+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/share-button/0.9/code/classes/class-admin.php#L10-L20`.

```php
<?php
namespace MBSocial;
defined('ABSPATH') or die('No direct access permitted');

// Helper for admin pages / fields / saving etc.

class admin
{
	protected $fields = array();
	protected $defined_fields = array();
	protected $defined_updatable = array();
	protected static $namespace;

	public function __construct()
	{
		self::$namespace = __NAMESPACE__ . '\\';  // PHP 5.3

	}

	// add a maxfield to be displayed on the admin.
	public function addfield( $field, $start = '', $end = '')
	{
		$field_id = isset($field->id) ? $field->id : $field->template . \rand(0,1000);

		$field->publish = false;  // Output fields via class - never output.

				$this->fields[$field_id] = array('field' => $field,
								   'start' => $start,
								   'end' => $end);
		$this->fields = apply_filters('mbsocial/editor/addfield', $this->fields, $field);

		$this->defined_fields[] = $field_id;

	}

	public function addUpdate($field)
	{
		$field_id = $field->id;
		$this->defined_updatable[] = $field_id;
	}

	public function namespaceit($var)
	{
		return self::$namespace . $var;
	}

	public function display_fields($clean = true, $return = false)
	{
		$fields = apply_filters('mbsocial/display_fields', $this->fields);
		$output = '';


		foreach($fields as $id => $item)
		{
			$field = $item['field'];
 			$output .= $field->output($item['start'], $item['end']);
		}



		// auto-update system
		$updatable = $this->defined_updatable;
		foreach($updatable as $index => $field)
		{
			$updatable[$index] = '#' . $field;
		}

		$output .= ' <span class="updatables hidden">' . implode(',', $updatable) . '</span>';

		if ($clean)
		{
			$this->fields = array();
			$this->defined_updatable = array();
		}

		if (! $return)
			echo $output;
		else
			return $output;

	}

	public function output_defined_fields()
	{
		$fields = $this->defined_fields;
		$fields = implode(',', $fields);

		echo '<input type="hidden" name="defined_fields" value="' . $fields . '">';
	}

	/** @param $active_networks - Networks that were saved by the users. This should be loaded instead of the default ones **/
	public function get_default_networks($active_networks = array() )
	{
		$networks = mbSocial()->networks()->get();

		$selected = array();
		$unselected = array();
		$readmore = array();

		foreach($networks as $index => $network)
		{
			$priority = $network->get('priority');
			$is_active = array_search($network->get('network'), $active_networks); // retrieve the array index

			if ($is_active !== false)
				$priority = 'selected';

			if ($priority == 'selected')
				$selected[$is_active] = $network;
			if ($priority == 'unselected')
				$unselected[] = $network;
			if ($priority == 'readmore')
				$readmore[] = $network;


		}


		// Sort networks by order saved.
		ksort($selected);

		return array('selected' => $selected, 'unselected' => $unselected, 'readmore' => $readmore);
	}



	/* Load saved networks, check which ones are selected. Load others as default settings if no save */
	public function get_networks($active_networks = array() )
	{
		$networks_array = $this->get_default_networks($active_networks);
		return $networks_array;
	}

	public function header( $args = array() )
	{
		$defaults = array(
			'title' => '',
		);

		$args = array_merge($defaults, $args);
		extract($args);

		include_once( mbSocial()->get_plugin_path() . '/admin/header.php');
	}

	public function footer()
	{
		include_once( mbSocial()->get_plugin_path() . '/admin/footer.php');
	}



}

```
