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');

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

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

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

유용정보 구글 애드센스 광고가 없을때 해당 영역 숨기려면

출처 : sejin7940 

2024.11.19 2024.11.19 조회 0

구글 애드센스 광고가 없을때 해당 영역 숨기게 하려면 <style> ins.adsbygoogle[data-ad-status="unfilled"] { display: none !important; } </style> 원래 CSS 는 처음 출력시에만 적용이 되지만... 구글애드센스는 구글에서 광고 여부를 확인하고 애드센스 ...

라이믹스 라이믹스 DB 및 쿼리 query 와 XML 문법 안내

출처 : rhymix 

2024.11.09 2024.11.09 조회 1

XML 스키마 관련 개선 사항 XML 쿼리 관련 개선 사항 다른 DB 쿼리 실행하기 커스텀 쿼리 실행하기 등에 관한 안내글이 있다 https://github.com/rhymix/rhymix/pull/1332

라이믹스 selectbox 형태를 사용시 빈값 (공백) 을 제일 앞에 추가하고 사용자정의 이름이 기본으로 출력되게 하려면

출처 : sejin7940 

2024.11.06 2024.11.06 조회 0

selectbox 형태를 사용시 빈값 (공백) 을 제일 앞에 추가하고 사용자정의 이름이 기본으로 출력되게 하려면 기본값을 , 로 시작해주면 빈값이 들어가는데 값이 없는 selectbox option 이 나와서, 이 option 에 사용자정의 이름이 나오게 하려면 라이믹스 기준...

라이믹스 라이믹스에서 글 복사, 이동, 휴지통 이동, 삭제 등시 쪽지 발송 안 되도록

출처 : sejin7940 

2024.10.25 2024.10.25 조회 8

라이믹스에서 글 복사, 이동, 휴지통 이동, 삭제 등시 쪽지 발송 안 되도록 lang 파일을 수정할 수도 있지만, 다국어를 감안해 Core 를 수정 modules/document/document.controller.php 에서 function procDocumentManageCheckedDocument() 함수에서 $actions ...

라이믹스 게시판 검색어가 40자로 제한되어있음. 이를 늘리려면

출처 : sejin7940 

2024.10.25 2024.10.25 조회 8

Core 는 검색어가 40자로 제한되어있음. 이를 늘리려면 modules/board/tpl/filter/search.xml 에서 <node target="search_keyword" minlength="1" maxlength="40" required="true" /> 에서 maxlength 값을 바꿔주면 됨 예를들어 120자로 늘리고프면 <node targ...

유용정보 "스팸방지 CAPTCHA 서버와 통신하는 도중 오류가 발생했습니다." 라는 에러가 뜨는 경우

출처 : sejin7940 

2024.10.14 2024.10.14 조회 15

recaptcha 등을 사용하면서 캡챠는 뜨는데 실제 글 등록등을 할때 '스팸방지 CAPTCHA 서버와 통신하는 도중 오류가 발생했습니다.' 라고 에러가 나와 진행이 안 되면.. 구글 recaptcha 에서 그냥 새로 프로젝트를 만들어 사이트키, 비밀키를 바꿔보면 ...

XE 기능개선 XE 1.8.3 미만에서 우리메일 ( ggmailing ) 연결방법

출처 : XE 

2024.07.06 2024.07.06 조회 49

우리메일 을 Core 와 연결할때 고급메일발송모듈을 사용하는데, 이게 XE 1.8.3 이상을 필수로 한다 따라서 그 이하 환경에서 우리메일 사용하려면 Core 수정이 필요하다 https://xe1.xpressengine.com/22887633 를 참고하면 되지만... 혹시나 글이 삭제될떄를 ...

유용정보 윈도우 화면 분할 기능 끄기

출처 : 위시랜 

2024.05.24 2024.05.24 조회 69

윈도우(Windows) 11에는 스냅 어시스트(Snap Assist) 기능이 있다. 화면 분할 기능이든 창 끌기든 스냅 어시스트(Snap Assist)든 스냅 윈도우(Snap Windows)든 이 기능은 창의 크기를 자동으로 조정하고 레이아웃으로 정렬하기 위한 기능이라고 설명되어 있다....

유용정보 웹푸시 등을 사용할 경우 알림이 24개까지 누적이 되면 더 이상 알림이 오지 않는 현상

출처 : samsung 

2024.05.14 2024.05.14 조회 67

웹푸시 등을 사용할 경우 동일사이트에서의 알림이 24개까지 누적이 되면 더 이상 알림이 오지 않는 현상이 발생하는데 이 문제를 해결 할 수 있는지 문의글에.. 안드로이드에서는 알림이 몰려 들어오는 경우에 대해 제한을 두고 있으며 개수에 대해 따로 설정...

유용정보 css, js 파일 수정 후 적용 안될 때

출처 : jurin.log 

2024.05.14 2024.05.14 조회 73

css, js 파일을 수정을 하고 새로고침을 아무리 해도 적용이 안되느 ㄴ경우 1) 캐시 새로고침 Ctrl + F5 : 캐시 및 메모리까지 새로 고침 2) 파일명 뒤에 버전 정보를 쿼리스트링 형태로 추가 ?ver=버전. 버전에는 아무거나 넣어도 상관없다. 브라우저가 기존 ...

