XETOWN

호수 공원

XE 사용에 대한 여러가지 정보들을 공유할 수 있습니다.
조회 수 122 추천 수 2 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

0. 문서 아카이브 리스트를 만듭니다. 연도별, 월별, 일별로 몇 개의 문서가 있는지 count도 됩니다. 라이믹스에서 테스트했습니다.

 

 

1. 준비물:

- /modules/document/queries 폴더의

- getYearlyArchivedList.xml

- getMonthlyArchivedList.xml 

- getDailyArchivedList.xml

- /modules/document/queries 폴더의

- document.model.php

- /modules/board 폴더의

- board.class.php 

 

 

2. 단, getYearlyArchivedList.xml은 없으므로 다음과 같은 소스로 새로 만들어줘야 합니다.

<query id="getYearlyArchivedList" action="select">
    <tables>
        <table name="documents" />
    </tables>
    <columns>
        <column name="substr(regdate,1,4)" alias="year" />
        <column name="count(*)" alias="count" />
    </columns>
    <conditions>
        <condition operation="in" column="module_srl" var="module_srl" filter="number" />
        <condition operation="like_prefix" column="regdate" var="regdate" pipe="and" />
    </conditions>
    <groups>
        <group column="substr(regdate,1,4)" />
    </groups>
</query>

 

 

3. getDailyArchivedList.xml도 형식에 알맞게 수정해주면 좋습니다.

- 1행의 <query id="getMonthlyArchivedList" action="select">을 다음과 같이 수정

<query id="getDailyArchivedList" action="select">

- 6행의 <column name="substr(regdate,1,8)" alias="month" />을 다음과 같이 수정

<column name="substr(regdate,1,8)" alias="day" />

 

 

4. documet.model.php의 847행쯤(getDailyArchivedList 함수 다음 부분)에 다음을 삽입합니다.

/**
 * Bringing a year on the status of the yaerly posts
 * @param object $obj
 * @return object
 */
function getYearlyArchivedList($obj)
{
    if($obj->mid)
    {
        $oModuleModel = getModel('module');
        $obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
        unset($obj->mid);
    }
    // Module_srl passed the array may be a check whether the array
    $args = new stdClass;
    if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl);
    else $args->module_srl = $obj->module_srl;
    $args->regdate = $obj->regdate;

    $output = executeQuery('document.getYearlyArchivedList', $args);
    if(!$output->toBool()) return $output;

    if(!is_array($output->data)) $output->data = array($output->data);

    return $output;
}

 

 

5. board.class.php의 12행을 다음으로 교체합니다.

var $search_option = array('title_content','title','content','comment','user_name','nick_name','user_id','tag','regdate');

즉, array에 regdate를 추가해준 것이죠.

 

 

6. 이로써 모든 사전 준비가 끝났습니다.

 

 

7. 레이아웃 스킨이나 게시판 스킨 등의 적절한 위치에 다음의 소스를 삽입하고, 각자 취향에 따라 css나 js를 활용해서 스타일링하시면 됩니다.

{@
    $args = new stdClass;
    $args->module_srl = $module_info->module_srl;
    $oDocumentModel = &getModel('document');
    $year = $oDocumentModel->getYearlyArchivedList($args);
    $month = $oDocumentModel->getMonthlyArchivedList($args);
    $day = $oDocumentModel->getDailyArchivedList($args);
}
<div loop="array_reverse($year->data)=>$key1,$val1" class="archive-yearly">
    <a href="{getUrl('','mid',$mid,'search_target','regdate','search_keyword',$val1->year)}">
        {zdate($val1->year,'Y')}({number_format($val1->count)})
    </a>
    <div loop="array_reverse($month->data)=>$key2,$val2" cond="zdate($val2->month,'Y')==zdate($val1->year,'Y')" class="archive-monthly">
        <a href="{getUrl('','mid',$mid,'search_target','regdate','search_keyword',$val2->month)}">
            {zdate($val2->month,'F')}({number_format($val2->count)})
        </a>
        <div loop="array_reverse($day->data)=>$key3,$val3" cond="zdate($val3->day,'Ym')==zdate($val2->month,'Ym')" class="archive-daily">
            <a href="{getUrl('','mid',$mid,'search_target','regdate','search_keyword',$val3->day)}">
                {zdate($val3->day,'jS')}({number_format($val3->count)})
            </a>
        </div>
    </div>
</div>

