$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);
}