How to add a custom portlet to the Portal section of the control panel, as shown in the following figure:
Portal
Here's how to do it:
In your liferay-portlet.xml (you can check the DTD of this xml for more information about other tags). two tags in your <portlet> tag as shown:
liferay-portlet.xml
<portlet>
<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>
In addition, if you do not want your portlet to appear in the Add Menu , so that it does not fit on other pages, then in liferay-display.xml you can include:
Add Menu
liferay-display.xml
<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>
Build and deploy your portlet and you will go well.
Besides the answer of Prakash K, ajaxable and instanciable must be false.