Пример #1
0
 static function init()
 {
     global $Opt;
     assert(self::$original_opt === null);
     self::$original_opt = $Opt;
     $confid = get($Opt, "confid");
     if (!$confid && PHP_SAPI == "cli") {
         $cliopt = getopt("n:", array("name:"));
         if (get($cliopt, "n")) {
             $confid = $cliopt["n"];
         } else {
             if (get($cliopt, "name")) {
                 $confid = $cliopt["name"];
             }
         }
     } else {
         if (!$confid) {
             $base = Navigation::site_absolute(true);
             if ($multis = get($Opt, "multiconferenceAnalyzer")) {
                 foreach (is_array($multis) ? $multis : array($multis) as $multi) {
                     list($match, $replace) = explode(" ", $multi);
                     if (preg_match("`\\A{$match}`", $base, $m)) {
                         $confid = $replace;
                         for ($i = 1; $i < count($m); ++$i) {
                             $confid = str_replace("\${$i}", $m[$i], $confid);
                         }
                         break;
                     }
                 }
             } else {
                 if (preg_match(',/([^/]+)/\\z,', $base, $m)) {
                     $confid = $m[1];
                 }
             }
         }
     }
     if (!$confid) {
         $confid = "__nonexistent__";
     } else {
         if (!preg_match(',\\A[-a-zA-Z0-9_][-a-zA-Z0-9_.]*\\z,', $confid)) {
             $confid = "__invalid__";
         }
     }
     self::assign_confid($Opt, $confid);
 }