コード例 #1
0
ファイル: Route.php プロジェクト: jinghm318/ko
 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;
 }
コード例 #2
0
ファイル: user.php プロジェクト: firaga/operation
<?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();
});
コード例 #3
0
ファイル: Route.php プロジェクト: AllenLyu/ko
 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;
 }
コード例 #4
0
ファイル: photo.php プロジェクト: firaga/operation
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();
});
コード例 #5
0
ファイル: user.php プロジェクト: firaga/operation
    $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();
    }
});
コード例 #6
0
ファイル: entry.php プロジェクト: firaga/operation
            $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';
コード例 #7
0
ファイル: menu.php プロジェクト: firaga/operation
    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)
{
コード例 #8
0
ファイル: Bootstrap.php プロジェクト: AllenLyu/ko
<?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);
        }
    }
}
コード例 #9
0
ファイル: blog.php プロジェクト: firaga/operation
        $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();
});
コード例 #10
0
ファイル: role.php プロジェクト: firaga/operation
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 "";
});
コード例 #11
0
ファイル: oauth2.php プロジェクト: firaga/operation
<?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();
}
コード例 #12
0
ファイル: index.php プロジェクト: firaga/operation
<?php

/**
 * Created by JetBrains PhpStorm.
 * User: Jichen Zhou
 * Date: 2015年12月3日
 * Time: 下午3:16
 */
Ko_Web_Route::VGet('index', function () {
    echo "he";
});