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 .= ' '; 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() ) { $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'); } }