tohokuaikiのチラシの裏

技術的ネタとか。

Confluenceのプラグインを作ってみるメモ(6) 管理メニューを増やしてみる

https://developer.atlassian.com/display/CONFDEV/Plugin+Tutorial+-+Adding+your+own+Menu+Items+to+Confluence

管理画面のパネルにいろいろメニューがありますが、あそこに項目を増やします。Javaのコードは一切なしで、atlassian-plugin.xml に記述するだけです。

atlassian-plugin.xmlのplugin-info要素以下に下記を書きます。

    <web-item key="spacelogo" name="Space Logo" section="system.content.add/space"  weight="40">
        <label key="webitemz.new.item" />
        <link>/spaces/configurespacelogo.action?key=$space.key</link>
        <icon height="16" width="16">
            <link>/images/icons/logo_add_16.gif</link>
        </icon>
        <condition class="com.atlassian.confluence.plugin.descriptor.web.conditions.NotPersonalSpaceCondition"/>
		<resource type="i18n" name="i18n" location="message" />
    </web-item>	

web-item

  • keyは内部的な命名です。同じweb-item要素内で多分ユニークでないとだめです。
  • nameは内部的な別名です。keyとnameはプラグイン管理のところで使います。
  • sectionはかなり大切で、どの管理メニューの部分に出すかを決めます。たとえばこの場合はsystem.content.add/spaceなのでページをAddするところに表示されます。こんな感じ 他にどこに出すかの指定はこのページを見て決めます。
  • weightは表示する順序です。他のメニューのweightをソースを見て決めるのでしょう。多分。

icon

は、なんとなくわかりますね。メニューの文言の前に表示されるアイコン画像です。どうもプリセットでいくつかあるみたいです。

condition

は、どの部分で出すかという制御です。この場合はパーソナルスペースの場合には出さないという指定かと。
これはWeb Item Plugin Module - Plugin Framework - Atlassian Developer Documentationを見ると詳しく分類が分かるみたい

label

かなり大事なもの。表示させる文言。国際化対応のため、keyを設定して文言自体は別リソースに表記する。・・・・らしい。それが、直下のresource要素。この場合、
src/main/resources/message.properties
にカタログを書く。その表記は

webitemz.new.item=New Option ITOH ADD!

というようにkey=valueの形式。