1

elgg サイトに「adv」という名前の新しいプラグインを作成しました。

そして、このプラグインでは、ユーザーをリストしています。他の elgg プラグインの「プロファイル」からのビューを使用しています

つまり、ページprofile/views/default/profile/listing.php です。

次に、各ユーザーの既存のビューにリンクを設定する必要があります。そのため、プロファイル プラグイン、主にページprofile/views/default/profile/listing.phpを編集する必要があります。

しかし、elggs のデフォルト プラグイン「プロファイル」を変更せずに、どうすればこれを行うことができますか。

profile/views/default/profileから「profile」フォルダーをコピーしてadv/views/default/ に配置する方法を試しましたが、機能しません。]

他のプラグインを編集してユーザー ビューに新しいリンクを追加し、独自のプラグイン サンプル 'adv' のみを編集するためのソリューションです。

4

2 に答える 2

2

プロファイル/リストビューをオーバーライドする必要がありますが、Elggがプラグインのページをレンダリングしている場合にのみ、コアプロファイル/リストビューを使用する可能性のある他のプラグインに干渉しないようにしてください。

この問題への私のアプローチは次のとおりです。

  1. オーバーライドするビューを保持する新しいディレクトリを作成します。あなたの場合、your_site_root/mod内に「adv/views/mod」ディレクトリを作成します。

  2. オーバーライドするビューをこのディレクトリに追加します。繰り返しになりますが、あなたの場合、profile / views / default / profile /listing.phpを次の場所にコピーします:adv / views / mod / default / profile / listing.php

  3. 新しく作成したビューに変更を加えます。これで、adv / views / mod / default / profile/listing.phpファイルをお好みに合わせて安全に変更できます。

  4. プラグインがページをレンダリングするときに特別なビューを使用するようにElggに指示します。つまり、page_handler関数またはpage_handlerによって参照され、通常はビューのデータを準備するphpファイル(index.phpやread.phpなど)からset_view_location(..)メソッドを呼び出す必要があります。プラグインのファイル階層がわかりません)したがって、この場合、set_view_location('profile / Listing'、$CONFIG->pluginspath。'adv / views / mod /');を呼び出します。page_handlerまたは上記のファイルのいずれかから。$ CONFIGが存在し、それを参照して使用可能であることを確認します(グローバル$ CONFIG)。

于 2010-10-27T06:54:11.413 に答える
1

サイト管理で「ビュー ファイルパス キャッシュを使用する (推奨)」が無効になっているかどうかを確認してください。elgg はハード ビュー キャッシュを使用するためです。または、data ディレクトリから view_cache ファイルを削除します。また、ユーザーのプラグインがプラグイン リストの「プロファイル」の下にあるようにします。

于 2010-07-01T05:45:01.467 に答える