엑셀
자료 유형 | 모듈 |
---|---|
간단한 소개 | 엑셀 파일로 관리자 페이지에서 '회원목록'과 '문서목록'을 다운받을 수 있으며, 각 게시판에서도 '문서목록'을 다운받을 수 있습니다 |
설치 경로 | ./modules/excel |
코어 지원 범위 | Rhymix 2.0 |
PHP 지원 범위 | 기타 |
자료 구분 | 공개 자료 |
라이선스 | GPL v2 |
파일명 | 버전 | 날짜 | 용량 | 다운 |
---|---|---|---|---|
excel.0.0.4.zip | 0.0.4 | 2023.11.20 | 44.4KB | 66 |
excel.0.0.3.zip | 0.0.3 | 2023.09.28 | 45.1KB | 23 |
excel.0.0.2.zip | 0.0.2 | 2022.10.21 | 44.8KB | 81 |
excel.0.0.1.zip | 0.0.1 | 2022.10.10 | 44.1KB | 50 |
0.0.4 업데이트 (2023.11.21 : 라이믹스 2.1.9에 대응)
1. 스킨 업데이트
- 스킨의 폼에서 사용하는 필터를 코어에서 신규 제공하고 있는 rx_ajax 클래스로 변경
- 스킨의 폼에서 전달하는 act값을 proc류의 함수명으로 명시화
- 스킨의 폼에서 전달하는 module값을 excel로 명시화
2. 모듈 업데이트
- procExcelGenerateMember 함수 : getMemberList() 메소드를 non-static 방식으로 가져옴
- _setExcelMemberData 함수 : $obj->id_item, $obj->target_item, $obj->main_info, $obj->extra_info 등의 변수가 배열로 들어오는 것에 대응
- _setExcelMemberData 함수 : 회원가입 미승인, 거부 상태를 명확하게 식별할 수 있도록 수정
- _setExcelDocumentData 함수 : $obj->config, $obj->document_info, $obj->document_setting, $obj->extra_info 등의 변수가 배열로 들어오는 것에 대응
0.0.3 업데이트 (2023.09.28)
- model에서 함수를 public static 처리
=> excel.model.php 수정
- 코어 2.1.3 이후에 대응하기 위해 회원목록의 다국어 처리 방식 수정 (똑띠님)
=> excel.controller.php 수정
0.0.2 업데이트 (2022.10.21)
- 게시판 목록 header 수집시 확장변수 중복 수집 문제 해결
- model.php에 남아 있던 debugPrint 함수 삭제
- 게시판 목록에 카테고리 리스트가 없을 때 팝업창에서 카테고리 항목 기본 체크 방지
- 등록일 등 datetime 형식을 가진 셀의 너비를 확장 (라이브러리에 auto fit 기능이 없음ㅜ)
- 회원목록 가져올 때 승인/거부 상태, 가입일, 최근 로그인, 회원 그룹 등도 사전 체크하도록 함
- 회원목록에서 가입 승인/미인증/임시제한/거부 상태 등을 세분화해서 표시
- 회원 확장변수에서 date 형식 가져오지 못하는 문제 수정 (똑띠님)
1. 소개
- 관리자 페이지에서 '회원목록'과 '문서목록'을 엑셀 파일(*.xlsx)로 다운받을 수 있으며,
- 각 게시판에서도 '문서목록'을 다운받을 수 있습니다.
- 라이믹스 2.0.22 버전, php 7.4 버전대에서 제작되었습니다. 사용하실 때 참고하시면 좋겠습니다.
- 사용 후 의견주시면 완성도를 높이는 데 참고하도록 하겠습니다.
2. 설치 및 설정
- 설치경로는 ./modules/excel 입니다.
- 설치 후 관리자 페이지 대시보드(첫 화면)에서 모듈 관련 트리거 설정을 끝내주셔야 합니다.
- 또한 관리자 페이지 > 고급 > 설치된 모듈 > 엑셀로 들어가서 기본 설정을 해주시면 됩니다.
- 그리고 각 게시판의 설정 페이지 > 추가 설정 하단쯤(대강 '위지윅 에디터' 다음?)에서 '엑셀 저장' 쪽에서 게시판별로 개별 설정을 할 수 있습니다.
3. 작동방식
- 세 가지 형태의 목록을 다운로드할 수 있습니다.
: 1) 관리자 페이지의 회원 목록, 2) 관리자 페이지의 문서 목록, 3) 게시판별 문서 목록
- 각 목록에서 팝업창을 띄우게 되는데
: 부모창의 목록을 기준으로 다운로드할 엑셀 파일에서도 동일한 목록을 생성하게 됩니다.
- 또한 목록의 페이지를 지정할 수 있습니다.
: 현재/전체/맞춤 페이지 등 원하는 만큼 페이지 생성이 가능합니다.
4. 다운로드 팝업창 버튼의 활성화
- 관리자 페이지 좌측 내비게이션에서 '회원 > 회원목록'으로 들어가면 '엑셀 저장' 버튼이 활성화되는데, 버튼을 눌러 팝업창을 띄운 후 엑셀 파일을 다운로드 받을 수 있습니다.
- 관리자 페이지 좌측 내비게이션에서 '콘텐츠 > 문서'로 들어가면 '엑셀 저장' 버튼이 활성화되는데, 버튼을 눌러 팝업창을 띄운 후 엑셀 파일을 다운로드 받을 수 있습니다.
- 각 게시판 목록에서의 팝업창 버튼은 다음과 같은 코드를 통해 출력할 수 있습니다. 사용하시는 게시판 모듈 스킨의 list.html 적당한 곳에 다음의 코드를 응용하여 기입해주세요.
$excel_enable = getModel('excel') && !ExcelModel::getExcelGrantMessage('document', 'dispExcelGenerateBoard', $module_info->module_srl);
$excel_url = getFullUrl('', 'module', 'excel', 'act', 'dispExcelGenerateBoard');
}
<a cond="$excel_enable" class="btn_img" href="#" onclick="popopen('{$excel_url}'.setQuery('target_url', current_url), 'excelGenerate'); return false;">엑셀 저장</a>
5. 미리보기
https://dev.aporia.blog/board_fKje46

