$area,'join_no'=>$join_no); } return$ret; } $ARY_EXTRA_MGR_SCHOOL_NO_CONFIG = _extra_mgr_text_to_conf(file_exists(EXTRA_MGR_SCHOOL_NO_CONFIG_FILENAME) ? file_get_contents(EXTRA_MGR_SCHOOL_NO_CONFIG_FILENAME) : ''); $ARY_EXTRA_TECH_SCHOOL_NO_CONFIG = array(); function is_staff_can_view_video($wp_user_login=null){ #video.aiacademy.tw only if(!$wp_user_login){ $user = wp_get_current_user(); if($user){$wp_user_login = $user->user_login;} } return !!$wp_user_login; # && !in_array($wp_user_login, $ary_parttime); # 20190903 by DH ask & Jock's decision: every staff can view all video //$ary_parttime = array('eric8607242','andy6804tw'); $ary_ta = array( 'chi','yuchi','wayne' ); $ary_staff_can_view_video = array_merge(array('vansindata'), $ary_ta); return in_array($wp_user_login, $ary_staff_can_view_video); } #taipei function is_tp_tech_leader_student($school_no){ return substr(strtolower($school_no),0,2)==TAIPEI_AREA_CODE.'t';#'at'; } function is_tp_mgr_student($school_no){ return substr(strtolower($school_no),0,2)==TAIPEI_AREA_CODE.'m';#'am'; } function is_tp_medical_student($school_no){ return substr(strtolower($school_no),0,2)==TAIPEI_AREA_CODE.'h';#'ah'; } #hsinchu function is_hc_tech_leader_student($school_no){ return substr(strtolower($school_no),0,2)==HSINCHU_AREA_CODE.'t';#'jt'; } function is_hc_mgr_student($school_no){ return substr(strtolower($school_no),0,2)==HSINCHU_AREA_CODE.'m';#'jm'; } #taichung function is_tc_tech_leader_student($school_no){ return substr(strtolower($school_no),0,2)==TAICHUNG_AREA_CODE.'t';#'bt'; } function is_tc_mgr_student($school_no){ global$ARY_EXTRA_MGR_SCHOOL_NO_CONFIG; return substr(strtolower($school_no),0,2)==TAICHUNG_AREA_CODE.'m' || isset($ARY_EXTRA_MGR_SCHOOL_NO_CONFIG[$school_no]); } function is_tc_medical_student($school_no){ return substr(strtolower($school_no),0,2)==TAICHUNG_AREA_CODE.'h'; } #south function is_st_tech_leader_student($school_no){ return substr(strtolower($school_no),0,2)==SOUTH_AREA_CODE.'t'; } function is_st_mgr_student($school_no){ return substr(strtolower($school_no),0,2)==SOUTH_AREA_CODE.'m'; } function is_st_medical_student($school_no){ return substr(strtolower($school_no),0,2)==SOUTH_AREA_CODE.'h'; } #----------END of is_XX_YYY_studnet functions. if($_SERVER['SERVER_NAME']!=='video.aiacademy.tw'){ $ARY_PARTNER_KEYCLOAK = array(); #deprecated }else{ $ARY_PARTNER_KEYCLOAK = array( #deprecated 'fpccomtw'=>array('area'=>TAIPEI_AREA_CODE, 'joinno'=>1), 'maryyang'=>array('area'=>TAIPEI_AREA_CODE, 'joinno'=>1), ); } define('SCHOOL_PRINCIPAL_MGR_ACCOUNT', 'htkung'); $ary_AIA_school_no_joinno = array( 'am081'=>4, 'am082'=>5, 'am083'=>6, 'am091'=>7, 'am101'=>9, 'am102'=>10, 'am113'=>113, 'am114'=>114, 'am115'=>115, 'am117'=>117, 'am123'=>123, 'am125'=>125, 'am127'=>127, 'am129'=>129, 'am131'=>131, 'ag131'=>131, 'ag132'=>132, 'ag141'=>141, 'ag142'=>142, 'ag143'=>143, 'ag144'=>144, 'jm081'=>3, 'jm082'=>4, 'bm081'=>2, 'bm082'=>3, 'bm083'=>4, 'bm113'=>113, 'bm114'=>114, 'bm115'=>115, 'bm116'=>116, 'bm091'=>5, 'bm111'=>9, 'bm121'=>121, 'bm122'=>122, 'ah091'=>3, 'ah101'=>4, 'ah111'=>111, 'ah121'=>121, 'bh101'=>101, 'bh111'=>3, 'bh112'=>112, 'bh113'=>113, 'cm121'=>121, 'cm123'=>123, 'cm131'=>131, 'cm999'=>999, 'cg131'=>131, 'cg133'=>133, 'ct131'=>131, 'cm137'=>137, 'cm141' => 141, 'cm142' => 142, 'cm143' => 143, 'cm144' => 144, 'cm145' => 145, 'cm146' => 146, 'cm147' => 147, 'cm148' => 148, 'cm149' => 149, 'ab141' => 141, 'ab142' => 142, 'ab143' => 143, 'ab144' => 144, 'ab145' => 145, 'ab146' => 146, 'ab147' => 147, 'ab148' => 148, 'ab149' => 149, ); function is_has_video_xlass($school_no){ # Logic for after 2020 $school_no = strtolower($school_no); $is_staff = substr($school_no, strlen($school_no) - strlen('@aiacademy.tw'))==='@aiacademy.tw' || substr($school_no, strlen($school_no) - strlen('@sted.tw'))==='@sted.tw'; if($is_staff){ return true; } $b=false; if($school_no){ $ARY_HAS_VIDEO_XLASS = array( 'AM071','AM072','AM073','AM081','AM082','AM083','AM091','AM101','AM102','AM112','AM113','AM114','AM115','AM117','AM123','AM125','AM127','AM129','AM131', 'AB141','AB142','AB143','AB144','AB145','AB146','AB147','AB148','AB149', 'AG131','AG132','AG141','AG142','AG143','AG144', 'JM071','JM072','JM081', 'BM071','BM081','BM082','BM091','BM111','BM113','BM114','BM115','BM116','BM121','BM122', 'EM081','EM082','EM083', 'AH081', 'AH082', 'AH091','AH101','AH111','AH121', 'BH081','BH101','BH111','BH112','BH113', 'EH081', 'CM121','CM999','CM137', 'CG131','CG133', 'CM141','CM142','CM143','CM144','CM144','CM145','CM146','CM147','CM148','CM149', 'CT131', ); #if(now('Y-m-d')<='2019-12-31'){ # $ARY_HAS_VIDEO_XLASS[] = 'AM083'; #} foreach($ARY_HAS_VIDEO_XLASS as$v){ $v = strtolower($v); if(strpos($school_no,$v)===0){ $b=true;break; } } } return$b; } function is_no_video_xlass($school_no){ # Logic for before 2019 $b=false; $school_no = strtolower($school_no); if($school_no){ $ARY_NO_VIDEO_XLASS = array('bm083','jm082'); foreach($ARY_NO_VIDEO_XLASS as$v){ $v = strtolower($v); if(strpos($school_no,$v)===0){ $b=true;break; } } } return$b; } function get_student_xlass($school_no){ return substr($school_no,1,1); } function get_student_join_no($school_no){ global$ARY_EXTRA_MGR_SCHOOL_NO_CONFIG, $ary_AIA_school_no_joinno; $school_no = strtolower($school_no); if(isset($ARY_EXTRA_MGR_SCHOOL_NO_CONFIG[$school_no])){ return $ARY_EXTRA_MGR_SCHOOL_NO_CONFIG[$school_no]['join_no']; } $class_no = substr($school_no, 0, 5); if(isset($ary_AIA_school_no_joinno[$class_no])){ return $ary_AIA_school_no_joinno[$class_no]; } #if($school_no=='bm081001'){ #print_r($ary_AIA_school_no_joinno);echo$ary_AIA_school_no_joinno[$class_no];exit; #} return substr($school_no, 4, 1)+0; #limit_at_join_no } function get_student_area_code($school_no){ global$ARY_EXTRA_MGR_SCHOOL_NO_CONFIG; $school_no = strtolower($school_no); if(isset($ARY_EXTRA_MGR_SCHOOL_NO_CONFIG[$school_no])){ return $ARY_EXTRA_MGR_SCHOOL_NO_CONFIG[$school_no]['area']; } return substr($school_no,0,1); } function get_student_personal_no($school_no){ return substr($school_no,5,7);#AM111111 } function is_taipei_student_area_code($area_code){ return strtolower($area_code)===TAIPEI_AREA_CODE; } function is_taichung_student_area_code($area_code){ return strtolower($area_code)===TAICHUNG_AREA_CODE; } function is_hsinchu_student_area_code($area_code){ return strtolower($area_code)===HSINCHU_AREA_CODE; } function is_south_student_area_code($area_code){ return strtolower($area_code)===SOUTH_AREA_CODE; } function get_aia_calendar_url($school_no){ #$school_no_prefix = substr($school_no, 0, strlen($school_no)-3); #return AIA_CALENDAR_URL_PREFIX.$school_no_prefix .'/'; return get_calendar_url($school_no); } function get_logined_success_redirect_url($school_no){ $school_no_prefix = substr($school_no, 0, strlen($school_no)-3); $IS_CLASS = strpos($_SERVER['SERVER_NAME'],'class.')===0 || strpos($_SERVER['SERVER_NAME'],'mgr.')===0; if($IS_CLASS){ return get_aia_calendar_url($school_no); } $IS_VIDEO = strpos($_SERVER['SERVER_NAME'],'video.')===0; #|| strpos($_SERVER['SERVER_NAME'],'mgr.')===0; if($IS_VIDEO){ global$ARY_STUDENT_AREA_CODE; /* $school_no_year = substr($school_no, 2,2); $taiwan_year = 100 + $school_no_year; $global_year = $taiwan_year + 1911; $year_in_url = ''; if($global_year>2018){ }*/ /* mgr-taichung-video-1 mgr-video-1 mgr-video-2 mgr-hsinchu-video-1 */ $join_no = get_student_join_no($school_no); $area_code=get_student_area_code($school_no); $code_in_url = ''; $xlass_prefix=''; if(is_medical_student_school_no($school_no)){ $xlass_prefix='med'; if(is_taichung_student_area_code($area_code)){ $code_in_url = $ARY_STUDENT_AREA_CODE[TAICHUNG_AREA_CODE].'-'; }elseif(is_south_student_area_code($area_code)){ $code_in_url = $ARY_STUDENT_AREA_CODE[SOUTH_AREA_CODE].'-'; }elseif(is_taipei_student_area_code($area_code)){ $code_in_url = $ARY_STUDENT_AREA_CODE[TAIPEI_AREA_CODE].'-'; } }elseif(is_mgr_student_school_no($school_no)){ $xlass_prefix='mgr'; if(is_taichung_student_area_code($area_code)){ $code_in_url = $ARY_STUDENT_AREA_CODE[TAICHUNG_AREA_CODE].'-'; }elseif(is_hsinchu_student_area_code($area_code)){ $code_in_url = $ARY_STUDENT_AREA_CODE[HSINCHU_AREA_CODE].'-'; }elseif(is_south_student_area_code($area_code)){ $code_in_url = $ARY_STUDENT_AREA_CODE[SOUTH_AREA_CODE].'-'; }elseif(is_taipei_student_area_code($area_code)){ $code_in_url = ''; } } var_dump($xlass_prefix); return CATEGORY_PREFIX_URL . $xlass_prefix.'-'.$code_in_url.'video-'.$join_no.'/'; } } function is_student_keycloak_user($school_no){ $school_no = strtolower($school_no); return 1===preg_match(STUDENT_KEYCLOAK_USERNAME_PATTERN, $school_no); } function is_medical_student_school_no($school_no){ $school_no = strtolower($school_no); return 1===preg_match(MEDICAL_STUDENT_KEYCLOAK_USERNAME_PATTERN, $school_no); } function is_industrial_student_school_no($school_no){ $school_no = strtolower($school_no); return 1===preg_match(INDUSTRIAL_STUDENT_KEYCLOAK_USERNAME_PATTERN, $school_no); } function is_generativeAI_student_school_no($school_no){ $school_no = strtolower($school_no); return 1===preg_match(GENERATIVE_AI_USERNAME_PATTERN, $school_no); } function is_business_student_school_no($school_no){ $school_no = strtolower($school_no); return 1===preg_match(BUSINESS_STUDENT_USERNAME_PATTERN, $school_no); } function is_tech_student_school_no($school_no){ $school_no = strtolower($school_no); return 1===preg_match(TECH_STUDENT_KEYCLOAK_USERNAME_PATTERN, $school_no); } function is_mgr_student_school_no($school_no){ global$ARY_EXTRA_MGR_SCHOOL_NO_CONFIG; $school_no = strtolower($school_no); return 1===preg_match(MGR_STUDENT_KEYCLOAK_USERNAME_PATTERN, $school_no) || isset($ARY_EXTRA_MGR_SCHOOL_NO_CONFIG[$school_no]); } function get_calendar_suffix_length($school_no){ $school_no = strtolower($school_no); preg_match(MGR_STUDENT_ACCOUNT_PREFIX_NUMBER, $school_no, $output); $prefix_number = $output[0] + 0; $prefix_length = 5; # 2020Q2 2020Q3 #$is_elective_course = $prefix_number >= 92; # adding only for tech classes and number "092" for elective course # 2020Q4 $is_elective_course = $prefix_number == 92 && (strpos($school_no,'am')!==0 && strpos($school_no,'em')!==0); # closing elective courses by Richie(CEO) from 2020Q4 if(strpos($school_no,'jt0820')===0 || strpos($school_no,'jt0821')===0 || $is_elective_course){ $prefix_length = 6; } return $prefix_length; } function get_calendar_url($school_no){ $school_no = strtolower($school_no); //even for those people who are back training, if even, substract 1 from number if(strlen($school_no)==8){ preg_match_all('/([A-Z a-z]{2})(\d{3})(\d{3})/', $school_no, $matches); //print_r( $matches); //echo "
"; if(count($matches) == 4){ //$matches[2][0] = ($matches[2][0] % 2 == 0 and $matches[2][0] > 113 && strtoupper(substr($school_no, 0, 5)) != 'CT132') ? $matches[2][0]-1:$matches[2][0]; $matches[2][0] = ($matches[2][0] % 2 == 0 and $matches[2][0] > 113 && $matches[2][0] < 130) ? $matches[2][0]-1:$matches[2][0]; //print_r( $matches); $school_no = $matches[1][0] .$matches[2][0] .$matches[3][0]; //echo "
".$school_no; } } $prefix_length = get_calendar_suffix_length($school_no); return AIA_CALENDAR_URL_PREFIX.substr($school_no,0,$prefix_length); } function can_view_aia_calendar_keycloak_user($keycloak_username){ if(strpos($keycloak_username, '@aiacademy.tw')!==false ||strpos($keycloak_username, '@sted.tw')!==false ){return true;} $a = array( 'richie.tsai@aiacademy.tw'); return in_array($keycloak_username, $a); } function can_view_aia_video_keycloak_user($keycloak_username){ return can_view_aia_calendar_keycloak_user($keycloak_username); // 2019Q3 same as can_view_aia_calendar: allow all staff can view video. } function is_school_no_for_corporate_admin($school_no){ $corporate_admin = array( 'cm121100' ); foreach($corporate_admin as $key => $value){ $corporate_admin[$key]=strtolower($value); } return in_array(strtolower($school_no),$corporate_admin); }