Enhancement(機能追加・改善) #3203
完了activity/post.json の images パラメータを複数枚の画像アップロードに対応させる
0%
説明
Overview (現象)¶
#3064 で実装された activity/post.json の images パラメーターは、images と複数形の名前であるにもかかわらず複数枚の画像を指定することが出来ない。そのため、images パラメーターが複数枚の画像を受け付けるように修正を施す。
Spec (仕様)¶
activity/post.json のアクションにて、images が配列であっても受け付けるように修正する。
また、activity/search.json のレスポンスに追加されている image_url, image_large_url は、アクティビティに複数枚の画像が添付されていることを考慮していないため、これも配列で返すように変更を行う。
Youichi Kimura さんが約12年前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 8064b916465136cfdd8056cb23a012e60021145d で適用されました。
Youichi Kimura さんが約11年前に更新
- 説明 を更新 (差分)
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
Youichi Kimura さんが約11年前に更新
- トラッカー を Bug(バグ) から Enhancement(機能追加・改善) に変更
- 題名 を activity/post.json の images パラメータが複数枚の画像アップロードに対応していない から activity/post.json の images パラメータを複数枚の画像アップロードに対応させる に変更
- 説明 を更新 (差分)
Youichi Kimura さんが約11年前に更新
複数枚の画像に対応した activity/*.json のレスポンスは下記のような形式で実装します。
{
"status": "success",
"data": [
{
"id": "1058",
"member": { ... },
"body": "hogehoge",
"body_html": "hogehoge",
"uri": null,
"source": "API",
"source_uri": null,
"images": [
{
"small_uri": "http://localhost/cache/img/gif/w48_h48/ac_1_cb7fd0a95e1e24ac16a9f81c088cfe9863fd15b8_gif.gif",
"full_uri": "http://localhost/cache/img/gif/w_h/ac_1_cb7fd0a95e1e24ac16a9f81c088cfe9863fd15b8_gif.gif"
},
{
"small_uri": "http://localhost/cache/img/jpg/w48_h48/ac_1_75c975ed014d8e77c8d31619038b2a06f2edf9f9_jpg.jpg",
"full_uri": "http://localhost/cache/img/jpg/w_h/ac_1_75c975ed014d8e77c8d31619038b2a06f2edf9f9_jpg.jpg"
}
],
"created_at": "Thu, 12 Sep 2013 07:59:51 +0000"
}
]
}
Youichi Kimura さんが約11年前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 b1c33881a08af31718adabe54c97713c23d99084 で適用されました。
Shinichi Urabe さんが約11年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
- ActivityData モデル内に、画像 URL の一覧を配列形式で返すメソッドを追加したほうがよいかもしれないです。
- apps/pc_frontend/modules/default/templates/_activityRecord.php でも似た処理がありますので、共通化ができるかと思います。(メソッドに対して absolute を引数で指定できるようにしておいたほうがよいかもしれません) 共通化の対応する場合、別チケットになるかと思います。
- full_uri, small_uri について、 full_uri という言葉から、full は uri に対する形容詞のように見えてしまうので絶対 URL をイメージしてしまいます。small_uri も絶対 URL ですので、 full_uri の名称が適切ではないように思います。名称は変えた方がよいかもしれません 。(案を書いていますが、参考まで)
案¶
$array = array( 'image_urls' => array( array( 'full_size' => 'http://xxxxx/full.jpg', 'small_size' => 'http://xxxxx/small.jpg', ), array( 'full_size' => 'http://xxxxx/full2.jpg', 'small_size' => 'http://xxxxx/small2.jpg', ) ) );
Youichi Kimura さんが約11年前に更新
参考メモ
apps/pc_frontend/modules/default/templates/_activityRecord.php
の記述:
<?php if ($images[$i]->getFileId()): ?>
<?php echo op_image_tag_sf_image($images[$i]->getFile(), array('size' => '48x48')) ?>
<?php else: ?>
<?php echo op_image_tag($images[$i]->getUri(), array('width' => 48, 'height' => 48)) ?>
<?php endif; ?>
apps/api/lib/helper/opJsonApiHelper.php
の記述:
if (!is_null($activityImage->file_id))
{
$images[] = array(
'small_uri' => sf_image_path($activityImage->getFile(), array('size' => '48x48'), true),
'full_uri' => sf_image_path($activityImage->getFile(), array(), true),
)
}
else
{
$images[] = array(
'small_uri' => $activityImage->uri,
'full_uri' => $activityImage->uri,
)
}
Youichi Kimura さんが約11年前に更新
こんな感じのヘルパー関数を opActivityHelper.php に実装してみる
function op_activity_image_uri($activityImage, $options = array(), $absolute = false)
{
if ($activityImage->relatedExists('File'))
{
return sf_image_path($activityImage->File, $options, $absolute);
}
else
{
return $activityImage->uri;
}
}
function op_activity_image_tag($activityImage, $options = array())
{
if ($activityImage->relatedExists('File'))
{
return op_image_tag_sf_image($activityImage->File, $options);
}
else
{
return op_image_tag($activityImage->uri, $options);
}
}
Youichi Kimura さんが約11年前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 c7ce43f00f8e5b1c613673b59038692cdb26c317 で適用されました。
Youichi Kimura さんが約11年前に更新
note-6 で指摘された _activityRecord.php
の重複部分については 914b96596d77b72d9b1a981d33159d1b4cd82b17 の通り、ヘルパー関数として実装しました。
Shinichi Urabe さんが約11年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
レビューOKです
Youichi Kimura さんが約11年前に更新
- ステータス を Pending Testing(テスト待ち) から Pending Review(レビュー待ち) に変更
- 進捗率 を 70 から 50 に変更
更新履歴 8f1bae7204cc09f9bd9bd75f6b423199f6ce5e1d で適用されました。
Youichi Kimura さんが約11年前に更新
- ステータス を Pending Review(レビュー待ち) から New(新規) に変更
- 進捗率 を 50 から 0 に変更
すみません、バックポート時にコミットメッセージ修正し損ねました。一旦ステータス戻します
Shinichi Urabe さんが約11年前に更新
- ステータス を Accepted(着手) から Pending Testing(テスト待ち) に変更
- 進捗率 を 0 から 70 に変更
コミットメッセージによりステータスが変わった状態ですので、ステータスを「テスト待ち」に戻します。