"", "result" => "", "table" => "", "header" => "", "footer" => "", ); //---------------------------- // request parameter //---------------------------- $qProjectID = isset($_SESSION["project_id"]) ? $_SESSION["project_id"] : REQ_NON; $qKind = isset($_REQUEST["q_kind"]) ? $_REQUEST["q_kind"] : REQ_NON; $qType = isset($_REQUEST["q_type"]) ? $_REQUEST["q_type"] : REQ_NON; $qIsPublic = isset($_REQUEST["q_is_public"]) ? $_REQUEST["q_is_public"] : REQ_NON; $qPublic = isset($_REQUEST["q_public"]) ? $_REQUEST["q_public"] : REQ_NON; $qOrder = isset($_REQUEST["q_order"]) ? $_REQUEST["q_order"] : REQ_NON; $qLimit = isset($_REQUEST["q_limit"]) ? $_REQUEST["q_limit"] : REQ_NON; $qOffset = isset($_REQUEST["q_offset"]) ? $_REQUEST["q_offset"] : REQ_NON; //---------------------------- // judge post //---------------------------- //---------------------------- // set types //---------------------------- Util::setType($qProjectID, "int"); Util::setType($qKind, "string"); Util::setType($qType, "int"); Util::setType($qIsPublic, "int"); Util::setType($qPublic, "int"); Util::setType($qOrder, "string"); Util::setType($qLimit, "int"); Util::setType($qOffset, "int"); //---------------------------- // Auth-Before validate //---------------------------- if ( $result === RES_OK ){ if ( ! Validate::inKeyArray($qKind, Term::KIND_TABLE()) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 1)}"); } if ( ! Validate::isNumeric($qProjectID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 2)}"); } } //---------------------------- // Auth //---------------------------- if ( $result === RES_OK ){ $auth = Auth::instance("term_root", $qKind); $authExterm = Auth::instance("exterm"); if ( ! $auth->readList($qProjectID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 3)}"); } } //---------------------------- // Auth-After validate //---------------------------- if ( $result === RES_OK ){ if ( ! Validate::inKeyArray($qType, DAO::T_TERM_ROOT_TYPE_TABLE()) ){ $qType = DAO::T_TERM_ROOT_TYPE_NORMAL; } if ( $qIsPublic === ON ){ if ( ! Validate::inKeyArray($qPublic, DAO::T_TERM_ROOT_PUBLIC_TABLE()) ){ $qPublic = array(DAO::T_TERM_ROOT_PUBLIC_ORG, DAO::T_TERM_ROOT_PUBLIC_OPN); } } else { $qIsPublic = OFF; if ( ! Validate::inKeyArray($qPublic, DAO::T_TERM_ROOT_PUBLIC_TABLE()) ){ $qPublic = NULL; } } if ( ! Validate::isOrderParam($qOrder, DAO_term_root::ORDER_KEY_SQL_TABLE(), DAO_term_root::ORDER_VALUE_SQL_TABLE()) ){ $qOrder = NULL; } if ( ! Validate::isNumeric($qLimit) ){ $qLimit = HTML_LIMIT; } if ( ! Validate::isNumeric($qOffset) ){ $qOffset = HTML_OFFSET; } } 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 ){ $objDAOTermRoot = DAO::instance("term_root", $qKind); $objDAOProjectTermRoot = DAO::instance("project_term_root", $qKind); $objViewTermRoot = View::instance("term_root"); $objViewExterm = View::instance("exterm"); // ----------------------------- $tablist = NULL; if ( $qIsPublic === ON ){ $tablist = View_term_root::TAB_LIST_PUBLIC; } else if ( $qType === DAO::T_TERM_ROOT_TYPE_NORMAL ){ $tablist = View_term_root::TAB_LIST_PROJECT; } else if ( $qType === DAO::T_TERM_ROOT_TYPE_REFERENCE ){ $tablist = View_term_root::TAB_LIST_REFRENCE; } else { $result = RES_NG; } // 用語集取得 -------------------- if ( $result === RES_OK ){ $arrTermRoot = array(); if ( $result === RES_OK ){ if ( $qOrder ){ list($orderName, $orderType) = explode("-", $qOrder); $orderName = DAO_term_root::ORDER_KEY_SQL_TABLE($orderName); $orderType = DAO_term_root::ORDER_VALUE_SQL_TABLE($orderType); $arrOrder = array( $orderName => $orderType, ); } else { $arrOrder = NULL; } if ( $qIsPublic === OFF ){ // t_project_term_root基準で取得 //$objDAOTermRoot->setAuth($auth); // 参照がおかしい場合も表現するためコメントアウト $resDAOTermRoot = $objDAOTermRoot->get(NULL, NULL, $qPublic, NULL, $qProjectID, $qType, User::get("organization_id"), $arrOrder, $qLimit, $qOffset); } else { // t_term_root基準で取得 $objDAOTermRoot->setAuth($auth); $resDAOTermRoot = $objDAOTermRoot->get(NULL, DAO::T_TERM_ROOT_STATE_NORMAL, $qPublic, NULL, $qProjectID, FALSE, User::get("organization_id"), $arrOrder, $qLimit, $qOffset); } if ( ($result = $resDAOTermRoot["result"]) === RES_OK ){ $arrTermRoot = $resDAOTermRoot["data"]; } } $arrProjectTermRoot = array(); if ( $result === RES_OK && ($qIsPublic === OFF) ){ $resDAOProjectTermRoot = $objDAOProjectTermRoot->get($qProjectID); if ( ($result = $resDAOProjectTermRoot["result"]) === RES_OK ){ $arrProjectTermRoot = $resDAOProjectTermRoot["data"]; } } if ( $result === RES_NG ){ $gResult->push("{$WORD($wk, 4)}"); } else { // ページネーション parse_str( $_SERVER["QUERY_STRING"], $query); $arrHtml["table"] = $objViewTermRoot->table($qKind, $tablist, $qProjectID, $arrTermRoot, $arrProjectTermRoot, $query, $qIsPublic === ON); if ( $result === RES_OK ){ $arrHtml["header"] = Printer::paginationTableHeader(TRUE, ".", $_REQUEST, $resDAOTermRoot["count"], $qLimit, $qOffset, 10); $arrHtml["footer"] = Printer::paginationTableFooter(TRUE, ".", $_REQUEST, $resDAOTermRoot["count"], $qLimit, $qOffset, 10); } else { $gResult->push("{$WORD($wk, 5)}"); } } } } //---------------------------- // menu //---------------------------- { // menu ---------------------------------------------------------------- $arrMenu = array(); if ( $result !== RES_NG ){ $arrMenu = array( View_term_root::TAB_LIST_PROJECT => "", View_term_root::TAB_LIST_REFRENCE => "", View_term_root::TAB_LIST_PUBLIC => "", View_term_root::TAB_NEW => "", VieW_term_Root::TAB_SEARCH => "", ); //----- foreach ( $arrMenu as $tab => &$value ){ $value = $objViewTermRoot->tab($qKind, $tab, $auth, $qProjectID); } if ( $qKind === Term::KIND_TERM ){ $arrMenu[100+View_exterm::TAB_LIST] = $objViewExterm->tab(View_exterm::TAB_LIST, $authExterm, $qProjectID); $arrMenu[100+View_exterm::TAB_NEW] = $objViewExterm->tab(View_exterm::TAB_NEW, $authExterm, $qProjectID); } //----- $arrHtml["menu"] = Printer::menuTab($arrMenu, $tablist); } // title --------------------------------------------------------------- $title = "{$WORD($wk, 6, $kindText)}"; // form ---------------------------------------------------------------- if ( $result === RES_NG ){ // アクション(OK) $arrHtml["footer"] = Printer::link("OK", "btn btn-default", NULL, NULL, "/content/project/"); } // result -------------------------------------------------------------- $arrHtml["result"] = $gResult->string(TRUE, $result); } ?>