/** * Adds the settings page to the Settings menu. * * @wp-hook admin_menu * * @return void */ public function add() { $menu_title = esc_html_x('Taxonomies', 'Menu item title', 'linked-taxonomies'); $capability = $this->settings_page->get_capability('list'); $menu_slug = $this->settings_page->get_slug(); add_options_page($this->title, $menu_title, $capability, $menu_slug, array($this, 'render')); }
/** * Sanitizes the setting data. * * @param string[][] $data Settings data. * * @return string[][] */ public function sanitize($data) { if (!$this->settings_page->current_user_can('edit')) { $error = $this->settings_error_factory->create('no-permission-to-edit'); $error->add(); $data = $this->option->get(); return $data; } $sanitized_data = array(); foreach ($data as $source => $targets) { if (!is_string($source) || $source === '') { $error = $this->settings_error_factory->create('invalid-taxonomy'); $error->add(); } else { foreach ($targets as $target => $link) { if (!is_string($target) || $target === '') { $error = $this->settings_error_factory->create('invalid-taxonomy'); $error->add(); } else { switch ((int) $link) { case 1: $sanitized_data = $this->add_link($sanitized_data, $source, $target); break; case 2: $sanitized_data = $this->add_link($sanitized_data, $source, $target, TRUE); break; } } } } } return $sanitized_data; }
/** * @covers tfrommen\LinkedTaxonomies\SettingsPage\SettingsPage::get_slug * * @return void */ public function test_get_slug() { $testee = new Testee(); $this->assertSame('linked_taxonomies', $testee->get_slug()); }
/** * Constructor. Sets up the properties. * * @param Script $script Script model. * @param Style $style Style model. * @param SettingsPage $settings_page Settings page model. */ public function __construct(Script $script, Style $style, SettingsPage $settings_page) { $this->script = $script; $this->style = $style; $this->hook_suffix = 'settings_page_' . $settings_page->get_slug(); }