alert("The page has not yet been released.\n尚未公開。");
window.location.href = "https://conf2025.aiacademy.tw/";
';
exit();
}else{
echo '
Notice: The agenda is currently under development and may not be fully accurate.
目前仍在開發中(未開放)。
';
}
}
/**
* WordPress 基本設定檔。
*
* 本檔案包含以下設定選項: MySQL 設定、資料表前綴、
* 私密金鑰、WordPress 語言設定以及 ABSPATH。如需更多資訊,請
* 前往 {@link http://codex.wordpress.org/Editing_wp-config.php 編輯
* wp-config.php} Codex 頁面。或者向您的空間提供商諮詢關於 MySQL 設定資訊。
*
* 這個檔案用於安裝程式自動生成 wp-config.php 設定檔。
* 您不需要將它用於您的網站,可以手動複製這個檔案,
* 並重新命名為 "wp-config.php",然後輸入相關訊息。
*
* @package WordPress
*/
// ** MySQL 設定 - 您可以從主機服務提供商獲取相關資訊。 ** //
/** WordPress 的資料庫名稱,請更改 "database_name_here" */
if(file_exists(dirname(__FILE__).'/db_user_pwd.php')){
include 'db_user_pwd.php';
}
if(!isset($db_user) or !$db_user){
define('DB_NAME', 'conf2025aiacwp');
/** MySQL 資料庫使用者名稱,請更改 "username_here" */
define('DB_USER', 'root');
/** MySQL 資料庫密碼,請更改 "password_here" */
define('DB_PASSWORD', 'swC651121!#');
}else{
define('DB_NAME', $db_name);
define('DB_USER', $db_user);
define('DB_PASSWORD', $db_pwd);
}
/** MySQL 主機位址 */
define('DB_HOST', 'mysql8');
/** 建立資料表時預設的文字編碼 */
define('DB_CHARSET', 'utf8mb4');
/** 資料庫對照型態。如果不確定請勿更改。 */
define('DB_COLLATE', 'utf8_unicode_ci');
/**#@+
* 認證唯一金鑰設定。
*
* 將這些更改為不同的唯一字串或符號。
* 您可以使用 {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org 私密金鑰服務} 來自動產生。
* 您可於任何時候修改這些字串讓 Cookies 失效。這將會強制所有使用者必須重新登入。
*
* @since 2.6.0
*/
//define('AUTH_KEY', '#*2NRB:MV/~f?d_5Vi|7l&H$D9Pk{2E1`[EzVfnk*;(y3nUR!x*vrZc6FHNKOMU?');
// define('SECURE_AUTH_KEY', 'W[xL vzOCz< UKMaI2Cy=xIb$y(2:(fAv6iJ]HL|=2NB((Isb=}y6!M@+Rf)N');
// define('LOGGED_IN_KEY', '~hLQJ1`G8sa');
// define('NONCE_KEY', 'aECab#F)V z+MC`<{%`51VW]WRd 0_IC%fMh}e!gg](KjG!Yz');
// define('AUTH_SALT', 'w6=]nR+{z#MuJ toHgVmYAswp<~Vc8:GS`Ph^gC#B#jmaL@W0GCB*J5].{am.0fW');
// define('SECURE_AUTH_SALT', '{83QFR3CwUu/^b*1}|Zq0L,xWV3`IK');
define('SECURE_AUTH_SALT', 'aa$g>n@zEn}~%c XXi/#IUZ0|<%2[%!lADAfkwp855r]g_0wa~k+_Ysc1f;=[[(q');
define('LOGGED_IN_SALT', 'aax+qd_m{Z}V_)s6$SpI(vKkNYEo>-%`65EcfJ[5_fX>3+`Bw`i');
define('NONCE_SALT', 'aaY?vt:+(D+j*p9jv+rc+ZFS]-DI@g0aB0KN%56-dfYpV>N$(rBW[xH10OXS~s3r');
/**#@-*/
/**
* WordPress 資料表前綴。
*
* 若您為每個 WordPress 設定不同的資料表前綴,則可在同個資料庫內安裝多個 WordPress。
* 前綴只能使用半型數字、字母和底線!
*/
$table_prefix = 'sci_';
/**
* WordPress 自動儲存間隔
*
* 當您編輯文章時 WordPress 使用 Ajax 技術自動地定時幫您儲存文章草稿。
* 您可更改數值以延長或減少自動儲存的時間間隔。
* 預設儲存間隔為 60 秒。
*/
//define('AUTOSAVE_INTERVAL', 60 ); // 單位:秒
/**
* WordPress 文章版本設定
*
* WordPress 預設會幫您儲存舊版的文章與分頁,以便您之後可以回復到先前的版本。
* 這功能可關閉,或是指定最大版本數量。
* 預設為開啟,若要關閉請將它設為 false。
* 若您想指定指定最大版本數量,請設個整數。
*/
define('WP_POST_REVISIONS', 5 );
/**
* 快取
*
* 若 WP_CACHE 值為 true,當它執行 wp-settings.php 時會把 wp-content/advanced-cache.php 一起執行。
* 許多快取外掛會要求您將這個值設為 true。
*/
/**
* 啟用多網誌站台與網誌網路功能
*
* 若 WP_ALLOW_MULTISITE 值為 true 可啟用多網誌站台功能。
*/
//define('WP_ALLOW_MULTISITE', false);
/**
* 開發人員用: WordPress 偵錯模式。
*
* 將此設定為 true 將可開啟開發時的通知顯示。
* 強烈建議外掛與佈景主題開發人員使用 WP_DEBUG
* 於他們的開發環境中。
*/
$LIVE_SERVER_IP = '172.18.0.2';
define('WP_DEBUG', /*strpos($_SERVER['REMOTE_ADDR'],$LIVE_SERVER_IP)===0*/ isset($_GET['xza1']) );
if($_SERVER['SERVER_ADDR'] == $LIVE_SERVER_IP){//
define('WP_HOME','https://conf2025.aiacademy.tw');
define('WP_SITEURL','https://conf2025.aiacademy.tw');
}elseif($_SERVER['SERVER_ADDR']==DEVELOP_IP){
define('WP_HOME','https://conf2025dev.aiacademy.tw');
define('WP_SITEURL','https://conf2025dev.aiacademy.tw');
}else{
define('WP_HOME','https://conf2025beta.aiacademy.tw');
define('WP_SITEURL','https://conf2025beta.aiacademy.tw');
}
function now($format='Y-m-d H:i:s'){ // %Y-%m-%d %H:%M:%S
foreach(array('Y'=>'%Y', 'm'=>'%m', 'd'=>'%d', 'H'=>'%H', 'i'=>'%M', 's'=>'%S')as$k=>$v){
$format = str_replace($k,$v,$format);
}
$ret = shell_exec("date '+".$format."'");
return trim($ret);
}
/* 設定完成,請儲存檔案。然後開始 Blogging 吧! */
/** WordPress 目錄的絕對路徑。 */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
define('TBL_AGENDA', 'agenda');
define('TBL_AGENDA_LOGIN', 'agenda_login');
define('TBL_AGENDA_FILE_LOG', 'agenda_file_download_log');
define('TBL_AGENDA_WORKING', 'agenda_backup');
define('TBL_SPEAKERS', 'speakers');
define('TBL_SPEAKERS_CHANGELOG', 'speakers_changelog');
define('IS_GOOGLE_EXCEL_DATA', 1);
define('IS_UNCOMPRESS', isset($_GET['unc1c1c']));
define('HELPER_FUNC_FILE_DIR', __DIR__.'/helper_functions.php');
define('WEB_URL', '/');
define('TOOLS_URL', WEB_URL.'tools/');
define('PDF_URL', WEB_URL.'pdf/');
define('KEYNOTE_SPEAKERS_URL', WEB_URL.'keynote-speakers/');
define('SPECIAL_SPEAKERS_URL', WEB_URL.'special-speakers/');
define('SPEAKERS_URL', WEB_URL.'speakers/');
define('AGENDA_URL', WEB_URL.'agenda/');
define('ENTER_URL', WEB_URL.'enter/');
define('R0_URL', WEB_URL.'r0/');
define('SIGNUP_URL', WEB_URL.'signup/');
define('FE_VER', strpos($_SERVER['REMOTE_ADDR'],'198.13.46.35')===0 ? '?'.date('YmdHi') : '?o');
define('CSS_FOLDER', 'css');
define('CSS_URL', WEB_URL . CSS_FOLDER.'/');
define('CSS_VENDORS_URL', CSS_URL . 'vendor/');
define('JS_FOLDER', 'js');
define('JS_URL', WEB_URL . JS_FOLDER.'/');
define('JS_VENDOR_URL', JS_URL . 'vendor/');
define('ASSETS_URL', WEB_URL . 'assets/');
define('BOOTSTRAP_URL', ASSETS_URL . 'bootstrap/');
define('BS_DATERANGEPICKER_URL', JS_URL . 'bootstrap-daterangepicker/');
define('IMG_URL', WEB_URL . 'img/');
define('IMG_FLAG_URL', IMG_URL . 'flag/');
define('IMG_SPONSOR_3D_URL', IMG_URL . 'sp24/');
define('BANNER_URL', IMG_URL.'bnr/');
define('IMAGES_URL', WEB_URL . 'images/');
define('IMG_SPEAKER_URL', IMG_URL.'speaker/');
define('IMG_SPEAKER_DIR', __DIR__.IMG_SPEAKER_URL);
define('CATEGORY_PREFIX_URL', WEB_URL.'category/');
define('TAG_PREFIX_URL', WEB_URL.'tag/');
$ip = $_SERVER['REMOTE_ADDR'];
define('IS_DEV', false);#strpos($_SERVER['HTTP_HOST'], '.dev')!==false); # TODO: code review
define('IS_TEAM_MEMBERS_IP', strpos($ip, '118.163.102.67')===0 || strpos($ip,'36.225.213.191')===0);
define('DIRL_601_602_WIFI_IP', '140.109.22.127'); # TODO: code review
define('IS_STRICT_TEAM_MEMBERS_IP', false); #$ip==='140.109.16.166' || $ip===DIRL_601_602_WIFI_IP || $ip==='127.0.0.1'); # TODO: code review
define('IS_PRODUCTION', strpos($_SERVER['HTTP_HOST'], LIVE_DOMAIN)!==false); # TODO: code review
define('AI_TALK_CAT_ID', 17);
define('DS_TALK_CAT_ID', 18);
define('EDM_CAT_ID',3);
define('COORG_CAT_ID', 15);
define('ACADEMIC_PARTNER_CAT_ID',273);
define('LIVE_SUPPORT_CAT_ID', 270);
define('SPONSOR_CAT_ID', 9);
define('DIAMOND_SPONSOR_CAT_ID', 10);
define('SILVER_SPONSOR_CAT_ID', 11);
define('GOLD_SPONSOR_CAT_ID', 12);
define('SPONSOR_KPMG_POST_ID', 6440);
define('SPONSOR_MS_POST_ID', 570);
define('SPONSOR_CISCO_POST_ID', 6442);
define('SPONSOR_ASIASCHOOL_POST_ID', 6519);
define('SPONSOR_INFUSEAI_POST_ID', 7110);
define('ABOUT_PAGE_ID',2);
define('AGENDA_PAGE_ID',6);
define('SUPPORT_COM_PAGE_ID',23);
define('SUPPORT_ORG_PAGE_ID',34);
define('SPEAKER_PAGE_ID',8);
define('VUL_PAGE_ID',37);
define('EMCEE_PAGE_ID', 7328);
define('HOST_PAGE_ID', 7328);
define('VIP_PAGE_ID', 1412);
define('KEYNOTE_SPEAKER_PAGE_ID', 321);
define('PANEL_DISCUSSION_PAGE_ID', 8301);
define('SPECIAL_SPEAKER_PAGE_ID', 7114);
define('TOPIC_SPEAKER_PAGE_ID', 665);
define('TOPIC_SPEAKER_TOTAL_NUM', 124);
define('KEYNOTE_SPEAKER_TOTAL_NUM', 4);
define('SIGNUP_PAGE_ID',10);
define('TICKET_INFO_PAGE_ID',54);
define('TRANSFER_TICKET_PAGE_ID',57);
define('AI_SPEAKER_PAGE_ID',57);
define('TRAFFIC_PAGE_ID',60);
define('ORGANIZING_PAGE_ID',27);
define('SPONSOR_PAGE_ID',14);
define('MEDIA_PARTNER_PAGE_ID',32);
define('PAST_PAGE_ID',12);
define('EMCEE_CAT_ID', 272);
define('HOST_CAT_ID', 272);
define('VIP_CAT_ID', 16);
define('SPEAKER_CAT_ID', 6);
define('SPECIAL_SPEAKER_CAT_ID', 271);
define('KEYNOTE_SPEAKER_CAT_ID', 4);
define('TOPIC_SPEAKER_CAT_ID', 5);
define('AI_SPEAKER_CAT_ID', 7);
#define('DS_SPEAKER_CAT_ID', 8);
define('PANEL_SPEAKER_CAT_ID', 8);
define('SPECIAL_SPEAKER_ID1', 0);
define('SPECIAL_SPEAKER_ID2', 0);
define('SPECIAL_SPEAKER_ID3', 0);
define('SPECIAL_SPEAKER_ID4', 0);
define('SPECIAL_SPEAKER_ID5', 0);
define('SPECIAL_SPEAKER_ID6', 0);
// Home page use cache
$uri = $_SERVER['REQUEST_URI'];
$a = explode('?', $uri); #while development
$uri = $a[0];
$cache_file = __DIR__.'/v_cache/home_cache.html';
if( 0 && ($uri=="" || $uri=="/") && substr($a[1], 0, 2)!="nc" ){
if(file_exists($cache_file)){
$html = file_get_contents($cache_file);
if($html){
$html = str_replace('http://'.$_SERVER['SERVER_NAME'], '//'.$_SERVER['SERVER_NAME'], $html);
die($html
. ($_SERVER['REMOTE_ADDR']=='61.222.27.93' ? '' : '')
);
}
}
}
/* user authentication */
if(!in_array($_SERVER['REMOTE_ADDR'],array('149.28.16.132'))):// Skip this code if the IP is the host to avoid the alert message being cached.//,'61.222.27.93'
if(stripos($uri, "playback")!== false){
//require_once $_SERVER['DOCUMENT_ROOT'] ."/email_validation/continuous_authentication.php";
}
endif;
function get_agenda_login_hash($type, $no, $email_or_phone){ # TODO: code review
#return hash('sha256', $no.'-datasci'.$email_or_phone.'-.tw');
return hash('sha256', $no.'-aia'.$email_or_phone.'-cademy.tw');
}
/* palyback use cache */
if(1):
$v_cache_path=$_SERVER['DOCUMENT_ROOT'].'/v_cache/';
$cache_files= array(
'playback-conf2025', //
'conf2025-playback-video'//
);
foreach($cache_files as $file){
$cache_file = $v_cache_path . $file. '.html';
if( $uri=="/$file/" && substr($a[1], 0, 2)!="nc" ){
if(file_exists($cache_file)){
$html = file_get_contents($cache_file);
if($html){
$html = str_replace('http://'.$_SERVER['SERVER_NAME'], '//'.$_SERVER['SERVER_NAME'], $html);
die($html
. ($_SERVER['REMOTE_ADDR']=='61.222.27.93' ? '' : '')
);
}
}
}
}
endif;
// function mb_str_split( $s ) {
// # Split at all position not after the start: ^
// # and not before the end: $
// return preg_split('/(?$v){
$s = str_replace($k,$v,$s);
}
$s = htmlspecialchars($s);
foreach($ary_allow as$k=>$v){
$s = str_replace($v, $k, $s);
}
return $s;
}
function imgsrc_rm_domain($imgsrc){
$b=false;
$a = array($_SERVER['SERVER_NAME'], LIVE_DOMAIN, LIVE_DOMAIN_WITH_WWW);
$a = array_unique($a);
foreach($a as$domain){
if(strpos($imgsrc, $domain)!==false){ $b=$domain;break; }
}
if($b){
list($tmp, $imgsrc) = explode($b, $imgsrc);
}
return $imgsrc;
}
function get_imgsrc_by_post_meta($post_ID, $meta_key='photo', $image_size='medium'){
$img = get_post_meta($post_ID,$meta_key, true);
$img = wp_get_attachment_image($img, 'medium');
preg_match('/ src=".*?"/', $img,$m);
$imgsrc = isset($m[0]) ? substr($m[0],6,-1) : '';
$imgsrc = imgsrc_rm_domain($imgsrc);
return$imgsrc;
}
function get_attribute_value_in_one_tag($tag_html, $attr='src') {
preg_match('/ '.$attr.'=".+?"/i', $tag_html, $m);
return str_replace(array(' '.$attr.'="', '"'), '', $m[0]);
}
function get_featured_imgsrc($post_id,$ary_size_conf=array(320,320)){
$imgsrc='';
$html_thumb = get_the_post_thumbnail($post_id, $ary_size_conf);
$thumb = preg_match('/ src=".*?"/', $html_thumb,$m);
if(isset($m[0])&&$m[0]!=''){
$imgsrc = str_replace(array('"'," src="),'',$m[0]);
}else{
global $wpdb;
$query = $wpdb->prepare( "SELECT * FROM speakers WHERE post_id = %s", $post_id );
$row = $wpdb->get_row( $query );
$imgsrc = $row->photo??"";
}
return$imgsrc;
}
$ary_frontend_modules_config = array(
// https://github.com/kazzkiq/balloon.css/blob/master/balloon.css
// 'balloon'=>array('CSS'=>$IS_PC ? array(CSS_URL.'balloon.css') : array()) // using Javascript dynamic loading
/*
*/
'bootstrap'=>array(
'CSS'=>array(BOOTSTRAP_URL.'css/bootstrap.min.css', BOOTSTRAP_URL.'css/bootstrap-theme.min.css'),
'JS'=>array(BOOTSTRAP_URL.'js/bootstrap.min.js')
),
'bootstrap_daterangepicker'=>array(
'CSS'=>array(
BS_DATERANGEPICKER_URL.'daterangepicker.css'
),
'JS'=>array(
BS_DATERANGEPICKER_URL.'moment.min.js',
BS_DATERANGEPICKER_URL.'daterangepicker.js',
//
// 'https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js', // lt IE9
// 'https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js', // lt IE9
)
),
'base'=>array('CSS'=>array(CSS_URL.'conf2025base.css'.FE_VER)),
'fonts'=>array('CSS'=>array(CSS_URL.'fonts.css')),
'animations'=>array('CSS'=>array(CSS_URL.'animations.css')),
);
array_unshift($ary_frontend_modules_config['bootstrap_daterangepicker']['CSS'],
$ary_frontend_modules_config['bootstrap']['CSS'][0],
$ary_frontend_modules_config['bootstrap']['CSS'][1]
);
array_unshift($ary_frontend_modules_config['bootstrap_daterangepicker']['JS'],
$ary_frontend_modules_config['bootstrap']['JS'][0]
);
function collect_frontend_assets($ary_frontend_modules){
global $ary_frontend_modules_config;
$ary_CSS = $ary_JS = array();
foreach($ary_frontend_modules as$module){
$assets = $ary_frontend_modules_config[$module];
foreach(array('JS','CSS')as$type){
// if(!is_array($assets[$type])){var_dump($assets[$type]);continue;}
if(!is_array($assets[$type])){continue;}
foreach($assets[$type] as $url){
if(!in_array($url, ${'ary_'.$type})){
array_push(${'ary_'.$type}, $url);
}
}
}
}
return array('CSS'=>$ary_CSS, 'JS'=>$ary_JS);
}
function get_css_js_assets_handle($css_js_relative_url){
if(strpos($css_js_relative_url, '?')!==false){
list($css_js_relative_url, $_) = explode('?', $css_js_relative_url);
}
$css_js_relative_url = str_replace('/', '-', $css_js_relative_url);
$css_js_relative_url = str_replace('.', '_', $css_js_relative_url);
$handle = 'ZZZ'.$css_js_relative_url;
return$handle;
}
function load_css_assets($ary_css, $launch_css_path=''){
if(!is_array($ary_css)){var_dump($ary_css);return;}
if($launch_css_path){array_push($ary_css, $launch_css_path);}
foreach($ary_css as$v){
if($v){
// echo'';
wp_enqueue_style(get_css_js_assets_handle($v),$v);
}
}
}
function load_js_assets($ary_js, $launch_js_path=''){
if(!is_array($ary_js)){var_dump($ary_js);return;}
if($launch_js_path){array_push($ary_js, $launch_js_path);}
foreach($ary_js as$v){
if($v){
// echo'';
wp_enqueue_script(get_css_js_assets_handle($v),$v);
}
}
}
function get_sql_limit($page, $pagesize){
if($page==1){return ' LIMIT '.$pagesize;}
return ' LIMIT '.(($page-1)*$pagesize).', '.$pagesize;
}
function display_post_tags($post){
return'';
$tags = wp_get_post_tags($post->ID);
if(!$tags)return'';
$ret = '
';
return$ret;
}
function display_date($date, $find='-', $to='/'){
return str_replace($find,$to,$date);
}
function convert_num2day($num){
$a = array('?','一','二','三','四','五','六','日');
return isset($a[$num]) ? $a[$num] : '---';
}
session_start();
class DataConf {
const DEFAULT_CONF = 'AI'; # or 'DS'
const AI_CONF = 'AI';
const DS_CONF = 'DS';
public static function get_current_conf_name(){
if(isset($_GET['conf'])
&& in_array(
$_GET['conf'],
array(self::AI_CONF, self::DS_CONF)
)
){
$conf = $_GET['conf'];
$_SESSION['conf'] = $conf;
}else{
$conf = isset($_SESSION['conf'])&&$_SESSION['conf'] ? $_SESSION['conf'] : self::DEFAULT_CONF;
}
return $conf;
}
public static function is_AI_conf(){
return self::get_current_conf_name()===self::AI_CONF;
}
public static function is_DS_conf(){
return self::get_current_conf_name()===self::DS_CONF;
}
public static function set_conf($type){
if($type==self::AI_CONF){
$_SESSION['conf'] = self::AI_CONF;
}
if($type==self::DS_CONF){
$_SESSION['conf'] = self::DS_CONF;
}
}
public static function get_url_with_conf_querystring($url){
$S = strpos($url, '?')!==false ? '&' : '?';
return $url.$S.'conf='.self::get_current_conf_name();
}
}
function is_AI_DS_output_html($type='AI'){
$targetValue = $type==='DS' ? DataConf::DS_CONF : DataConf::AI_CONF;
$b1 = !is_bot();
$b2 = is_bot() && ((isset($_GET['conf'])&&$_GET['conf']==$targetValue) || (isset($_SESSION['conf'])&&$_SESSION['conf']==$targetValue));
return $b1||$b2;
}
function is_AI_output_html(){
return is_AI_DS_output_html('AI');
}
function is_DS_output_html(){
return is_AI_DS_output_html('DS');
}
function get_conf_first_value($post_ID){
$ary_conf = get_post_meta($post_ID,'which_conf',true);
$conf = isset($ary_conf[0]) ? $ary_conf[0] : '';
return$conf;
}
function get_conf_img($post_ID, $return_only_img=false){
return ''; //20170821 teacher does not like.
$conf = get_conf_first_value($post_ID);
$conf_imgsrc = '';
if($conf==='ds'){
$conf_imgsrc = IMG_URL.'conf-ds.svg';
}elseif($conf==='ai'){
$conf_imgsrc = IMG_URL.'conf-ai.svg';
}
$conf_img = $conf_imgsrc ? '
' : '';
return $return_only_img ? $conf_img : array('img'=>$conf_img, 'conf'=>$conf);
}
function get_speaker_agenda_by_speaker_id($speaker_id,$speaker_title="",$speaker_name=""){
global$wpdb;
$sql = "SELECT * FROM ".TBL_AGENDA." WHERE speaker_id='".$speaker_id."'";
$speaker_agenda = $wpdb->get_results($sql);
if(!$speaker_agenda){
$sql = "SELECT * FROM ".TBL_AGENDA." WHERE speaker_id REGEXP '\\\\+".$speaker_id."$'";
$speaker_agenda = $wpdb->get_results($sql);
}
if(!$speaker_agenda){
$sql = "SELECT * FROM ".TBL_AGENDA." WHERE speaker_id REGEXP '^".$speaker_id."\\\\+'";
$speaker_agenda = $wpdb->get_results($sql);
}
if(!$speaker_agenda){
$sql = "SELECT * FROM ".TBL_AGENDA." WHERE speaker_id REGEXP '\\\\+".$speaker_id."\\\\+'";
$speaker_agenda = $wpdb->get_results($sql);
}
if(!$speaker_agenda && $speaker_title && $speaker_name){
$sql = "SELECT * FROM ".TBL_AGENDA." WHERE speaker_id like '%${speaker_title}%' and speaker_id like '%${speaker_name}%'";
$speaker_agenda = $wpdb->get_results($sql);
}elseif(!$speaker_agenda && $speaker_name){
$sql = "SELECT * FROM ".TBL_AGENDA." WHERE speaker_id like '%${speaker_name}%';";
$speaker_agenda = $wpdb->get_results($sql);
}
#if(isset($_GET['debug'])){var_dump($speaker_agenda);echo$sql;}
return $speaker_agenda ? $speaker_agenda[0] : array();# $sql,$speaker_title , $speaker_name
}
function get_speaker_agenda_by_speaker_anchor($anchor){
global$wpdb;
$rows = $wpdb->get_results('SELECT * FROM '.TBL_SPEAKERS.' WHERE hide=0 AND anchor="'.$anchor.'"');
if($rows){
$speaker_id = $rows[0]->id;
$speaker_agenda = get_speaker_agenda_by_speaker_id($speaker_id);
return $speaker_agenda;
}
return array();
}
function is_AI_agenda($agenda){
return $agenda && ($agenda->day==1 || $agenda->day==2);
}
function is_DS_agenda($agenda){
return $agenda->day==3 || $agenda->day==4;
}
function get_agenda_talk_type_prefix_by($speaker_anchor_or_speaker_id){
if(1===preg_match('/^[0-9]+$/', $speaker_anchor_or_speaker_id)){
$speaker_id = $speaker_anchor_or_speaker_id;
$speaker_anchor = '';
}else{
$speaker_id = '';
$speaker_anchor = $speaker_anchor_or_speaker_id;
}
if($speaker_anchor){
$speaker_agenda = get_speaker_agenda_by_speaker_anchor($speaker_anchor);
}elseif($speaker_id){
$speaker_agenda = get_speaker_agenda_by_speaker_id($speaker_id);
}
$prefix = '';
if(is_AI_agenda($speaker_agenda)){
$prefix='人工智慧';
}elseif(is_DS_agenda($speaker_agenda)){
$prefix='資料科學';
}
return $prefix;
}
function get_talktime($speaker_agenda,
#$ary_room = array('R0','A0','R1','R2','A1'),
$ary_room = array('R0','R1','R2','R3'),
#$ary_agenda_day = array('','11/9 (四)','11/10 (五)','11/11 (六)','11/12 (日)')
$ary_agenda_day = array('','09/15 (Fri.)','09/16 (Sat.)','10/8 (Fri.)')
){
$talktime = '';
$is_AI = is_AI_agenda($speaker_agenda);
$is_DS = false; #is_DS_agenda($speaker_agenda);
if($is_AI){$talktime.=''; /*'2020 AI Academy 台灣人工智慧年會';*/ }
#if($is_DS){$talktime.='台灣資料科學年會';}
$dur = $speaker_agenda->during;
$talktime = ''.$talktime;
$talktime.=#' 第 '.($speaker_agenda->day>2 ? $speaker_agenda->day-2 : $speaker_agenda->day)
#.' 天 '.$ary_agenda_day[$speaker_agenda->day]
#.' '.
'⏱️ '.$ary_agenda_day[$speaker_agenda->day]
. ' ' .
substr($dur,0,2).':'.substr($dur,2,2).'-'.substr($dur,5,2).':'.substr($dur,7,2)
.''
.' at '.$ary_room[$speaker_agenda->room].($speaker_agenda->room==3?" ( Academia Sinica Academic Activities Center )":"");
return$talktime;
}
function display_AIA(){
return'';
#return IS_OPEN_AIACADEMY ? '
' : '';
}
define('TEAM_TICKET_SIGNUP_BASE_NUMBER', 5000); # because the total of personal-ticket is less than 5000
define('MAX_TEAM_TICKET_SIGNUP_NUMBER', 6000);
function is_team_ticket($signup_number){
return $signup_number>TEAM_TICKET_SIGNUP_BASE_NUMBER && $signup_number<=MAX_TEAM_TICKET_SIGNUP_NUMBER;
}
function health_encode($phone){
return md5('conf20lajsda'.$phone.'alsd20');
}
define('MMR_CACHE_DIR', ABSPATH . 'fe'); # front-end
define('MMR_CACHE_URL', '/fe');
define('SLIDE_FILE_TEXT', '簡報檔');#'投影片');
/** 設定 WordPress 變數和包含的檔案。 */
require_once(ABSPATH . 'wp-settings.php');
define('IS_OPEN_AIACADEMY', true);#(strpos($_SERVER['REMOTE_ADDR'],'140.109.')===0&& isset($_GET['AIA'])) || current_time('mysql')>='2017-11-10 08:57:00');
$now = current_time('mysql');
define('IS_OPEN_SLIDES_DAY1', $now>='2020-11-13 08:00:00' || (IS_TEAM_MEMBERS_IP&&isset($_GET['testtalkfile'])&&$now>='2020-10-31 08:00:00'));
define('IS_OPEN_SLIDES_DAY2', $now>='2020-11-14 08:00:00' || (IS_TEAM_MEMBERS_IP&&isset($_GET['testtalkfile'])&&$now>='2020-11-12 08:00:00'));
#define('IS_OPEN_SLIDES_DAY3', $now>='2017-11-11 08:00:00' || (IS_TEAM_MEMBERS_IP&&isset($_GET['testtalkfile'])&&$now>='2017-11-09 08:00:00'));
#define('IS_OPEN_SLIDES_DAY4', $now>='2017-11-12 08:00:00' || (IS_TEAM_MEMBERS_IP&&isset($_GET['testtalkfile'])&&$now>='2017-11-10 08:00:00'));
define('IS_TESTING_SERVER', false); #$_SERVER['SERVER_NAME']==='2017ready.aiacademy.tw');
define('IS_LIVE_SERVER', IS_PRODUCTION);#!IS_TESTING_SERVER && strpos($_SERVER['SERVER_NAME'], LIVE_DOMAIN)!==false); # TODO: code review
$user = wp_get_current_user();
define('IS_LOGIN_TEAM_MEMBER', in_array($user->user_login, array('vansindata', 'dh', 'richie')));
// define('FS_METHOD', 'direct'); # TODO: upgrade core