Ejemplo n.º 1
0
 /**
  * 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'));
 }
Ejemplo n.º 2
0
 /**
  * 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());
 }
Ejemplo n.º 4
0
 /**
  * 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();
 }