질문/조언팁/리소스 공유

마트몬님의 Tip을 이용하여 확장변수에 마감일짜가 있는 게시판내용을 위젯으로 출력해 보는 팁을 남깁니다.

마트몬님이랑 제질문에 댓글을 달아주신 고마우신 분들의 성의를 생각하여 저도 일조해 봅니다.

https://xetown.com/questions/1300284  

아래에 있는 코드가 정상적인 코드인지는 코알못이라 확실하지는 않지만 그래도 정상적으로 작동을 합니다.

 

먼저 위젯에 붙이고 싶은 위치를 찾아서 아래의 코드를 삽입하면 됩니다.

예로 타이틀 뒤에 붙이고 싶으면 content위젯의 경우 /widgets/content/skins/default/normal.html 파일에서

{$item->getTitle($widget_info->subject_cut_size)}를 찾아서 아래와 같이 수정하면 됩니다.

 

{@
    $now = date('Y-m-d');
    $date = $oDocument->getExtraEidValueHTML('end');
    $this_day = date_create($oDocument->getExtraEidValueHTML('end'));
    $date1 = date('Y-m-d',strtotime($this_day->format('Y-m-d').'-1 days'));
    $datetime = new DateTime($now);
    $date2 = $datetime->modify('+1 day')
}

<!--// 종료 확장변수 설정 -->
<[email protected](!$date)-->
<span>{$item->getTitle($widget_info->subject_cut_size)}</span>
<[email protected]($now > $date)-->
<span style="color:#a6a6a6; text-decoration:line-through !important;"><span style="margin-right:5px">[종료]</span>
<[email protected]($now == $date)--> {$item->getTitle($widget_info->subject_cut_size)}</span>
<span><span style="margin-right:5px">[오늘종료]</span> {$item->getTitle($widget_info->subject_cut_size)}</span>
<[email protected]($now < $date1)-->
<span><span style="margin-right:5px">[진행중]</span> {$item->getTitle($widget_info->subject_cut_size)}</span>
<[email protected]($date2)-->
<span><span style="margin-right:5px">[종료임박]</span> {$item->getTitle($widget_info->subject_cut_size)}</span>
<[email protected]>
<!--// 종료 확장변수 설정끝 -->

 

참고로 게시판의 확장변수는 먼저 적용할 게시판에

"설정" - "사용자정의" 에 사용자정의 이름을 end로 하고

"형식"을 "일자(연월일)"로 확장변수를 하나 만듭니다.

001.jpg

B. 게시판에 글 작성시 확장변수의 종료일을 지정합니다.

(종료일을 지정하지 않으면 종료 기능이 작동하지 않습니다) 

002.jpg

참고로 종료임박의 날짜는 숫자를 같이 변경하면 됩니다.(종료임박이 2일이면)

- 진행중 $date1 = date('Y-m-d',strtotime($this_day->format('Y-m-d').'-2 days'));

- 종료임박 $date2 = $datetime->modify('+2 day')

 

[참고로 제가 만든 위젯의 출력 모습입니다]

Screenshot 2019-12-11 at 13.42.31.jpg

 

그리고 이 코드를 응용하여 해당 게시물을 팝업으로 띄우고 해당 날짜에 팝업을 종료할 수 있는 

Mh Appoint PopUp 위젯도 만들어 봤습니다.


서버에 요청 중입니다. 잠시만 기다려 주십시오...