当前位置: 首页>>代码示例>>PHP>>正文


PHP SC_Response_Ex::actionExit方法代码示例

本文整理汇总了PHP中SC_Response_Ex::actionExit方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Response_Ex::actionExit方法的具体用法?PHP SC_Response_Ex::actionExit怎么用?PHP SC_Response_Ex::actionExit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SC_Response_Ex的用法示例。


在下文中一共展示了SC_Response_Ex::actionExit方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: action

 /**
  * Page のAction.
  *
  * @return void
  */
 function action()
 {
     $objCustomer = new SC_Customer_Ex();
     if (!SC_Utils_Ex::sfIsInt($_GET['send_id'])) {
         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
     }
     $arrMailView = $this->lfGetMailView($_GET['send_id'], $objCustomer->getValue('customer_id'));
     if (empty($arrMailView)) {
         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
     }
     $this->tpl_subject = $arrMailView[0]['subject'];
     $this->tpl_body = $arrMailView[0]['mail_body'];
     if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_PC) {
         $this->setTemplate('mypage/mail_view.tpl');
     } else {
         $this->tpl_title = 'メール履歴詳細';
         $this->tpl_mainpage = 'mypage/mail_view.tpl';
     }
     switch ($this->getMode()) {
         case 'getDetail':
             echo SC_Utils_Ex::jsonEncode($arrMailView);
             SC_Response_Ex::actionExit();
             break;
         default:
             break;
     }
 }
开发者ID:nassos9090,项目名称:plugin,代码行数:32,代码来源:LC_Page_Mypage_MailView.php

示例2: action

 /**
  * Page のAction.
  *
  * @return void
  */
 public function action()
 {
     $objCustomer = new SC_Customer_Ex();
     $customer_id = $objCustomer->getValue('customer_id');
     switch ($this->getMode()) {
         case 'delete_favorite':
             // お気に入り削除
             $this->lfDeleteFavoriteProduct($customer_id, intval($_POST['product_id']));
             break;
         case 'getList':
             // スマートフォン版のもっと見るボタン用
             // ページ送り用
             if (isset($_POST['pageno'])) {
                 $this->tpl_pageno = intval($_POST['pageno']);
             }
             $this->arrFavorite = $this->lfGetFavoriteProduct($customer_id, $this);
             SC_Product_Ex::setPriceTaxTo($this->arrFavorite);
             // 一覧メイン画像の指定が無い商品のための処理
             foreach ($this->arrFavorite as $key => $val) {
                 $this->arrFavorite[$key]['main_list_image'] = SC_Utils_Ex::sfNoImageMainList($val['main_list_image']);
             }
             echo SC_Utils_Ex::jsonEncode($this->arrFavorite);
             SC_Response_Ex::actionExit();
             break;
         default:
             break;
     }
     // ページ送り用
     if (isset($_POST['pageno'])) {
         $this->tpl_pageno = intval($_POST['pageno']);
     }
     $this->arrFavorite = $this->lfGetFavoriteProduct($customer_id, $this);
     // 1ページあたりの件数
     $this->dispNumber = SEARCH_PMAX;
 }
开发者ID:ryoogata,项目名称:eccube-SQLAzureSupport-plugin,代码行数:40,代码来源:LC_Page_Mypage_Favorite.php

示例3: action

 /**
  * Page のAction.
  *
  * @return void
  */
 function action()
 {
     $objProduct = new SC_Product_Ex();
     $objCustomer = new SC_Customer_Ex();
     $customer_id = $objCustomer->getValue('customer_id');
     switch ($this->getMode()) {
         case 'delete_favorite':
             // お気に入り削除
             $this->lfDeleteFavoriteProduct($customer_id, intval($_POST['product_id']));
             break;
         case 'getList':
             // スマートフォン版のもっと見るボタン用
             // ページ送り用
             if (isset($_POST['pageno'])) {
                 $this->tpl_pageno = intval($_POST['pageno']);
             }
             $this->arrFavorite = $this->lfGetFavoriteProduct($customer_id, $this);
             $this->arrFavorite = $objProduct->setPriceTaxTo($this->arrFavorite);
             echo SC_Utils_Ex::jsonEncode($this->arrFavorite);
             SC_Response_Ex::actionExit();
             break;
     }
     // ページ送り用
     if (isset($_POST['pageno'])) {
         $this->tpl_pageno = intval($_POST['pageno']);
     }
     $this->arrFavorite = $this->lfGetFavoriteProduct($customer_id, $this);
     // 1ページあたりの件数
     $this->dispNumber = SEARCH_PMAX;
 }