댓글 88
네 거기보다는 한참 아래일 거예요. 최소 $this->setTemplatePath보다 아래 부분이요
excel.view.php 파일 134행쯤에 debugPrint($this->getTemplatePath()); 넣고 결과 확인부탁드립니다~
라이믹스 2.1.3 , 라이믹스 2.1.5 버전에서 오류가 발생해서 살펴보고 있습니다.
회원정보 출력시 제대로 출력을 못시켜서. (낮은 버전에선 잘 작동했습니다.)
excel.controller.php 파일 407라인정도에
if ( !is_array($item->{$val}) )
{
$item->{$val} = [$item->{$val}];
}
$data_list[$i][] = implode(', ', Context::replaceUserLang($item->{$val}));
이부분에서 오류가 나는듯 하네요.
$data_list[$i][] = implode(', ', Context::replaceUserLang($item->{$val})); 이부분이 현재 먹히질 않네요.
일단은
/*기본변수관련
if ( !is_array($item->{$val}) )
{
$data_list[$i][] = $item->{$val};
}else{
$itemValue = $item->{$val};
$data_list[$i][] = implode(', ', $itemValue);
}
/*확장변수관련
if ( !is_array($extra_vars->{$name}) )
{
$data_list[$i][] = $extra_vars->{$name};
}else{
$extra_varsValue = $extra_vars->{$name};
$data_list[$i][] = implode(', ', $extra_varsValue);
}
이런식으로 수정하니 출력이 되긴 하네요. 제대로 수정을 한건지 잘 모르겠네요.
확인 가능한대로 점검해보겠습니다.
감사합니다!
추석 연휴 잘 보내세요!!
추석 연휴 잘 보내셨습니까? ^^ 수정자료 올려주신것 확인을 해보았습니다. 정상적으로 잘 작동을 하네요. 감사합니다.
혹시 게시판 엑셀 업로드 모듈 제작 계획은 없으신지요?? 게시판에 엑셀파일을 업로드하면 db에 저장되어 게시판 목록에 뜨는 그런 소스요~~
그누보드는 소스가 있던데 라이믹스는 소스가 아무리 찾아봐도 없네요..ㅜ.ㅜ
업로드 기능은 아무래도 따로 제작 의뢰를 하시는 게 좋을 것 같습니다.
회원목록 및 게시판에서 엑셀로 다운로드 잘 동작합니다.
감사합니다. 윤삼님 짱~
두번 추천했다가 세번 추천 했습니다.
윤삼님 늘 수고 많으세요 ^^
라이믹스 2.1.9 디벨롭 버전, php 8.2.4 버전 입니다.
Warning: Undefined array key "HTTP_REFERER" in D:\xampp\htdocs\modules\excel\libs\xlsxwriter.downloader.php on line 3
라이믹스 2.1.9 디벨롭 버전으로 바뀐 후 부터 안되고 excel 0.0.4 버전은 오류가 나네요.
php버전 때문인가 했는데 그건 또 아닌가 보네요;;;
상황 재연을 할 수 있는 여건이 안 되는데ㅜㅜ 어쨌든 할 수 있는 한 검토는 좀 해보겠습니다.
덧. 회원 목록과 게시물 목록 모두 문제인 거죠?
감사합니다.^^
modules\excel\libs\xlsxwriter.downloader.php
이 파일의 2~6행을 삭제해보시겠어요?
삭제하면 오류는 없어지는데 그냥 빈 창만 뜹니다~~
처음 창에 "흠.. 이 페이지에 연결할 수 없습니다." 라는 메세지가 나오고 바로 빈 창이 뜹니다.
코어 업데이트에 대한 대응 이슈만은 아닌 것 같습니다.
$_SERVER['HTTP_REFERER'] 변수를 가져오지 못하는 것을 보면 별도로 헤더 설정이 되어 있다든가 알 수 없는 또 다른 문제가 있나 보네요.
에러 로그에도 별다른 기록이 안 남나요?
근데 위의 댓글에서처럼 HTTP_REFERER 확인하는 코드를 제거해도 오류가 있다는 걸 보면 뭔가 또 다른 문제가 있는 것 같아요. 🤔
isset으로 오류는 없앴는데. 다운로드 클릭시 "페이지를 연결할 수 없습니다." 라는 메세지가 나오네요~~
Edge, Chrome 둘 다 같은 반응입니다. 뭔가 내부 환경에 따른 문제일 수도 있겠네요.
그게 아니라면 에러 코드를 확보하고 전달해주셔서 단서를 잡아가야 할 듯해요.
자료 감사합니다.
현제 제공되는 기능에 추가로 게시물의 문서번호를 엑셀로 다운 받아서 엑셀에서 바로 게시물로 링크 이동을 하려고 시도 중 입니다.
현재 제공되는 게시판 번호 부분을 문서번호에 해당 되는 코드로 무식하게 시도 중인데요 ^^;; 혹시 간단한 부분이면 팁 좀 받을 수 있을까요?
excel.controller.php 파일의 602행을 다음과 같이 수정해보세요.
$data_list[$i][] = $no;
=>
$data_list[$i][] = '=HYPERLINK("'. getSiteUrl() . getUrl('', 'document_srl', $document->document_srl) .'", "'. $no .'")';
+ 덧. 아니면 제목 부분에 링크를 걸 수도 있습니다.
excel.controller.php 파일의 604행에 다음의 코드를 끼워넣어보세요.
그러면 엑셀 문서에서 게시물 제목 셀 클릭할 때 링크된 게시물 페이지로 이동하는 것 같습니다.
else if ( $val === 'title' )
{
$data_list[$i][] = '=HYPERLINK("'. getSiteUrl() . getUrl('', 'document_srl', $document->document_srl) .'", "'. $document->getTitle() .'")';
}
다시 한번 감사 말씀 드립니다.
공개해주신 엑셀 다운로드 모듈을 정상사용 중에 라이믹스 최신 버젼 ( 2.1.15 )에서 에러가 발생하는 문제로 질문글 ( https://xetown.com/questions/1825557 )을 올렸는데요.
한가지 궁금한 부분이 윤삼님의 미리보기 ( https://dev.aporia.blog/board_fKje46 ) 게시판에서는 엑셀 다운로드 기능이 정상 작동하는데 혹시 라이믹스 버젼이 최신 ( 2.1.15 ) 버젼이신가요?
제 사이트에서는 기능이 왜 작동하고 마트몬님 사이트에서는 왜 안 되는지는 저도 잘 모르겠어요.
다른 점이 있다면, php 8.0에 맞춰 자료를 일부 수정한 게 있는데 그게 주효했는지도 모르겠습니다.
보완 작업을 마무리해야 하는데 시간이 없다보니 조금 했다가 손 놓고 나중에 까먹어버려서 처음부터 다시 뜯어보고 이러기를 몇 개월째네요ㅠㅠ
코어를 수정하는 부분이긴 하지만 기진곰님의 조언대로 하니 문제가 해결되었습니다.
board.model.php 65줄에서
$module_srl을 intval($module_srl)로 바꿔 보세요.
엑셀 모듈에서 null을 넘기고 있나 봅니다.