0

joomla でいくつかの新しい拡張機能を作成しようとしています。

各ユーザーの追加情報を追加したい。独自のカスタム ユーザー プロファイル プラグインを作成し、フィールドを追加することでこれを実現できることはわかっていますが、これにより、それらのフィールドがユーザー プロファイル ページに追加されます。

新しいフィールドを個別に表示したい。たとえば、ユーザーページに、名前、電子メールなどの基本情報に移動するリンクと、「追加」フィールドを表示する別のリンクがある場合があります。

追加フィールドは個人情報ではないため、個別に表示したいと考えています。

私の質問は、どうすればこれを達成できますか? 各ユーザーにフィールドを追加するだけでよいですか、それともまったく新しいコンポーネントを作成する必要がありますか?

更新: コードを完全に制御したいので、既存の拡張機能を使用できません。また、追加情報はユーザーによって追加されるのではなく、管理者によってのみ追加されます。

4

4 に答える 4

1

最終的には、独自のコンポーネントを作成する方がよいと判断しました。主な理由は、アップデートが公開されたときに joomla をハッキングすることは害虫であり、JED は私が必要とする特定の拡張機能を提供しなかったためです。

于 2012-09-04T09:26:14.660 に答える
1

標準のユーザー プロファイルでは、ユーザー プロファイル ページにプロファイル フィールドを表示する必要はありません。管理者にのみ表示するように構成できます。フォームごとに異なる設定を行うだけです (cms 全体で 4 つあります)。コア プラグインのパターンに従います。

于 2012-08-31T01:08:37.513 に答える
0

ユーザーテーブルへのフィールドの追加やjoomlaの登録ページのカスタマイズなどのコーディングを追加または変更した場合は、Joomlaバージョンをアップグレードするとデフォルトに戻ります。これを行う方法は次のとおりです。

  • 他の追加情報を含む別のテーブルを作成する必要があり、からのユーザーIDを使用する必要があり#__usersます。
  • フォームを送信すると、このJoomlaコードを使用して別のテーブルを取得できます。

$ module_table = JTable :: getInstance('modules'、'profileTable');

  • モジュール->は、作成したテーブル名を意味します。

  • ProfileTable->は、「コンポーネント名」がモデル名であり、「テーブル」が一般的であることを意味します。

次に、このようにこのテーブルに投稿値を渡す必要があります。

if (!$module_table->bind($post))
    {
        return 0;
    }
    if (!$module_table->check())
    {
        return 0;
    }
    if (!$module_table->store())
    {
        return 0;
    }

このようにして、ユーザーの追加データを保存できます。表示するために、ユーザーIDを使用して2つのテーブルを結合し、表示する必要があります...

ではごきげんよう..

于 2012-08-30T15:35:57.830 に答える
0

これを行うには、おそらく2つの主な方法があります。

  1. ユーザーが情報を入力し、テーブルに接続する別のデータベーステーブルにデータを格納する拡張機能を作成できます#__users
  2. 拡張プロファイル用にJEDから拡張機能をダウンロードできます。非商用および商用の拡張機能がありますので、ここを見て、ニーズに合うものがあるかどうかを確認してください。

個人的には、事前に作成された拡張機能をインストールすると、多くの作業/試行錯誤が節約されます。

これをチェックしてください:http://extensions.joomla.org/extensions/clients-a-communities/user-management

于 2012-08-30T15:09:37.363 に答える