开发者ID:nassos9090,项目名称:plugin,代码行数:35,代码来源:LC_Page_Mypage_Favorite.php

示例4: action

 /**
  * Page のAction.
  *
  * @return void
  */
 public function action()
 {
     switch ($this->getMode()) {
         case 'confirm':
             // トークンを設定
             $this->refusal_transactionid = $this->getRefusalToken();
             $this->tpl_mainpage = 'mypage/refusal_confirm.tpl';
             $this->tpl_subtitle = '退会手続き(確認ページ)';
             break;
         case 'complete':
             // トークン入力チェック
             if (!$this->isValidRefusalToken()) {
                 // エラー画面へ遷移する
                 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
                 SC_Response_Ex::actionExit();
             }
             $objCustomer = new SC_Customer_Ex();
             $this->lfDeleteCustomer($objCustomer->getValue('customer_id'));
             $objCustomer->EndSession();
             SC_Response_Ex::sendRedirect('refusal_complete.php');
             break;
         default:
             if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
                 $this->refusal_transactionid = $this->getRefusalToken();
             }
             break;
     }
 }
开发者ID:ryoogata,项目名称:eccube-SQLAzureSupport-plugin,代码行数:33,代码来源:LC_Page_Mypage_Refusal.php

示例5: action

 /**
  * Page のAction.
  *
  * @return void
  */
 public function action()
 {
     //決済処理中ステータスのロールバック
     $objPurchase = new SC_Helper_Purchase_Ex();
     $objPurchase->cancelPendingOrder(PENDING_ORDER_CANCEL_FLAG);
     $objCustomer = new SC_Customer_Ex();
     $customer_id = $objCustomer->getValue('customer_id');
     //ページ送り用
     $this->objNavi = new SC_PageNavi_Ex($_REQUEST['pageno'], $this->lfGetOrderHistory($customer_id), SEARCH_PMAX, 'eccube.movePage', NAVI_PMAX, 'pageno=#page#', SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE);
     $this->arrOrder = $this->lfGetOrderHistory($customer_id, $this->objNavi->start_row);
     switch ($this->getMode()) {
         case 'getList':
             echo SC_Utils_Ex::jsonEncode($this->arrOrder);
             SC_Response_Ex::actionExit();
             break;
         default:
             break;
     }
     // 支払い方法の取得
     $this->arrPayment = SC_Helper_Payment_Ex::getIDValueList();
     // 1ページあたりの件数
     $this->dispNumber = SEARCH_PMAX;
     $this->json_payment = SC_Utils::jsonEncode($this->arrPayment);
     $this->json_customer_order_status = SC_Utils::jsonEncode($this->arrCustomerOrderStatus);
 }
开发者ID:rateon,项目名称:twhk-ec,代码行数:30,代码来源:LC_Page_Mypage.php

示例6: action

 /**
  * Page のアクション.
  *
  * @return void
  */
 function action()
 {
     $arrParam = $_REQUEST;
     list($response_outer, $arrResponse) = SC_Api_Operation::doApiAction($arrParam);
     SC_Api_Operation_Ex::sendApiResponse('xml', $response_outer, $arrResponse);
     SC_Response_Ex::actionExit();
 }
开发者ID:Rise-Up-Cambodia,项目名称:Rise-Up,代码行数:12,代码来源:LC_Page_Api_Xml.php

