웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[확장변수] 게시물을 새창에서 전체화면으로 보기
2009.10.09 23:12
소스를 수정하는 것이므로 반드시 백업해두시길 권합니다.
xe에 있는 프린트 함수를 이용해 확장변수로 새창열기를 선택하면
게시물을 레이아웃에 상관없이 새창에서 전체화면으로 볼 수 있도록 해봤습니다.
설명의 편의를 위해 여기서는 xe_official 게시판을 기준으로 설명드립니다.
1. 첨부한 new_win.zip을 다음의 경로로 풀어줍니다.
new_win.html => modules/document/tpl/new_win.html
new_win.css => modules/document/tpl/css/new_win.css
new_win.gif => modules/board/skins/xe_official/img/common/new_win.gif (※ 적용하려는 스킨의 이미지 폴더)
2. modules/document/document.view.php 에서 처음에 나오는 function dispDocumentPrint() 함수 다음에 아래 함수를 추가합니다.
function dispDocumentNewWin() {
// 목록 구현에 필요한 변수들을 가져온다
$document_srl = Context::get('document_srl');
// document 객체를 생성. 기본 데이터 구조의 경우 document모듈만 쓰면 만사 해결.. -_-;
$oDocumentModel = &getModel('document');
// 선택된 문서 표시를 위한 객체 생성
$oDocument = $oDocumentModel->getDocument($document_srl, $this->grant->manager);
if(!$oDocument->isExists()) return new Object(-1,'msg_invalid_request');
// 브라우저 타이틀 설정
Context::setBrowserTitle($oDocument->getTitleText());
Context::set('oDocument', $oDocument);
Context::set('layout','none');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('new_win');
}
3. modules/document/conf/module.xml 에서 18라인에 아래처럼 한 줄 추가합니다.
<actions>
<action name="dispDocumentPrint" type="view" standalone="true" />
<action name="dispDocumentNewWin" type="view" standalone="true" /> <=추가
4. 적용할 게시판에 확장변수 list_newwin을 설정합니다.
확장변수 이름 : list_newwin
입력항목 이름 : 새창열기
형식 : 라디오버튼
기본값 : 새창으로 엽니다
5. 스킨에 새창 링크를 추가합니다.
modules/board/skins/xe_official/_style.list.html 에서 아래 부분을 찾아
<!--@if($document->getTrackbackCount())-->
<a href="./{getUrl("document_srl', $document->document_srl)}#trackback"><span class="trackbackNum" title="Trackbacks">[{$document->getTrackbackCount()}]</span></a>
<!--@end-->
이 다음에 아래 부분을 추가합니다.
<!--@if($document->getExtraEidValue('list_newwin'))-->
<a href="./{getUrl("document_srl',$document->document_srl,'act','dispDocumentNewWin')}" target="_blank"><img src="./img/common/new_win.gif" align="absmiddle" title="새창으로 열기"></a>
<!--@end-->
다른 스킨에서도 getTrackbackCount 부분을 찾아 마찬가지로 수정하시면 됩니다.
댓글 2
-
제이디600
2010.01.14 21:31
좋은 팁을 꼭 쓰고 싶어 설명때로 열심히 따라했는데 마지막<!--@if($document->getTrackbackCount())--><a href="./{getUrl("document_srl'+ ', $document->document_srl)}#trackback"><span class="trackbackNum" title="Trackbacks">[{$document->getTrackbackCount()}]</span></a><!--@end-->이 다음에 아래 부분을 추가합니다.<!--@if($document->getExtraEidValue('+ 'list_newwin'))--><a href="./{getUrl("document_srl',$document->document_srl,'act','dispDocumentNewWin')}" target="_blank"><img src="./img/common/new_win.gif" align="absmiddle" title="새창으로 열기"></a><!--@end-->이 부분을 추가하면 게시판 목록이 열리지 않습니다.부탁드립니다.!!!!! -
물비늘
2011.03.05 16:34
getUrl("document_srl', =======> getUrl('document_srl', 고쳐보세요. 저도 위 소스 그래도 넣었다가 안나오길레
자세히 보니 이부분이 틀렸더군요.
<!--@if($document->getExtraEidValue('list_newwin'))--><a href="./{getUrl('document_srl',$document->document_srl,'act','+ 'dispDocumentNewWin')}" target="_blank"><img src="./img/common/new_win.gif" align="absmiddle" title="새창으로 열기"></a><!--@end-->