[Tips] 게시판 모듈에서만 애드온이 실행되도록 하려면 2
2015.08.19 04:32
58
0
https://eond.com/360796
object(HotopayModel)#817 (23) { ["error"]=> int(0) ["message"]=> string(7) "success" ["variables"]=> array(0) { } ["httpStatusCode"]=> int(200) ["module"]=> string(7) "hotopay" ["module_info"]=> NULL ["origin_module_info"]=> NULL ["module_config"]=> NULL ["module_path"]=> string(52) "/home/eond/web/eond.com/public_html/modules/hotopay/" ["xml_info"]=> NULL ["module_srl"]=> NULL ["mid"]=> NULL ["act"]=> NULL ["template_path"]=> NULL ["template_file"]=> NULL ["layout_path"]=> NULL ["layout_file"]=> NULL ["edited_layout_file"]=> NULL ["stop_proc"]=> bool(false) ["user"]=> object(Rhymix\Framework\Helpers\SessionHelper)#816 (20) { ["member_srl"]=> int(0) ["user_id"]=> NULL ["user_name"]=> NULL ["nick_name"]=> NULL ["email_address"]=> NULL ["phone_number"]=> NULL ["homepage"]=> NULL ["blog"]=> NULL ["birthday"]=> NULL ["denied"]=> NULL ["status"]=> NULL ["is_admin"]=> string(1) "N" ["is_site_admin"]=> NULL ["profile_image"]=> NULL ["image_name"]=> NULL ["image_mark"]=> NULL ["signature"]=> NULL ["description"]=> NULL ["group_list"]=> array(0) { } ["menu_list"]=> array(0) { } } ["request"]=> object(Rhymix\Framework\Request)#10 (13) { ["method"]=> string(3) "GET" ["compat_method"]=> string(3) "GET" ["url"]=> string(16) "xe/360796/page/1" ["hostname"]=> string(8) "eond.com" ["domain"]=> NULL ["protocol"]=> string(5) "https" ["callback_function"]=> string(0) "" ["_route_status":protected]=> int(200) ["_route_options":protected]=> object(stdClass)#11 (5) { ["cache_control"]=> bool(true) ["check_csrf"]=> bool(true) ["is_forwarded"]=> bool(false) ["is_indexable"]=> bool(true) ["enable_session"]=> bool(true) } ["module"]=> string(5) "board" ["mid"]=> string(2) "xe" ["act"]=> string(16) "dispBoardContent" ["args"]=> array(6) { ["category"]=> string(5) "35024" ["search_target"]=> string(9) "nick_name" ["document_srl"]=> string(6) "360796" ["page"]=> int(1) ["mid"]=> string(2) "xe" ["act"]=> string(16) "dispBoardContent" } } ["ajaxRequestMethod"]=> array(2) { [0]=> string(6) "XMLRPC" [1]=> string(4) "JSON" } ["gzhandler_enable"]=> bool(true) }

애드온을 실행할 때 게시판 모듈에서만 실행시켜주고 싶습니다.

예를 들어 간단한 키스투엑스이님의 본문 내 광고 추가 애드온 소스 코드입니다.


<?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으로 넘길 수 없을까요.

물론 코드는 잘못되어서 동작이 안됩니다 ㅠ;;



$args->module = 'board';
$module = $output->get('module_srl');
$output = $oModuleController->insertModule($args);

if($module=='board'){
  [원래 애드온 코드]

}







라이믹스는 이온디와 함께

  • 2015.08.23 00:18
    베스트
    <?php
    if(!defined("__ZBXE__")) exit();
    $oModuleModel = getModel('module');
    $module_info = $oModuleModel->getModuleInfoByMid(Context::get('mid'));

    $module_info = Context::get('module_info');

    if($called_position == 'before_display_content' && Context::getResponseMethod() == 'HTML' && $module_info->module=='board' && $module_info->module!='planet') {
    $output = str_replace("<!--BeforeDocument(", $addon_info->soo_top."<!--BeforeDocument(", $output);
    $output = str_replace("<!--AfterDocument(", $addon_info->soo_bottom."<!--AfterDocument(", $output);
    }
    ?>
  • 2020.05.09 06:00
    베스트
    음? 굳이 그럴 것 없이 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'){ }

    이런식으로 게시판일때만 동작하게 하실 수 있을듯 합니다.

    by SeungXE

    https://xe1.xpressengine.com/?mid=qna&document_srl=23068406
닫기

마이페이지

로그인을 해주세요

네이버로 로그인