Beispiel #1
0
 static function create($x)
 {
     global $rea_ui_datasources;
     ///N:Construct a data source from a rest web service
     ///N:Pass an absolute URL to a rest service. EX: rea_ui_datasource::create( "http://example.com/ajax.php?list=towns")
     ///N:Pass a relative URL to a rest service. EX:  rea_ui_datasource::create( "./rest/ajax.php?list=towns")
     ///N:Pass the name of an event that returns rest data. EX: rea_ui_datasource::create( "app_event_towns")
     ///N:By default a data source from a web service is "static". Which means is populated only once. If you want to make sure data is fetched always set
     ///N:the second optional argument to "dynamic", as in rea_ui_datasource::create( "./rest/ajax.php?list=towns", 'dynamic')
     ///N:Construct a datasource from an array.  EX:  rea_ui_datasource::create( $anArray )
     $ar = func_get_args();
     if (count($ar) < 1) {
         return null;
     }
     if (is_string($ar[0])) {
         $s = $ar[0];
         $p = strtolower(substr($s, 0, 4));
         $v1 = count($ar) > 1 ? $ar[1] : 'static';
         if ($p == 'https' || $p == 'http' || substr($p, 0, 1) == '/' || substr($p, 0, 2) == './' || strpos($s, '?') !== false) {
             return rea_ui_datasource::ajax($s, $v1);
         } elseif ($p == 'ajax') {
             $n = parse_url($s);
             if (strlen($n['path']) > 0) {
             }
             return rea_ui_datasource::ajax($s, $v1);
         } elseif (substr($s, 0, 10) == 'app_event_') {
             $s = substr($s, 10);
             $s = REA_SELF_URL . '?ajax=' . $s;
             return rea_ui_datasource::ajax($s, $v1);
         }
     } elseif (is_array($ar[0])) {
         $ds = new rea_ui_datasource();
         $ds->def['source'] = 'json';
         foreach ($ar[0] as $k => $v) {
             $ds->def['items'][] = [$k => $v];
         }
         $rea_ui_datasources[] = $ds;
         return $ds;
     }
 }