예제 #1
0
 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;
 }