Example #1
0
 /**
  * Renders network options page.
  *
  * @since 4.0.0
  * @callback add_management_page()
  *
  * @access public
  */
 public function render_site_options_page()
 {
     $reseller = $this->_plugin->get_reseller();
     $tabs = array('mapping' => __('Map domain', 'domainmap'));
     if ($reseller && $reseller->is_valid()) {
         $tabs['purchase'] = __('Purchase domain', 'domainmap');
     }
     $activetab = strtolower(trim(filter_input(INPUT_GET, 'tab', FILTER_DEFAULT)));
     if (!in_array($activetab, array_keys($tabs))) {
         $activetab = key($tabs);
     }
     $page = null;
     $options = $this->_plugin->get_options();
     if ($activetab == 'purchase') {
         $page = new Domainmap_Render_Site_Purchase($tabs, $activetab, $options);
         $page->reseller = $reseller;
     } else {
         // fetch unchanged domain name from database, because get_option function could return mapped domain name
         $basedomain = parse_url($this->_wpdb->get_var("SELECT option_value FROM {$this->_wpdb->options} WHERE option_name = 'siteurl'"), PHP_URL_HOST);
         // if server ip addresses are provided, use it to populate DNS records
         if (!empty($options['map_ipaddress'])) {
             foreach (explode(',', trim($options['map_ipaddress'])) as $ip) {
                 if (filter_var($ip, FILTER_VALIDATE_IP)) {
                     $ips[] = $ip;
                 }
             }
         }
         // looks like server ip addresses are not set, then try to read it automatically
         if (empty($ips) && function_exists('dns_get_record')) {
             $dns = @dns_get_record($basedomain, DNS_A);
             if (is_array($dns)) {
                 $ips = wp_list_pluck($dns, 'ip');
             }
         }
         // prepare template
         $page = new Domainmap_Render_Site_Map($tabs, $activetab, $options);
         $page->origin = $this->_wpdb->get_row("SELECT * FROM {$this->_wpdb->blogs} WHERE blog_id = " . intval($this->_wpdb->blogid));
         $page->domains = (array) $this->_wpdb->get_results(sprintf("SELECT domain, is_primary FROM %s WHERE blog_id = %d ORDER BY id ASC", DOMAINMAP_TABLE_MAP, $this->_wpdb->blogid));
         $page->ips = $ips;
     }
     if ($page) {
         $page->render();
     }
 }
Example #2
0
 /**
  * Checks domain health status.
  *
  * @since 4.0.0
  *
  * @access public
  */
 public function check_health_status()
 {
     self::_check_premissions(Domainmap_Plugin::ACTION_HEALTH_CHECK);
     $domain = strtolower(trim(filter_input(INPUT_GET, 'domain')));
     if (!self::_validate_domain_name($domain)) {
         wp_send_json_error();
     }
     $valid = $this->_validate_health_status($domain);
     set_site_transient("domainmapping-{$domain}-health", $valid, $valid ? WEEK_IN_SECONDS : 10 * MINUTE_IN_SECONDS);
     ob_start();
     Domainmap_Render_Site_Map::render_health_column($domain);
     wp_send_json_success(array('html' => ob_get_clean()));
 }