web-dev-qa-db-ja.com

サービスでプロファイル2を使用する方法

サービスとプロファイル2を併用したい。

次のjsonコードのように:

リクエスト:

http://localhost/api/user/1

応答:

{
  "uid": "3",
  "name": "test1",
  "theme": "",
  "signature": "",
  "signature_format": "filtered_html",
  "created": "1393554511",
  "access": "1393562420",
  "login": "1393562420",
  "status": "1",
  "timezone": "Asia/Chongqing",
  "language": "",
  "picture": null,
  "data": false,
  "roles": {
    "2": "authenticated user"
  },
  "rdf_mapping": {
    "rdftype": [
      "sioc:UserAccount"
    ],
    "name": {
      "predicates": [
        "foaf:name"
      ]
    },
    "homepage": {
      "predicates": [
        "foaf:page"
      ],
      "type": "rel"
    }
  },

  "profile 2 field": "test",
  "profile 2 field2": "test",
  "profile 2 field3": "test",
  "profile 2 field4": "test",
  "profile 2 field5": "test",
  "profile 2 field6": "test"
}

サービスモジュールにコードの詳細がいくつかあります。

modules/services/resources/user_resource.inc

/**
 * Get user details.
 *
 * @param $uid
 *   UID of the user to be loaded.
 *
 * @return
 *   A user object.
 *
 * @see user_load()
 */
function _user_resource_retrieve($uid) {
  $account = user_load($uid);
  if (empty($account)) {
    return services_error(t('There is no user with ID @uid.', array('@uid' => $uid)), 404);
  }

  services_remove_user_data($account);

  // Everything went right.
  return $account;
}

サービスがuser_load()メソッドを呼び出してユーザーのデフォルト情報を取得しているようです。

私はそう思います:

  • Hook_user_load()を実装してプロファイル2フィールドをロードできますか?
1
TangMonk

Services Views モジュールを使用して、必要なプロファイル2データを公開できます。

サービスモジュールバージョン3.x以降のビューのサポート。

現在、2つの機能があります。
-ビューベースのリソースを作成し、ビューにサービス表示を作成します
-viewsリソース呼び出しを介してシステムの任意のビューを実行します

デモビデオ http://youtu.be/DZEhJKMeR5w

1
DrCord