/** * * @param string $query SQL query * Вместо имени таблицы можно использовать '%t%' * @throws nc_search_data_exception|Exception * @return nc_search_data_persistent_collection */ public function select_from_database($query) { try { $this->set_mysql_encoding(); parent::select_from_database($query); $this->restore_mysql_encoding(); } catch (Exception $e) { $this->restore_mysql_encoding(); throw $e; } return $this; }
/** * Возвращает пути для указанного сайта * * @param int $site_id Идентификатор сайта * @param bool $get_disabled Если true, также возвращает отключённые пути * @param bool $reload Если true, перезагружает данные из базы данных * @return nc_routing_route_collection */ public static function get_routes($site_id, $get_disabled = false, $reload = false) { // получить включённые маршруты из коллекции всех маршрутов: if (!$reload && !$get_disabled && isset(self::$all_routes[$site_id])) { self::$enabled_routes[$site_id] = self::$all_routes[$site_id]->where('enabled', 1); } $stored = $get_disabled ? 'all_routes' : 'enabled_routes'; if ($reload || !isset(self::${$stored}[$site_id])) { $query = "SELECT * FROM `%t%` WHERE `Site_ID` = " . (int) $site_id; if (!$get_disabled) { $query .= " AND `Enabled` = 1"; } $query .= " ORDER BY `Priority`"; self::${$stored}[$site_id] = nc_record_collection::load("nc_routing_route", $query); } return self::${$stored}[$site_id]; }