유용정보 XE에서 대표 썸네일 및 파비콘 등록 관련하여

출처 : sejin7940 

2024.05.14 2024.05.14 조회 89

XE에서 대표 썸네일 및 파비콘 등록 관련하여 카카오톡 공유시 이미지 변경 방법 ( 참조 - https://imweb.me/faq?mode=view&category=29&category2=47&idx=70639 ) 1. 카카오 디벨로퍼스 공유 디버거에 접속합니다. ( https://developers.kakao.co...

유용정보 php 버전이 낮을 경우 php 서버 업데이트를 반드시 해야하는 이유

출처 : sejin7940 

2024.05.13 2024.05.13 조회 91

사이트를 통하면 php 버전 별 속도차이 확인은 아래 사이트를 참고하면 된다. https://onlinephp.io/benchmarks XE 환경이 아니라 이 실험한 환경에 따른 결과기에 XE 랑 완전 동일한건 아니겠지만, 대략적인 비교는 가능하다 대략 적으로 보면 테스트한 사이...

XE 기능개선 스케치북에서 임시저장 후 불러오기시 상태(공개,비밀글) 값이 선택 안 되는 현상 수정법

출처 : sejin7940 

2024.05.07 2024.05.07 조회 51

스케치북에서 임시저장 후 불러오기시 상태(공개/비밀글) 값이 선택 안 되는 현상 수정법 write_form.html 에서 <div cond="is_array($status_list)" class="section"> <!--@foreach($status_list AS $key=>$value)--> <input cond="@!in_array('secret...

유용정보 cdn 이 오류날때 임시 우회 방법

출처 : xetown 

2024.05.03 2024.05.03 조회 89

cdn 쪽 서버가 문제가 생기는 경우 cdn 관련 부분이 전부 작동 안 하는 경우가 있다. 이 경우. 임시 해결법은 주소의 cdn 부분을 fastly, testingcf, gcore, quantil 중 하나로 변경하시면 됩니다. 예를들어 cdn.jsdelivr.net 대신 gcore.jsdelivr.net 처럼..

유용정보 정규식으로 img 테그만 제거

출처 : its me 

2024.04.13 2024.04.13 조회 70

php 태그 제거 , img 테그 제거 php에서 html태그를 몽땅제거할 때는 strip_tags() img 태그만 제거할 때는 preg_replace("/<img[^>]+\>/i", "(image) ", $content); ==> "(image)" : img태그가 (image)로 교체. ==> ("image)" 대신 ""으로 하면 img 태그는 삭...

유용정보 스케치북 스킨에서 모바일에서 view 화면에서 사진 위에서 스크롤이 안 되는 현상이 발생할때

출처 : sejin7940 

2024.02.21 2024.02.21 조회 91

스케치북을 스킨을 사용할때 모바일에서 view 화면에서 사진 위에서 스크롤이 안 되는 현상이 발생할때가 있다 이는 스케치북 스킨의 기능중 '이미지 부가 기능' 에서 '이미지 드래그' 기능이 켜져있어서 그렇다 저 기능을 켜면, view 화면에...

유용정보 calc() - 속성값을 사칙연산으로 정할 수 있게 하는 함수 사용시 주의할 점

출처 : sejin7940 

2024.02.12 2024.02.12 조회 89

길이 등을 calc()는 괄호 안의 계산값을 속성값으로 사용하게 해주는 함수 px 와 % 를 같이 사용할 수 있기에 유용하게 많이 사용 예) style=" width : calc(100% - 150px); " ( 주의할점 ) 곱셈과 나눗셈의 좌우에는 공백이 없어도 되지만 덧셈과 뺄셈의 좌우...

XE 기능개선 글등록 후 페이지 이동되기 전에 alert 이나 특정한 행위를 하고픈 경우..

출처 : sejin7940 

2024.02.04 2024.02.04 조회 92

글등록 후 페이지 이동되기 전에 alert 이나 특정한 행위를 하고픈 경우.. modules/board/tpl/js/board.js 에서 function completeDocumentInserted 함수 의 끝부분의 location.href = url; 위에 alert 구문 등 특정 행위를 해주면 됩니다

유용정보 javascript에서 urlencode(), urldecode(), rawurlencode(), rawurldecode() php 코드와 동일하게 설정

출처 : 개발자의 끄적끄적 

2023.12.23 2023.12.23 조회 211

// 자바스크립트에서 urlencode(), urldecode(), rawurlencode(), rawurldecode() php 코드와 동일하게 설정 // 자바스크립트에서 php urlencode 구현 함수 function urlencode(str) { str = (str + '').toString(); return encodeURIComponent(str) ...

유용정보 ul속 여러 개의 li를 화면 가운데 정렬 (block요소 가운데 정렬) 하는 방법

출처 : G's day 

2023.11.29 2023.11.29 조회 206

ul속 여러 개의 li를 화면 가운데 정렬 (block요소 가운데 정렬) 하는 방법 ( 참조 : https://gsdays.tistory.com/59 ) 가운데 정렬 ul 속성에 text-align : center li 속성에 display : inline-block (단, float : left 와 함께 쓰면 안 됨) 참고) block요소...

XE Login