포럼
가상 사이트 어떻게 사용하고 계시나요?
2015.09.01 00:44
요즘 카페XE로 이것저것 시도해 보고 있는데요.
카페 설치하고 생성하면 카페 메뉴에 홈, 공지사항, 자유게시판 이렇게 3개가 기본으로 등록이 됩니다.
만약 카페 설정에서 초기 화면을 공지사항으로 지정하면, 카페 메뉴에서 '홈'을 클릭해도 $site_module_info 는 공지사항 모듈정보로만 출력됩니다.
즉, 가상 사이트 메뉴에서 여러 페이지를 생성하고, 페이지마다 서로 다른 레이아웃을 지정해도, 초기화면으로 설정된 모듈의 레이아웃으로만 출력됩니다.
카페관리 옵션에 '개별 까페에서 레이아웃 변경을 허용할 수 있다'고 되어 있는데, 모든 메뉴의 페이지가 하나의 레이아웃으로만 출력됩니다.
DB modules 테이블의 모듈정보에 보면 페이지마다 레이아웃 번호가 서로 다른데도 가상 사이트에서는 반영이 안되네요~
이부분은 개선되어져야할것 같은데... 다들 어떻게 사용하시는지????
댓글 14
-
이온디
2015.09.01 09:05
-
배워서남준다
2015.09.01 10:04
저도 그동안 잘 몰랐었는데 이것저것 시도해보니 좋은 기능들이 많아서 응용해서 사용하면 좋을것 같아서 연구중에 있어요.
사이트마다 독립된 메뉴를 사용할 수 있고, 회원관리며 여러가지가 참 맘에 드는데 가상사이트는 modules 테이블에 있는 레이아웃정보가 반영이 안되는것이 좀 아쉬움으로 남네요~
사이트 커뮤니티를 활성화하려고 카페 기능을 준비하고 있는데 고민이 됩니다.
혹시 에드온등을 이용한 다른 대안은 없을까요?
-
이온디
2015.09.01 10:09
개별 사이트에서 각각의 레이아웃이 적용 되었었는데 아마 버전 업하면서 관리가 안되어서 안되는게 아닌가 싶네요.
-
배워서남준다
2015.09.01 12:18
이 부분이 카페 모듈에서 제어되는것이 아니라, 코어에서 제어하게 되어 있는것 같아요.
카페 모듈에서 가상 사이트 생성하면, sites 테이블에 저장되고, 코어에서는 sites 테이블에 있는 index_module_srl 의 모듈번호를 modules 에서 가져와서 출력하는 거라서... 모듈 액션이 없고 단순히 사이트에 대한 모듈정보만 가져오는 거라서... 카페 모듈하고는 무관한것 같아요.
카페 모듈은 가상 페이지 생성할때, 페이지에 출력되는 위젯을 모듈 content 필드에 저장하고 코어에서는 그 모듈 content 를 출력하고요.
그래서 아무래도 코어에서 무언가 바뀐것 같은데...
아무래도 모듈 핸들러 부분이 아닌가 싶어서 그쪽을 열심히 보며 연구중이에요. ㅋㅋ
-
이온디
2015.09.01 12:49
카... 연구생 수하로 저도 좀 끼워주세요 ㅋ
-
배워서남준다
2015.09.01 13:53
헐~ 저보다 더 능력자이시면서~ ㅋ
제가 알고 하는것이 아니라 단순하게 하나 하나 열심히 보고 있어요. 필요하다보니...
가끔 헛다리 짚는 경우도 있는데... 매달려 있다보면 번뜩이는 어떤 아이디어가 떠오르게 되더군요~ ㅋㅋ
경험을 함께 나누면 좋을것 같아서 글 올려봤어요~
-
이온디
2015.09.01 14:26
매달리는 길 밖에 없나요 ㅠㅠ
-
내일을살다
2015.09.01 20:35
배워서남준다님의 홈페이지에 회원등록하니 확인메일이 안옵니다. 각기 3개를 해봤지만 동일현상입니다. 쌩뚱맞지만 여기는 보실것 같아 댓글남깁니다. 확인요청드려요. 이 댓글은 자삭하겠습니다. : )
-
배워서남준다
2015.09.01 21:16
승인했습니다. ^^
-
내일을살다
2015.09.01 21:44
앗 댓글이 있어 자삭이 안되는 군요 감사합니다.
-
내일을살다
2015.09.01 21:47
혹시 3가지 질문있는데 도움요청드립니다. 아래 2가지입니다. 오늘 올렸는데 아무도 모르시는듯 합니다. 그리고 혹시 쿡랫빗레이아웃 쓰는데 왼쪽 메뉴쪽으로 최근 글과 최근 댓글이 나오게 하려면 어떤 위젯이 가장 좋은지도 조언부탁드립니다. 초보라 흑흑 T-T
내일을살다 유튜브 모듈과 유튜브 위젯에서 카테고리이름과 아이디는 무엇을 말하는지 조언부탁요. 내일을살다 -
배워서남준다
2015.09.02 14:10
ModuleHandler.class.php 에서
페이지에 mid가 있는 경우 884번째 라인쯤에 $oModule->module_info->layout_srl 에 지정된 모듈(mid)의 레이아웃 번호가 들어가야 하는데, site_module_info 의 레이아웃 번호가 들어가서 생기는 문제인것 같습니다.
아마도 그 윗줄 $output = ModuleHandler::triggerCall('moduleHandler.proc', 'after', $oModule); 에서 모듈정보에 대한 처리가 되는것 같은데, 트리거에 대한 부분이 좀 어렵네요. 어디를 수정해야 할지 잘 모르겠습니다.
가상사이트인경우 현재 모듈(mid)의 레이아웃을 출력해야 하는데, 초기화면에 선택한 모듈의 레이아웃으로 고정되어 출력되는 문제입니다.
아무래도 코어의 문제인것 같습니다.
-
배워서남준다
2015.09.02 17:00
./ classes / module / ModuleHandler.class.php 에서 831번째 라인에 다음과 같은 구문 추가해 보았습니다.
$oModuleModel = getModel('module');
if($this->mid && $oModule->module_info->module_srl) $current_moduleinfo = $oModuleModel->getModuleInfoByModuleSrl($oModule->module_info->module_srl);
if($current_moduleinfo->layout_srl) $oModule->module_info->layout_srl = $current_moduleinfo->layout_srl;일단은 가상 사이트(까페)에서는 제가 원하는대로 페이지마다 다른 레이아웃으로 출력이 됩니다.
다른 모듈에선 어떨런지 모르겠지만, 현재로선 별다른 문제가 없어보입니다. ^^
혹시 어떤 문제가 발생하게 되면 댓글로 알려주셔서 함께 해결해 나아가면 좋겠습니다.
-
배워서남준다
2015.10.17 11:27
XE 1.8.12 로 업데이트되면서 ModuleHandler.class.php 가 업데이트되어서 수정해야하는 부분을 다시 알려드립니다.
function displayContent($oModule = NULL) { // If the module is not set or not an object, set error if(!$oModule || !is_object($oModule)) { $this->error = 'msg_module_is_not_exists'; $this->httpStatusCode = '404'; } // If connection to DB has a problem even though it's not install module, set error if($this->module != 'install' && isset($GLOBALS['__DB__']) && $GLOBALS['__DB__'][Context::getDBType()]->isConnected() == FALSE) { $this->error = 'msg_dbconnect_failed'; } // Call trigger after moduleHandler proc $output = ModuleHandler::triggerCall('moduleHandler.proc', 'after', $oModule); if(!$output->toBool()) { $this->error = $output->getMessage(); } // 여기부터...... $oModuleModel = getModel('module'); if($this->mid && $oModule->module_info->module_srl) $current_moduleinfo = $oModuleModel->getModuleInfoByModuleSrl($oModule->module_info->module_srl); if($current_moduleinfo->layout_srl) $oModule->module_info->layout_srl = $current_moduleinfo->layout_srl; // 여기까지......
이렇게 수정해야 카페XE에서 페이지마다 레이아웃을 다르게 지정 가능합니다.
추가로 카페XE 관리자 권한에 대한 오류 해결은 아래 게시글 참조하세요.
https://www.xpressengine.com/forum/23076570
저도 사이트 아래에 사이트로 두고 사용하려고 카페XE 기능을 사용했었습니다.
그런데 업데이트가 없고 꾸준히 유지보수나 사용자 바람이 제대로 반영되지 못하니
계속 운영해나가기가 어렵더군요 ㅠ