RX/XE 팁
XE FAQ 는 제가 XE공홈 '묻고 답하기'에 답변한 내용들 중 일부를 정리한 내용입니다. (대부분이 제가 한 답변이죠)
XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠

제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 XE Github 
출처URL https://github.com/xpressengine/xe-core/issues/2181 

php 7.1  에서 오류나는 함수의 변수 초기화 관련 오류 사항 외에

( http://sejin7940.co.kr/xe_tips/117103 참조 ) 

 

 

php 7.2 기반에서 문제되는 사항은  Object 클래스의 사용금지로 생기게 된 오류들이다.

최신 XE 에서는 이 부분들 대응이 다 되어있는데

서드파티 자료들은 거의 대응이 안 되어있을것이다.  

아직 7.2 를 안 쓰는게 안전하고, 써야한다면 관련 부분들을 다 찾아서 고쳐야한다

 

 

https://xe1.xpressengine.com/devlog/23249915

https://github.com/xpressengine/xe-core/issues/2181

bnu 님과 kijin 님의 이슈들을 기재해둡니다.

추후 이 문제가 발생하실때 참조하거나,  자료 만들때 참고해서 미리미리 보완작업을 해두는게 좋을듯하네요

 

 

 

PHP 7.2에서 Object 클래스를 사용할 수 없음.
PHP 7부터 예약어로 지정됐고, 최근 PHP 7.2에서 변경으로 인해 사용이 제한 됨.
PHP 7.2는 현재 RC6 단계이지만 이 변경 사항은 정식버전에도 반영될 것으로 보임

XE는 이러한 PHP 7.2의 변경사항에 맞춰 Object 클래스의 이름을 BaseObject로 변경합니다.
이로 인한 호환성 문제를 피하기 위해 PHP 7.2 미만에서는 여전히 Object 클래스를 사용할 수 있습니다
(class_alias()를 이용해 Object클래스를 유지합니다)

이는 PHP 7.2의 변경으로 인해 XE가 변경을 따라갈 수 밖에 없는 부분입니다.
return new Object(...)과 같은 코드를 사용한 모듈, 애드온, 위젯 등은 이 변경사항을 반영하지 못하면 PHP 7.2 이상에서 동작할 수 없습니다. 다음과 같이 변경 사항을 적용해야 PHP 7.2 미만과 이상에서도 동작할 수 있습니다.

써드파티 모듈 등에서 return new Object(-1, 'error message')처럼 사용하고 있다면 다음과 같이 수정해야 합니다.

return new Object(-1, 'errmsg');
$output = new Object();
// 이와 같이 사용했다면 아래와 같이 변경

return class_exists('BaseObject') ? new BaseObject(-1, 'errmsg') : new Object(-1, 'errmsg');
$output = class_exists('BaseObject') ? new BaseObject() : new Object();

이름이 바뀐 BaseObject와 Object 클래스를 모두 지원할 수 있도록 합니다.

kijin 님께서 제시해주신 코드이며, 동작에 문제가 없는 것 까지 확인해주셨습니다.
다만, PHP 7.2의 정식 버전이 배포되기 이전이므로 PHP 7.2 정식 버전 및 이후의 변경에 따라 이 방법이 유효하지 않을 수도 있습니다.

 

 

또는.....

 

 

 

서드파티 자료 제작자 중 수정하실 부분이 많다면 아래와 같이 편리하게 처리할 수도 있습니다.

우선 모듈명.class.php에 정의된 모듈 기본 클래스에 메소드 하나를 추가합니다.

public function makeObject($code, $msg)
{
    return class_exists('BaseObject') ? new BaseObject($code, $msg) : new Object($code, $msg);
}

그리고 이 클래스를 상속받는 다른 모든 클래스(컨트롤러, 모델, 뷰 등)에서

return new Object(-1, 'errmsg');

라고 되어 있던 부분을 모두

return $this->makeObject(-1, 'errmsg');

라고 바꾸시면 그나마 깔끔하게 호환성을 유지할 수 있습니다.

서드파티 모듈 내에서 이런 함수는 얼마든지 자유롭게 만들어 쓰셔도 됩니다.

전체 682건
공지 XE 기능개선 XE 1.11.18 이후 버전의 익명 수정 버그 수정법 xetown  2023.10.07 2756
공지 XE 기능개선 XE 1.11.14 보안패치 - 타인의 쪽지 내용을 확인할 수 있는 버그 패치방법 xetown  2023.10.03 2853
공지 XE 기능개선 XE 1.11.6 이후 보안배치 #4 file rhymix  2022.07.05 2936
공지 1.11.6 XE 1.11.6 이후 보안배치 #3 rhymix  2022.04.02 2927
공지 1.11.6 XE 1.11.6 이후 보안배치 #1 xetown  2021.06.22 3292
공지 1.11.6 XE 1.11.6 이하 에서 공개댓글을 비밀댓글로 변경시 생길 수 있는 오류 수정법 sejin7940  2021.01.10 3222
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 6001
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 5928
» 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 8270
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 6695
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 25808
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 25627

유용정보 리눅스 디렉토리 용량 확인 du

출처 : 제타위키 

2017.11.03 2017.11.03 조회 324

http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC_%EC%9A%A9%EB%9F%89_%ED%99%95%EC%9D%B8_du 현재 폴더 내 파일·디렉토리들의 용량 출력 du 상위폴더만 출력 su -h --max-depth=1 특정 폴더 및 그 자식폴...

XE 기능개선 파일첨부 권한 없을때 메세지를 '로그인 하지 않았습니다'로 변경하고 싶은 경우

출처 : sejin7940 

2017.10.30 2017.10.30 조회 225

상황에 따라서 파일첨부 권한 없을때 메세지를 '로그인 하지 않았습니다'로 변경하기 위해 modules/file/file.controller.php 에서 function procFileDownload 함수에서 if(isset($this->grant->access) && $this->grant->access !== true) re...

XE 기능개선 레이아웃 편집 기능을 사용한 경우, 편집한 layout.html 파일 바로 수정하는 방법

출처 : sejin7940 

2017.10.23 2017.10.23 조회 375

레이아웃 편집 기능을 사용하면 실제 layouts/ 폴더의 소스랑 분리되어 XE 내부에 별도로 layout.html 파일 자체가 저장이 됩니다 ( 대신 해당 layout.htm l이 include 한 .html 파일은 다 그대로 layouts 폴더에서 사용 가능합니다 ) files/faceOff/레이아웃...

XE 기능개선 검색봇이 수집을 제한하게 하기위한 robots.txt

출처 : designersol 

2017.10.19 2017.10.19 조회 259

SEO 모듈 기반으로 해서 검색봇이 사이트 정보를 수집해가는데 검색이 불가능하게 제한하는 건, 해당 모듈 설정등에는 없고 robots.txt 파일을 root 에 생성해서 수집 제한을 할 수는 있다 ( 물론 robots.txt 파일이 검색봇에 대한 가이드일뿐 사실 강제는 아...

XE 기능개선 포인트레벨 아이콘으로 png 를 사용하고 싶은 경우

출처 : sejin7940 

2017.09.22 2017.09.22 조회 252

포인트레벨 아이콘으로 png 를 사용하고 싶은 경우 포인트레벨 아이콘을 출력하는건 poin_level_icon 이라는 애드온입니다 이 애드온 자체에 gif 라고 지정이 되어있는데 이걸 변경하시면 됩니다 addons/point_level_icon/point_level_icon.lib.php 에서 $leve...

유용정보 li 중앙정렬 하는 방법

출처 : sejin7940 

2017.09.07 2017.09.07 조회 188

ul { text-align:center; } ul li { display:inline-block; float:none; }

XE 기능개선 에디터에 글자 폰트를 굉장히 크게 (30 이상) 했을 때, 줄간격이 없어지면서 겹쳐지는 현상 해결법

출처 : sejin7940 

2017.09.04 2017.09.04 조회 975

에디터에 글자 폰트를 굉장히 크게 (30 이상) 했을 때, 줄간격이 없어지면서 겹쳐지는 현상 해결법 레이아웃 자체에 아래 문구 추가 <style> .xe_content { line-height:normal !important;} </style> 그리고 에디터 스킨에서 modules/editor/skins/ckeditor/e...

XE 기능개선 기본 URL 설정이 안 되어 있습니다 에러 발생 이유 및 해결책

출처 : sejin7940 

2017.09.01 2017.09.01 조회 3759

로그인을 할때 분명 기본URL 을 설정을 해놨는데도 로그인을 할때 '기본 URL 설정이 안 되어 있습니다.' 라는 메세지가 뜨는 경우가 있다. 이게 모든 경우도 아니고 특정 사이트들에서만 벌어지는 이유여서 Core 에 수정사항으로 되어있지도 않고 도대...

1.8.43 글등록시 포인트차감으로 등록불가 설정시 개별설정이 아닌 전체 설정 기준으로만 사용할 경우는 적용 안 되는 버그 수정법

출처 : sejin7940 

2017.08.23 2017.08.23 조회 209

글등록시 포인트 차감되도록 설정한 경우, 게시판 별로 개별설정으로 포인트 차감을 처리했을 경우에는, 적용이 되지만 개별설정이 아닌, 전체 설정 기준으로만 사용할 경우는 적용이 안 되는 버그가 있다 이를 해결하는 방법은.. modules/board/board.view.ph...

XE FAQ 본인이 쓴 글에 대댓글을 달 시 포인트 지급이 안되는 문제

출처 : sejin7940 

2017.08.04 2017.08.04 조회 441

질문 : 본인이 쓴 글에 대댓글을 달 시 포인트 지급이 안되는 문제 https://xe1.xpressengine.com/index.php?mid=qna&document_srl=23236102 -------------------------------------- sejin7940 답변 : 꼭 대댓글이 아니라, 글쓴이가 댓글을 달때는 포인트...

유용정보 [txt, xml] 엔터값, 빈 줄 삭제하기

출처 : metachoir 

2017.08.03 2017.08.03 조회 414

MSword 를 켜서 메뉴에서, 찾기->바꾸기 로 가서, [<<자세히] 를 누르고 [옵션] 을 들어가서 [단락 기호] 를 누르면 찾기에 단락기호값이 입력되다 그걸 바꿀문자 ( 공백이나 쉼표 같은걸로 ) 를 입력한 뒤 모두 바꾸기하면 일괄 변경이 된다. end-del-쉼표 노...

다른 XE자료들 특정 모듈의 페이지나 레이아웃등에서 알림센터가 안 뜨게 하려면..

출처 : sejin7940 

2017.05.31 2017.05.31 조회 360

알림센터를 사용하는 경우에도 특정 모듈의 페이지나 레이아웃등에서 알림센터가 안 뜨게 하려면.. 물론 게시판이나 mid 기반이면 알림센터 설정에서 제어가능하지만 그게 아니라 특정 act 값등에서 제어한다든지 , mid 중 특정상황에서만 안 뜨게 저에하려면 ...

유용정보 Node.js 및 Socket.io (웹소켓) 에 관해 잘 설명해주는 예시 기반 강좌사이트 

출처 : zerocho 

2017.05.28 2017.05.28 조회 747

Node.js 및 Socket.io (웹소켓) 에 관해 잘 설명해주는 예시 기반 강좌사이트 https://www.zerocho.com/category/NodeJS npm, node.js 서버구축, node module, express 등의 기본사항들 외에 웹기반에서 특히 관심가질만한 부분인 Socket.io로 실시간 업데이트...

유용정보 버튼 클릭시 특정문구 복사하기 기능 (최신 크롬에서 가능하도록 개선)

출처 : stack overflow 

2023.04.24 2023.04.24 조회 2194

예전에는 되던 document.execCommand('copy'); 가 크롬에서 이제는 정상 작동이 안 된다 ( 2020년 기준 ) 이제는 clipboard API 를 사용해서 구현을 해야한다. 단 clipboard API 는 https 에서만 작동하니, https 로 사이트 를 연결해야한다 <input id...

유용정보 FireFox 에서의 event.keyCode 처리

출처 : MC빼인트와함께 

2017.05.20 2017.05.20 조회 221

// IE function KeyCode(){ alert(event.keyCode); } // FF function KeyCode(e){ alert(e.which) } // cross browsing document.onkeypress = function(e){ var result = ""; if(typeof(e) != "undefined") result = e.which; else result = event.keyCode; ...

XE 기능개선 달력 기능 ( datepicker ) 가 정상적으로 작동하지 않는 경우

출처 : sejin7940 

2017.05.11 2017.05.11 조회 555

서버 환경이나 사용하는 모듈등이나 여러 상황에 따라서 datepicker 가 갑자기 정상적으로 안 되는 경우가 있다. XE Core 자체에서 datepicker plugin 을 실행하는데 이를 제대로 실행시키지 못하는 경우 이를 수동으로 정의해주면 된다. 이 기능을 사용하는 q...

XE 기능개선 특정게시판의 추천내역 및 추천/비추천수 초기화하는 방법

출처 : sejin7940 

2017.05.08 2017.05.08 조회 191

특정 게시판의 추천내역을 강제로 초기화하고픈 경우.. DELETE LEFT JOIN 을 사용하면 된다. http://www.mysqltutorial.org/mysql-delete-join/ 를 보고 쿼리를 짜면 되는데 어려울경우... DELETE xe_document_voted_log FROM xe_document_voted_log LEFT JOIN...

XE 기능개선 휴지통 비우기 노가다를 조금(?) 쉽게 하는 방법

출처 : sejin7940 

2017.05.06 2017.05.06 조회 612

콘텐츠->휴지통의 경우 '휴지통 비우기' 버튼이 있기는 하나, 휴지통의 글이 아주 많은 경우라면 이걸로 비우면 중간에 메모리 에러가 발생하게 된다. DB 에서 직접 휴지통 글을 제거하는 방법도 있긴하지만 ( xe_trash 테이블 ) 휴지통으로 옮길때 XE...

XE 기능개선 ckeditor 에서 파일첨부 버튼 위에 안내문구 넣는 방법

출처 : sejin7940 

2017.05.04 2017.05.04 조회 332

ckeditor 에서 파일첨부 버튼 위에 안내문구 넣는 방법 modules/board/skins/스킨/write.html 끝부분에 추가 <script> var file_info = '<div style="width:100%; color:#333; border:1px solid red; background:#fff; padding:10px; font-size:14px;margi...

XE Login