네모의 꿈/ 컨텐츠 위젯 스킨 (#712)

## 컨텐츠 모듈 스킨

- 사이트 테마를 따르지 않고 다른 색을 선택할 수 있도록 네모의 꿈 회원 스킨 컬러셋 추가.
- 탭이 많을 때 터치 환경이 아니면 좌우로 넘기기 어려운 점을 고려하여서 메뉴를 펼침.
- 작은 화면에서 화면을 최대한 활용하도록, 레이아웃 햄버거 메뉴를 부드럽게 나타내고 감춥니다.

## 위젯에서 LESS/SCSS 의 사용
- 변수를 위젯 캐시에도 전달할 수 있도록 해서 LESS 나 SCSS 에 값 전달이 가능하도록 함.
- LESS 나 SCSS 를 사용한 경우에 위젯 코드 캐싱 코드가 적절하게 기록되도록 해서 LESS나 SCSS 를 사용
가능하도록 수정.

## 그 외 변화
- Reduce the number of regular expressions.
This commit is contained in:
Min-Soo Kim 2017-02-26 01:05:57 +09:00 committed by GitHub
parent b1ba031117
commit 5140047b5f
26 changed files with 1286 additions and 27 deletions

View file

@ -41,8 +41,8 @@
<block cond="$layout_info->extra_var->primary_color->type !== 'select' && $layout_info->extra_var->customized_primary_color->type !== 'colorpicker'">
{@$layout_info->primary_color = 'blue';}
</block>
<!--// Load styles -->
{@$colorset = $material_colors[$member_config->colorset];}
{@$skin_color = $material_colors[$layout_info->primary_color];}
<block cond="!$skin_color">
<!--@if(preg_match("/#([a-f0-9]{3}){1,2}/i", $layout_info->primary_color))-->
@ -54,7 +54,10 @@
{@$skin_color = '#f44336'}
<!--@endif-->
</block>
{Context::set('simple_less_value', array('red' => hexdec(substr($skin_color, 1, 2)), 'green' => hexdec(substr($skin_color, 3, 2)), 'blue' => hexdec(substr($skin_color, 5, 2)) ))}
<block cond="$colorset">
{@$skin_color = $colorset}
</block>
{@Context::set('simple_less_value', array('red' => hexdec(substr($skin_color, 1, 2)), 'green' => hexdec(substr($skin_color, 3, 2)), 'blue' => hexdec(substr($skin_color, 5, 2)) ))}
<load target="css/css.less" vars="$simple_less_value" />
<section class="rx_simple_member">
<div class="rx_simple_tab" cond="$is_logged && $logged_info->menu_list && (!$member_srl || $member_srl == $logged_info->member_srl)">

View file

@ -188,9 +188,6 @@ script, style
.rx_simple_member div.rx_simple_tab{
background: #ffffff;
margin: 5px 0;
height: 52px;
overflow: hidden;
white-space: nowrap;
box-shadow: 0 1px 2px rgba(0,0,0,0.16), 0 1px 2px rgba(0,0,0,0.23);
box-sizing: border-box;
}
@ -198,9 +195,7 @@ script, style
list-style: outside none none;
margin: 0;
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding: 6px 0px 100px;
padding: 6px 0;
text-decoration: none;
}

View file

@ -11,6 +11,94 @@
<name xml:lang="en">misol</name>
</author>
<colorset type="colorpicker">
<colorset>
<color name="theme">
<title xml:lang="ko">사이트 테마 색</title>
<title xml:lang="en">The site theme color</title>
</color>
<color name="red">
<title xml:lang="ko">붉은 색</title>
<title xml:lang="en">Red</title>
</color>
<color name="crimson">
<title xml:lang="ko">크림슨</title>
<title xml:lang="en">Crimson</title>
</color>
<color name="pink">
<title xml:lang="ko">분홍</title>
<title xml:lang="en">Pink</title>
</color>
<color name="purple">
<title xml:lang="ko">보라</title>
<title xml:lang="en">Purple</title>
</color>
<color name="deep-purple">
<title xml:lang="ko">진보라</title>
<title xml:lang="en">Deep Purple</title>
</color>
<color name="indigo">
<title xml:lang="ko">인디고</title>
<title xml:lang="en">Indigo</title>
</color>
<color name="deep-blue">
<title xml:lang="ko">짙은 파랑</title>
<title xml:lang="en">Deep Blue</title>
</color>
<color name="blue">
<title xml:lang="ko">파랑</title>
<title xml:lang="en">Blue</title>
</color>
<color name="light-blue">
<title xml:lang="ko">밝은 파랑</title>
<title xml:lang="en">Light Blue</title>
</color>
<color name="cyan">
<title xml:lang="ko">시안</title>
<title xml:lang="en">Cyan</title>
</color>
<color name="teal">
<title xml:lang="ko"></title>
<title xml:lang="en">Teal</title>
</color>
<color name="green">
<title xml:lang="ko">초록</title>
<title xml:lang="en">Green</title>
</color>
<color name="light-green">
<title xml:lang="ko">연한 초록</title>
<title xml:lang="en">Light Green</title>
</color>
<color name="lime">
<title xml:lang="ko">라임</title>
<title xml:lang="en">Lime</title>
</color>
<color name="yellow">
<title xml:lang="ko">노랑</title>
<title xml:lang="en">Yellow</title>
</color>
<color name="amber">
<title xml:lang="ko">앰버</title>
<title xml:lang="en">Amber</title>
</color>
<color name="orange">
<title xml:lang="ko">주황</title>
<title xml:lang="en">Orange</title>
</color>
<color name="deep-orange">
<title xml:lang="ko">진한 주황</title>
<title xml:lang="en">Deep Orange</title>
</color>
<color name="brown">
<title xml:lang="ko">갈색</title>
<title xml:lang="en">Brown</title>
</color>
<color name="grey">
<title xml:lang="ko">회색</title>
<title xml:lang="en">Grey</title>
</color>
<color name="blue-grey">
<title xml:lang="ko">푸른 회색</title>
<title xml:lang="en">Blue Grey</title>
</color>
</colorset>
</skin>

