78 lines
2.3 KiB
PHP
Executable File
78 lines
2.3 KiB
PHP
Executable File
#!/usr/bin/env php
|
|
<?php
|
|
/**
|
|
* 禅道系统命令行访问入口。使用方法:http://www.zentao.net/help-read-78899.html
|
|
* The cli router file of zentaopms.
|
|
*
|
|
* @copyright Copyright 2009-2013 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
|
|
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
|
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
|
* @package bin
|
|
* @version $Id$
|
|
* @link http://www.zentao.net
|
|
*/
|
|
error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);
|
|
define('IN_SHELL', true);
|
|
|
|
/* Judge the args. */
|
|
if($argc < 2 or $argc > 3) die('Usage: ' . basename(__FILE__) . " <request>\n");
|
|
|
|
/* Parse the request into params. */
|
|
$request = parse_url(trim($argv[1]));
|
|
$_SERVER['HTTP_HOST'] = $request['host'];
|
|
$_SERVER['SCRIPT_NAME'] = $request['path'];
|
|
|
|
/* Load the framework. */
|
|
chdir(dirname(dirname(__FILE__)));
|
|
include './framework/router.class.php';
|
|
include './framework/control.class.php';
|
|
include './framework/model.class.php';
|
|
include './framework/helper.class.php';
|
|
|
|
/* Instance the app and run it. */
|
|
$app = router::createApp('pms', dirname(dirname(__FILE__)), 'router');
|
|
$common = $app->loadCommon();
|
|
|
|
/* Set the PATH_INFO request. */
|
|
if(!empty($argv[2]) && $argv[2] == 'pathinfo')
|
|
{
|
|
$config->requestType = 'PATH_INFO';
|
|
$config->requestFix = '-';
|
|
}
|
|
|
|
/* Set the PATH_INFO variable. */
|
|
if($config->requestType == 'PATH_INFO')
|
|
{
|
|
$path = pathinfo($request['path']);
|
|
|
|
/* url like http://pms.zentao.net/zentao/my-todo.html, PATH_INFO is 'my-todo.html'. */
|
|
if(strpos($path['basename'], $config->requestFix))
|
|
{
|
|
$_SERVER['PATH_INFO'] = $path['basename'];
|
|
}
|
|
else
|
|
{
|
|
/* url like http://pms.zentao.net/zentao/my/, PATH_INFO is 'my'. */
|
|
if(is_dir('./module/' . $path['basename']))
|
|
{
|
|
$_SERVER['PATH_INFO'] = $path['basename'];
|
|
}
|
|
/* url like http://pms.zentao.net/zentao/, PATH_INFO is '/'. */
|
|
else
|
|
{
|
|
$_SERVER['PATH_INFO'] = '/';
|
|
}
|
|
}
|
|
|
|
$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
|
|
}
|
|
else
|
|
{
|
|
parse_str($request['query'], $_GET);
|
|
$_SERVER['SCRIPT_NAME'] = $request['path'];
|
|
$_SERVER['REQUEST_URI'] = isset($request['query']) ? $request['query'] : '';
|
|
}
|
|
|
|
$app->parseRequest();
|
|
$app->loadModule();
|