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 .= ' '; 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', ' ', '') ); } }