2017-05-15 12 views
0

정기적으로 합류를 위해 사용자 매크로를 작성하는 사람에게는 이것이 간단한 문제가되기를 바랍니다.올해의 주간 Confluence 사용자 매크로

나는 단지 그 해의 주를 페이지에 표시하고 싶습니다. 나는 보통 메타 데이터와 사용자 매크로를 작성 포함 한 지금의 현재 날짜를 표시하려면 다음

## @noparams 
<div>$content.currentDate</div> 

합류의 버전은 5.9.8이고 나는 시도하고있는 방법을 찾기 위해 documentation을 검색 한 'currentDate'속성에 대한 설명이 있지만 currentDate 필드가 ContentEntityObject ($ content)에도 존재한다는 문서는 없습니다. 나는 자바를 믿을 때 '$ content.currentDate.get (3)'을 사용하려고 노력했지만, 그 해를 반환하지만 Confluence는 전체 블록을 일반 텍스트로 렌더링합니다.

답변

0

Java 객체에 액세스 할 때 속도가 까다로워 질 수 있습니다. 이론적으로

, 당신이 액세스 SimpleDateFormat, 당신은 같은 것을 할 것입니다 수 있다면 ...

@noparams 
#set($dow = new SimpleDateFormat("EEEE").format($content.currentDate())) 
<div>$dow</div> 

그러나 불행하게도, SimpleDateFormat 쉽게 속도에서 액세스 할 수 없습니다. 클라이언트 측 렌더링이 허용되는 경우

, 그것은 훨씬 쉽게 - 단순히 롤 자신의 자바 스크립트 :

@noparams 
<div class="dow"></div> 
<script> 
    (function() { 
     var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 
     Date.prototype.getDayName = function() { 
      return days[ this.getDay() ]; 
     }; 
    })(); 

    AJS.toInit(function ($) { 
    $('.dow').text((new Date()).getDayName()); 
    }); 
</script> 
+0

Confluence에는 Velocity 툴이 포함되어 있습니까 (예 : DateTool? –

+0

매우 유용한 답변입니다. 매크로 환경에서 내가 moment.js에 액세스 할 수없는 것 같아서 수치 스럽습니다. 저는 [여기] (http://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php)와 결합 된 답변을 사용하여 필요한 것. 그래도 몇 가지 문제가있었습니다. 1. [여기] (https://confluence.atlassian.com/confkb/how-to-use-javascript-in-confluence-313458839.html)에 설명 된대로 HTTP를 활성화해야했습니다.) 2. 나는 텍스트를 쓰는 것이 페이지의 모든 텍스트를 겹쳐 쓰는 것처럼 보였으므로 페이지 하단에 매크로를 넣어야했습니다. – sebpinski

+0

라고 말하면 그냥 주 ** ** week * * ** 요일 **. – dvdsmpsn

0

건물 @dvdsmpsn 내 매크로를 제공 한 것에는 현재 다음과 같습니다

## @noparams 

<div id='weeknumber'></div> 

<script> 
function getWeekNumber(d) { 
    d.setHours(0,0,0,0); 
    d.setDate(d.getDate() + 4 - (d.getDay()||7)); 
    var yearStart = new Date(d.getFullYear(),0,1); 
    var weekNo = Math.ceil((((d - yearStart)/86400000) + 1)/7); 
    return weekNo; 
} 

AJS.toInit(function ($) { 
    $('#weeknumber').text(getWeekNumber(new Date())); 
    }); 
</script> 

몇 가지 불만이 있습니다 :

  1. 순간은 이미 합류점에로드되어 있지만 액세스 할 수 없습니다. 매크로 환경에서 가져온 것
  2. 자바 매크로를 사용하려면 HTML 매크로 환경을 사용하도록 설정해야했습니다.
  3. 매크로는 (jQuery 메서드 실행 후) 읽기 전용 형식으로 볼 때 편집기에 작성된 모든 텍스트를 덮어 쓰는 것처럼 보였기 때문에 합류 페이지의 기본 부분에서 매크로를 사용해야했습니다.