private static function _IDispatch($scriptFilename, $requestMethod, &$phpFilename) { self::$s_sFile = $scriptFilename; self::$s_sFunc = ''; self::$s_sMethod = $requestMethod; $phpFilename = ''; if ('.php' === substr(self::$s_sFile, -4)) { if (!is_file(self::$s_sFile)) { return self::$s_iErrno = self::ERR_FILE; } $phpFilename = self::$s_sFile; } else { $pathinfo = pathinfo(self::$s_sFile); if (is_file(self::$s_sFile)) { $render = new Ko_View_Render_FILE(); $render->oSetData('filename', self::$s_sFile); Ko_Web_Response::VSetContentType($pathinfo['extension']); Ko_Web_Response::VAppendBody($render); Ko_Web_Response::VSend(); } else { if (is_dir(self::$s_sFile)) { list($rewrite, $httpcode) = Ko_Web_Rewrite::AGet(); list($path, $query) = explode('?', $rewrite, 2); if (isset($query)) { $query = '?' . $query; } Ko_Web_Response::VSetRedirect($path . '/' . $query); Ko_Web_Response::VSend(); } else { self::$s_sFunc = $pathinfo['basename']; self::$s_sFile = $pathinfo['dirname'] . '.php'; if (!is_file(self::$s_sFile)) { return self::$s_iErrno = self::ERR_FILE; } self::_VRequireFile(self::$s_sFile); if (!isset(self::$s_aRoute[self::$s_sFunc])) { return self::$s_iErrno = self::ERR_FUNC; } if (!isset(self::$s_aRoute[self::$s_sFunc][self::$s_sMethod])) { return self::$s_iErrno = self::ERR_METHOD; } call_user_func(self::$s_aRoute[self::$s_sFunc][self::$s_sMethod]); } } } return self::$s_iErrno = 0; }
<?php /** * Created by JetBrains PhpStorm. * User: Jichen Zhou * Date: 2015年12月24日 * Time: 下午6:19 */ Ko_Web_Route::VGet('index', function () { $msg = 'hello world'; $render = new KRender_web(); $render->oSetTemplate('operation/menu/list.tpl')->oSetData('msg', $msg)->oSend(); });
private static function _IWebRoute() { if (!is_file(self::$s_sFile)) { return self::$s_iErrno = self::ERR_FILE; } self::_VRequireFile(self::$s_sFile); if (!isset(self::$s_aRoute[self::$s_sFunc])) { return self::$s_iErrno = self::ERR_FUNC; } if (!isset(self::$s_aRoute[self::$s_sFunc][self::$s_sMethod])) { return self::$s_iErrno = self::ERR_METHOD; } call_user_func(self::$s_aRoute[self::$s_sFunc][self::$s_sMethod]); return self::$s_iErrno = 0; }
Ko_Web_Route::VGet('item', function () { $loginApi = new KUser_loginApi(); $loginuid = $loginApi->iGetLoginUid(); $uid = Ko_Web_Request::IGet('uid'); $photoid = Ko_Web_Request::IGet('photoid'); $storageApi = new KStorage_Api(); $photoApi = new KPhoto_Api(); $photoinfo = $photoApi->getPhotoInfo($uid, $photoid); if (empty($photoinfo)) { Ko_Web_Response::VSetRedirect('/'); Ko_Web_Response::VSend(); exit; } $photoinfo['image_src'] = $storageApi->sGetUrl($photoinfo['image'], ''); $photoinfo['image_small'] = $storageApi->sGetUrl($photoinfo['image'], 'imageView2/1/w/60'); $photoinfo['image_exif'] = $storageApi->aGetImageExif($photoinfo['image']); $agentinfo = KUser_agentApi::get(); if ($agentinfo['screen']['height'] < 1000) { $photoinfo['image'] = $storageApi->sGetUrl($photoinfo['image'], 'imageView2/2/w/600/h/600'); $photoinfo['imagesize'] = 600; } else { $photoinfo['image'] = $storageApi->sGetUrl($photoinfo['image'], 'imageView2/2/w/800/h/800'); $photoinfo['imagesize'] = 800; } $albuminfo = $photoApi->getAlbumInfo($uid, $photoinfo['albumid']); if ($albuminfo['isrecycle'] && $uid != $loginuid) { Ko_Web_Response::VSetRedirect('/'); Ko_Web_Response::VSend(); exit; } $userinfo = Ko_Tool_Adapter::VConv($uid, array('user_baseinfo', array('logo80'))); $prevlist = $nextlist = array(); $curinfo = $photoinfo; while (!empty($curinfo = $photoApi->getPrevPhotoInfo($curinfo))) { $curinfo['image'] = $storageApi->sGetUrl($curinfo['image'], 'imageView2/1/w/60'); array_unshift($prevlist, $curinfo); if (count($prevlist) >= 4) { break; } } $curinfo = $photoinfo; while (!empty($curinfo = $photoApi->getNextPhotoInfo($curinfo))) { $curinfo['image'] = $storageApi->sGetUrl($curinfo['image'], 'imageView2/1/w/60'); array_push($nextlist, $curinfo); if (count($nextlist) >= 15 - count($prevlist)) { break; } } if (!empty($prevlist) && count($prevlist) + count($nextlist) < 15) { $curinfo = $prevlist[0]; while (!empty($curinfo = $photoApi->getPrevPhotoInfo($curinfo))) { $curinfo['image'] = $storageApi->sGetUrl($curinfo['image'], 'imageView2/1/w/60'); array_unshift($prevlist, $curinfo); if (count($prevlist) >= 15 - count($nextlist)) { break; } } } $render = new KRender_www(); $render->oSetTemplate('www/photo/item.html')->oSetData('userinfo', $userinfo)->oSetData('albuminfo', $albuminfo)->oSetData('photoinfo', $photoinfo)->oSetData('prevlist', $prevlist)->oSetData('nextlist', $nextlist)->oSend(); });
$uid = $api->iGetLoginUid(); if ($uid) { $render = new KRender_passport(); $render->oSetTemplate('passport/user/logo.html')->oSend(); } else { Ko_Web_Response::VSetRedirect('login'); Ko_Web_Response::VSend(); } }); Ko_Web_Route::VGet('passwd', function () { $api = new KUser_loginApi(); $uid = $api->iGetLoginUid(); if ($uid) { $render = new KRender_passport(); $render->oSetTemplate('passport/user/passwd.html')->oSend(); } else { Ko_Web_Response::VSetRedirect('login'); Ko_Web_Response::VSend(); } }); Ko_Web_Route::VGet('profile', function () { $api = new KUser_loginApi(); $uid = $api->iGetLoginUid(); if ($uid) { $render = new KRender_passport(); $render->oSetTemplate('passport/user/profile.html')->oSend(); } else { Ko_Web_Response::VSetRedirect('login'); Ko_Web_Response::VSend(); } });
$loginuid = $loginApi->iGetLoginUid(); if (empty($loginuid)) { Ko_Web_Response::VSetRedirect('http://' . PASSPORT_DOMAIN . '/user/login'); Ko_Web_Response::VSend(); exit; } } } $hooks = COMMON_CLASS_PATH . 'hooks/' . $appname . '.php'; if (is_file($hooks)) { require_once $hooks; } }); Ko_Web_Event::On('ko.error', '500', function ($errno, $errstr, $errfile, $errline, $errcontext) { Ko_Web_Error::V500($errno, $errstr, $errfile, $errline, $errcontext); exit; }); Ko_Web_Event::On('ko.dispatch', 'before', function () { Ko_Tool_Adapter::VOn('user_baseinfo', array('KUser_baseinfoApi', 'AAdapter')); Ko_Tool_Adapter::VOn('image_baseinfo', array('KStorage_Api', 'AAdapter')); $uri = Ko_Web_Request::SRequestUri(); $appname = Ko_Web_Config::SGetAppName(); if ('zc' === $appname) { $_GET['uid'] = 20; } }); Ko_Web_Event::On('ko.dispatch', '404', function () { Ko_Web_Route::V404(); exit; }); require_once KO_DIR . 'web/Bootstrap.php';
exit; }); Ko_Web_Route::VGet('suggestmenu', function () { $sName = Ko_Web_Request::SInput("name"); $sName = Ko_Tool_Str::SConvert2GB18030(trim($sName)); $suggest_result = KDuizhang_Tool::suggest($sName, "sq_menu", 'id', 'text'); Ko_Tool_Str::VConvert2UTF8($suggest_result); $oApi = new KOperation_Menu_Api(); $tree_api = new KOperation_Menu_TreeApi(); $aList = $oApi->aGetAll(); $result = array(); if (!empty($suggest_result)) { foreach ($suggest_result as $v) { $relations = $tree_api->aGetParent($v['id'], 0); unset($relations[count($relations) - 1]); array_unshift($relations, $v['id']); if (!empty($relations)) { $relations = array_reverse($relations); $msg = ''; foreach ($relations as $menu_id) { $msg .= $aList[$menu_id]['text'] . '=>'; } $msg = trim($msg, '=>'); $result[] = array('id' => $v['id'], 'value' => $msg); } } } echo json_encode(array('ret' => 1, 'msg' => $result)); exit; }); function _getMenuHtml($menu, $split) {
<?php /** * Bootstrap * * @package ko/Web * @author zhangchu */ if (!defined('KO_WEB_BOOTSTRAP')) { define('KO_WEB_BOOTSTRAP', 1); Ko_Tool_Xhprof::VStart(); Ko_Web_Event::Trigger('ko.bootstrap', 'before'); Ko_Web_Config::VLoad(); Ko_Web_Event::Trigger('ko.config', 'after'); Ko_Web_Error::VHandle(); Ko_Web_Rewrite::VHandle(); Ko_Web_Event::Trigger('ko.dispatch', 'before'); if (Ko_Web_Route::IDispatch($phpFilename)) { Ko_Web_Event::Trigger('ko.dispatch', '404'); } else { if ('' !== $phpFilename) { $cwd = getcwd(); chdir(dirname($phpFilename)); require_once $phpFilename; chdir($cwd); } } }
$bloginfo = array(); $htmlrender->oSetData(KContent_Api::DRAFT_CONTENT, $uid); $htmlrender->oSetData(KContent_Api::DRAFT_TITLE, $uid); } $render = new KRender_www(); $render->oSetTemplate('www/blog/post.html')->oSetData('userinfo', $userinfo)->oSetData('bloginfo', $bloginfo)->oSetData('blogcontent', $htmlrender)->oSetData('taginfos', $taginfos)->oSend(); }); Ko_Web_Route::VGet('item', function () { $uid = Ko_Web_Request::IGet('uid'); $blogid = Ko_Web_Request::IGet('blogid'); $tag = Ko_Web_Request::SGet('tag'); $userinfo = Ko_Tool_Adapter::VConv($uid, array('user_baseinfo', array('logo80'))); $blogApi = new KBlog_Api(); $taginfos = $blogApi->aGetAllTaginfo($uid); $bloginfo = $blogApi->aGet($uid, $blogid); if (empty($bloginfo) || in_array('回收站', $bloginfo['tags'])) { Ko_Web_Response::VSetRedirect('user?uid=' . $uid); Ko_Web_Response::VSend(); exit; } if (0 == strlen($tag)) { $tag = $blogApi->sGetPriorTag($bloginfo['tags']); } $prevnextInfo = $blogApi->aGetPrevNextTitle($uid, $blogid, $tag); $contentApi = new KContent_Api(); $htmlrender = new Ko_View_Render_HTML($contentApi); $htmlrender->oSetData(KContent_Api::BLOG_TITLE, $blogid); $htmlrender->oSetData(KContent_Api::BLOG_CONTENT, $blogid); $render = new KRender_www(); $render->oSetTemplate('www/blog/item.html')->oSetData('tag', $tag)->oSetData('prevnext', $prevnextInfo)->oSetData('userinfo', $userinfo)->oSetData('bloginfo', $bloginfo)->oSetData('blogcontent', $htmlrender)->oSetData('taginfos', $taginfos)->oSend(); });
Ko_Web_Route::VPut('role', function () { echo ""; }); //删除 Ko_Web_Route::VDelete('role', function () { echo ""; }); //权限用户列表 Ko_Web_Route::VGet('roleUserList', function () { echo ""; }); //新增 Ko_Web_Route::VPost('roleUser', function () { echo ""; }); //删除 Ko_Web_Route::VDelete('roleUser', function () { echo ""; }); //角色权限列表 Ko_Web_Route::VGet('rolePrivacyList', function () { echo ""; }); //新增 Ko_Web_Route::VPost('rolePrivacy', function () { echo ""; }); //删除 Ko_Web_Route::VDelete('rolePrivacy', function () { echo ""; });
<?php Ko_Web_Route::VGet('qq', function () { oauth2login('qq'); }); Ko_Web_Route::VGet('weibo', function () { oauth2login('weibo'); }); Ko_Web_Route::VGet('baidu', function () { oauth2login('baidu'); }); function oauth2login($src) { $api = new KUser_loginApi(); $uid = $api->iOauth2Login($src); $api->vSetLoginUid($uid, $src); Ko_Web_Response::VSetRedirect(KUser_loginrefApi::SGet()); Ko_Web_Response::VSend(); }
<?php /** * Created by JetBrains PhpStorm. * User: Jichen Zhou * Date: 2015年12月3日 * Time: 下午3:16 */ Ko_Web_Route::VGet('index', function () { echo "he"; });