public static function getDomains($full = false) { if (!self::$domains) { $domain_model = new siteDomainModel(); $q = $domain_model->select('*'); if (!wa()->getUser()->isAdmin('site')) { $domain_ids = wa()->getUser()->getRights('site', 'domain.%', false); if ($domain_ids) { $q->where("id IN ('" . implode("','", $domain_ids) . "')"); } else { $q->where('0'); } } self::$domains = $q->fetchAll('id'); if (wa()->getUser()->isAdmin('site')) { $routes = wa('wa-system')->getConfig()->getRouting(); // hide default routing (for all domains) if (isset($routes['default'])) { unset($routes['default']); } $ds = array(); foreach (self::$domains as $d) { $ds[] = $d['name']; } foreach ($routes as $r_id => $r) { if (!is_array($r)) { unset($routes[$r_id]); } } $new_domains = array_diff(array_keys($routes), $ds); if ($new_domains) { foreach ($new_domains as $d) { $domain_model->insert(array('name' => $d)); } self::$domains = $domain_model->select('*')->fetchAll('id'); } if (!self::$domains) { $domain_model->insert(array('name' => wa()->getConfig()->getDomain())); self::$domains = $domain_model->select('*')->fetchAll('id'); } } // hide default routing (for all domains) if (isset(self::$domains['default'])) { unset(self::$domains['default']); } } $result = array(); foreach (self::$domains as $id => $d) { $result[$id] = $d['title'] ? $d['title'] : $d['name']; if ($full) { $result[$id] = array('name' => $d['name'], 'title' => $result[$id], 'style' => $d['style']); } } return $result; }