0

ユーザーが「メンバーシッププラン」を持っているLiferayアプリケーションを持っています。ユーザーがログインしたら、メンバーシッププランの有効期限が切れているかどうかを確認し、警告メッセージを表示する必要があります。(メンバーシッププランはログイン機能とは無関係です。ユーザーはメンバーシッププランの有効期限が切れていてもログインできます)。

ログイン後のアクションを作成することを考えました。MemberPlanLocalServiceUtil.isPlanExpired()しかし、これや私が作成した他のフックからサービスビルダーメソッド()にアクセスすることはできません。

この問題を解決するには、どのようなアプローチを使用する必要がありますか?ここでextプラグインが必要ですか?または私は何か他のことをすることができますか?

4

3 に答える 3

0

私はその問題を回避することになった。(これは、解決策がすぐに必要とされた状況の1つであり、汚い解決策です)

これが私がしたことです

LoginActionセッション属性を設定するを追加しました。

public void run(HttpServletRequest request, HttpServletResponse response) throws ActionException {
        HttpSession session = request.getSession();
        session.setAttribute("LIFERAY_SHARED_checkMemberExpiry", true);
}

次に、ホームページのポートレットで、このセッション属性が設定されているかどうかを確認し、必要に応じて警告メッセージを表示します。

于 2012-10-31T13:06:02.367 に答える
0

これは、applicationContext.xmlを使用して実現でき、WEB-INFに1つのapplicationContext.xmlを作成し、その中にすべてのBean参照を配置します。Web.xmlおよびリスナークラスでコンテキストパラメータを設定します。

コンテキストパラメータ

<context-param>
    <param-name>portalContextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

リスナークラス

<listener>
    <listener-class>com.liferay.portal.kernel.spring.context.PortletContextLoaderListener</listener-class>
</listener>
<listener>
    <listener-class>com.liferay.portal.kernel.servlet.SerializableSessionAttributeListener</listener-class>
</listener>
<listener>
    <listener-class>com.liferay.portal.kernel.servlet.HookContextListener</listener-class>
</listener>

参考までに、この投稿を確認でき ますhttp://www.liferay.com/zh/web/raymond.auge/blog/-/blogs/custom-velocity-tools-and-liferay-6-0

于 2012-10-19T05:02:05.673 に答える
0

「ログイン後のアクション」をMemberPlan-Portlet(プラグイン)に追加します。そのためには、ポートレットにフックを追加する必要があります。ポートレットはを拡張する必要があります。詳細については、 http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/extending-and-overriding-%3Cem%3Eportal-properties-lt-e-login.events.post=com.mypackage.MyLoginPostActionを参照してください 。 1

于 2012-10-23T13:51:44.283 に答える