XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | sejin7940 |
---|
관리자용 함수인지 판단하기 위해 act 명에 admin 포함여부를 검토하는데
문제는..
전 당연히 대소문자 구별해서 Admin 여부로 판단할 줄 알았는데.
일부는 stripos 를 사용하고, 일부는 strpos 를 사용하네요
따라서 일반 함수인데 admin 이라는 단어가 포함되거나
더 심각한건 모듈명에 admin 이라는 단어가 들어가면.
model 과 view 에서는 무관하고 controller.admin 에서도 상관이 없는데,
일반 controller 가 완전히 다 작동을 안 하네요. ( admin 함수로 인식해서..)
전 모듈명에 admin 이라는 단어가 들어가있는데 이거 모듈명부터해서 싹 다 바꿔야할지도 모르겠네요
즉, 모듈명 을 정할때.. 절대 admin 이라는 단어를 넣으면 안 되고 ( controller 에 어떻게해도 admin 이라는 단어가 포함될 수 밖에 없게 됩니다 )
그리고 controller.php 함수 정의할때에도, 함수명자체에 admin 이라는 단어가 들어가면 안 됩니다.
더 정확히는
ModuleObject.class 에서는 strpos 를 쓰는데
ModuleHandler.class.php 에서, stripos 를 사용하네요
(아마도 과거 act 값의 규칙이 엄격하지 않을때 실수로 대소문자 구별안함 함수명들까지 관리하기 위해 이렇게 한거라고 예상은 합니다만..)
강제로 이 제한을 풀려면
ModuleHandler.class.php 에서,
stripos($this->act, 'admin') 를 strpos($this->act, 'Admin') 로
stripos($forward->act, 'admin') 를 strpos($forward->act, 'Admin') 로 변경하면 되긴합니다만...
XE 에서 계속 소문자까지도 혹시나의 상황을 대비해 막아버리면, 결국엔 admin 이라는 단어를 아 써야하네요