2017-07-20 12 views
1

joomla 3ではカスタムフィールドを追加できます。それらは "_fields"のjoomla mysqlデータベースに保存されます。joomla 3のカスタムフィールドにアクセスする

「地域」という新しいカスタムフィールドが作成されました。ユーザーは、プロファイル設定で値を追加できます。だから私の質問は今、私はどのようにPHPを介してこのカスタムフィールドのユーザーの値を呼び出すことができますか?

は、私は、ユーザー例えばプロファイル値呼び出す方法を知っている:だから私は_FIELD値を呼び出すことができますどのように

jimport('joomla.user.helper'); 
$user = JFactory::getUser(); 
$userId = $user->id; 
$userProfile = JUserHelper::getProfile($userId); 
$usercity = $userProfile->profile['city']; 

+0

あなたは ますprint_r($ USERPROFILE)を試してみました持っています。 それからその中のすべてのフィールドをはっきりと見ることができます。 – Oluwaseye

+0

はい、使用できるプロファイルパラメータのみです。カスタム項目の値が内部にありません。 – Robster

答えて

2

あなたが管理エリア(ユーザー・フィールド)にカスタムフィールドを追加すると あなたは、デフォルトのプロファイルページに

http://localhost/joomla/index.php?option=com_users&view=profile 

を完全なユーザープロフィールを閲覧することができますがここではその後、検査スクリーンショット enter image description here

です実装。私はこの方法でアクセスしました。

$customFields = FieldsHelper::getFields('com_users.user', JFactory::getUser(), true); 
// In my case there where only one additional field, so a took the 0-indexed value, you shall see in which index is the field you are searching for 
$customFields[0]->value; 

また、いただきました、それでだけ見ること

print_r($customFields); 

を試すことができます。

あなたはそれにアクセスできます。

enter image description here

は、この情報がお役に立てば幸いです。

+0

ありがとうございます。それは完全に機能します。 – Robster

+0

あなたは大歓迎です。 – Oluwaseye

0

管理パネルから新しいカスタムフィールドを追加すると、$ customFields配列のオブジェクト数が変更されます。そして、あなたは他のフィールドにアクセスします。名前でフィールドにアクセスする必要があります。カスタムフィールドを見つけるための関数を名前で追加する必要があります。

$customFields = FieldsHelper::getFields('com_users.user', JFactory::getUser(), true); 

public static function getValueByFieldName($fields, $field_name) { 
    foreach ($fields as $field) { 
     if ($field->name == $field_name){ 
      return $field->value; 
      break; 
     } 
    } 
} 
関連する問題