라벨이 Xpress Engine인 게시물 표시

XE v1.7에서 음성 파일 재생 불가 문제 해결법.

   XE 1.7을 사용하고 있는 사이트에서 문제가 발생했습니다.   게시판에서 음성 파일을 첨부한 후, 게시물에 삽입하면, 다른 웹 브라우저에서는 음성 파일이 잘 재생되나, IE8(혹은 그 이하)에서는 음성 파일이 재생되지 않는 문제였습니다.   아마도 XE가 업데이트되면서 음성 파일 처리에 HTML5 태그인 audio 태그를 쓰도록 수정된 것 같습니다. 하지만, 다행히도 audio 태그를 플래시 플레이어로 변환시켜 주는 애드온이 있었습니다. 그 애드온의 이름은 "HTML5 AUDIO to FLASH"입니다.[1] 이 애드온 덕분에 문제를 잘 해결할 수 있었습니다. ... 이걸로 끝이면 좋았겠지만, 적용해놓고 보니, 정작 중요한 IE8에서는 플레이어가 나타나지 않는 것이었습니다. (산 넘어 산...)   이상한 것은 해당 애드온의 바탕이된 자바스크립트를 개발한 사이트[2]에 가서 데모를 구동해봤는데, IE8에서 플레이어도 잘 보이고, 재생도 잘 되었습니다. 그래서 저는 애드온을 의심하고,코드를 낱낱이 살펴보았습니다. 하지만 특별한 문제점은 없었습니다.. 다음으로는 jQuery나, html5.js와의 충돌을 의심했으나, 모두 아니었습니다.   그러다가 놀라운 글을 발견했습니다.[3] 결론부터 말씀드리자면, p 태그 안에 audio 태그가 있으면, 그런 오류가 발생한다는 것입니다. 그리고 실제로, 게시물에서 p태그를 제거하자 음성 파일이 잘 재생되었습니다.   몇 가지 연구 끝에 IE8[4]에서는 node.outerHTML, innerHTML 함수가 태그에 따라서 안먹히는 경우가 있기 때문에, 이런 문제가 발생했다는 것을 알게 되었습니다. 그렇다면 게시글에서 p 태그만 지우면 되는데, 중요한 문제는 게시판의 WYSIWYG 편집기가 자동으로 p 태그를 입력해버린다는 것이었습니다. 그래서 audio.js (애드온이 사용하는 라이브러리)에서 outerHTML, innerHTML을 사용하지 ...

XE 용량 초과로 문제 발생 시 조치법.

XE를 사용 중인 웹사이트에서 용량이 꽉 차버려 사이트가 제대로 동작하지 않는 문제가 발생했습니다. 특히 첨부파일 삭제 기능도 동작하지 않고, 관리자 페이지에 접근하려고 해도 다음의 에러 메시지가 나타나면서 접근이 불가능했습니다. Fatal error: Call to a member function getAction() on a non-object in ...(중략)... DB.class.php ... (생략) 용량 문제는 첨부 파일의 경로를 찾아, 직접 지워서 해결 했는데, 저 오류는 사용 가능 용량이 생겼다고 해서 해결되지 않았습니다. 저는 다음의 방법으로 문제를 해결했습니다. XE 루트/files/cache 폴더의 이름을 변경합니다. (예: cache_bak) XE 관리자 페이지로 접근합니다. (http://웹사이트 주소/xe/?module=admin   또는 http://웹사이트 주소/xe/?module=admin&act=dispAdminConfig) 관리자 페이지에서 캐쉬 재생성 작업을 진행합니다. (※ 관리자 페이지가 제대로 나타나지 않는다면 다른 문제이므로 cache 폴더를 복원하고 다른 방법을 찾아봅니다.) 참고: http://www.xpressengine.com/qna/20701795 - 문제 해결 힌트를 얻은 곳. http://www.xeschool.com/xe/step1_52 - 캐쉬파일 재생성 방법 참고. http://www.xpressengine.com/qna/19689609 - 첨부파일을 직접 삭제할 때 참고.

XE 1.5에서 1.7로 업데이트를 했는데...

XE 1.5에서 1.7로 업데이트를 하게 되었습니다. 그런데... 쉬운설치로는 코어 업데이트가 않되더군요.(무슨 에러가 발생했는데, 지금은 기억나지 않습니다.) 되는 것만 하자는 생각에, 코어는 제쳐두고 최근 댓글 위젯(댓글알리미 애드온이었는지도 모르겠습니다. 기억이 잘... ^_^;)을 업데이트 하려고 했습니다. 업데이트를 하려면 코어를 1.5.2로 업데이트 해야한다고 나타나더군요. 꿩대신 닭이라고, 그럼 1.5.2라도 되라는 생각에 업데이트를 눌렀더니... 아~~! 에러 외에는 아무런 화면도 볼 수 없었습니다. 순간, 망했다라는 생각이 들었죠... 백업을 하지 않았으니까요... 그 후로 시작된 역경들... 우선 무슨 파일이 없다는 에러가 발생했습니다.   → XE 사이트에서 옛날 코어 버전(1.5.2)을 찾아서 내려받은 후 해당 파일만 직접 업로드 했습니다. 그러고 나니, 이번엔 존재하지 않는 함수를 호출했다는 에러가 나타나더군요...   → 문제의 파일을 열어서 그 함수가 어디에 포함된 것인지를 확인해봤더니, Context 클래스에 포함되어져 있더군요. 그래서 /xe/classes/context/Context.class.php를 1.5.2버전으로 바꾸었습니다. 이번에는 admin_bar.html가 없다는 에러   → "{Context::set("admin_bar", "false")}"이 내용을 텍스트 문서에 넣고  "modules/admin/tpl/"에 admin_bar.html라는 이름으로 저장했습니다...