示例7: action

 /**
  * Page のアクション.
  *
  * @return void
  */
 public function action()
 {
     $arrParam = $_REQUEST;
     list($response_outer, $arrResponse) = SC_Api_Operation_Ex::doApiAction($arrParam);
     if (isset($arrParam["callback"])) {
         $arrResponse["callback"] = $arrParam["callback"];
     }
     SC_Api_Operation_Ex::sendApiResponse('json', $response_outer, $arrResponse);
     SC_Response_Ex::actionExit();
 }
开发者ID:arisanogami,项目名称:eccube-2_13,代码行数:15,代码来源:LC_Page_Api_Json.php

示例8: action

 /**
  * Page のアクション.
  *
  * @return void
  */
 public function action()
 {
     $objFormParam = new SC_FormParam_Ex();
     $this->initForm($objFormParam, $_GET);
     switch ($this->getMode()) {
         // PHP INFOを表示
         case 'info':
             phpinfo();
             SC_Response_Ex::actionExit();
             break;
         default:
             break;
     }
     $this->arrSystemInfo = $this->getSystemInfo();
 }
开发者ID:casan,项目名称:eccube-2_13,代码行数:20,代码来源:LC_Page_Admin_System_System.php

示例9: action

 /**
  * Page のAction.
  *
  * @return void
  */
 function action()
 {
     $objCustomer = new SC_Customer_Ex();
     $customer_id = $objCustomer->getvalue('customer_id');
     //ページ送り用
     $this->objNavi = new SC_PageNavi_Ex($_REQUEST['pageno'], $this->lfGetOrderHistory($customer_id), SEARCH_PMAX, 'fnNaviPage', NAVI_PMAX, 'pageno=#page#', SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE);
     $this->arrOrder = $this->lfGetOrderHistory($customer_id, $this->objNavi->start_row);
     switch ($this->getMode()) {
         case 'getList':
             echo SC_Utils_Ex::jsonEncode($this->arrOrder);
             SC_Response_Ex::actionExit();
             break;
         default:
             break;
     }
     // 支払い方法の取得
     $this->arrPayment = SC_Helper_DB_Ex::sfGetIDValueList('dtb_payment', 'payment_id', 'payment_method');
     // 1ページあたりの件数
     $this->dispNumber = SEARCH_PMAX;
 }
开发者ID:nanasess,项目名称:eccube-WindowsAzureBlob-plugin,代码行数:25,代码来源:LC_Page_Mypage.php

示例10: action

 /**
  * Page のアクション.
  *
  * @return void
  */
 public function action()
 {
     switch ($this->getMode()) {
         default:
             // フォーム操作クラス
             $objFormParam = new SC_FormParam_Ex();
             // パラメーター情報の初期化
             $this->lfInitParam($objFormParam);
             $objFormParam->setParam($_GET);
             $objFormParam->convParam();
             // 表示するファイルにエラーチェックを行う
             if ($this->checkErrorDispFile($objFormParam)) {
                 $this->execFileView($objFormParam);
             } else {
                 SC_Utils_Ex::sfDispError('');
             }
             SC_Response_Ex::actionExit();
             break;
     }
 }
开发者ID:rateon,项目名称:twhk-ec,代码行数:25,代码来源:LC_Page_Admin_Contents_FileView.php

