그누보드 5.1.0 테마 지원버전

This commit is contained in:
chicpro
2015-08-03 15:44:15 +09:00
parent d49200c99e
commit 6beff3a333
280 changed files with 14787 additions and 344 deletions

View File

@ -2993,4 +2993,39 @@ function get_device_change_url()
return $href;
}
// 스킨 path
function get_skin_path($dir, $skin)
{
global $config;
if(preg_match('#^theme/(.+)$#', $skin, $match)) { // 테마에 포함된 스킨이라면
$theme_path = '';
$cf_theme = trim($config['cf_theme']);
$theme_path = G5_PATH.'/'.G5_THEME_DIR.'/'.$cf_theme;
if(G5_IS_MOBILE) {
$skin_path = $theme_path.'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/'.$dir.'/'.$match[1];
if(!is_dir($skin_path))
$skin_path = $theme_path.'/'.G5_SKIN_DIR.'/'.$dir.'/'.$match[1];
} else {
$skin_path = $theme_path.'/'.G5_SKIN_DIR.'/'.$dir.'/'.$match[1];
}
} else {
if(G5_IS_MOBILE)
$skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/'.$dir.'/'.$skin;
else
$skin_path = G5_SKIN_PATH.'/'.$dir.'/'.$skin;
}
return $skin_path;
}
// 스킨 url
function get_skin_url($dir, $skin)
{
$skin_path = get_skin_path($dir, $skin);
return str_replace(G5_PATH, G5_URL, $skin_path);
}
?>

View File

@ -10,12 +10,25 @@ function connect($skin_dir='basic')
$sql = " select sum(IF(mb_id<>'',1,0)) as mb_cnt, count(*) as total_cnt from {$g5['login_table']} where mb_id <> '{$config['cf_admin']}' ";
$row = sql_fetch($sql);
if(G5_IS_MOBILE) {
$connect_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/connect/'.$skin_dir;
$connect_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/connect/'.$skin_dir;
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$connect_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/connect/'.$match[1];
if(!is_dir($connect_skin_path))
$connect_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/connect/'.$match[1];
$connect_skin_url = str_replace(G5_PATH, G5_URL, $connect_skin_path);
} else {
$connect_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/connect/'.$match[1];
$connect_skin_url = str_replace(G5_PATH, G5_URL, $connect_skin_path);
}
$skin_dir = $match[1];
} else {
$connect_skin_path = G5_SKIN_PATH.'/connect/'.$skin_dir;
$connect_skin_url = G5_SKIN_URL.'/connect/'.$skin_dir;
if(G5_IS_MOBILE) {
$connect_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/connect/'.$skin_dir;
$connect_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/connect/'.$skin_dir;
} else {
$connect_skin_path = G5_SKIN_PATH.'/connect/'.$skin_dir;
$connect_skin_url = G5_SKIN_URL.'/connect/'.$skin_dir;
}
}
ob_start();

79
lib/json.lib.php Normal file
View File

@ -0,0 +1,79 @@
<?php
if (!defined('_GNUBOARD_')) exit;
// http://tinsology.net/2011/04/php-json_encode-and-json_decode-alternatives/
if(!function_exists('json_encode'))
{
function json_encode($a=false)
{
// Some basic debugging to ensure we have something returned
if (is_null($a)) return 'null';
if ($a === false) return 'false';
if ($a === true) return 'true';
if (is_scalar($a))
{
if (is_float($a))
{
// Always use '.' for floats.
return floatval(str_replace(',', '.', strval($a)));
}
if (is_string($a))
{
static $jsonReplaces = array(array('\\', '/', "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
}
else
return $a;
}
$isList = true;
for ($i = 0, reset($a); true; $i++) {
if (key($a) !== $i)
{
$isList = false;
break;
}
}
$result = array();
if ($isList)
{
foreach ($a as $v) $result[] = json_encode($v);
return '[' . join(',', $result) . ']';
}
else
{
foreach ($a as $k => $v) $result[] = json_encode($k).':'.json_encode($v);
return '{' . join(',', $result) . '}';
}
}
}
if(!function_exists('json_decode'))
{
function json_decode($json)
{
$comment = false;
$out = '$x=';
for ($i=0; $i<strlen($json); $i++)
{
if (!$comment)
{
if (($json[$i] == '{') || ($json[$i] == '['))
$out .= ' array(';
else if (($json[$i] == '}') || ($json[$i] == ']'))
$out .= ')';
else if ($json[$i] == ':')
$out .= '=>';
else
$out .= $json[$i];
}
else
$out .= $json[$i];
if ($json[$i] == '"' && $json[($i-1)]!="\\")
$comment = !$comment;
}
eval($out . ';');
return $x;
}
}
?>

View File

@ -6,16 +6,28 @@ if (!defined('_GNUBOARD_')) exit;
function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='')
{
global $g5;
//static $css = array();
if (!$skin_dir) $skin_dir = 'basic';
if(G5_IS_MOBILE) {
$latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
$latest_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$latest_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];
if(!is_dir($latest_skin_path))
$latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];
$latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);
} else {
$latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];
$latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);
}
$skin_dir = $match[1];
} else {
$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
$latest_skin_url = G5_SKIN_URL.'/latest/'.$skin_dir;
if(G5_IS_MOBILE) {
$latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
$latest_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
} else {
$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
$latest_skin_url = G5_SKIN_URL.'/latest/'.$skin_dir;
}
}
$cache_fwrite = false;
@ -60,14 +72,6 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
}
}
/*
// 같은 스킨은 .css 를 한번만 호출한다.
if (!in_array($skin_dir, $css) && is_file($latest_skin_path.'/style.css')) {
echo '<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">';
$css[] = $skin_dir;
}
*/
ob_start();
include $latest_skin_path.'/latest.skin.php';
$content = ob_get_contents();

