웹마스터 팁
CafeXE (homepage 모듈) 메뉴노출 권한오류 수정안.
2014.08.22 18:32
요즘, 간단한사이트들은 전부 homepage 모듈을 이용하여 개발 후 서비스를 하고있습니다.
워낙 간단간단하게 잘되어있어요.
근데, homepage모듈이 업데이트가 잘안되서그런지 개별적으로 레이아웃을 적용시키는데에 좀 문제가있다던지.. 그런게있습니다.
레이아웃같은경우는 저는 트리거 시작지점에 전부 return;을 걸어서 트리거를동작하지않게하여 각 페이지별 레이아웃을 모두 따로잡을 수 있도록 처리했구요,메뉴노출권한에 체크박스를 사용하는부분 같은경우는 이전 procFilter 를 사용할때의 문법이 남아있어 이것을 수정하여 해결하였습니다.
procFilter 의경우 체크박스가 여러개있으면 체크된 값을 취합하여 value1|@|value2|@|value3... 의형태로 변경해주는데요, 1.5버전에서 ruleset 을 사용하게되면서 일반 post method 의 form으로 사용하는것으로 변경되었습니다.
근데 html부분에 소스가 예전코드가 변경되지않아 메뉴를 노출할 그룹을 여러개 선택하면 가장 마지막에 선택한 그룹 하나만 남게되는 현상이 생기죠.
간단하게 수정할 수 있습니다. (사실 미루고미루며 시간이지나면 패치해줄거라생각했는데 일단그냥 고쳐둡니다. 이슈등록은 하지않았습니다. )
//$source_args->group_srls = str_replace('|@|',',',$source_args->group_srls); $source_args->group_srls = join(',',$source_args->group_srls);
<input type="checkbox" name="group_srls[]" value="{$key}" id="group_{$key}" <!--@if(is_array($item_info->group_srls)&&in_array($key, $item_info->group_srls))-->checked="checked"<!--@end-->/>
controller 파일은 치환함수를 배열을 implode하는 함수로 변경만해주면됩니다.
데이터를 전송하는 폼html 에서도, name을 배열형태로 수정만해주시면 간단하게 해결됩니다.
곳곳에 이런게 꽤나 남아있을 것 같은데.. 빨리 오래된코드들이 정리되길바랍니다.