示例11: saveMultipleShippings

 /**
  * 複数配送情報を一時保存する.
  *
  * 会員ログインしている場合は, その他のお届け先から住所情報を取得する.
  *
  * @param  integer            $uniqid       一時受注テーブルのユニークID
  * @param  SC_FormParam       $objFormParam SC_FormParam インスタンス
  * @param  SC_Customer        $objCustomer  SC_Customer インスタンス
  * @param  SC_Helper_Purchase $objPurchase  SC_Helper_Purchase インスタンス
  * @return void
  */
 public function saveMultipleShippings($uniqid, &$objFormParam, &$objCustomer, &$objPurchase, &$objAddress)
 {
     $arrParams = $objFormParam->getSwapArray();
     foreach ($arrParams as $arrParam) {
         $other_deliv_id = $arrParam['shipping'];
         if ($objCustomer->isLoginSuccess(true)) {
             if ($other_deliv_id != 0) {
                 $otherDeliv = $objAddress->getAddress($other_deliv_id, $objCustomer->getValue('customer_id'));
                 if (!$otherDeliv) {
                     SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, "入力値が不正です。<br />正しい値を入力してください。");
                     SC_Response_Ex::actionExit();
                 }
                 foreach ($otherDeliv as $key => $val) {
                     $arrValues[$other_deliv_id]['shipping_' . $key] = $val;
                 }
             } else {
                 $objPurchase->copyFromCustomer($arrValues[0], $objCustomer, 'shipping');
             }
         } else {
             $arrValues = $objPurchase->getShippingTemp();
         }
         $arrItemTemp[$other_deliv_id][$arrParam['product_class_id']] += $arrParam['quantity'];
     }
     $objPurchase->clearShipmentItemTemp();
     foreach ($arrValues as $shipping_id => $arrVal) {
         $objPurchase->saveShippingTemp($arrVal, $shipping_id);
     }
     foreach ($arrItemTemp as $other_deliv_id => $arrProductClassIds) {
         foreach ($arrProductClassIds as $product_class_id => $quantity) {
             if ($quantity == 0) {
                 continue;
             }
             $objPurchase->setShipmentItemTemp($other_deliv_id, $product_class_id, $quantity);
         }
     }
     //不必要な配送先を削除
     foreach ($_SESSION['shipping'] as $id => $arrShipping) {
         if (!isset($arrShipping['shipment_item'])) {
             $objPurchase->unsetOneShippingTemp($id);
         }
     }
     // $arrValues[0] には, 購入者の情報が格納されている
     $objPurchase->saveOrderTemp($uniqid, $arrValues[0], $objCustomer);
 }
开发者ID:ryoogata,项目名称:eccube-SQLAzureSupport-plugin,代码行数:55,代码来源:LC_Page_Shopping_Multiple.php

示例12: action

 /**
  * Page のAction.
  *
  * @return void
  */
 function action()
 {
     $objFormParam = new SC_FormParam_Ex();
     $this->lfInitParam($objFormParam);
     $objFormParam->setParam($_POST);
     $objFormParam->convParam();
     switch ($this->getMode()) {
         case 'confirm':
             $this->arrErr = $this->lfCheckError($objFormParam);
             //エラーチェック
             if (empty($this->arrErr)) {
                 //重複タイトルでない
                 $this->tpl_mainpage = 'products/review_confirm.tpl';
             }
             break;
         case 'return':
             break;
         case 'complete':
             $this->arrErr = $this->lfCheckError($objFormParam);
             //エラーチェック
             if (empty($this->arrErr)) {
                 //登録実行
                 $this->lfRegistRecommendData($objFormParam);
                 //レビュー書き込み完了ページへ
                 SC_Response_Ex::sendRedirect('review_complete.php');
                 SC_Response_Ex::actionExit();
             }
             break;
         default:
             // 最初のproduct_idは、$_GETで渡ってくる。
             $objFormParam->setParam($_GET);
             break;
     }
     $this->arrForm = $objFormParam->getHashArray();
     //商品名の取得
     $this->arrForm['name'] = $this->lfGetProductName($this->arrForm['product_id']);
     if (empty($this->arrForm['name'])) {
         SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
     }
     $this->setTemplate($this->tpl_mainpage);
 }
开发者ID:nassos9090,项目名称:plugin,代码行数:46,代码来源:LC_Page_Products_Review.php

