$GLOBALS['date']['totime']) return true;
else return false;
}
//시간비교(분단위)
function getValid($time,$term)
{
if(!$time) return false;
$dtime = date('YmdHis',mktime(substr($time,8,2),substr($time,10,2)+$term,substr($time,12,2),substr($time,4,2),substr($time,6,2),substr($time,0,4)));
if ($dtime > $GLOBALS['date']['totime']) return true;
else return false;
}
//퍼센트
function getPercent($a,$b,$flag)
{
return round($a / $b * 100 , $flag);
}
//지정문자열필터링
function filterstr($str)
{
$str = str_replace(',','',$str);
$str = str_replace('.','',$str);
$str = str_replace('-','',$str);
$str = str_replace(':','',$str);
$str = str_replace(' ','',$str);
return $str;
}
//문자열복사
function strCopy($str1,$str2)
{
$badstrlen = getUTFtoUTF($str1) == $str1 ? strlen($str1) : intval(strlen($str1)/3);
return str_pad('',($badstrlen?$badstrlen:1),$str2);
}
//아웃풋
function getContents($str,$html)
{
include_once $GLOBALS['g']['path_core'].'function/lib/getContent.lib.php';
return LIB_getContents($str,$html,$filter);
}
//쿠키배열
function getArrayCookie($ck,$split,$n)
{
$arr = explode($split,$ck);
return $arr[$n];
}
//대괄호배열
function getArrayString($str)
{
$arr1 = array();
$arr1['data'] = array();
$arr2 = explode('[',$str);
foreach($arr2 as $val)
{
if($val=='') continue;
$arr1['data'][] = str_replace(']','',$val);
}
$arr1['count'] = count($arr1['data']);
return $arr1;
}
//성별
function getSex($flag)
{
return $GLOBALS['lang']['admin']['sex'][$flag-1];
}
//생일->나이
function getAge($birth)
{
if (!$birth) return 0;
return substr($GLOBALS['date']['today'],0,4) - substr($birth,0,4) + 1;
}
//나이->출생년도
function getAgeToYear($age)
{
return substr($GLOBALS['date']['today'],0,4)-($age-1);
}
//사이즈포멧
function getSizeFormat($size,$flag)
{
if ($size/(1024*1024*1024)>1) return round($size/(1024*1024*1024),$flag).'GB';
if ($size/(1024*1024)>1) return round($size/(1024*1024),$flag).'MB';
if ($size/1024>1) return round($size/1024,$flag).'KB';
if ($size/1024<1) return $size.'B';
}
//파일타입
function getFileType($ext)
{
if (strpos('_gif,jpg,jpeg,png,bmp,',strtolower($ext))) return 2;
if (strpos('_swf,',strtolower($ext))) return 3;
if (strpos('_mid,wav,mp3,m4a,',strtolower($ext))) return 4;
if (strpos('_mp4,asf,asx,avi,mpg,mpeg,wmv,wma,mov,flv,',strtolower($ext))) return 5;
if (strpos('_doc,xls,ppt,hwp',strtolower($ext))) return 6;
if (strpos('_zip,tar,gz,tgz,alz,',strtolower($ext))) return 7;
return 1;
}
//파일확장자
function getExt($name)
{
$nx=explode('.',$name);
return $nx[count($nx)-1];
}
//이미지추출
function getImgs($code,$type)
{
$erg = '/src[ =]+[\'"]([^\'"]+\.(?:'.$type.'))[\'"]/i';
preg_match_all($erg, $code, $mtc, PREG_PATTERN_ORDER);
return $mtc[1];
}
//이미지체크
function getThumbImg($img)
{
$arr=array('.jpg','.gif','.png');
foreach($arr as $val) if(is_file($img.$val)) return $GLOBALS['g']['s'].'/'.str_replace('./','',$img).$val;
}
function getUploadImage($upfiles,$d,$content,$ext)
{
include_once $GLOBALS['g']['path_core'].'function/lib/getUploadImage.lib.php';
return LIB_getUploadImage($upfiles,$d,$content,$ext);
}
//도메인
function getDomain($url)
{
$urlexp = explode('/',$url);
return $urlexp[2];
}
//키워드
function getKeyword($url)
{
$urlexp = explode('?' , urldecode($url));
if (!trim($urlexp[1])) return '';
$queexp = explode('&' , $urlexp[1]);
$quenum = count($queexp);
for ($i = 0; $i < $quenum; $i++){$valexp = explode('=',trim($queexp[$i])); if (strstr(',query,q,p,',','.$valexp[0].',')&&!is_numeric($valexp[1])) return $valexp[1] == getUTFtoUTF($valexp[1]) ? $valexp[1] : getKRtoUTF($valexp[1]);}
return '';
}
//검색엔진
function getSearchEngine($url)
{
$set = array('naver','nate','daum','yahoo','google');
foreach($set as $val) if (strpos($url,$val)) return $val;
return 'etc';
}
//브라우져
function getBrowzer($agent)
{
if(isMobileConnect($agent)) {
$set = array('Android','iPhone');
} else {
$set = array('rv:12','rv:11','MSIE 10','MSIE 9','MSIE 8','MSIE 7','MSIE 6','Firefox','Opera','Chrome','Safari');
}
foreach($set as $val) if (strpos('_'.$agent,$val)) return str_replace('rv:','MSIE ',$val);
return '';
}
//디바이스종류
function getDeviceKind($agent,$type)
{
if (!$type) return 'desktop';
if ($type == 'ipad' || (strstr($agent,'android')&&!strstr($agent,'mobile'))) return 'tablet';
return 'phone';
}
//모바일접속체크
function isMobileConnect($agent)
{
if($_SESSION['pcmode']=='E') return 'RB-Emulator';
$_xagent = strtolower($agent);
$_agents = array('android','iphone','ipad','ipod','blackberry','windows phone');
foreach($_agents as $_key) if(strpos($_xagent,$_key)) return $_key;
return '';
}
//폴더네임얻기
function getFolderName($file)
{
if(is_file($file.'/name.txt')) return implode('',file($file.'/name.txt'));
return basename($file);
}
function getKRtoUTF($str)
{
return iconv('euc-kr','utf-8',$str);
}
function getUTFtoKR($str)
{
return iconv('utf-8','euc-kr',$str);
}
function getUTFtoUTF($str)
{
return iconv('utf-8','utf-8',$str);
}
//관리자체크
function checkAdmin($n)
{
if(!$GLOBALS['my']['admin']) getLink('','','관리권한이 없습니다.',$n?$n:'');
}
//MOD_rewrite
function RW($rewrite)
{
if ($GLOBALS['_HS']['rewrite'])
{
if(!$rewrite) return $GLOBALS['g']['r']?$GLOBALS['g']['r']:'/';
$rewrite = str_replace('c=','c/',$rewrite);
$rewrite = str_replace('m=post&mbrid=','@',$rewrite);
// $rewrite = str_replace('m=post&mod=list','list',$rewrite);
$rewrite = str_replace('m=post&mod=list_view','list',$rewrite);
$rewrite = str_replace('&mod=list_view&listid=','/list/',$rewrite);
$rewrite = str_replace('&listid=','/',$rewrite);
$rewrite = str_replace('m=search','search',$rewrite);
$rewrite = str_replace('m=post','post',$rewrite);
$rewrite = str_replace('&mod=write','/write',$rewrite);
$rewrite = str_replace('&mod=category','/category',$rewrite);
$rewrite = str_replace('&mod=keyword&','/search?',$rewrite);
$rewrite = str_replace('&mod=view&cid=','/post/',$rewrite);
$rewrite = str_replace('mod=dashboard','dashboard',$rewrite);
$rewrite = str_replace('mod=feed','feed',$rewrite);
$rewrite = str_replace('mod=settings','settings',$rewrite);
$rewrite = str_replace('mod=profile&mbrid=','@',$rewrite);
$rewrite = str_replace('mod=channel&mbrid=','channel/',$rewrite);
$rewrite = str_replace('mod=','p/',$rewrite);
$rewrite = str_replace('m=admin','admin',$rewrite);
$rewrite = str_replace('m=bbs','b',$rewrite);
$rewrite = str_replace('&bid=','/',$rewrite);
$rewrite = str_replace('&uid=','/',$rewrite);
$rewrite = str_replace('&cid=','/',$rewrite);
$rewrite = str_replace('&CMT=','/',$rewrite);
$rewrite = str_replace('&page=','?page=',$rewrite);
$rewrite = str_replace('&code=','?code=',$rewrite);
$rewrite = str_replace('&s=','/s',$rewrite);
$rewrite = str_replace('&cat=','/category/',$rewrite);
return $GLOBALS['g']['r'].'/'.$rewrite;
}
else return $GLOBALS['_HS']['usescode']?('./?r='.$GLOBALS['_HS']['id'].($rewrite?'&'.$rewrite:'')):'./'.($rewrite?'?'.$rewrite:'');
}
//위젯불러오기
function getWidget($widget,$wdgvar)
{
global $DB_CONNECT,$table,$date,$my,$r,$s,$m,$g,$d,$c,$mod,$_HH,$_HD,$_HS,$_HM,$_HP,$_CA;
static $wcsswjsc;
$g['widget_cssjs']='';
$wcss = $g['path_widget'].$widget.'/main.css';
$wjsc = $g['path_widget'].$widget.'/main.js';
if (is_file($wcss)) $g['widget_cssjs'] .= ''."\n";
if (is_file($wjsc)) $g['widget_cssjs'] .= ''."\n";
echo $g['widget_cssjs'];
$wdgvar['widget_id'] = str_replace('/','-',$widget);
$wdgvar['widgetlang'] = $_HS['lang']?$_HS['lang']:$d['admin']['syslang'];
include getLangFile($g['path_widget'].$widget.'/lang.',$wdgvar['widgetlang'],'.php');
include $g['path_widget'].$widget.'/main.php';
}
//위젯목록
function getWidgetList($str)
{
$page_widgets = preg_replace('/\r\n|\r|\n/','',trim($str));
$widgets = getArrayString($page_widgets);
$code='';
foreach ($widgets['data'] as $widget) {
$wdg_arr = explode('^',$widget);
$wdgvar_arr = explode(',',$wdg_arr[3]);
$wdgvar = array();
foreach ($wdgvar_arr as $key ) {
$_wdgvar_arr = explode('=',$key);
$wdgvar += [ $_wdgvar_arr[0] => $_wdgvar_arr[1] ];
}
$code.= getWidget($wdg_arr[2],$wdgvar);
}
return $code;
}
// 페이지 편집용 위젯목록
function getWidgetListEdit($str,$panel)
{
global $g;
$page_widgets = preg_replace('/\r\n|\r|\n/','',trim($str));
$widgets = getArrayString($page_widgets);
if ($g['mobile']&&$_SESSION['pcmode']!='Y' && !$panel) {
$html = '
';
foreach ($widgets['data'] as $widget) {
$wdg_arr = explode('^',$widget);
$html .= '-
';
}
$html .= '
';
} else {
$html = '';
foreach ($widgets['data'] as $widget) {
$wdg_arr = explode('^',$widget);
$html .= '-
';
}
$html .= '
';
}
return $html;
}
//문자열필터(@ 1.1.0)
function getStripTags($string)
{
return str_replace(' ',' ',str_replace(' ',' ',strip_tags($string)));
}
//스위치로드(@ 1.1.0)
function getSwitchInc($pos)
{
$incs = array();
if(isset($GLOBALS['d']['switch'][$pos]))
{
foreach ($GLOBALS['d']['switch'][$pos] as $switch => $sites)
{
if(strpos('_'.$sites,'['.$GLOBALS['r'].']'))
$incs[] = $GLOBALS['g']['path_switch'].$pos.'/'.$switch.'/main.php';
}
}
return $incs;
}
//알림기록(@ 2.0.0)
function putNotice($rcvmember,$sendmodule,$sendmember,$title,$message,$referer,$button,$tag,$skip_email,$skip_push)
{
global $g,$d,$s,$table,$date,$my,$_HS;
include $g['path_module'].'notification/var/var.php';
if ($rcvmember && $message && !strstr($d['ntfc']['cut_modules'],'['.$sendmodule.']'))
{
$R=getDbData($table['s_mbrdata'],'memberuid='.$rcvmember,'noticeconf');
$N = explode('|',$R['noticeconf']);
$send_email = $N[1]?1:0;
$send_push = $N[2]?1:0;
$title = $title?$title:'새 알림이 도착했습니다.';
if (!$N[0] && !strstr($N[3],'['.$sendmodule.']') && !strstr($N[4],'['.$sendmember.']'))
{
$message = $my['admin'] ? $message : strip_tags($message);
$QKEY = 'uid,mbruid,site,frommodule,frommbr,title,message,referer,button,tag,d_regis,d_read,email,push';
$QVAL = "'".$g['time_srnad']."','".$rcvmember."','".$s."','".$sendmodule."','".$sendmember."','".$title."','".$message."','".$referer."','".$button."','".$tag."','".$date['totime']."','',$send_email,$send_push";
getDbInsert($table['s_notice'],$QKEY,$QVAL);
getDbUpdate($table['s_mbrdata'],'num_notice='.getDbRows($table['s_notice'],'mbruid='.$rcvmember." and d_read=''"),'memberuid='.$rcvmember);
if ($send_email && !$skip_email) { //이메일 알림
include_once $g['path_core'].'function/email.func.php';
$M = getDbData($table['s_mbrdata'],'memberuid='.$rcvmember,'name,email');
$join_email = $d['member']['join_email']?$d['member']['join_email']:$d['admin']['sysmail'];
$join_tel = $d['member']['join_tel']?$d['member']['join_tel']:$d['admin']['sms_tel'];
$email_title = '['.$_HS['name'].' 알림] '.$title;
$email_body = implode('',file($g['path_module'].'/admin/var/email.header.txt')); //이메일 헤더 양식
$email_body .= ''.$message.'
';
$email_body.= ''.$button.'
';
$email_body.= implode('',file($g['path_module'].'/admin/var/email.footer.txt')); // //이메일 풋터 양식
$email_body = str_replace('{EMAIL_MAIN}',$join_email,$email_body); //대표 이메일
$email_body = str_replace('{TEL_MAIN}',$join_tel,$email_body); // 대표 전화
$email_body = str_replace('{SITE}',$_HS['name'],$email_body); //사이트명
getSendMail($M['email'].'|'.$M['name'],$d['admin']['sysmail'].'|'.$my['nic'],$email_title,$email_body,'HTML');
}
if ($send_push && !$skip_push) { //푸시 알림
include_once $g['path_core'].'function/fcm.func.php';
$TKD = getDbArray($table['s_iidtoken'],'mbruid='.$rcvmember,'token','uid','asc',0,1);
$tokenArray = array();
if ($sendmember==0) {
$avatar = $g['url_http'].'/_core/images/touch/homescreen-192x192.png';
} else {
$M = getDbData($table['s_mbrdata'],'memberuid='.$sendmember,'photo');
if ($M['photo']) {
$_array=explode('.',$M['photo']);
$name=$_array[0];
$ext=$_array[1];
$size='192x192';
$avatar=$g['s'].'/avatar/'.$name.'_'.$size.'.'.$ext;
} else {
$avatar=$g['s'].'/files/avatar/0.svg';
}
}
while ($row = db_fetch_array($TKD)) {
array_push($tokenArray,$row['token']);
}
getSendFCM($tokenArray,$title,$message,$avatar,$referer,$tag);
}
}
}
}
//모달링크(@ 2.0.0)
function getModalLink($modal)
{
global $g,$r;
return $g['s'].'/?r='.$r.'&iframe=Y&modal='.$modal;
}
//JS/CSS임포트(@ 2.0.0)
function getImport($plugin,$path,$version,$kind)
{
global $g,$d;
if ($kind == 'js') echo '';
else echo '';
}
//썸네일(@ 2.0.0)
function getThumbPic($width,$height,$crop,$img)
{
global $g;
return $g['s'].'/_core/opensrc/thumb/image.php?width='.($width?$width:'').'&height='.($height?$height:'').'&cropratio='.$crop.'&image='.$img;
}
//트리(@ 2.0.0)
function getTreeMenu($conf,$code,$depth,$parent,$tmpcode)
{
global $_HS;
$ctype = $conf['ctype']?$conf['ctype']:'uid';
$id = 'tree_'.filterstr(microtime());
$tree = '';
return $tree;
}
function getTreeCategory($conf,$code,$depth,$parent,$tmpcode)
{
global $_HS;
$ctype = $conf['ctype']?$conf['ctype']:'uid';
$id = 'tree_'.filterstr(microtime());
$tree = '';
return $tree;
}
//현재경로(@ 2.0.0)
function getLocation($loc)
{
if ($loc) return str_replace(' - Home - ','',strip_tags(str_replace('Home';
if ($_HM['uid'])
{
$_cnt = count($_CA)-1;
$_cod = '';
for ($i = 0; $i < $_cnt; $i++)
{
$_val = getDbData($table['s_menu'],"id='".$_CA[$i]."'",'id,name');
$_cod .= $_val['id'].'/';
$_loc .= ''.$_val['name'].'';
}
$_loc .= ''.$_HM['name'].'';
}
else if ($_HP['uid'])
{
if ($_HP['linkedmenu'])
{
$_sok = explode('/',$_HP['linkedmenu']);
$_cnt = count($_sok);
$_cod = '';
for ($i = 0; $i < $_cnt; $i++)
{
$_val = getDbData($table['s_menu'],"id='".$_CA[$i]."'",'id,name');
$_cod .= $_val['id'].'/';
$_loc .= ''.$_val['name'].'';
}
}
$_loc .= ''.$_HP['name'].'';
}
else if ($g['push_location'])
{
$_loc .= $g['push_location'];
}
return $_loc;
}
}
//페이지타이틀(@ 2.0.0)
function getPageTitile()
{
global $g,$_HS,$_HP,$_HM;
$title = str_replace('{site}',$_HS['name'],$_HS['title']);
$title = str_replace('{location}',getLocation($g['location']),$title);
if ($_HM['uid']) $title = str_replace('{subject}',$_HM['name'],$title);
else if ($_HP['uid'] && !$_HP['ismain']) $title = str_replace('{subject}',$_HP['name'],$title);
else $title = $_HS['name'];
return $title;
}
//메타이미지(@ 2.0.0)
function getMetaImage($str)
{
if (!$str) return '';
if (strstr($str,'://')) return $str;
$imgs = getArrayString($str);
$R = getUidData($GLOBALS['table']['s_upload'],$imgs['data'][0]);
if ($R['type'] == 2 || $R['type'] == 5) return getPreviewResize($R['src'],'z');
if ($R['type'] == -1) return $R['src'];
return '';
}
//암호화(@ 2.4)
function getCrypt($str,$salt)
{
$salt = substr(base64_encode($salt.'salt'),0,22);
if(function_exists('password_hash')) return password_hash($str,PASSWORD_BCRYPT,array('cost'=>10,'salt'=>$salt)).'$1';
return md5(sha1(md5($str.$salt))).'$4';
}
//언언반환(@ 2.0.0)
function _LANG($kind,$module)
{
return $GLOBALS['lang'][$module][$kind];
}
function _LANG_($kind,$module,$defaultstr)
{
return $GLOBALS['lang'][$module][$kind] ? $GLOBALS['lang'][$module][$kind] : $defaultstr;
}
//언언셋인클루드(@ 2.0.0)
function getLangFile($path,$lang,$file)
{
$langFile1 = $path.$lang.$file;
$langFile2 = $path.'DEFAULT'.$file;
if (is_file($langFile1)) return $langFile1;
else if(is_file($langFile2)) return $langFile2;
else return $GLOBALS['g']['path_var'].'empty.php';
}
// 엑세스토큰 생성
function genAccessToken($length)
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$access_token = substr( str_shuffle( $chars ), 0, $length );
return $access_token;
}
// 엑세스토큰 세팅함수
function setAccessToken($memberuid,$type)
{
global $g,$d,$DB,$r;
// 해당 회원 uid 로 등록된 모든 토큰 삭제
if($type=='logout'){
$RCD = array();
$_RCD = getDbSelect($DB['head'].'_s_mbrtoken','memberuid='.$memberuid,'*');
while($_RC=db_fetch_array($_RCD)) $RCD[] = $_RC;
$_WHERE = '(';
foreach($RCD as $R)
{
$_WHERE .='(memberuid='.$R['memberuid'].') or ';
}
$_WHERE = substr($_WHERE,0,strlen($_WHERE)-4).')';
getDbDelete($DB['head'].'_s_mbrtoken',$_WHERE);
setcookie($DB['head'].'_token','',time() - 3600,'/'); // 쿠키 초기화
}else{
// 신규토큰 세팅
$g['memberVarForSite'] = $g['path_var'].'site/'.$r.'/member.var.php';
$_mbrVerFile = file_exists($g['memberVarForSite']) ? $g['memberVarForSite'] : $g['path_module'].'member/var/var.php';
require_once $_mbrVerFile;
$login_expire=$d['member']['login_expire']; // 회원모듈 사이트별 환경설정에서 지정한 로그인 유지 기간 (일 기준)
$login_expire_last=time()+60*60*24*(int)$login_expire;
$access_token=genAccessToken(80); //
$_QKEY="memberuid,access_token,expire";
$_QVAL=" '".$memberuid."','".$access_token."','".$login_expire_last."'";
getDbInsert($DB['head'].'_s_mbrtoken',$_QKEY,$_QVAL); // 토큰 테이블에 저장
setcookie($DB['head'].'_token',$memberuid.'|'.$access_token,$login_expire_last,'/'); // 쿠키 생성
}
}
// TimThumb 이미지 출력함수
function getTimThumb($data=array())
{
global $g;
$origin_src=$data['src'];
$w=$data['width'];
$h=$data['height'];
$q=$data['qulity'];
$f=$data['filter'];
$a=$data['align'];
$t=$data['type'];
$s=$data['sharpen'];
$source='/_core/opensrc/timthumb/thumb.php';
$img_qry=$source.'?src='.$origin_src;
$img_qry .=($w?'&w='.$w:'').($h?'&h='.$h:'').($q?'&q='.$q:'').($f?'&f='.$f:'').($a?'&a='.$a:'').($t?'&t='.$t:'').($s?'&s='.$s:'');
if($origin_src) $result=$img_qry;
else $result='';
return $result;
}
// 아바타 이미지 추출함수
function getAvatarSrc($mbruid,$size){
global $g,$table;
$M = getDbData($table['s_mbrdata'],'memberuid='.$mbruid,'photo');
$_array=explode('.',$M['photo']);
$name=$_array[0];
$ext=$_array[1];
$size=$size.'x'.$size;
if ($M['photo']) $result=$g['s'].'/avatar/'.$name.'_'.$size.'.'.$ext;
else $result=$g['s'].'/files/avatar/no_avatar.png';
return $result;
}
// 커버 이미지 추출함수
function getCoverSrc($mbruid,$width,$height){
global $g,$table;
$M = getDbData($table['s_mbrdata'],'memberuid='.$mbruid,'cover');
$_array=explode('.',$M['cover']);
$name=$_array[0];
$ext=$_array[1];
if ($M['cover']) $result=$g['s'].'/cover/'.$name.'_'.$width.'x'.$height.'.'.$ext;
else $result=$g['s'].'/files/cover/0_'.$width.'x'.$height.'.png';
return $result;
}
// 프로필 페이지 링크
function getProfileLink($mbruid) {
global $g,$table;
$M = getUidData($table['s_mbrid'],$mbruid);
$result = RW('mod=profile&mbrid=').$M['id'];
return $result;
}
// 채널 페이지 링크
function getChannelLink($mbruid) {
global $g,$table;
$M = getUidData($table['s_mbrid'],$mbruid);
$result = RW('mod=channel&mbrid=').$M['id'];
return $result;
}
// 회원정보 추출
function getProfileInfo($mbruid,$info){
global $g,$table;
$M = getDbData($table['s_mbrdata'],'memberuid='.$mbruid,'*');
$result=$M[$info];
return $result;
}
// 업로드 이미지 src 추출함수
function getUpImageSrc($R){
global $g,$table;
if($R['featured_img']){
$F=getUidData($table['s_upload'],trim($R['featured_img']));
$src=$F['src'];
}else{
$img_arr=getImgs($R['content'],'jpg|jpge|gif|png');
$src=$img_arr[0]?$img_arr[0]:'/files/noimage.png';
}
return $src;
}
// 업로드 이미지 재생시간 추출함수
function getUpImageTime($R){
global $g,$table;
$F=getUidData($table['s_upload'],trim($R['featured_img']));
$time=$F['time'];
return $time;
}
// 미리보기용 이미지 resize 함수 .htaccess 연계됨
function getPreviewResize($src,$size){
if ($src) {
$thumbnail_url_parse = parse_url($src);
$thumbnail_url_arr = explode('//',$src);
if ($thumbnail_url_parse['scheme']) {
switch ($size) {
case 's':
$size='75x75';
break;
case 'q':
$size='150x150';
break;
case 't':
$size='100x67';
break;
case 'm':
$size='240x160';
break;
case 'n':
$size='320x213';
break;
case 'z':
$size='640x427';
break;
case 'c':
$size='800x534';
break;
case 'b':
$size='1024x683';
break;
case 'h':
$size='1600x1068';
break;
case 'k':
$size='2048x1367';
break;
}
if (strpos($src, 'maps.google.com') !== false) {
$result = $src;
} else if (strpos($src, '?') !== false) {
$_size = explode('x',$size);
$result = '/_core/opensrc/timthumb/thumb.php?src='.$src.'&w='.$_size[0].'&h='.$_size[1].'&s=1';
} else {
$result = '/thumb'.($thumbnail_url_parse['scheme']=='https'?'-ssl':'').'/'.$size.'/u/'.$thumbnail_url_arr[1];
}
} else {
$_array=explode('.',$src);
$name=$_array[0];
$ext=$_array[1];
$result=$name.'_'.$size.'.'.$ext;
}
} else {
$result='';
}
return $result;
}
//페이지 출력
function getPageSelect($site,$main,$mobile,$pid) {
global $table;
$PCD=getDbSelect($table['s_page'],$site?'site='.$site.''.($main ? ' and ismain=1':'').($mobile ? ' and mobile=1':''):'','*');
while($P=db_fetch_array($PCD)) {
echo '';
}
}
// 대표이미지 메타정보 추출
function getFeaturedimgMeta($R,$meta){
global $table;
$F=getUidData($table['s_upload'],trim($R['featured_img']));
$meta=$F[$meta];
return $meta;
}
//게시물 링크
function getPostLink($arr,$profile){
global $table;
if ($profile) {
$M = getUidData($table['s_mbrid'],$arr['mbruid']);
return RW('m=post&mbrid='.$M['id'].'&mod=view&cid='.$arr['cid'].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''));
} else {
return RW('m=post&cid='.$arr['cid'].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''));
}
}
//리스트 링크
function getListLink($arr,$profile){
global $table;
if ($profile) {
$M = getUidData($table['s_mbrid'],$arr['mbruid']);
return RW('m=post&mbrid='.$M['id'].'&mod=list_view&listid='.$arr['id'].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''));
} else {
return RW('m=post&mod=list_view&listid='.$arr['id'].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''));
}
}
function getBbsPostLink($arr){
return RW('m=bbs&bid='.$arr['bbsid'].'&uid='.$arr['uid'].($GLOBALS['s']!=$arr['site']?'&s='.$arr['site']:''));
}
function getCURLData($url,$header) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
if(is_array($header)) curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt($ch, CURLOPT_COOKIE, '' );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
$curl_exec = curl_exec($ch);
curl_close($ch);
return $curl_exec;
}
function remoteFileExist($filepath) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$filepath);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(curl_exec($ch)!==false) {
return true;
} else {
return false;
}
}
// 외부연결 URL 생성 (로그인과 정보 제공 동의 과정이 완료되면 콜백 URL에 code값과 state 값이 URL 문자열로 전송됩니다.)
function getConnectUrl($s,$id,$secret,$callBack,$type){
$_SESSION['SL']['state'.$s] = md5(microtime().mt_rand());
$g['connect']['client_id'] = $id;
$g['connect']['client_secret'] = $secret;
$g['connect']['redirect_uri'] = urlencode($callBack);
$g['connect']['state'] = $_SESSION['SL']['state'.$s];
if ($s == 'naver') {
$g['connect'] = 'https://nid.naver.com/oauth2.0/authorize?client_id='.$g['connect']['client_id'].'&response_type=code&redirect_uri='.$g['connect']['redirect_uri'].'&state='.$g['connect']['state'];
}
if ($s == 'kakao') {
$g['connect'] = 'https://kauth.kakao.com/oauth/authorize?client_id='.$g['connect']['client_id'].'&redirect_uri='.$g['connect']['redirect_uri'].'&response_type=code&scope=';
}
if ($s == 'google') {
$g['connect'] = 'https://accounts.google.com/o/oauth2/auth?client_id='.$g['connect']['client_id'].'&redirect_uri='.$g['connect']['redirect_uri'].'&response_type=code&scope=email%20profile&state=%2Fprofile&approval_prompt=auto';
}
if ($s == 'facebook') {
$g['connect']= 'https://www.facebook.com/v3.0/dialog/oauth?client_id='.$g['connect']['client_id'].'&redirect_uri='.$g['connect']['redirect_uri'].'&state='.$g['connect']['state'];
}
if ($s == 'instagram') {
$g['connect']= 'https://api.instagram.com/oauth/authorize/?client_id='.$g['connect']['client_id'].'&redirect_uri='.$g['connect']['redirect_uri'].'&response_type=code';
}
return $g['connect'];
}
// 포스트의 모든 카테고리 출력
function getAllPostCat($m,$str) {
global $table;
$cats = getArrayString($str);
$CatName = '';
foreach($cats['data'] as $val) {
$C=getUidData($table[$m.'category'],$val);
$code=$C['parent']?$C['parent'].'/'.$C['uid']:$C['uid'];
$CatName.= ''.$C['name'].', ';
}
$result=substr($CatName,0,-2);
return $result?$result:'';
}
// 포스트에 카테고리가 있는지 체크함수
function IsPostCat($post) {
global $table;
$m='post';
$catque='data='.$post;
$NUM=getDbRows($table[$m.'index'],$catque);
return $NUM;
}
// 리스트의 첫번째 포스트의 대표이미지 src 추출
function getListImageSrc($list) {
global $table,$s,$my;
$m='post';
$que='list='.$list.' and site='.$s;
$LISTX=array();
$LIST_ARR=getDbArray($table[$m.'list_index'],$que,'*','gid','asc',1,1);
while ($LT=db_fetch_array($LIST_ARR)) $LISTX[]=$LT;
$R=getUidData($table[$m.'data'],$LISTX[0]['data']);
if($R['featured_img']){
$F=getUidData($table['s_upload'],trim($R['featured_img']));
$_IS_POSTMBR=getDbRows($table[$m.'member'],'mbruid='.$my['uid'].' and data='.$R['uid'].' and auth=1');
$perm_post = $my['admin'] || $_IS_POSTMBR || !$R['hidden'] ? true : false;
$src=$perm_post?$F['src']:'/files/noimage.png';
}else{
$img_arr=getImgs($R['content'],'jpg|jpge|gif|png');
$src=$img_arr[0]?$img_arr[0]:'/files/noimage.png';
}
return $src;
}
// 리스트의 재생링크 추출
function getListPlaylink($arr) {
global $table,$s,$my;
$m='post';
$que='list='.$arr['uid'].' and site='.$s;
$LISTX=array();
$LIST_ARR=getDbArray($table[$m.'list_index'],$que,'*','gid','asc',1,1);
while ($LT=db_fetch_array($LIST_ARR)) $LISTX[]=$LT;
$R=getUidData($table[$m.'data'],$LISTX[0]['data']);
return RW('m=post&cid='.$R['cid'].'?list='.$arr['id'].($GLOBALS['s']!=$R['site']?'&s='.$R['site']:''));
}
// 포스트의 조회권한 여부
function checkPostPerm($R) {
global $table,$my;
$m='post';
switch ($R['display']) {
case '1':
if ($my['admin'] || ($R['mbruid']==$my['uid'])) $perm = true;
else $perm = false;
break;
case '2':
$_IS_POSTMBR=getDbRows($table[$m.'member'],'mbruid='.$my['uid'].' and data='.$R['uid'].' and auth=1');
if ($my['admin'] || $_IS_POSTMBR ) $perm = true;
else $perm = false;
break;
case '3':
$perm = true;
break;
case '4':
if ($my['uid']) $perm = true;
else $perm = false;
break;
case '5':
$perm = true;
break;
default:
$perm = false;
break;
}
return $perm;
}
// 포스트의 수정권한 여부
function checkPostOwner($R) {
global $table,$my;
$m='post';
switch ($R['display']) {
case '1':
if ($my['admin'] || ($R['mbruid']==$my['uid'])) $perm = true;
else $perm = false;
break;
default:
$_IS_POSTOWN=getDbRows($table[$m.'member'],'mbruid='.$my['uid'].' and data='.$R['uid'].' and auth=1 and level=1');
if ($my['admin'] || $_IS_POSTOWN ) $perm = true;
else $perm = false;
break;
}
return $perm;
}
// 리퍼러 변환
function checkReferer($ref) {
switch ($ref) {
case 'yt': // yotube
$referer = 'https://youtube.com';
break;
case 'kt': // kakaotalk
$referer = 'https://www.kakaocorp.com/service/KakaoTalk';
break;
case 'ks': //kakaostory
$referer = 'https://story.kakao.com';
break;
case 'bd': //band
$referer = 'https://band.us';
break;
case 'ig': //instagram
$referer = 'https://www.instagram.com';
break;
case 'fb': //facebook
$referer = 'https://www.facebook.com';
break;
case 'tt': // twitter
$referer = 'https://www.twitter.com';
break;
case 'nb': // naver blog
$referer = 'https://section.blog.naver.com/';
break;
default:
$referer = '';
break;
}
return $referer;
}
// 별점추출
function getRatingStar($rating,$size){
$per = $rating/5*100;
$result= '';
return $result;
}
?>