本文整理汇总了PHP中CMS::mappers方法的典型用法代码示例。如果您正苦于以下问题:PHP CMS::mappers方法的具体用法?PHP CMS::mappers怎么用?PHP CMS::mappers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMS
的用法示例。
在下文中一共展示了CMS::mappers方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: before_run
protected static function before_run($env)
{
/**
* @event cms.run
* Вызывается после инициализации всех компонентов - в начале работы CMS::run()
*/
Events::call('cms.run');
$env->urls = CMS::urls();
foreach (CMS::mappers() as $name => $mapper) {
$env->urls->map(strtolower($name), $mapper);
}
}
示例2: process_app
/**
* @param WebKit_Environment $env
* @param WebKit_HTTP_Response $response
*
* @return Iterator
*/
public function process_app(WS_Environment $env, $response)
{
$uri = $env->request->urn;
$original_uri = $uri;
CMS::$original_uri = $uri;
CMS::$site = CMS::$defsite;
if (isset(CMS::$sites[CMS::$defsite]['page_main'])) {
CMS::$page_main = CMS::$sites[CMS::$defsite]['page_main'];
}
$_defdata = false;
if (isset(CMS::$sites[CMS::$defsite])) {
$_defdata = CMS::$sites[CMS::$defsite];
}
if (isset(CMS::$sites)) {
foreach (CMS::$sites as $site => $data) {
$_host = isset($data['host']) ? trim($data['host']) : '';
$_prefix = isset($data['prefix']) ? trim($data['prefix']) : '';
if ($_host != '' || $_prefix != '') {
$_bhost = false;
$_bprefix = false;
$_uri = $uri;
if ($_prefix != '') {
if ($m = Core_Regexps::match_with_results('{^/' . $_prefix . '/(.*)$}', $uri)) {
$_uri = '/' . $m[1];
$_bprefix = true;
} else {
continue;
}
}
if ($_host != '') {
if ($env->request->host == $_host) {
$_bhost = true;
} else {
if ($_host[0] == '{') {
if (Core_Regexps::match($_host, $env->request->host)) {
$_bhost = true;
} else {
continue;
}
} else {
continue;
}
}
}
if ($_bprefix || $_bhost) {
CMS::$site = $site;
if ($_bprefix) {
CMS::$site_prefix = '/' . $_prefix;
}
$uri = $_uri;
$env->request->uri($uri);
$_defdata = $data;
break;
}
}
}
}
if ($_defdata) {
if (isset($_defdata['page_main'])) {
CMS::$page_main = $_defdata['page_main'];
}
if (isset($_defdata['page_404'])) {
CMS::$page_404 = $_defdata['page_404'];
}
if (isset($_defdata['layout'])) {
CMS::$force_layout = $_defdata['layout'];
}
}
if (CMS::$db) {
$head = CMS::vars()->get('head');
if (isset($head['meta.title'])) {
$env->meta->title($head['meta.title']);
}
if (isset($head['meta.description'])) {
$env->meta->description($head['meta.description']);
}
if (isset($head['meta.keywords'])) {
$env->meta->keywords($head['meta.keywords']);
}
}
$curi = $uri;
if ($m = Core_Regexps::match_with_results('/^([^\\?]+)\\?/', $curi)) {
$curi = $m[1];
}
$use_layout = false;
// Просмотр всех мапперов зарегистрированных в системе
foreach (CMS::mappers() as $name => $mapper) {
// Если срабатывает маппер
if ($route = $mapper->route($env->request)) {
CMS::$current_mapper = $mapper;
CMS::$current_component_name = $name;
CMS::$current_route = $route;
try {
Core::load('Component.' . $name);
//.........这里部分代码省略.........