示例13: action

 /**
  * Page のアクション.
  *
  * @return void
  */
 public function action()
 {
     $objFormParam = new SC_FormParam_Ex();
     $this->lfInitParam($objFormParam);
     $objFormParam->setParam($_REQUEST);
     $objFormParam->convParam();
     $this->arrErr = $objFormParam->checkError();
     $is_error = !SC_Utils_Ex::isBlank($this->arrErr);
     $this->bloc_id = $objFormParam->getValue('bloc_id');
     $this->device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC);
     $objBloc = new SC_Helper_Bloc_Ex($this->device_type_id);
     switch ($this->getMode()) {
         // 登録/更新
         case 'confirm':
             if (!$is_error) {
                 $this->arrErr = $this->lfCheckError($objFormParam, $this->arrErr, $objBloc);
                 if (SC_Utils_Ex::isBlank($this->arrErr)) {
                     $result = $this->doRegister($objFormParam, $objBloc);
                     if ($result !== false) {
                         $arrPram = array('bloc_id' => $result, 'device_type_id' => $this->device_type_id, 'msg' => 'on');
                         SC_Response_Ex::reload($arrPram, true);
                         SC_Response_Ex::actionExit();
                     }
                 }
             }
             break;
             // 削除
         // 削除
         case 'delete':
             if (!$is_error) {
                 if ($this->doDelete($objFormParam, $objBloc)) {
                     $arrPram = array('device_type_id' => $this->device_type_id, 'msg' => 'on');
                     SC_Response_Ex::reload($arrPram, true);
                     SC_Response_Ex::actionExit();
                 }
             }
             break;
         default:
             if (isset($_GET['msg']) && $_GET['msg'] == 'on') {
                 // 完了メッセージ
                 $this->tpl_onload = "alert('登録が完了しました。');";
             }
             break;
     }
     if (!$is_error) {
         // ブロック一覧を取得
         $this->arrBlocList = $objBloc->getList();
         // bloc_id が指定されている場合にはブロックデータの取得
         if (!SC_Utils_Ex::isBlank($this->bloc_id)) {
             $arrBloc = $this->getBlocTemplate($this->bloc_id, $objBloc);
             $objFormParam->setParam($arrBloc);
         }
     } else {
         // 画面にエラー表示しないため, ログ出力
         GC_Utils_Ex::gfPrintLog('Error: ' . print_r($this->arrErr, true));
     }
     $this->tpl_subtitle = $this->arrDeviceType[$this->device_type_id] . '>' . $this->tpl_subtitle;
     $this->arrForm = $objFormParam->getFormParamList();
 }
开发者ID:rateon,项目名称:twhk-ec,代码行数:64,代码来源:LC_Page_Admin_Design_Bloc.php

