waRouting

Управление данными маршрутизации HTTP-запросов

Содержание...

Для получения экземпляра класса waRouting и вызова его публичных нестатичных методов, используйте конструкцию wa()->getRouting(), например:

wa()->getRouting()->getCurrentUrl();

Методы

public static function clearUrl ($url)

Очищает адрес правила маршрутизации от служебных символов.

Параметры

Пример

waRouting::clearUrl('site/*');

Результат

'site/'

public function getByApp ($app_id, $domain = null)

Возвращает все правила маршрутизации во фронтенде, настроенные для указанного приложения.

Параметры

Пример 1

wa()->getRouting()->getByApp('shop');

Результат

array(
  'domain1.ru' => array(
    1 => array(
      'url' => '*',
      'app' => 'shop',
      '_name' => 'Магазин №1',
      'theme' => 'default',
      'theme_mobile' => 'default',
      'locale' => 'ru_RU',
      'title' => '',
      'meta_keywords' => '',
      'meta_description' => '',
      'og_title' => '',
      'og_image' => '',
      'og_video' => '',
      'og_description' => '',
      'og_type' => '',
      'url_type' => '1',
      'type_id' => '0',
      'currency' => 'RUB',
      'stock_id' => '1',
      'public_stocks' => '0',
      'drop_out_of_stock' => '2',
      'payment_id' => '0',
      'shipping_id' => '0',
    ),
  ),
  'domain2.ru' => array(
    3 => array(
      'url' => 'shop/*',
      'app' => 'shop',
      '_name' => 'Магазин №2',
      'theme' => 'custom',
      'theme_mobile' => 'mobile',
      'locale' => 'ru_RU',
      'title' => '',
      'meta_keywords' => '',
      'meta_description' => '',
      'og_title' => '',
      'og_image' => '',
      'og_video' => '',
      'og_description' => '',
      'og_type' => '',
      'url_type' => '0',
      'type_id' => '0',
      'currency' => 'RUB',
      'stock_id' => '2',
      'public_stocks' => '0',
      'drop_out_of_stock' => '0',
      'payment_id' => '0',
      'shipping_id' => '0',
    ),
  ),
)

Пример 2

wa()->getRouting()->getByApp('shop', 'domain1.ru')

Результат

array(
  'url' => '*',
  'app' => 'shop',
  '_name' => 'Магазин №1',
  'theme' => 'default',
  'theme_mobile' => 'default',
  'locale' => 'ru_RU',
  'title' => '',
  'meta_keywords' => '',
  'meta_description' => '',
  'og_title' => '',
  'og_image' => '',
  'og_video' => '',
  'og_description' => '',
  'og_type' => '',
  'url_type' => '1',
  'type_id' => '0',
  'currency' => 'RUB',
  'stock_id' => '1',
  'public_stocks' => '0',
  'drop_out_of_stock' => '2',
  'payment_id' => '0',
  'shipping_id' => '0',
),

public function getCurrentUrl()

Возвращает относительный URL текущего HTTP-запроса без GET-параметров.

Пример

$current_url = wa()->getRouting()->getCurrentUrl();

public function getDomain ($domain = null, $check = false, $return_alias = true)

Возвращает адрес сайта из URL текущего HTTP-запроса либо указанный адрес сайта.

Параметры

Пример

$main_site_domain = wa()->getRouting()->getDomain(null, false, true);

public function getDomains()

Возвращает массив адресов всех сайтов, настроенных во фреймворке.

Пример

wa()->getRouting()->getDomains();

Результат

array(
  0 => 'domain1.ru',
  1 => 'domain2.ru',
  2 => 'domain3.ru',
)

public function getRootUrl()

Возвращает корневой URL правила маршрутизации, соответствующего текущему HTTP-запросу во фронтенде.

Пример

wa()->getRouting()->getDomains();

Результат

//для правила маршрутизации с адресом shop/*
'shop/'
    
//для правила маршрутизации с адресом *
''

public function getRoute ($name = null)

Возвращает параметры правила маршрутизации для текущего HTTP-запроса во фронтенде.

Параметры

Пример 1

wa()->getRouting()->getRoute();

Результат

array(
  'url' => 'site/*',
  'app' => 'site',
  'theme' => 'default',
  'theme_mobile' => 'default',
  'locale' => 'ru_RU',
)

Пример 2

wa()->getRouting()->getRoute('theme');

Результат

'default'

public function getRoutes ($domain = null)

Возвращает массив правил маршрутизации указанного либо текущего сайта.

Параметры

Пример

wa()->getRouting()->getRoutes();

Результат

array(
  3 => array(
    'url' => 'site/*',
    'app' => 'site',
    'theme' => 'default',
    'theme_mobile' => 'default',
    'locale' => 'ru_RU',
  ),
  2 => array(
    'url' => 'photos/*',
    'app' => 'photos',
    'theme' => 'default',
    'theme_mobile' => 'default',
    'locale' => 'ru_RU',
    'url_type' => '0',
    'title' => '',
    'meta_keywords' => '',
    'meta_description' => '',
  ),
  1 => array(
    'url' => '*',
    'app' => 'shop',
    'theme' => 'default',
    'theme_mobile' => 'default',
    'locale' => 'ru_RU',
    'title' => '',
    'meta_keywords' => '',
    'meta_description' => '',
    'og_title' => '',
    'og_image' => '',
    'og_video' => '',
    'og_description' => '',
    'og_type' => '',
    'url_type' => '1',
    'type_id' => '0',
    'currency' => 'RUB',
    'stock_id' => '7',
    'public_stocks' => '0',
    'drop_out_of_stock' => '2',
    'payment_id' => '0',
    'shipping_id' => '0',
  ),
)

public function getUrl ($path, $params = array(), $absolute = false, $domain_url = null, $route_url = null)

Возвращает URL для запроса через фронтенд, сформированный на основании указанных параметров маршрутизации.

Параметры

Пример

wa()->getRouting()->getUrl(
    'shop/frontend/category/<category_url>/',
    array('category_url' => 'sale'),
    true,
    'domain2.ru',
    'facebook/*'
);

Результат

'http://domain2.ru/facebook/category/sale/'

public static function getUrlByRoute ($route, $domain = null)

Возвращает корневой URL запроса во фронтенде для указанного правила маршрутизации.

Параметры

Пример

waRouting::getUrlByRoute(
    array('url' => 'shop/*'),
    'domain.ru'
);

Результат

'http://domain.ru/shop/'

public function isAlias ($domain)

Возвращает основной адрес сайта для сайта-псевдонима.

Параметры

Пример

wa()->getRouting()->isAlias('alias-domain.ru');

Результат

'main-domain.ru'