웹마스터 팁
게시판 접속시에 첫(제일 최근) 게시물이 보여지게 하기
2014.03.08 19:25
묻고 답하기에 있길래 한번 해봤습니다. 원래 컴퓨터 하면 안되는데 아무도 집에 없어서...
가능은 한데 이 소스가 괜찮은건지는 저도 잘 모르겠습니다.
이쪽 저쪽에서 본걸 응용해서 만든거라서 허접할수도 있고요.
쓸데없는 부분이 있을 수도 있습니다.
{@$z=0} <!--@foreach($document_list as $no => $document)--> {@ $doc_srl[$z] = $document->document_srl} {@$z++;} <!--@end--> <!--@if($oDocument->isExists())--> <!--@else--> <!--@foreach($document_list as $no => $oDocument)--> <!--@if($oDocument->document_srl==$doc_srl[$z=0])--> <!--#include("./view_document.html")--> <!--@end--> <!--@end--> <!--@end-->
이걸 list.html 목록시작 위쪽에 넣으세요. ㅇㅅㅇ;
<!--@if($oDocument->isExists() && $module_info->default_style != 'blog')--> <!--#include("./view_document.html")--> <!--@end-->
이거 아래쪽에...
list.html 이 스킨마다 달라 그 부분은 제가 자세히 설명드릴 수는 없네요.
소스만 설명하자면...
리스트 루프를 먼저 돌려보고 각 루프마다 z값이 더해지게 해서
z=0인 제일 처음의 document_srl ( $doc_srl[$z=0] 이 바로 그 앱니다.)을 가져올 수 있게 만든 후에,
본문보기일때는 보이지 않고,
본문 보기 아닐 때에 oDoument_srl 값이 제일 최근의 document_srl과 일치하면
view_document.html을 넣으라는...그런 말입니다.
제가 컴터랑 안친해서 제대로 설명하고 있는지는 모르겠네요. ㅎㅎ
어쨌든 실험한 바로는 잘 되는 것 같습니다. 이 소스를 넣은 자리에 가장 첫 본문내용이 뜹니다.
이전글, 다음글을 넣는 @시니시즘님의 코드를 응용했어요.
- [2018/07/13] 묻고답하기 첨부한 파일 링크 텍스트로 추출하는 방법은 무엇인가요? *2
- [2018/02/25] 묻고답하기 게시판 수정 *2
- [2017/07/18] 묻고답하기 게시판 공개 권한 질문 드려요 도와 주세요ㅠㅠ *2
- [2017/05/03] 묻고답하기 youtube 영상목록을 불러와서 게시판에 뿌려주는 모듈이나 스킨이 있을까요? *1
- [2017/01/06] 묻고답하기 게시판 첨부 파일 다운로드 *1
댓글 16
-
銀童
2014.03.08 19:35
-
foret
2014.03.08 20:05
앗 훨씬 간단하네요. 멋져요. ㅎㅎ!
<!--@if($oDocument->isExists())-->
<!--@else-->
<!--@if($oDocument = current($document_list))-->
<!--#include("./view_document.html")-->
<!--@end-->
<!--@end-->이렇게 쓰는건가요?!! +_+ 아닌가요?!
-
銀童
2014.03.08 20:08
-
foret
2014.03.08 20:22
제가 심심할때마다 팁게를 읽어보는데 새로운 걸 알게 되어 기쁘네요. ㅋㅋ 감사합니다. ㅎㅎ
-
Paul
2014.03.08 23:33
문답게시판에 위의 질문을 했던 사람입니다. ^^ 팁에 올려 주셔서 감사드립니다. 저는 현재 XE 1.7.4 와 보드 스킨은 XE 2007 을 사용중에 있는데요. 아래와 같이 적용했는데 작동이 제대로 안되네요... 흠~~~ 뭐가 문제일까요?
<!--// display the document if exists --> <!--@if($oDocument->isExists() && $module_info->default_style != 'blog')--> <div class="viewDocument"> <!--#include("./view_document.html")--> </div> <!--@end--> {@$z=0} <!--@foreach($document_list as $no => $document)--> {@ $doc_srl[$z] = $document->document_srl} {@$z++;} <!--@end--> <!--@if($oDocument->isExists())--> <!--@else--> {@ $oDocument = current($document_list);} <!--#include("./view_document.html")--> <!--@end-->
-
Paul
2014.03.08 23:37
오히려 foret님이 처음에 알려주신대로 아래와 같이 했더니 드디어 첫게시물이 오픈은 되는데(^^)... 그런데 신기하게도 본문 내용은 보이지를 않네요. ^^;; 왜 본문 내용이 나오지를 않는걸까요??
<!--// display the document if exists --> <!--@if($oDocument->isExists() && $module_info->default_style != 'blog')--> <div class="viewDocument"> <!--#include("./view_document.html")--> </div> <!--@end--> {@$z=0} <!--@foreach($document_list as $no => $document)--> {@ $doc_srl[$z] = $document->document_srl} {@$z++;} <!--@end--> <!--@if($oDocument->isExists())--> <!--@else--> <!--@foreach($document_list as $no => $oDocument)--> <!--@if($oDocument->document_srl==$doc_srl[$z=0])--> <!--#include("./view_document.html")--> <!--@end--> <!--@end--> <!--@end-->
-
Paul
2014.03.08 23:56
참고로, 위와 같이 소스를 적용한 후에 해당 게시판에 접속하면, 첫 게시물은 오픈되는데 본문 내용은 나오지 않으면서 주소창에는 xyz.com/index.php?mid=xyz 만 나옵니다. 직접 첫 게시물을 클릭하여야 xyz.com/index.php?mid=xyz&document_srl=12345 이렇게 해당 게시물의 넘버가 뒤에 나오면서 제대로 본문 내용이 보여지네요.
-
foret
2014.03.09 01:51
전 잘 되는데 이상하네요. ㅠ_ㅠ;; 파일 첨부해봅니다.
-
Paul
2014.03.09 03:57
늦은 시간까지 도와주셔서 감사드립니다. ㅠ 엄... 도와주신대로 잘 됐으면 좋았을텐데... 첨부하여 주신 파일을 그대로 덮어 씌웠는데도 이전과 같이 첫 게시물은 오픈되지만 본문의 내용은 보이지가 않네요. 신기한건 수정 버튼을 클릭하면 본문 내용이 나옵니다(삭제 버튼을 눌러도 게시물 삭제하겠느냐고 잘 나오구요). ^^;;
특이한 점이 있다면 첫 게시물이 오픈된 상태에서, 글 제목과 글 작성시간은 나오는데, 본문 내용과 조회수, 글쓴이의 아이피 주소와 같은 것들은 보이지 않습니다. 반면 댓글들은 다 잘보입니다.
게시물을 클릭해줘야 조회수, 글쓴이의 아이피 주소 등이 다 보입니다. 물론 본문 내용도 보이구요. 거참 신기하네요. ^^
혹시 몰라서 모바일(Default 스킨)에도 적용을 시켜봤는데, 역시 모바일에서도 첫 게시물은 오픈되는데 본문의 내용은 안 보이더라구요. PC버전과 마찬가지로 댓글들만 잘 나옵니다. 흠... 왜 저만 안될까요? 저만 안되는 이런 상황은 참 당황스럽습니다. ^^;; (늦은 시각까지 도와주셔서 정말 감사드립니다!!! ^^)
-
foret
2014.03.09 21:03
저도 이유를 모르겠네요. 저는 다 잘나오는 관계로.. ㅎㅎ
변수를 바꿔보셔도 (아래와 같이) 안된다면 애드온이라거나.. 뭐 그런데서 차이가 있는거겠죠! ㅎㅎ
{@$zt=0} <!--@foreach($document_list as $no => $document)--> {@ $doct_srl[$zt] = $document->document_srl} {@$zt++;} <!--@end--> <!--@if($oDocument->isExists())--> <!--@else--> <!--@foreach($document_list as $no => $oDocument)--> <!--@if($oDocument->document_srl==$doct_srl[$zt=0])--> <div class="viewDocument"> <!--#include("./view_document.html")--> </div> <!--@end--> <!--@end--> <!--@end-->
-
Paul
2014.03.10 02:57
그러게요. 저도 혹시 애드온 때문인가해서 (특별히 사용하는 애드온은 없지만) 다 꺼봤는데도 안되네요. 알려주신대로 변수를 바꿔봤는데도 안되는거보면 저는 안되나봅니다. ㅠ
신경 써주셔서 답변해주신것 정말 감사드립니다!!! ^^ -
시니시즘
2014.03.20 09:01
제 소스를 응용하셨다니 기쁘네요^^; 궁금하신거 있으시면 더 물어보시길.
-
스타박스
2014.03.20 10:47
좋은정보 감사합니다
-
oksky
2014.03.30 12:30
<block cond="!$document_srl && !$act" > // 이 조건들은, 원하시는 용도에 따라서 적당히 조절해야 합니다.
{@
$new_document_srl = reset($document_list)->document_srl; // 이렇게 리스트 최초의 글을 설정할 수도 있고,
$new_document_srl = 788; // 이렇게 특정 글을 설정할 수도 있습니다.
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($new_document_srl);
Context::set('document_srl',$new_document_srl)
}
</block>
위 코드 앞뒤에 적당한 조건을 붙여서 게시판 상단에 넣으면 작동합니다.
단, 조건을 잘 맞추지 않을 경우, 일반목록을 보여줄 수 없거나,, 원하지 않은 경우에 작동하는 등의 부작용이 생길 수 있습니다.
응용하면,
- 첫번째 글을 보여준다
- 첫번째 글이 속한 카테고리를 보여준다
- 첫번째 글을 보여주고, 그 글이 속한 카테고리를 보여준다.
- 특정 글을 보여준다
- 특정 글이 속한 카테고리를 보여준다
- 특정 글을 보여주고, 그 글이 속한 카테고리를 보여준다.
- 게시판 쓰기 화면을 보여준다.
- 첫번째 글이 속한 카테고리의 게시판 쓰기 화면을 보여준다.
- 특정 글이 속한 카테고리의 게시판 쓰기 화면을 보여준다.
.. 등등으로 응용할 수 있습니다.
..이래저래 귀찮을 경우
원하시는 적당한 상단 영역에
{@ header('location:'.getUrl(-- document_srl, category_srl, act 등을 적절하게~ --))}
을 집어넣어서 아주 그냥 무식하게 보내는 방법도 있습니다. (제가 사용중이죠.ㅠ)
-
autolevel
2014.07.09 13:30
본문이 표시 안되는 현상은 찾다보니
http://www.xpressengine.com/forum/20280625 이글에서 나온 현상과 같네요.
목록설정에서 요약 추가하면 된다고 하네요.
oksky 님의 팁까지 종합해서
<block cond="!$document_srl" >
{@
$new_document_srl = reset($document_list)->document_srl;
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($new_document_srl);
Context::set('document_srl',$new_document_srl)
}
</block>
내용표시 -> 게시판설정 - 목록설정 - 요약 추가
이렇게 해주면 잘 작동하네요.
-
Paul
2014.07.10 00:14
@oksky, @autolevel 님 감사드립니다. 그동안 저는 안된다고 생각을 해서 그냥 javascript 로 첫 게시물 값을 구해 자동 클릭하게 해서 사용해왔었는데. 말씀해주신대로 해보니 잘 동작합니다. 그나저나 본문이 표시 안되는 이유가 요약 추가였다니... ㅠ
이렇게 깔끔하게 해결 방법 알려주셔서 정말 감사합니다!!!
제목 | 글쓴이 | 날짜 |
---|---|---|
빈공간 더블 클릭시 상하 이동 스크립트 | socialskyo | 2014.07.23 |
이메일인증 Error 한방정리 참고해보세요. [4] | 애드바이러스 | 2014.02.12 |
로그인 안하면 코멘트 볼 수 없게 스킨 수정하는 법 [3] | W.O | 2014.03.23 |
회원 비밀번호 수정시 자동으로 로그아웃 되게 하는 방법 [4] | sejin7940 | 2014.07.18 |
특정 확장변수를 글 추천자에게만 보이게 하기 [10] | 뮤랑이 | 2010.01.11 |
관리자만 글 등록이 되고, 일반 유저는 글 등록버튼을 누르면 아무런 반응이 없을 때. [1] | whitemind | 2013.11.07 |
모바일(또는 textarea형)에서 댓글 수정시 줄바꿈 유지되도록 수정 [2] | sejin7940 | 2014.07.17 |
댓글등록에 단축키 사용하기 | ひりゅう. | 2014.07.15 |
이전글, 다음글 코어 건드리지 않고 사용하기 (모듈X, 애드온X) (업데이트) [8] | 시니시즘 | 2013.01.26 |
SocialXE 관련 사용팁 적용 수정 파일 [3] | 휘즈 | 2014.07.13 |
외부 페이지에서 회원 extra_vars 변수 가져오기 [1] | Happyphp | 2014.07.09 |
특정게시판, 비밀글로 작성하기 (대암지기님 팁 보완) [9] | 된장맛껌 | 2010.03.17 |
게시판 접속시에 첫(제일 최근) 게시물이 보여지게 하기 [16] | foret | 2014.03.08 |
편리한 안드로이드 크로스 브라우징 테스트 Tip - 안드로이드 가상화 | AJKJ | 2014.07.09 |
htm과 html의 차이는 ? | 디테일 | 2014.06.17 |
1.7 버전 사이트 메뉴 편집 사용법 [4] | 휘즈 | 2013.07.27 |
MRTG에서 네트워크및 CPU, 메모리점유율을 기록하기 | ひりゅう. | 2014.07.05 |
XE 왕초보를 위한 글 [13] | 휘즈 | 2009.08.06 |
php 세션을 memcache에 저장할 때 주의할 점 | XE러버 | 2014.07.04 |
클리어픽스(clearfix)의 개념과 방법 | 시니시즘 | 2014.07.04 |
체크하는 부분에 없으면
$oDocument = current($document_list);
로 한줄로 해결 가능합니다.