https://github.com/tholu/php-packer 를 이용해 그누보드5 자바스크립트에서 사용하는 전역변수 선언 내용을 알아보기 어렵게 만드는 방법
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "//sir.kr";
var g5_bbs_url = "//sir.kr/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_bo_table = "g5_tip";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = ".sir.kr";
var g5_plugin_url = "//sir.kr/plugin";
var g5_mb_open = "0";
var g5_time_ymd = "2016-09-05";
var g5_time_ymdhis = "2016-09-05 15:32:22";
var g5_download_level = 1;
var g5_download_point = 0;
var g5_is_mobile = false;
var g5_download_level = 1;
var g5_download_point = 0;
</script>
[/code]
그누보드5 소스보기에서 자바스크립트에서 사용하는 전역변수가 위와 같이 보이는 것을 아래와 같이 바꿔서 출력해 준다.
[code]
<script>
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('2 f="//3.4";2 h="//3.4/j";2 k="1";2 q="";2 r="a";2 b="";2 c="";2 d=".3.4";2 e="//3.4/t";2 g="0";2 i="5-6-7";2 m="5-6-7 n:o:p";2 8=1;2 9=0;2 s=l;2 8=1;2 9=0;',30,30,'||var|sir|kr|2016|09|05|g5_download_level|g5_download_point|g5_tip|g5_sca|g5_editor|g5_cookie_domain|g5_plugin_url|g5_url|g5_mb_open|g5_bbs_url|g5_time_ymd|bbs|g5_is_member|false|g5_time_ymdhis|15|32|22|g5_is_admin|g5_bo_table|g5_is_mobile|plugin'.split('|'),0,{}))
</script>
[/code]
1. https://github.com/tholu/php-packer로 가서 파일을 다운받는다.
필요한 파일은 src폴더에 있는 Packer.php (첨부해 두었음)
2. Packer.php 를 그누보드 extend 폴더에 넣는다.
3. head.sub.php의 아래 내용을 다음과 같이 수정해준다.
- 수정전 ----------------------------------------------------------------------
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "<?php echo G5_URL ?>";
var g5_bbs_url = "<?php echo G5_BBS_URL ?>";
var g5_is_member = "<?php echo isset($is_member)?$is_member:''; ?>";
var g5_is_admin = "<?php echo isset($is_admin)?$is_admin:''; ?>";
var g5_is_mobile = "<?php echo G5_IS_MOBILE ?>";
var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>
</script>
[/code]
- 수정 후 ----------------------------------------------------------------------
[code]
<script>
<?php
$js_global_vars = '';
$js_global_vars .= 'var g5_url = "'.G5_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bbs_url = "'.G5_BBS_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_member = "'.(isset($is_member)?$is_member:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_admin = "'.(isset($is_admin)?$is_admin:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_mobile = "'.G5_IS_MOBILE.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bo_table = "'.(isset($bo_table)?$bo_table:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_sca = "'.(isset($sca)?$sca:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_editor = "'.(($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_cookie_domain = "'.G5_COOKIE_DOMAIN.'";'.PHP_EOL;
if(defined('G5_IS_ADMIN')) {
$js_global_vars .= 'var g5_admin_url = "'.G5_ADMIN_URL.'";';
}
$js_global_vars2 = new Tholu\Packer\Packer($js_global_vars, 'Normal', true, false, true);
$js_global_vars3 = $js_global_vars2->pack();
echo $js_global_vars3;
?>
</script>
[/code]
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "//sir.kr";
var g5_bbs_url = "//sir.kr/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_bo_table = "g5_tip";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = ".sir.kr";
var g5_plugin_url = "//sir.kr/plugin";
var g5_mb_open = "0";
var g5_time_ymd = "2016-09-05";
var g5_time_ymdhis = "2016-09-05 15:32:22";
var g5_download_level = 1;
var g5_download_point = 0;
var g5_is_mobile = false;
var g5_download_level = 1;
var g5_download_point = 0;
</script>
[/code]
그누보드5 소스보기에서 자바스크립트에서 사용하는 전역변수가 위와 같이 보이는 것을 아래와 같이 바꿔서 출력해 준다.
[code]
<script>
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('2 f="//3.4";2 h="//3.4/j";2 k="1";2 q="";2 r="a";2 b="";2 c="";2 d=".3.4";2 e="//3.4/t";2 g="0";2 i="5-6-7";2 m="5-6-7 n:o:p";2 8=1;2 9=0;2 s=l;2 8=1;2 9=0;',30,30,'||var|sir|kr|2016|09|05|g5_download_level|g5_download_point|g5_tip|g5_sca|g5_editor|g5_cookie_domain|g5_plugin_url|g5_url|g5_mb_open|g5_bbs_url|g5_time_ymd|bbs|g5_is_member|false|g5_time_ymdhis|15|32|22|g5_is_admin|g5_bo_table|g5_is_mobile|plugin'.split('|'),0,{}))
</script>
[/code]
1. https://github.com/tholu/php-packer로 가서 파일을 다운받는다.
필요한 파일은 src폴더에 있는 Packer.php (첨부해 두었음)
2. Packer.php 를 그누보드 extend 폴더에 넣는다.
3. head.sub.php의 아래 내용을 다음과 같이 수정해준다.
- 수정전 ----------------------------------------------------------------------
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "<?php echo G5_URL ?>";
var g5_bbs_url = "<?php echo G5_BBS_URL ?>";
var g5_is_member = "<?php echo isset($is_member)?$is_member:''; ?>";
var g5_is_admin = "<?php echo isset($is_admin)?$is_admin:''; ?>";
var g5_is_mobile = "<?php echo G5_IS_MOBILE ?>";
var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>
</script>
[/code]
- 수정 후 ----------------------------------------------------------------------
[code]
<script>
<?php
$js_global_vars = '';
$js_global_vars .= 'var g5_url = "'.G5_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bbs_url = "'.G5_BBS_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_member = "'.(isset($is_member)?$is_member:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_admin = "'.(isset($is_admin)?$is_admin:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_mobile = "'.G5_IS_MOBILE.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bo_table = "'.(isset($bo_table)?$bo_table:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_sca = "'.(isset($sca)?$sca:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_editor = "'.(($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_cookie_domain = "'.G5_COOKIE_DOMAIN.'";'.PHP_EOL;
if(defined('G5_IS_ADMIN')) {
$js_global_vars .= 'var g5_admin_url = "'.G5_ADMIN_URL.'";';
}
$js_global_vars2 = new Tholu\Packer\Packer($js_global_vars, 'Normal', true, false, true);
$js_global_vars3 = $js_global_vars2->pack();
echo $js_global_vars3;
?>
</script>
[/code]
댓글 7개
일단 <script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>는 그냥 두시고, 아래처럼 하시면 될 듯 싶은데요...
[code]
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<?
$js_strs = '
<script src="'.G5_JS_URL.'/jquery.menu.js"></script>
<script src="'.G5_JS_URL.'/common.js"></script>
<script src="'.G5_JS_URL.'/wrest.js"></script>
';
$js_array = array_values(array_filter(array_map("trim",explode("\n", $js_strs))));
$packed_js = "";
foreach($js_array as $js_str){
$packed_js .="$('head').append('".$js_str."');".PHP_EOL;
}
$packed_js = str_replace("/script>", "/' + 'script>", $packed_js);
$packed_js2 = new Tholu\Packer\Packer($packed_js, 'Normal', true, false, true);
$packed_js3 = $packed_js2->pack();
?>
<script><?php echo $packed_js3; ?></script>
[/code]
* 근데 이런 식으로 불러오면 되는게 있고 안되는게 있고 그렇습니다. 경험상 packed된 min.js들은 안되더라고요. 아직 배움이 부족하여, 정확히 왜 그런건지는 잘 모르겠습니다.
[code]
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<?
$js_strs = '
<script src="'.G5_JS_URL.'/jquery.menu.js"></script>
<script src="'.G5_JS_URL.'/common.js"></script>
<script src="'.G5_JS_URL.'/wrest.js"></script>
';
$js_array = array_values(array_filter(array_map("trim",explode("\n", $js_strs))));
$packed_js = "";
foreach($js_array as $js_str){
$packed_js .="$('head').append('".$js_str."');".PHP_EOL;
}
$packed_js = str_replace("/script>", "/' + 'script>", $packed_js);
$packed_js2 = new Tholu\Packer\Packer($packed_js, 'Normal', true, false, true);
$packed_js3 = $packed_js2->pack();
?>
<script><?php echo $packed_js3; ?></script>
[/code]
* 근데 이런 식으로 불러오면 되는게 있고 안되는게 있고 그렇습니다. 경험상 packed된 min.js들은 안되더라고요. 아직 배움이 부족하여, 정확히 왜 그런건지는 잘 모르겠습니다.
게시글 목록
| 번호 | 제목 |
|---|---|
| 24149 | |
| 24140 | |
| 24133 | |
| 24125 | |
| 24119 | |
| 24109 | |
| 24105 | |
| 24101 | |
| 24093 | |
| 24089 | |
| 24077 | |
| 24074 | |
| 24071 | |
| 24070 | |
| 24067 | |
| 24056 | |
| 24050 | |
| 24046 | |
| 24043 | |
| 24040 | |
| 24037 | |
| 24036 | |
| 24035 | |
| 24034 | |
| 24021 | |
| 24017 | |
| 24005 | |
| 24002 | |
| 23990 | |
| 23980 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기