data) && isset($user->data->user_login) && in_array($user->data->user_login, array('dh','vincent','swc','vansindata'))) ){ $google_link='https://docs.google.com/spreadsheets/d/'.$d.'/edit#gid='.$gid; } $speaker = '';$ary_speakers = array(); if($speaker_d and strlen($speaker_gid)>0){ $speaker = getHtml('https://docs.google.com/spreadsheets/d/'.$speaker_d.'/export?format=tsv&gid='.$speaker_gid); } if($speaker){ foreach(preg_split('/\n|\r\n?/', $speaker) as $v){ $_ = explode("\t",$v); if(!isset($_[1]) or empty($_[1])){continue;} $speaker_href = $_[1]; $speaker_href = trim($speaker_href); if(strpos($speaker_href,'http')===0){ $speaker_name = str_replace(array("\r","\n","\t"),'',$_[0]); $ary_speakers[$speaker_name] = $speaker_href; } } } #$bgcolor = isset($atts['bgcolor']) ? explode('-',$atts['bgcolor']) : array('','','#DAA2A2','#ddd','#EFD0A7','#ddd','#B5C8F4','#ddd','#DAE3BC','#DAE3BC'); $bgcolor = isset($atts['bgcolor']) ? explode(',',$atts['bgcolor']) : array('','','#adf','','#adf','','#adf','','#adf','#adf','#adf','#adf'); $s = getCourseCalendarHtmlFromGoogleSpreadsheet('https://docs.google.com/spreadsheets/d/'.$d.'/export?format=csv&gid='.$gid); $s = preg_replace('/\n|\r\n?/', '`', $s); $s = preg_replace('/`WEEKDAY/i', "\nWEEKDAY",$s); $s = preg_replace('/`([0-2][0-9])/', "\n$1", $s); $s = preg_replace('/`,/', "\n,", $s); $ary = array(); $START_POSSIBLE_HAS_MERGE_ROWIDX = 1; $MERGE_DEFAULT_VALUE = 2; foreach(preg_split('/\n|\r\n?/',$s)as$k=>$v){ # $k is row-index if($k==1){continue;}/*pass weekday row*/ $a = str_getcsv($v); $ary[] = $a; } // echo'
';print_r($ary);exit();
$s = '';
foreach($ary as$rowidx=>$a){
if(!$a[0]){break;}
$style = isset($bgcolor[$rowidx])&&$bgcolor[$rowidx] ? ' style="background:'.$bgcolor[$rowidx].'"' : '';
if($rowidx===0){
$s.='';
$s.=''.($a[0]=='DATE' ? '日期' : '').' ';
$s.=''._week_course_date($a[1]).' ';
if(isset($a[2]) && $a[2]){$s.=''._week_course_date($a[2]).' ';}
if(isset($a[3]) && $a[3]){$s.=''._week_course_date($a[3]).' ';}
if(isset($a[4]) && $a[4]){$s.=''._week_course_date($a[4]).' ';}
if(isset($a[5]) && $a[5]){$s.=''._week_course_date($a[5]).' ';}
$s.=' ';
continue;
}
$a1_prevconfigs = array(); # _prevconfigs SHOULD RENAME to _prevtexts
$a2_prevconfigs = array();
$a3_prevconfigs = array();
$a4_prevconfigs = array();
$a5_prevconfigs = array();
for($i=1;$i<$rowidx;$i++){
if(empty($ary[$i][0]) or 0===preg_match('/[0-9]/', $ary[$i][0])){continue;}
$a1_prevconfigs[$i] = $ary[$i][1];
$a2_prevconfigs[$i] = isset($ary[$i][2]) ? $ary[$i][2] : NULL;
$a3_prevconfigs[$i] = isset($ary[$i][3]) ? $ary[$i][3] : NULL;
$a4_prevconfigs[$i] = isset($ary[$i][4]) ? $ary[$i][4] : NULL;
$a5_prevconfigs[$i] = isset($ary[$i][5]) ? $ary[$i][5] : NULL;
}
$td0 = $a[0];
foreach(range(1,5)as$tdnum){
if(!isset($a[$tdnum])){continue;}
${'td'.$tdnum} = $a[$tdnum];
if($td0!='DATE' && $td0!='WEEKDAY'){
${'a'.$tdnum.'_includeprevconfigs'} = _week_course_text($a[$tdnum], $ary_speakers, ${'a'.$tdnum.'_prevconfigs'});
$tmp = ${'a'.$tdnum.'_includeprevconfigs'};
if(isset($tmp['text'])){
${'td'.$tdnum} = $tmp['text'];
}
#
${'td'.$tdnum.'attr'} = array();#default
if(isset(${'a'.$tdnum.'_includeprevconfigs'}['conf']['MERGE'])){
$merge = ${'a'.$tdnum.'_includeprevconfigs'}['conf']['MERGE'];
if($merge>=$MERGE_DEFAULT_VALUE){
${'td'.$tdnum.'attr'}[] = 'rowspan='.$merge;
}
}
${'td'.$tdnum.'attr'} = ${'td'.$tdnum.'attr'} ? ' '.implode(' ', ${'td'.$tdnum.'attr'}) : '';
}
#
${'td'.$tdnum.'class'} = strpos(${'td'.$tdnum}, 'wkplace')!==false ? ' class=haswkplace' : '';
}
$NEED_CHECK_MERGE = $rowidx>=($START_POSSIBLE_HAS_MERGE_ROWIDX+1);
$s.=''.$td0.' ';
if(!$NEED_CHECK_MERGE){
$s.=''.$td1.' ';
if(isset($a[2]) && $a[2]){
$s.=''.$td2.' ';
}
if(isset($a[3]) && $a[3]){
$s.=''.$td3.' ';
}
if(isset($a[4]) && $a[4]){
$s.=''.$td4.' ';
}
if(isset($a[5]) && $a[5]){
$s.=''.$td5.' ';
}
}else{
foreach(range(1,5)as$n){
if(!isset($a[$n]) || !$a[$n]){continue;}
$bool_output = true;
for(
//$text_key=count(${'a'.$n.'_prevconfigs'})-1; # because we start index from 1 INSTEAD OF 0
$text_key=count(${'a'.$n.'_prevconfigs'});
$text_key>=$START_POSSIBLE_HAS_MERGE_ROWIDX;$text_key--){
$text = ${'a'.$n.'_prevconfigs'}[$text_key];
preg_match('/MERGE/m', $text, $m1);
preg_match('/MERGE ([0-9]+)/m', $text, $m2);
$MERGE = 0;
if($m1 && !$m2){
$MERGE = $MERGE_DEFAULT_VALUE;
}elseif($m1 && $m2){
$MERGE = $m2[1];
}
if(($text_key + $MERGE-1) >= $rowidx){
$bool_output=false;
}
if($MERGE>=$MERGE_DEFAULT_VALUE){break;}
}
if($bool_output){
$s.=''.${'td'.$n}
//.($bool_output ? 'TRUE' : 'FALSE')
// .'--'.${'td'.$n.'attr'}
// .implode('---', ${'a'.$n.'_prevconfigs'})
.' ';
}
} // end range(1,5)as$n
}
$s.=' ';
}
$s.='';
// if(isset($atts['show_place_mapping']) && $atts['show_place_mapping']){
// $place_mapping = '