示例14: action

 /**
  * Page のアクション.
  *
  * @return void
  */
 function action()
 {
     $objSiteSess = new SC_SiteSession_Ex();
     $objCartSess = new SC_CartSession_Ex();
     $objPurchase = new SC_Helper_Purchase_Ex();
     $objCustomer = new SC_Customer_Ex();
     $objFormParam = new SC_FormParam_Ex();
     $this->is_multiple = $objPurchase->isMultiple();
     // カートの情報を取得
     $this->arrShipping = $objPurchase->getShippingTemp($this->is_multiple);
     $this->tpl_uniqid = $objSiteSess->getUniqId();
     $cart_key = $objCartSess->getKey();
     $this->cartKey = $cart_key;
     $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess);
     // 配送業者を取得
     $this->arrDeliv = $objPurchase->getDeliv($cart_key);
     $this->is_single_deliv = $this->isSingleDeliv($this->arrDeliv);
     // 会員情報の取得
     if ($objCustomer->isLoginSuccess(true)) {
         $this->tpl_login = '1';
         $this->tpl_user_point = $objCustomer->getValue('point');
         $this->name01 = $objCustomer->getValue('name01');
         $this->name02 = $objCustomer->getValue('name02');
     }
     // 戻り URL の設定
     // @deprecated 2.12.0 テンプレート直書きに戻した
     $this->tpl_back_url = '?mode=return';
     $arrOrderTemp = $objPurchase->getOrderTemp($this->tpl_uniqid);
     // 正常に受注情報が格納されていない場合はカート画面へ戻す
     if (SC_Utils_Ex::isBlank($arrOrderTemp)) {
         SC_Response_Ex::sendRedirect(CART_URLPATH);
         SC_Response_Ex::actionExit();
     }
     // カート内商品の妥当性チェック
     $this->tpl_message = $objCartSess->checkProducts($cart_key);
     if (strlen($this->tpl_message) >= 1) {
         SC_Response_Ex::sendRedirect(CART_URLPATH);
         SC_Response_Ex::actionExit();
     }
     /*
      * 購入金額の取得
      * ここでは送料を加算しない
      */
     $this->arrPrices = $objCartSess->calculate($cart_key, $objCustomer);
     // お届け日一覧の取得
     $this->arrDelivDate = $objPurchase->getDelivDate($objCartSess, $cart_key);
     switch ($this->getMode()) {
         /*
          * 配送業者選択時のアクション
          * モバイル端末以外の場合は, JSON 形式のデータを出力し, ajax で取得する.
          */
         case 'select_deliv':
             $this->setFormParams($objFormParam, $arrOrderTemp, true, $this->arrShipping);
             $objFormParam->setParam($_POST);
             $this->arrErr = $objFormParam->checkError();
             if (SC_Utils_Ex::isBlank($this->arrErr)) {
                 $deliv_id = $objFormParam->getValue('deliv_id');
                 $arrSelectedDeliv = $this->getSelectedDeliv($objPurchase, $objCartSess, $deliv_id);
                 $arrSelectedDeliv['error'] = false;
             } else {
                 $arrSelectedDeliv = array('error' => true);
                 $this->tpl_mainpage = 'shopping/select_deliv.tpl';
                 // モバイル用
             }
             if (SC_Display_Ex::detectDevice() != DEVICE_TYPE_MOBILE) {
                 echo SC_Utils_Ex::jsonEncode($arrSelectedDeliv);
                 SC_Response_Ex::actionExit();
             } else {
                 $this->arrPayment = $arrSelectedDeliv['arrPayment'];
                 $this->arrDelivTime = $arrSelectedDeliv['arrDelivTime'];
             }
             break;
             // 登録処理
         // 登録処理
         case 'confirm':
             // パラメーター情報の初期化
             $this->setFormParams($objFormParam, $_POST, false, $this->arrShipping);
             $deliv_id = $objFormParam->getValue('deliv_id');
             $arrSelectedDeliv = $this->getSelectedDeliv($objPurchase, $objCartSess, $deliv_id);
             $this->arrPayment = $arrSelectedDeliv['arrPayment'];
             $this->arrDelivTime = $arrSelectedDeliv['arrDelivTime'];
             $this->img_show = $arrSelectedDeliv['img_show'];
             $this->arrErr = $this->lfCheckError($objFormParam, $this->arrPrices['subtotal'], $this->tpl_user_point);
             if (empty($this->arrErr)) {
                 $this->saveShippings($objFormParam, $this->arrDelivTime);
                 $this->lfRegistData($this->tpl_uniqid, $objFormParam->getDbArray(), $objPurchase, $this->arrPayment);
                 // 正常に登録されたことを記録しておく
                 $objSiteSess->setRegistFlag();
                 // 確認ページへ移動
                 SC_Response_Ex::sendRedirect(SHOPPING_CONFIRM_URLPATH);
                 SC_Response_Ex::actionExit();
             }
             break;
             // 前のページに戻る
         // 前のページに戻る
//.........这里部分代码省略.........
开发者ID:snguyenone,项目名称:ec-cube-ja-2.12.6,代码行数:101,代码来源:LC_Page_Shopping_Payment.php

示例15: lfRegistData

 /**
  * @param SC_Helper_Address_Ex $objAddress
  * @param SC_FormParam $objFormParam
  */
 public function lfRegistData($objAddress, $objFormParam, $customer_id)
 {
     $arrRet = $objFormParam->getHashArray();
     $sqlval = $objFormParam->getDbArray();
     $sqlval['other_deliv_id'] = $arrRet['other_deliv_id'];
     $sqlval['customer_id'] = $customer_id;
     if (!$objAddress->registAddress($sqlval)) {
         SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, '別のお届け先を登録できませんでした。');
         SC_Response_Ex::actionExit();
     }
 }
开发者ID:rateon,项目名称:twhk-ec,代码行数:15,代码来源:LC_Page_Mypage_DeliveryAddr.php


注:本文中的SC_Response_Ex::actionExit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。