Search code examples
liferayliferay-6control-panel

How to add custom portlet in Control Panel section


How can I add a custom portlet to the Portal section of the Control Panel, as shown in the following figure:

enter image description here


Solution

  • Here is how to do it:

    1. In your portlet's liferay-portlet.xml (you can check the DTD of this xml for more information on other tags) include two tags in your <portlet> tag as shown:

      <portlet>
          <portlet-name>MyCustomPortlet</portlet-name>
          <icon>/mycustom.png</icon>
          <!--
              These are the two entries which are required for the portlet
              to appear in the control panel
          -->
          <!--
              Set the control-panel-entry-category value to "my", "content",
              "portal" or "server" to make this portlet available in the
              Control Panel under that category.
          -->
          <control-panel-entry-category>portal</control-panel-entry-category>
      
          <!--
             Set the control-panel-entry-weight value to a double number
             to control the position of the entry within its Control Panel
             category. Higher values mean that the entry will appear lower
             in the Control Panel menu.
          -->
          <control-panel-entry-weight>100</control-panel-entry-weight>
      
          <instanceable>false</instanceable>
          <header-portlet-css>/css/main.css</header-portlet-css>
          <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
          <css-class-wrapper>mycustomportlet-portlet</css-class-wrapper>
      </portlet>
      
    2. Also, if you don't want your portlet to appear in the Add Menu so that it is not put on other pages, then in your liferay-display.xml you can include:

      <display>
          <category name="category.hidden">
              <!--
                 Adding your portlet to the hidden category would not display
                 the portlet in the ADD Menu on the top-left-hand corner
              -->
              <portlet id="MyCustomPortlet"></portlet>
          </category>
      </display>
      
    3. Build and deploy your portlet and you are good to go.