View File

@ -13,12 +13,25 @@ function outlogin($skin_dir='basic')
$point = number_format($member['mb_point']);
}
if (G5_IS_MOBILE) {
$outlogin_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/outlogin/'.$skin_dir;
$outlogin_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/outlogin/'.$skin_dir;
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$outlogin_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/outlogin/'.$match[1];
if(!is_dir($outlogin_skin_path))
$outlogin_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/outlogin/'.$match[1];
$outlogin_skin_url = str_replace(G5_PATH, G5_URL, $outlogin_skin_path);
} else {
$outlogin_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/outlogin/'.$match[1];
$outlogin_skin_url = str_replace(G5_PATH, G5_URL, $outlogin_skin_path);
}
$skin_dir = $match[1];
} else {
$outlogin_skin_path = G5_SKIN_PATH.'/outlogin/'.$skin_dir;
$outlogin_skin_url = G5_SKIN_URL.'/outlogin/'.$skin_dir;
if (G5_IS_MOBILE) {
$outlogin_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/outlogin/'.$skin_dir;
$outlogin_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/outlogin/'.$skin_dir;
} else {
$outlogin_skin_path = G5_SKIN_PATH.'/outlogin/'.$skin_dir;
$outlogin_skin_url = G5_SKIN_URL.'/outlogin/'.$skin_dir;
}
}
// 읽지 않은 쪽지가 있다면

View File

@ -15,16 +15,30 @@ function poll($skin_dir='basic', $po_id=false)
if(!$po_id)
return;
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$poll_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/poll/'.$match[1];
if(!is_dir($poll_skin_path))
$poll_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/poll/'.$match[1];
$poll_skin_url = str_replace(G5_PATH, G5_URL, $poll_skin_path);
} else {
$poll_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/poll/'.$match[1];
$poll_skin_url = str_replace(G5_PATH, G5_URL, $poll_skin_path);
}
$skin_dir = $match[1];
} else {
if (G5_IS_MOBILE) {
$poll_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/poll/'.$skin_dir;
$poll_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/poll/'.$skin_dir;
} else {
$poll_skin_path = G5_SKIN_PATH.'/poll/'.$skin_dir;
$poll_skin_url = G5_SKIN_URL.'/poll/'.$skin_dir;
}
}
$po = sql_fetch(" select * from {$g5['poll_table']} where po_id = '$po_id' ");
ob_start();
if (G5_IS_MOBILE) {
$poll_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/poll/'.$skin_dir;
$poll_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/poll/'.$skin_dir;
} else {
$poll_skin_path = G5_SKIN_PATH.'/poll/'.$skin_dir;
$poll_skin_url = G5_SKIN_URL.'/poll/'.$skin_dir;
}
include_once ($poll_skin_path.'/poll.skin.php');
$content = ob_get_contents();
ob_end_clean();

View File

@ -20,14 +20,28 @@ function popular($skin_dir='basic', $pop_cnt=7, $date_cnt=3)
$list[$i]['pp_word'] = get_text($list[$i]['pp_word']);
}
ob_start();
if(G5_IS_MOBILE) {
$popular_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/popular/'.$skin_dir;
$popular_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/popular/'.$skin_dir;
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$popular_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/popular/'.$match[1];
if(!is_dir($popular_skin_path))
$popular_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/popular/'.$match[1];
$popular_skin_url = str_replace(G5_PATH, G5_URL, $popular_skin_path);
} else {
$popular_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/popular/'.$match[1];
$popular_skin_url = str_replace(G5_PATH, G5_URL,$popular_skin_path);
}
$skin_dir = $match[1];
} else {
$popular_skin_path = G5_SKIN_PATH.'/popular/'.$skin_dir;
$popular_skin_url = G5_SKIN_URL.'/popular/'.$skin_dir;
if(G5_IS_MOBILE) {
$popular_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/popular/'.$skin_dir;
$popular_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/popular/'.$skin_dir;
} else {
$popular_skin_path = G5_SKIN_PATH.'/popular/'.$skin_dir;
$popular_skin_url = G5_SKIN_URL.'/popular/'.$skin_dir;
}
}
ob_start();
include_once ($popular_skin_path.'/popular.skin.php');
$content = ob_get_contents();
ob_end_clean();

View File

@ -18,14 +18,28 @@ function visit($skin_dir='basic')
settype($visit[3], "integer");
settype($visit[4], "integer");
ob_start();
if(G5_IS_MOBILE) {
$visit_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/visit/'.$skin_dir;
$visit_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/visit/'.$skin_dir;
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
$visit_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/visit/'.$match[1];
if(!is_dir($visit_skin_path))
$visit_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/visit/'.$match[1];
$visit_skin_url = str_replace(G5_PATH, G5_URL, $visit_skin_path);
} else {
$visit_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/visit/'.$match[1];
$visit_skin_url = str_replace(G5_PATH, G5_URL, $visit_skin_path);
}
$skin_dir = $match[1];
} else {
$visit_skin_path = G5_SKIN_PATH.'/visit/'.$skin_dir;
$visit_skin_url = G5_SKIN_URL.'/visit/'.$skin_dir;
if(G5_IS_MOBILE) {
$visit_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/visit/'.$skin_dir;
$visit_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/visit/'.$skin_dir;
} else {
$visit_skin_path = G5_SKIN_PATH.'/visit/'.$skin_dir;
$visit_skin_url = G5_SKIN_URL.'/visit/'.$skin_dir;
}
}
ob_start();
include_once ($visit_skin_path.'/visit.skin.php');
$content = ob_get_contents();
ob_end_clean();