포럼
처음으로 대시보드 테마 애드온을 만들다!
2012.02.02 22:44
저도 처음으로 애드온을 만들었습니다.
저도 XE를 만~들~고 있습니다...^^
10여년간 제로보드를 써오면서 그동안 고수님들의 작품들을 늘 고맙게 써 왔던 한 사람!!!
작년에 에디터에 대한 논쟁~ <p>와 <br>에 대한 이야기 속에서 처음으로 글을 써 보았고,
그래서 좀더 공부해 보자! 했던 것이 스쿨을 노트로 만들면 8개월이 지난 지금...^^
개발팀 sol님에게
$oContext = &Context::getInstance(); 이게 뭐예요? 라고 물어봤던 사람이
드디어 첫 애드온을 만들었습니다.
고수님들의 소중한 의견을 부탁드립니다...^^
"무엇이 두려운가? 틀려도 좋고 잘못된 문법이라도 좋다! 따라해 보고 만들어 보고 보여주자!"
...
개요
XE 애드온에서 adminlogging 애드온을 참고하여 관리자 제어판을 테마로 보여주는 애드온입니다.
지난번 CSS를 직접 추가하는 것이 무척 번거롭고 해서 좀더 보완하여 이참에 애드온으로 만들어 본 것입니다.
여기서 궁금한 것
1. 이러한 애드온의 호출 위치가 $called_position == 'before_module_proc' 이 맞을까?
2. 조건을 확인하는 연산이 맞을까?
if($called_position == 'before_module_proc' && $kind == 'admin' && $logged_info->is_admin == 'Y' || $module == 'admin') {
왜냐하면 adminlogging 애드온이 관리자 페이지에서 동작한다는 것을 착안하여 위 조건만 넣었을때 잘 동작하지만
초기 제어판 페이지는 module=admin 만 있어서 위 내용을 추가했습니다. 물론 바로 윗줄에서 $module = Context::get('module');를 정의해 두었지요...^^ $module = $this->module; 이렇게 해도 가능하구요...
그런데 &&와 || 의 연산과정이 맞는가? 호출 위치를 || 뒤에 한번 더 같이 써야 하는 것 아닌가?
의견을 부탁드립니다.
애드온 동작
● 제로보드 심플 화이트 테마
● 제로보드 라이트 그레이 테마
● 네이버 테마
● 페이스북 테마
설치 디렉토리 : xe/addons/dashboard_theme
작동 방법 : 애드온 설치 후 확장기능 > 설치된 애드온에 들어가서 설치된 [제어판 테마]의 [설정]을 클릭하고
옵션에서 위 4가지 중 한 테마를 선택해 줍니다. 그리고 저장, 물론 애드온은 켜 주어야 합니다.
주의 : 대상 모듈은 선택하지 않습니다. 이 애드온은 관리자 페이지에서만 동작합니다.
설치해 보시고 의견을 부탁드립니다...^^
다운로드 : dashboard_theme.zip
- 2012. 2. 3 00:22 수정 : 메뉴바에 그라데이션 처리 제거
- 2012. 2. 3 01:07 수정 : 애드온 설치시 기본 테마 적용하기 * It is the advice of misol
댓글 18
-
natura
2012.02.02 22:44
-
우진홈
2012.02.02 23:14
XE에 컬러를 불어넣는 시도입니다. 새로운 테마들이 많아지면 좋겠습니다...^^ 고맙습니다.
-
snows96
2012.02.02 22:45
우와~~ 산뜻하네요 :)
-
우진홈
2012.02.02 23:15
snows96님의 컬러를 보여주세요...^^
-
윈컴이
2012.02.02 23:42
오오오오! 대단하셔요~ 한번 설치해볼께요!
그런데 $oContext = &Context::getInstance(); 이건 뭐죠? (진심으로 ㅋㅋ)
-
윈컴이
2012.02.02 23:45
네이버는 좋은데 상단에 검정색이 있어서 아쉽네요. ^^
-
우진홈
2012.02.03 00:25
검정색이 아니면 어떤 색이 좋을까요? 의견을 주세요...^^ 고맙습니다...^^
-
윈컴이
2012.02.05 15:43
네이버 색에서 약간 연한 연두색 정도?
이런색요.
-
우진홈
2012.02.03 00:24
& 은 "참조한다"는 뜻입니다. PHP책을 건성으로 봐서 처음에 이게 뭔지 몰랐지요.
http://www.xeschool.com/xe/xenote_2_04
-
WSJ
2012.02.02 23:49
정말 깔끔하네요 ^^
-
우진홈
2012.02.03 00:26
고맙습니다...^^
-
MaBoo
2012.02.03 00:26
저는 갠적로 페북 테마가 가장 맘에들어요^^
-
우진홈
2012.02.03 00:30
일단 기초적인 시도입니다...^^ 세밀하게 꾸미지는 않았지만 우선 애드온이 잘 동작하면 좋겠네요...^^ 고맙습니다.
-
misol
2012.02.03 00:28
가능성을 열어주신 것만 해도 추천합니다 :)
-
우진홈
2012.02.03 00:35
소스코드는 이상이 없을까요? 고수님들이 OK해야 마음이 편할 것 같습니다...^^
-
misol
2012.02.03 00:53
info.xml에 <version> 부분은 애드온의 버전을 쓰시면 됩니다 :)
알아서 쓰셨겠지만, 혹시나 XE Core 버전을 쓰셨나 싶어서 알려드립니다 ^^;
그리고, 애드온을 처음 설치하고, 아무 설정도 하지 않은 상태로 활성화 하면, $addon_info->theme 에는 값이 없습니다. 빈 항목이 되어요. 그런 경우에 기본 값을 주시고 싶다면,
if(!$addon_info->theme) $addon_info->theme = 'zb_white'; 같은 식의 코드가 들어가도 좋을 것 같아요 :)
그리고, 혹시나, $theme_style 이 값을 가지지 않는 경우에도 대비하면..
<?php if(!defined('__XE__')) exit(); /** * @file dashboard_theme.addon.php * @author XESCHOOL (xeschool@gmail.com) * @brief Automatic link add-on **/ $logged_info = Context::get('logged_info'); $module = Context::get('module'); $act = Context::get('act'); $kind = strpos(strtolower($act),'admin')!==false?'admin':''; if($called_position == 'before_module_proc' && $kind == 'admin' && $logged_info->is_admin == 'Y' || $module == 'admin') { // if there is no selected thema, default thema is 'zb_white' if(!$addon_info->theme) $addon_info->theme = 'zb_white'; if($addon_info->theme == 'zb_white') $theme_style = 'zeroboard_white'; if($addon_info->theme == 'zb_gray') $theme_style = 'zeroboard_gray'; if($addon_info->theme == 'naver') $theme_style = 'naver'; if($addon_info->theme == 'facebook') $theme_style = 'facebook'; if($theme_style) { $theme = sprintf('./addons/dashboard_theme/css/%s.css', $theme_style); Context::addCSSFile($theme); } } ?>
이렇게 하는 것도 괜찮을 것 같아요 ^^;;대단히 깔끔하게 만드셨습니다. 만들다 보면, 요령도 조금 더 생기실거에요 ㅎㅎ
-
우진홈
2012.02.03 01:03
막 자려고 했는데 직접 검수를 해 주셨군요...^^ 정말 고맙습니다. 그리고 정말 개발자 다운 생각이십니다. 처음 설치하고 애드온을 켜자마자 미리 설정된 테마가 기본으로 적용된다! 와~~~ 정말 고맙습니다. 당장 적용하고 파일 교체합니다...^^ 아! 버전은 제가 예전에도 주장했듯이 코어 버전을 따라가려고 합니다. 어느 버전을 바탕으로 만들고 테스트 해 보았는지 사용자가 딱 보면 알 수있도록 말이죠. 저부터 실천하는 것입니다... 늦은 밤 고맙습니다...^^
-
착한악마
2012.02.03 13:09
우와 이런것이 가능하군요...하하하하...대단하십니다.
뭐가 큰 선물을 주신듯합니다. 감사합니다.
당장 테스트 해보도록 하겠습니다 ㅎㅎ
// 1.5.1.5 작동 잘됩니다. :D
네이버 디자인 좋네요 ㅎㅎ