/** * @param $code * @return \TAO\Infoblock * @throws TAONoInfoblockFileException */ public static function getInfoblock($code) { if (is_numeric($code)) { $code = self::getInfoblockCode($code); } if (!isset(self::$infoblocks[$code])) { $name = \TAO\Infoblock::getClassName($code); $e = new $name($code); self::$infoblocks[$code] = $e; foreach ($e->urls() as $mode => $data) { if (isset($data['default']) && isset($data['page'])) { $url = $data['default']; $re = '{^' . str_replace('{id}', '(?<id>\\d+)', $url) . '$}'; \TAO\Urls::addDefaultUrl($re, array('infoblock' => $code, 'mode' => $mode, 'default_url' => $url, 'page' => $data['page'])); } } } return self::$infoblocks[$code]; }