- $args->module_srl 정의 부분에서 $module_info->module_srl은 현재 로딩된 모듈의 srl을 가져오는 것이므로, 다른 모듈을 불러오거나 포함하고 싶을 땐 본인 취향에 맞춰 응용하면 됩니다. 예: '143, 145' 로 하면 143번과 145번 모듈에서 문서를 가져 옵니다.

 

 

8. 스크린샷 : jQuery의 toggleClass와 slideToggle을 활용한 접기/펴기

01.jpg

 

02.jpg

 

00.jpg

 

 

- 이상입니다.

  • profile
    구름이 2016.08.28 21:41:53
    수고하셨습니다 ^^
  • profile
    윤삼 2016.08.28 22:22:24
    감사합니다~ ^^/
  • profile
    MIST 2016.08.29 10:30:35
    역시 산삼다음 고삼다음 윤삼님ㅎㅎㅎ
  • profile
    윤삼 2016.08.29 15:18:05
    아아, 아무리 생각해도 대적할 만한 드립이 떠오르질 않아요ㅠㅠㅋㅋㅋ
  • profile
    Sunup 2016.08.31 21:32:03
    와 해당 아카이브 리스트에서 태그들을 뽑아서 정리하면 좋은 데이터로 활용이 가능하겠네요~!
  • profile
    윤삼 2016.08.31 22:05:50
    그렇게 하면 확실히 멋들어지겠는데요. 기간별 인기 태그라든가, 핫이슈라든가 등등등
  • profile
    Sunup 2016.09.01 12:17:42
    사이트 운영에 엄청난 도움이 될거 같네요 ㅎㅎ

List of Articles
번호 분류 제목 글쓴이 날짜
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 21 람보 2015.12.31
화제의 글 자료공유 시간표 위젯 1.1.2배포합니다. 15 file 착한악마 2017.01.10
화제의 글 자료공유 TinyMCE Plugin - imgur uploder 1 file prologos 2017.01.20
4177 질문/답변 팝업창 띄우는 건대 1.8.29대에선 뭔가 잘안되네요 ! file 이성민 2017.01.13
4176 질문/답변 애드센스를달면 속도가 저하되나요? 2 낙타 2017.01.13
4175 질문/답변 게시판 스킨에서 스팸필터 등록하고 나서 새로고침하는 과정이 꼭 필요한 건가요? 기븐 2017.01.13
4174 질문/답변 XE 모바일도 호환되는 이미지 수정 컴포넌트가 있나요? 4 가시밭 2017.01.13
4173 질문/답변 혹시 채팅방을 열고닫기하는게 어떻게 하는지 자세히 아시는분있나요? 3 라그릿 2017.01.13
4172 질문/답변 DB 에서 태그 일괄 변경 2 가시밭 2017.01.13
4171 질문/답변 로그인한 회원이 해당 문서에 추천을 했는지 비추천을 했는지 알려주려고 합니다. 1 웹지기 2017.01.13
4170 질문/답변 활동을 잘안해서...상황파악좀 할려고.ㅎㅎ 4 똑띠 2017.01.13
4169 질문/답변 회원정보 보기 짧은 주소로 변경 및... 3 라뜨에 2017.01.13
4168 질문/답변 라이믹스는 TriggerModuleHandler 사용방법이 다른가요? 6 루딩 2017.01.13
4167 질문/답변 글쓴이(닉네임) 색을 바꾸고 싶어요. 3 현님v 2017.01.13
4166 질문/답변 모듈 제작시 타 모듈명으로 액션을 만들 수 있나요? + standalone 13 투정 2017.01.12
4165 질문/답변 사이트 로딩관련하여.,. 3 떡보의하루 2017.01.12
4164 질문/답변 댓글 읽음, 읽지 않음 표시 애드온 모바일 화면 문제 16 file 라그릿 2017.01.12
4163 질문/답변 라이믹스 관리자 페이지에 있는 알림 설정은 무엇인가요? 3 우리아기 2017.01.12
4162 질문/답변 크로미움 56버전부터 사이트가 약간 이상하게 보이는데 이유를 모르겠네요 4 기븐 2017.01.12
4161 질문/답변 JS 코드 충돌 부분관련 7 file 떡보의하루 2017.01.12
4160 질문/답변 무얼만졌는진 모르겠습니다만 게시판 작동이 제대로 안됩니다.. 7 file 떡보의하루 2017.01.12
4159 질문/답변 비밀글 수와 상관없이 목록수에 맞게 나오게 할수 없을까요??? 착한악마 2017.01.12
4158 질문/답변 썸네일 이미지는 어떻게 압축하나요? 라그릿 2017.01.12
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 213 Next
/ 213
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...