웹마스터 팁
'작성 글 보기' 리스트에서 특정 게시판 제외
2012.09.04 11:39
안녕하세요.
기본적으로 '작성 글 보기' 메뉴의 리스트에는 작성자가 작성한 모든 게시물이 보여지게 됩니다. 게시판 권한과 관계없이 모두 표시되기 때문에 관리자가 원하지 않는 게시판의 게시물을 제외하려면 모듈을 수정하거나 해야했습니다.
저도 처음에는 그렇게 사용했었는데, 애드온을 좀 만들다 보니 애드온으로 간단하게 처리할 수 있겠다는 생각이들어 만들어봤습니다.
<?php if(!defined('__ZBXE__') && !defined('__XE__')) exit(); /** * @file exclude_my_document.addon.php * @author showjean (showjean@naver.com http://showjean.com/xe) * @brief 특정 게시판 제외한 작성 글 보기 * **/ if($called_position == 'before_module_proc' && Context::getResponseMethod() == "HTML") { if($this->act == 'dispMemberOwnDocument'){ Context::set('__page', Context::get('page')); } }else if($called_position == 'after_module_proc' && Context::getResponseMethod() == "HTML") { if($this->act == 'dispMemberOwnDocument'){ $logged_info = Context::get('logged_info'); $member_srl = $logged_info->member_srl; $module_srl = Context::get('module_srl'); $oModuleModel = &getModel('module'); // option to get a list $args->page = Context::get('__page'); $args->list_count = 5; $args->page_count = 5; $args->search_target = 'member_srl'; $args->search_keyword = $member_srl; $args->sort_index = 'list_order'; $args->module_srl = Context::get('selected_module_srl'); $mids = str_replace(' ', '', $addon_info->exclude_mid); if(strLen($mids) > 0) { $module_srls = $oModuleModel->getModuleSrlByMid($mids); if(isset($module_srls)) $args->exclude_module_srl = $module_srls; } // get a list $oDocumentModel = &getModel('document'); $columnList = array('document_srl', 'title', 'member_srl', 'nick_name', 'readed_count', 'voted_count', 'blamed_count', 'regdate', 'ipaddress', 'status'); $result = $oDocumentModel->getDocumentList($args, false, true, $columnList); // Set values of document_model::getDocumentList() objects for a template Context::set('total_count', $result->total_count); Context::set('total_page', $result->total_page); Context::set('page', $result->page); Context::set('document_list', $result->data); Context::set('page_navigation', $result->page_navigation); Context::set('module_srl', $module_srl); $oMemberView = &getView('member'); $oMemberView->setTemplateFile('document_list'); } } ?>
위 내용으로 애드온을 만드셔도 되고, 아래의 링크에서 파일을 다운로드 하셔도 됩니다.
http://showjean.tistory.com/129
- 13. 01. 13 v0.4 - XE1.4버젼대에서 페이지 이동이 되지 않던 버그 수정
- 12. 11. 13. 현재 v0.3 으로 애드온 설정에 module_srl을 입력하는 것에서 mid를 입력하도록 변경였습니다.
댓글 13
-
카메론다이아몬드
2012.09.04 12:21
-
아직없는닉
2012.09.04 13:08
잘 사용하고 있습니다 감사합니다^^
-
글문
2012.09.05 15:36
이 에드온 1.4.5.10 버젼에서도 사용이 가능한가요. 대응 버젼이 1.5.3.1 로 되어 있어 여쭈어 봅니다.
-
showjean
2012.09.06 22:36
이전 버젼은 1.4.5.13에서 작동을 제대로 안하더라고요. 그래서 수정을 해서 다시 업로드 했습니다. .10에서도 작동할거에요 아마.
-
글문
2012.09.07 18:15
1.4.5.14 버젼을 사용하고 있습니다. 말씀하신데로
수정 파일을 다운 받아서 압축 풀고 애드온 폴더에 넣고
설치는 제대로 하였는데 실험을 해 보니 작성글 보기 리스트는
그대로 뜹니다.
회원들 글을 삭제하여 운영자만 접근이 가능한 게시판으로
이동 시켜놓은 삭제 폐기 게시물인데 회원의 아이디로 실험
해보니 게시판 권한 때문에 읽을 수는 없지만 리스트는 그대로
검색이 됩니다.
이 애드온의 설치 목적이 회원이 올린 글을 삭제하여 삭제
게시판이나 휴지통으로 운영자가 이동 시켜 놓은 작성글은
글을 작성한 회원의 검색 리스트에 나타나지 않게 하는 것이
목적이어야 하는데 현재로서는 그대로 검색 리스트에는
나타나고 있습니다. 제가 뭘 잘못 알고 있는지 확인 부탁드립니다.
-
showjean
2012.09.08 23:19
애드온 설정에 제외할 모듈의 module_srl을 적어 넣었는데 그런가요?
-
글문
2012.09.09 15:25
module_srl 숫자는 어디를 보아야 알 수 있는지요. 아무리 찾아 보아도 그 숫자를 알 수가 없네요. 에드온 작동할 게시판을 체크하여도 안되고 좀 답답합니다. module_srl 숫자를 확인할 수 있는 경로를 좀 알려 주십시요. 게시판 관리 항목 옆에 눈송이 항목에 마우스를 갖다 대니까 module_srl=232 라는 숫자가 하단에 나타나기는 하는데 module_srl 숫자를 적어 넣는 곳에 232라고 적어 넣어도 아무런 효과가 나타나지 않습니다. 제가 작성글 보기를 확인한 곳은 로그인 항목에 작성글 보기를 클릭하였을 때입니다.
-
showjean
2012.09.09 15:53
애드온 사용에 체크하셨나요? 특별한 문제는 없어 보이는데요.
-
글문
2012.09.09 16:34
module_srl 숫자 적는 곳에 해당 게시판 숫자 적어 넣고 애드온 체크하고 별짓을 다해도 작동이 되지 않습니다.
수고하시면서 만들어 주셨는데 다른 분들은 작동되는 모양인데 저희는 원인은 모르겠지만 작성글 보기 리스트가
나타나고 작동되지 않아서 이 애드온 사용은 포기하겠습니다. 감사합니다.
-
태쥐
2012.09.09 05:41
1.4.5.9에서 잘됩니다. 감사합니다 ^^
-
자동차
2012.09.17 22:51
감사합니다 찾던 것이예요~ 헌데 출석부를 제외할 수는 없을까요?
모듈은 (http://www.xpressengine.com/index.php?mid=download&package_srl=18325892) 이것 입니다.
아무리 찾아도 module_srl를 찾을 수 없더군요
-
showjean
2012.09.17 23:39
출석부의 게시판은 '작성글 보기' 페이지에 "모듈 찾기"를 이용해서 출석부 게시판을 선택하면 주소창에 'selected_module_srl' 이라는 변수로 값이 보입니다. 그걸 넣으시면 되요~
-
자동차
2012.09.20 13:24
이런방법이 있는지는 몰랐네요. 정말 감사합니다. 잘되요
항상 좋은 팁,프로그램들 감사합니다