/** * retrieve registered tools * @return array:array tools (array(array('slug', 'name', 'description')) */ function custom_get_registered_tools($reload = false) { global $registered_tools; if ($reload || empty($registered_tools)) { $registered_tools = array(); if (custom_is_registered()) { $available_tools = custom_get_available_tools(); if (!empty($available_tools)) { foreach ($available_tools as $tool) { $active = apply_filters("custom_is_tool_" . $tool['slug'] . "_active", false); if ($active) { $registered_tools[] = $tool; } } } } } return $registered_tools; }
/** * Register and add settings */ public function page_init() { register_setting('custom_option_group', CUSTOM_CONFIG_OPTIONS, array($this, 'sanitize')); // --- Key activation add_settings_section('custom_settings_key_activation_id', __("Activation"), array($this, 'print_section_key_activation_info'), 'custom-admin'); add_settings_field('key-activation-id', __("enter your key", CUSTOM_PLUGIN_TEXT_DOMAIN), array($this, 'print_setting_key_activation'), 'custom-admin', 'custom_settings_key_activation_id'); $this->fields[] = "key-activation"; // --- Tools if (custom_is_registered()) { $tools = custom_get_available_tools(); foreach ($tools as $tool) { $fields = array(); $fields = apply_filters("custom_config_options_fields_tool_" . $tool['slug'], $fields); if (!empty($fields)) { // tool section $callback = null; if (function_exists("tool_" . $tool['slug'] . "_get_config_options_section_description")) { $callback = "tool_" . $tool['slug'] . "_get_config_options_section_description"; } $documentation_link = ""; if (function_exists("tool_" . $tool['slug'] . "_get_config_options_section_documentation_url")) { $documentation_link = '<a class="tool-documentation" href="' . call_user_func("tool_" . $tool['slug'] . "_get_config_options_section_documentation_url") . '" target="_blank"><i class="fa fa-info-circle"></i></a>'; } add_settings_section('custom_settings_tool_' . $tool['slug'] . '_id', $tool['name'] . $documentation_link, $callback, 'custom-admin'); // tool fields if (!empty($fields)) { foreach ($fields as $field) { add_settings_field($field['slug'], $field['title'], $field['callback'], 'custom-admin', 'custom_settings_tool_' . $tool['slug'] . '_id', array('options' => $this->options)); $this->fields[] = $field['slug']; } } } } } }