問題タブ [liferay-6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
plugins - Eclipse Liferay IDE で Liferay フックを作成する際の問題 - 空のプロジェクトしか取得しない
Liferay ネイティブ ポートレットへのフックを作成するために、Eclipse Liferay IDE を使用しています。デフォルトのインストールに付属するポートレットを意味します。ブログ、コンテンツ管理など。
次のような手順を実行しました。
- 選択する
new Liferay Project
- プロジェクト名を入力
MyHook
- 設定を行いました(ランタイム用のSDKディレクトリとLiferay Serverインスタンスを見つけました)
- 選択したプラグイン タイプ
Hook
その後の私の唯一の選択肢は、クラスやプロパティファイルが内部にFinish
ない特定の構造のプロジェクトを持つことになりました。
私の問題は、空のプロジェクトしか取得できず、Liferay のファイルを変更する方法がわからないことです。これは、新しいクラス ファイルを作成して入力を開始しようとすると、Liferay 由来のパッケージ名が見つからないcom.Liferay.
ためorg.Liferay.
です。は Liferay Hook プロジェクトです。通常、いくつかのLiferay由来のヒントが私の選択のためにポップアップ表示されるはずですが、何も表示されませんでした。
私が間違っていることは何ですか?私は何が欠けていますか?自分でファイル名を知る必要がありますか、それともIDEに助けを求めるためのトリックがどこかにありますか?
Liferay 6.0 を使用しており、IDE のバージョンは 6.0.5 です。少なくとも私の目には、それらは一致するはずです。
liferay - Liferayネイティブポートレットの関数を置き換える方法
LiferayIntallationに付属しているネイティブのLiferayポートレットに変更を加えています。フックまたは同様のアプローチで関数を独自の実装に変更するにはどうすればよいですか?
事前条件と事後条件の作成方法、およびインターフェイスの新しい実装の作成方法を読みましたが、元の状態のままにしておきたいポートレットのランダムクラス内のランダム関数を置き換える方法がわかりません。
redirect - LiferayポートレットとJSF:レンダリングフェーズ中のリダイレクト
単純なHTTPリダイレクトを実装するのに問題があります。
私はLiferay6.0.6を使用していますが、ポートレットはJSF2.0 / PortletFacesで構築されています。
ビューがロードされたときに(アクションがトリガーされたときではなく)リダイレクトを呼び出したい。現在、私の関数はPreRenderViewリスナーによって呼び出されています。
この関数では、権限を確認したり、他のことを実行したりできます。場合によっては、ユーザーを新しいページ(別のビューではない)にリダイレクトしたいこともあります。
私はいくつかの方法を試しましたが、失敗しました。具体的には、この方法が機能すると思いました:
このエラーは論理的ですが、リダイレクトを強制するための解決策があります。
これは、別の方法で呼び出される別の関数で実現できます。必要なのは、Hibernateセッション(レンダリングフェーズの開始時に設定)のみです。
この問題を解決するためのアイデアはありますか?
ありがとう!
ps:<redirect />
または?faces-redirect
、ポートレットを操作しません。
liferay - Liferay で Web コンテンツの構造とテンプレートをエクスポートする
Web コンテンツの構造やテンプレートのみをエクスポートすることはできますか?
permissions - Liferay6.0.5-彼のプライベートコミュニティのプライベート/パブリックレイアウトで所有者からIGFoldersを非表示にします
通常のユーザーが作成するすべてのIGFolderに非表示の「システム」サブフォルダーを作成する必要があります。 画像ギャラリーポートレットは、主にすべての通常のユーザーのプライベートコミュニティレイアウトにあります。ポートレットとその構成は事前に生成されているため、通常のユーザーはそれらを変更できません(layout.user。[public | private] .layouts.modizable = false)。
これを行う理由 これらのシステムフォルダには、アップロードされた画像の自動生成されたサイズのバージョンが保存されます。これは、さまざまなサイズの画像自体を提供する画像ギャラリーを表すWebContent/JournalArticleもインポートするためです。最終的には、IGFoldersとJournalArticleの両方のコンテンツを、特別なコードをあまり使用せずに同じ方法で表示したいと考えています。
私がすでに試したこと
私はパーミッション(resource-actions / imgallery.xml => owner-defaults)を介してこれを実行しようとしましたが、彼自身のコミュニティページでは、ユーザーはCommunityAdminでもあり、彼が望むほとんどすべてのことを実行および表示する権限を与えます。(PermissionCheckerBagImpl.isCommunityAdminImpl)
ユーザー/彼のプライベートコミュニティに属さないレイアウトを作成することを考えましたが、ユーザーが属する別のコミュニティのパブリックページでこれをテストすることはできませんでした。現在のユーザーのIGFoldersをシステムに表示させることができません。代わりに、コミュニティのフォルダーが表示されます。
サブフォルダーに別のユーザーとグループを使用しても機能しませんでした。groupIdが親フォルダーの1つと一致しない場合、親フォルダーIDは0に設定されるため、サブフォルダーは長くなります(IGFolderLocalServiceImpl.getParentFolderId)。
何がうまくいくかもしれません、そして私はおそらくちょうどうまくいかないでしょう
画像ギャラリーポートレット/レイアウトの所有者を変更する
私が考えていなかった方法で許可をいじる
グループ/コミュニティの別のレイヤーを追加する
システムフォルダを別の場所に配置します(もちろん、システムフォルダ
とその
親フォルダの間の関係を維持するためのコードが増えます)
もちろん、expandosを使用してシステムフォルダにフラグを立てることができます-とにかく行う必要があります-ビューで取得した後にそれらを非表示にすることもできますが、フォルダ数をいじる必要があります。これは物事を行う方法ではありません。
どんなアイデアでもありがたいです、詳しく説明するのを恥ずかしがらないでください、私はLiferayにかなり新しいです
performance - Linuxでのliferayパフォーマンスの問題
2台のマシンにTomcatシステムをセットアップしたLiferay6があります。
Machine 1:
Windows 2003 Server
2GB RAM, 2Gh CPU
Mysql Ver 14.14 Distrib 5.1.49
Liferay 6.0.6 with Tomcat 6
Machine 2:
Linux CentOS 5.5
4GB RAM, 2Gh CPU
Mysql Ver 14.14 Distrib 5.5.10
Liferay 6.0.6 with Tomcat 6
両方のliferayシステムは、同一の起動パラメーターとmysql構成を持っています。liferayシステムには、カスタムテーマと各URLアクセスをチェックするサーブレットフィルターフックが含まれています。
で始まるシステムの負荷をテストするためのGrinderスクリプトを作成しました50 concurrent users
。
テストスクリプトは次のことを行います。
- ホームページを開く
- ユーザー名/パスワードでログイン
- セキュリティキーを入力します(カスタムポートレット)
- プライベートコミュニティに移動する
- ログアウト
Windowsシステムでは、応答時間は予想どおりです(Grinderでの各テストの平均時間は約40秒です)。ただし、Linuxシステムでは、同じ操作に対して応答時間が長すぎます(約4分)。
mysql、tomcat、接続プール、およびその他のいくつかのパラメーターを修正しようとしましたが、すべて同じ結果になりました。また、ライフレイは他のマシンのmysqlを使用してテストされました(マシン1ライフレイ->マシン2 mysql)
テスト環境のLinuxマシンでも、クライアント側でも同じ問題に直面しています。
ajax - liferay 6 のポートレットで Ajax リクエストを行う
ポートレットの processAction メソッドを呼び出す jsp ファイル内で ajax 呼び出しを行いたいのですが、processAction メソッドからの成功メッセージに基づいて、ポートレットの serveResource メソッドをもう一度呼び出す必要があります。いくつかの例を提供してください。
liferay - Liferayでその場でjavascriptファイルを連結する
圧縮およびキャッシュされたjsをデプロイするためだけでなく、(MinifierFilterによって推測される)barebone.jspファイルが作成されているのがわかります。開発と本番のケースを分離したいのですが、開発に関しては、Liferayが生成されたjavascriptファイルをキャッシュするだけでなく、この生成されたインスタンスをまったく持たないようにしたいだけです。
もっと正確に言うと、すべてのjavascriptファイルをその場で連結する必要があります。開発時に静的ファイルを編集し、できるだけ早く結果を確認する機会を常に持ちたいと思っています。
それを実装する最も簡単な方法は何ですか?
liferay - Liferayで生成されたページにカスタムメタタグを追加する方法
Liferayで生成されたさまざまなページにさまざまなMETAタグを配置する必要があります。
例
どうすればこれを達成できますか?
アップデート
これは単純な問題であるため、具体的には言えませんが、「Liferay6.0はカスタムメタタグをサポートしていません」が答えになると思います。
tomcat6 - Liferayの実行速度が遅い
4GBのRAMを搭載したLinuxマシンの1つにLiferay-Tomcat6.0.6をインストールしましたが、別のマシンにインストールされたMySQLを使用しています。
10人の同時ユーザーでもliferayの実行は非常に遅くなります。
AppDynamicsから取得したスクリーンショットを添付しました。これは、EhCacheとC3POの両方の応答が遅い場合があることを示しています。
EhCacheまたはC3POに必要な特別な設定はありますか?
現在、デフォルト構成で実行しています。