"", "form" => "", ); //---------------------------- // request parameter //---------------------------- $qProjectID = isset($_SESSION["project_id"]) ? $_SESSION["project_id"] : REQ_NON; $qToken = isset($_REQUEST["q_token"]) ? $_REQUEST["q_token"] : REQ_NON; $qKind = isset($_REQUEST["q_kind"]) ? $_REQUEST["q_kind"] : REQ_NON; $qID = isset($_REQUEST["q_id"]) ? $_REQUEST["q_id"] : REQ_NON; $qType = isset($_REQUEST["q_type"]) ? $_REQUEST["q_type"] : REQ_NON; $qDelete = isset($_REQUEST["q_delete"]) ? $_REQUEST["q_delete"] : REQ_NON; //---------------------------- // judge post //---------------------------- //---------------------------- // set types //---------------------------- Util::setType($qProjectID, "int"); Util::setType($qToken, "string"); Util::setType($qKind, "string"); Util::setType($qID, "int"); Util::setType($qType, "int"); Util::setType($qDelete, "int"); //---------------------------- // Auth-Before validate //---------------------------- if ( $result === RES_OK ){ if ( ! Validate::isToken($qToken, "token_common") ){ $result = RES_NG; $gResult->push("{$WORD($wk, 1)}"); } if ( ! Validate::inKeyArray($qKind, Term::KIND_TABLE()) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 2)}"); } if ( ! Validate::isNumeric($qID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 3)}"); } if ( ! Validate::isNumeric($qProjectID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 4)}"); } } //---------------------------- // Auth //---------------------------- if ( $result === RES_OK ){ $auth = Auth::instance("term_root", $qKind); if ( ! $auth->refrence($qID, $qProjectID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 5)}"); } } //---------------------------- // Auth-After validate //---------------------------- if ( $result === RES_OK ){ if ( Validate::inKeyArray($qType, DAO::T_TERM_ROOT_TYPE_TABLE()) ){ } else if ( $qDelete === ON ){ } else { $result = RES_NG; $gResult->push("{$WORD($wk, 6)}"); } } if ( Validate::inKeyArray($qKind, Term::KIND_TABLE()) ){ $kindText = Term::KIND_TABLE($qKind); } else { $kindText = Term::KIND_TABLE(Term::KIND_TERM); } //---------------------------- // function //---------------------------- //---------------------------- // process //---------------------------- if ( $result === RES_OK ){ DAO::begin(); $objDAOTermRoot = DAO::instance("term_root", $qKind); $objDAOProjectTermRoot = DAO::instance("project_term_root", $qKind); $objDAOTerm = DAO::instance("term", $qKind); // 辞書情報削除 -------------------- if ( $result === RES_OK ){ $objDAOTermRoot->setAuth($auth); $resDAOTermRoot = $objDAOTermRoot->get($qID, DAO::T_TERM_ROOT_STATE_NORMAL); $result = $resDAOTermRoot["result"]; if ( $result === RES_OK ){ $dataTermRoot = $resDAOTermRoot["data"][0]; if ( $qDelete === ON ){ // 削除する前にどのタイプで登録されていたか確認する $type = DAO::storedFunction("get_project_{$qKind}_root_type", array($qProjectID, $qID)); // 用語集が親プロジェクトから離れようとしている if ( $dataTermRoot["t_project_id"] === $qProjectID ){ $result = RES_NG; $gResult->push("{$WORD($wk, 7)}"); } if ( $result === RES_OK ){ $resDAOProjectTermRoot = $objDAOProjectTermRoot->delete($qProjectID, $qID); $result = $resDAOProjectTermRoot["result"]; } } else { $type = $qType; if ( $qType === DAO::T_TERM_ROOT_TYPE_NORMAL && $dataTermRoot["t_project_id"] !== $qProjectID ){ // プロジェクト用とする場合はコピーさせる $newTermRootID = 0; // 用語集コピー if ( $result === RES_OK ){ $name = $objDAOTermRoot->getDefaultName($qProjectID); $resDAOTermRoot = $objDAOTermRoot->register(INIT_ID, DAO::T_TERM_ROOT_STATE_NORMAL, $dataTermRoot["t_term_root_public"], $name, $dataTermRoot["t_term_root_lang_s"], $dataTermRoot["t_term_root_lang_t"], $qProjectID); if ( ($result = $resDAOTermRoot["result"]) === RES_OK ){ $newTermRootID = $resDAOTermRoot["id"]; } } // 用語集-プロジェクトの登録 if ( $result === RES_OK ){ $resDAOProjectTermRoot = $objDAOProjectTermRoot->register($qProjectID, $newTermRootID, User::get("id"), DAO::T_TERM_ROOT_TYPE_NORMAL); $result = $resDAOProjectTermRoot["result"]; } // 用語のコピー if ( $result === RES_OK ){ $resDAOTerm = $objDAOTerm->get($dataTermRoot["t_term_root_id"]); if ( $resDAOTerm["result"] === RES_OK ){ foreach ( $resDAOTerm["data"] as $dataDAOTerm ){ $textS = $dataDAOTerm["t_term_text_s"]; $textT = $dataDAOTerm["t_term_text_t"]; // Termの作成 $resDAOTermReg = $objDAOTerm->register(INIT_ID, $textS, $textT, $newTermRootID, User::get("id")); if ( $resDAOTermReg["result"] !== RES_OK ){ $result = RES_NG; break; } } } else if ( $resDAOTerm["result"] === RES_NO_DATA ){ // 用語登録なし } else { $result = RES_NG; } } } else { $resDAOProjectTermRoot = $objDAOProjectTermRoot->register($qProjectID, $qID, User::get("id"), $qType); $result = $resDAOProjectTermRoot["result"]; } } } else { $result = RES_NG; $gResult->push("{$WORD($wk, 8)}"); } } //---------------------------- // 結果 //---------------------------- if ( $result === RES_OK ){ $gResult->push("{$WORD($wk, 9)}"); } else { $gResult->push("{$WORD($wk, 10)}"); } DAO::end($result); } //---------------------------- // menu //---------------------------- { // title --------------------------------------------------------------- $title = "{$WORD($wk, 11, $kindText)}"; // form ---------------------------------------------------------------- if ( $result === RES_OK ){ // アクション(OK) $arrHtml["form"] = Printer::link("OK", "btn btn-default", NULL, NULL, "./?q_kind={$qKind}&q_type={$type}"); header("Location: ./?q_kind={$qKind}&q_type={$type}"); } else { // アクション(OK) $arrHtml["form"] = Printer::link("OK", "btn btn-default", NULL, NULL, "/content/project/"); } // result -------------------------------------------------------------- $arrHtml["result"] = $gResult->string(TRUE, $result); } ?>