묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
가상사이트에서 위젯 추가시 모듈 선택에 대해서
2015.10.09 21:18
가상사이트에서 사이트 관리자가 위젯을 추가할때, 대상페이지 항목에서 추가 버튼 클릭하면 모달창으로 모듈 선택창이 출력됩니다.
가상 사이트이기 때문에 가상사이트 도메인의 모듈만 출력되야 하는데, 전체 모듈이 다 출력됩니다.
최고관리자가 아닌 사이트 관리자이기 때문에 모듈 선택창에서 가상 사이트 도메인의 모듈만 출력되게 하려면 어떻게 하면 될까요?
./modules/admin/tpl/js/admin.js 를 다음과 같이 수정하면 됩니다. 참고로 xe는 기본으로 admin.min.js 파일을 로드하기때문에 admin.min.js 파일도 함께 수정하던가, 이름을 변경해서 admin.min.js 가 로드 안되게 해야합니다.
1. 2040번째쯤 라인에 아래 구문을 추가합니다. 주소창에 vid 가 있는지 체크하고, vid 주소(도메인) 값을 사용하기 위한 구문입니다.
var WGparams={};window.location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(str,key,value){WGparams[key] = value;});
2. 2157번째쯤 라인을 아래와 같이 수정합니다. vid 가 있는경우, 즉 가상사이트인 경우 site_srl 의 값은 전달하지 않습니다. site_srl 의 값을 전달하지 않으면 메뉴 추출시 가상 사이트 메뉴만 출력합니다.
if(WGparams.vid) var params = { menu_srl : 0 };
else var params = { menu_srl : 0, site_srl : site_srl_param };
3. 2372번째쯤 라인의 for 구문 사이를 아래와 같이 수정합니다. 가상사이트인 경우 사이트 셀렉트 옵션 항목에 가상사이트 도메인만 출력되게 합니다. 가상 사이트가 아닌 경우는 처음처럼 모든 도메인 주소가 출력됩니다.
if(WGparams.vid) {
if(WGparams.vid == aSiteList[i].domain) $SiteSelector.append($("<option>").val(aSiteList[i].site_srl).html(aSiteList[i].domain));
} else $SiteSelector.append($("<option>").val(aSiteList[i].site_srl).html(aSiteList[i].domain));
위와 같이 수정하면 가상사이트의 사이트 관리자는 모듈 선택시 해당 사이트의 메뉴 항목만 선택할 수 있게 됩니다.