묻고답하기
게시판 모듈에서만 애드온이 실행되도록 하려면
2015.08.19 04:33
애드온을 실행할 때 게시판 모듈에서만 실행시켜주고 싶습니다.
예를 들어 간단한 키스투엑스이님의 본문 내 광고 추가 애드온 소스 코드입니다.
<?php
if(!defined("__ZBXE__")) exit();
if($called_position == 'before_display_content' && Context::getResponseMethod() == 'HTML') {
$output = str_replace("<!--BeforeDocument(", $addon_info->soo_top."<!--BeforeDocument(", $output);
$output = str_replace("<!--AfterDocument(", $addon_info->soo_bottom."<!--AfterDocument(", $output);
}
?>
이 코드를 module 이름이 board인 경우에만 실행시키고 싶은데요.
예를 들어 이런 식으로 board인 모듈만 추출해서 args로 보낸 뒤에 output으로 넘길 수 없을까요.
물론 코드는 잘못되어서 동작이 안됩니다 ㅠ;;
<?php
if(!defined("__ZBXE__")) exit();
$args->module = 'board';
$module = $output->get('module_srl');
$output = $oModuleController->insertModule($args);
if($module=='board'){
[원래 애드온 코드]
}
?>
음? 굳이 그럴 것 없이 Context::get 으로 모듈값 받아와서 board인지만 검사해주세요.
https://github.com/SeungYeonYou/SXE-Writing-Format/blob/master/sxe_writing_format/sxe_writing_format.addon.php
이거 line 4 참조하시면
if(Context::get('module')=='board'){ }
이런식으로 게시판일때만 동작하게 하실 수 있을듯 합니다.