如何将只能放在控制面板中的portlet加入到普通的站点页面中

1.本文以”我的账户” portlet为例解说。

2.设置页面为面板类型(这步可以不做,本文作者我是因为要实现个类似控制面板样的东西,所以这么做).

3.站点的控制面板中 公开页面/高级选项 合并主页站点的公共页面(这步可以不做,本文作者我是因为要实现个类似控制面板样的东西,所以这么做).

4.在ext项目中 liferay-portlet-ext.xml中加入

 

<portlet>
        <portlet-name>2</portlet-name>
        <icon>/html/icons/my_account.png</icon>
        <struts-path>my_account</struts-path>
        <portlet-url-class>com.liferay.portal.struts.StrutsActionPortletURL</portlet-url-class>
        <control-panel-entry-category>my</control-panel-entry-category>
        <control-panel-entry-weight>1.0</control-panel-entry-weight>
        <control-panel-entry-class>com.liferay.portlet.myaccount.MyAccountControlPanelEntry</control-panel-entry-class>
        <preferences-owned-by-group>true</preferences-owned-by-group>
        <use-default-template>false</use-default-template>
        <private-request-attributes>false</private-request-attributes>
        <private-session-attributes>false</private-session-attributes>
        <render-weight>50</render-weight>
        <header-portlet-css>/html/portlet/users_admin/css/main.css</header-portlet-css>
        <footer-portlet-javascript>/html/portlet/users_admin/js/main.js</footer-portlet-javascript>
        <css-class-wrapper>portlet-users-admin</css-class-wrapper>
        <add-default-resource>true</add-default-resource>
        <system>false</system>
    </portlet>

主要是为了将system标签的值设置为false否则无法在控制面板以外的画面中使用

5.在ext项目中的docroot/WEB-INF/ext-impl/src下 加入文件夹 resource-actions 将源码中的portal.xml粘贴过来

修改
<portlet-resource>
        <portlet-name>2</portlet-name>
        <permissions>
            <supports>
                <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                <action-key>CONFIGURATION</action-key>
                <action-key>VIEW</action-key>
            </supports>
            <site-member-defaults />
            <guest-defaults />
            <guest-unsupported>
                <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                <action-key>CONFIGURATION</action-key>
                <action-key>VIEW</action-key>
            </guest-unsupported>
        </permissions>
    </portlet-resource>

 

<portlet-resource>
        <portlet-name>2</portlet-name>
        <permissions>
            <supports>
                <action-key>ADD_TO_PAGE</action-key>
                <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                <action-key>CONFIGURATION</action-key>
                <action-key>VIEW</action-key>
            </supports>
            <site-member-defaults />
            <guest-defaults />
            <guest-unsupported>
                <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                <action-key>CONFIGURATION</action-key>
                <action-key>VIEW</action-key>
            </guest-unsupported>
        </permissions>
    </portlet-resource>

这部是为了让这个portlet可以添加到画面中去。

6.添加到画面,问题解决。