View file

@ -1,5 +1,5 @@
<!--// responsible layout -->
{Context::addMetaTag("viewport", "width=device-width, user-scalable=yes")}
{@Context::addMetaTag("viewport", "width=device-width, user-scalable=yes")}
<!--// Check layout. If it is Simple World, select layout primary colors as a primary color of this skin -->
{@
@ -57,6 +57,6 @@
{@$skin_color = '#f44336'}
<!--@endif-->
</block>
{Context::set('simple_less_value', array('red' => hexdec(substr($skin_color, 1, 2)), 'green' => hexdec(substr($skin_color, 3, 2)), 'blue' => hexdec(substr($skin_color, 5, 2)) ))}
{@Context::set('simple_less_value', array('red' => hexdec(substr($skin_color, 1, 2)), 'green' => hexdec(substr($skin_color, 3, 2)), 'blue' => hexdec(substr($skin_color, 5, 2)) ))}
<load target="css/message.less" vars="$simple_less_value" />
<section class="rx_simple_message">

View file

@ -1,5 +1,5 @@
<!--// META -->
{Context::addHtmlHeader('<meta name="viewport" content="width=1240">')}
{@Context::addHtmlHeader('<meta name="viewport" content="width=1240">')}
<!--// CSS -->
<style>
.xedition-error {

View file

@ -64,7 +64,7 @@ class pageMobile extends pageView
if($mtime + $interval*60 > $_SERVER['REQUEST_TIME'])
{
$page_content = FileHandler::readFile($cache_file);
$page_content = preg_replace('@<\!--#Meta:@', '<!--Meta:', $page_content);
$page_content = str_replace('<!--#Meta:', '<!--Meta:', $page_content);
}
else
{

View file

@ -69,7 +69,7 @@ class pageView extends page
if($mtime + $this->interval*60 > $_SERVER['REQUEST_TIME'])
{
$page_content = FileHandler::readFile($this->cache_file);
$page_content = preg_replace('@<\!--#Meta:@', '<!--Meta:', $page_content);
$page_content = str_replace('<!--#Meta:', '<!--Meta:', $page_content);
}
else
{

View file

@ -395,7 +395,16 @@ class widgetController extends widget
$cache_data = Rhymix\Framework\Cache::get('widget_cache:' . $widget_sequence);
if ($cache_data)
{
return preg_replace('@<\!--#Meta:@', '<!--Meta:', $cache_data);
// Load the variables, need to load the LESS or SCSS files.
if(is_object($cache_data))
{
foreach ($cache_data->variables as $key => $value)
{
Context::set($key, $value);
}
$cache_data = $cache_data->content;
}
return str_replace('<!--#Meta:', '<!--Meta:', $cache_data);
}
$oWidget = $this->getWidgetObject($widget);
@ -404,9 +413,26 @@ class widgetController extends widget
$widget_content = $oWidget->proc($args);
$oModuleController = getController('module');
$oModuleController->replaceDefinedLangCode($widget_content);
Rhymix\Framework\Cache::set('widget_cache:' . $widget_sequence, $widget_content, $widget_cache, true);
// Keep the variables, need to load the LESS or SCSS files.
if(preg_match_all('/<!--#Meta:([a-z0-9\_\-\/\.\@\:]+)(\?\$\_\_Context\-\>[a-z0-9\_\-\/\.\@\:]+)?-->/is', $widget_content, $widget_var_matches, PREG_SET_ORDER))
{
$cache_content = new stdClass();
$cache_content->content = $widget_content;
$cache_content->variables = new stdClass();
foreach($widget_var_matches as $matches)
{
if($matches[2])
{
$key = str_replace('?$__Context->', '', $matches[2]);
$cache_content->variables->{$key} = Context::get($key);
}
}
Rhymix\Framework\Cache::set('widget_cache:' . $widget_sequence, $cache_content, $widget_cache, true);
}
return $widget_content;
}