id) ? $field->id : $field->template . \rand(0,1000);
if ($trigger_update)
{
$this->addUpdate($field); // make updating standard
}
$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;
if (is_null($field_id) || $field_id == '')
return; // no bad names
if (! isset($this->defined_updatable[$field_id])) // no double sets
$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 .= ' ' . implode(',', $updatable) . '';
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 '';
}
/** @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() )
{
if (! is_array($active_networks))
{
$active_networks = array();
}
$networks = mbSocial()->networks()->get();
$selected = array();
$unselected = array();
$readmore = array();
// set active networks. Support doubles.
foreach($active_networks as $index => $network_name)
{
$network = mbSocial()->networks()->get($network_name);
$selected[$index] = $network;
}
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')
{
continue; // ignore active, since it's set earlier.
//$selected[$is_active] = $network;
} */
if ($priority == 'unselected')
$unselected[] = $network;
if ($priority == 'readmore')
$readmore[] = $network;
if ($network->get('network') == 'maxbutton' && $priority != 'readmore') // exceptions
{
$readmore[] = $network;
}
} // foreach networks
// 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');
}
public function getProMessage()
{
return __( sprintf('You can only change these settings in the PRO version. Click %shere%s for upgrading to MaxButtons PRO', '
', '') );
}
}