"; $ret .= __("역할은 '프로젝트 멤버' 탭에서 생성할 수 있습니다.","ajtodo"); $ret .= ""; return $ret; } public function todotypeListView(){ $ret = ""; $ret .= "
"; $ret .= ""; $ret .= $this->createFormPart( __("할일 타입","ajtodo") ); if(!$this->project->donedate){ $ret .="".__('할일 타입 추가', 'ajtodo' ).""; } $ret .= "
"; return $ret; } private function getTodoCountByTodoType($key){ global $wpdb; return $wpdb->get_var("select count(id) from ".AJTODO_DB_TODO."_".$this->project->id." where todotype = '".$key."'"); } public function delTodoType($key){ global $wpdb; $delindex = -1; for($i = 0; $i < count($this->project->todotype) ; $i++){ if($this->project->todotype[$i]["key"] == $key){ $delindex = $i; } } if($delindex != -1){ array_splice($this->project->todotype, $delindex, 1); } $ret = $this->project->updateCols( array( "todotype" => json_encode($this->project->todotype, JSON_UNESCAPED_UNICODE)) ); if($ret) do_action('ajtodo_del_todotype', $this->project->id); return $ret; } public function createFormPart($title){ $ret = ""; $ret .= "
".$title."
"; $ret .= ""; $ret .= ""; $ret .= " "; $ret .= " "; $ret .= " "; $ret .= " "; $ret .= " "; if(!$this->project->donedate){ $ret .= " "; } $ret .= " "; $ret .= ""; $ret .= ""; foreach($this->project->todotype as $todotype){ $ret .= ""; $ret .= " "; $ret .= " "; $ret .= " "; $ret .= " "; if(!$this->project->donedate){ $ret .= " "; $ret .= ""; } $ret .= ""; $ret .= "
".__("할일 타입 이름","ajtodo")."".__("할일 개수","ajtodo")."".__("기본 사용","ajtodo")."".__("관리","ajtodo")."
".$todotype["name"]."".$this->getTodoCountByTodoType($todotype["key"])."".($todotype["default"] == "Y" ? __("기본","ajtodo") : __("","ajtodo")).""; $ret .= " ".__('수정', 'ajtodo' ).""; if($todotype["default"] != "Y"){ $ret .= " ".__('삭제', 'ajtodo' ).""; } } $ret .= "
"; return $ret; } private function getTodoTypeColors($todotypecolor){ $ret = "
"; $isnewset = true; foreach($this->todotype_colors as $color){ if($todotypecolor == $color){ $ret .= ""; }else{ $ret .= ""; if(!$todotypecolor){ $isnewset = false; } } } $ret .= "
"; return $ret; } public function getSingleTodoType($todotypekey){ foreach($this->project->todotype as $s){ if($s["key"] == $todotypekey){ return $s; } } } public function addTodoTypeView($todotypekey){ if($todotypekey){ $todotype = $this->getSingleTodoType($todotypekey); } $defaulttodotype = $this->getDefaultTodoType(); $ret = ""; $ret .= "
"; $ret .= ""; $ret .= ""; $ret .= ""; $ret .= wp_nonce_field('ajtodo_nonce','update_roleperm'); $ret .= "
"; $ret .= " "; $ret .= "
"; if($todotypekey){ $ret .= ""; $ret .= "".$todotypekey.""; }else{ $ret .= ""; $ret .= "

".__("영문자와 숫자 그리고 일부 특수기호만 가능합니다.","ajtodo")."

"; } $ret .= "
"; $ret .= "
"; $ret .= "
"; $ret .= " "; $ret .= "
"; if($todotypekey && $todotype["default"] == "Y"){ $ret .= ""; $ret .= "".__('이 상태를 기본으로 사용합니다.', 'ajtodo' ).""; }else{ $ret .= ""; $ret .= ""; $ret .= " (".__("현재 기본 할일 타입 : ","ajtodo").$defaulttodotype["name"].")"; } $ret .= "
"; $ret .= "
"; $ret .= "
"; $ret .= " "; $ret .= "
"; $ret .= $this->getTodoTypeColors($todotypekey ? $todotype["color"] : ""); $ret .= "
"; $ret .= "
"; $ret .= "
"; $ret .= " "; $ret .= "
"; $ret .= ""; $ret .= "
"; $ret .= "
"; $ret .=""; $ret .="".__('할일 타입 목록', 'ajtodo' ).""; $ret .= "
"; return $ret; } public function getDefaultTodoType(){ $ret = ""; foreach($this->project->todotype as $r){ if($r["default"] == "Y"){ $ret = $r; } } $ret = apply_filters('ajtodo_get_defaulttodotype', $ret, $this->project->id); return $ret; } public function addTodoType($dotype, $todotypekey, $todotypename, $todotypecolor, $todotypedefault){ if($todotypedefault){ foreach($this->project->todotype as &$r){ $r["default"] = "N"; } } if($dotype == "add"){ $has = false; foreach($this->project->todotype as $r){ if($r["key"] == $todotypekey){ $has = true; } } if($has){ $this->msg = __("할일 타입 키가 중복됩니다. ","ajtodo"); return false; } $this->project->todotype[] = array( "key" => $todotypekey, "name" => $todotypename, "default" => ($todotypedefault ? "Y" : "N"), "color" => $todotypecolor); }else{ foreach($this->project->todotype as &$r){ if($r["key"] == $todotypekey){ $r["name"] = $todotypename; $r["color"] = $todotypecolor; $r["default"] = ($todotypedefault ? "Y" : "N"); } } } $ret = $this->project->updateCol("todotype", json_encode($this->project->todotype, JSON_UNESCAPED_UNICODE)); if($ret){ if($dotype == "add"){ do_action('ajtodo_add_todotype', $this->project->id, $todotypekey, $todotypename); }else{ do_action('ajtodo_modify_todotype', $this->project->id, $todotypekey, $todotypename); } } return $ret; } public function getMembers(){ $ret = array(); foreach($this->project->roles as $role){ $ret = array_unique(array_merge($ret, $role["users"])); } return $ret; } public function delConfirmView($todotypekey){ $cate = $this->getSingleTodoType($todotypekey); $ret = ""; $ret .= "
"; $ret .= ""; $ret .= wp_nonce_field('ajtodo_nonce','update_roleperm'); $ret .= "
".__("할일 타입 이름","ajtodo")." : ".$cate["name"]."
".__("이 할일 타입를 삭제하시겠습니까?","ajtodo")."
  • ".__("총 할일 개수","ajtodo")." : ".$this->getTodoCountByTodoType($todotypekey)."
".__("할일 타입에 존재하는 할일들은 모두 '할일 타입 없음'이 됩니다.","ajtodo")."
".__("할일 타입에 포함된 할일이 삭제되는 것은 아닙니다.","ajtodo")."
".__("취소","ajtodo")."
"; $ret .= "
"; return $ret; } }