Project

General

Profile

Enhancement(機能追加・改善) #3203

activity/post.json の images パラメータを複数枚の画像アップロードに対応させる

Added by Youichi Kimura almost 7 years ago. Updated over 2 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Target version:
Start date:
2012-09-14
Due date:
% Done:

0%


Description

Overview (現象)

#3064 で実装された activity/post.json の images パラメーターは、images と複数形の名前であるにもかかわらず複数枚の画像を指定することが出来ない。そのため、images パラメーターが複数枚の画像を受け付けるように修正を施す。

Spec (仕様)

activity/post.json のアクションにて、images が配列であっても受け付けるように修正する。
また、activity/search.json のレスポンスに追加されている image_url, image_large_url は、アクティビティに複数枚の画像が添付されていることを考慮していないため、これも配列で返すように変更を行う。


Related issues

Related to OpenPNE 3 - Backport(バックポート) #3400: activity/post.json の images パラメータを複数枚の画像アップロードに対応させる Fixed(完了) 2012-09-14
Blocked by OpenPNE 3 - Enhancement(機能追加・改善) #3064: activity/post.json の画像投稿対応 Won't fix(対応せず) 2012-06-01

Associated revisions

Revision 8064b916 (diff)
Added by Youichi Kimura almost 7 years ago

accept multiple images in activity/post.json (fixes #3203)

Revision 502a85ad (diff)
Added by Youichi Kimura almost 6 years ago

add testcases for activity/post.json with multiple images (refs #3203)

Revision b1c33881 (diff)
Added by Youichi Kimura almost 6 years ago

add support for multiple activity images in activity/*.json template (fixes #3203)

Revision 914b9659 (diff)
Added by Youichi Kimura almost 6 years ago

add helper function for ActivityImage (refs #3203)

Revision c7ce43f0 (diff)
Added by Youichi Kimura almost 6 years ago

small change of the name in activity/*.json response (fixes #3203)

History

#1 Updated by Youichi Kimura almost 7 years ago

  • Status changed from New(新規) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 8064b916465136cfdd8056cb23a012e60021145d で適用されました。

#2 Updated by Youichi Kimura almost 6 years ago

  • Description updated (diff)
  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

#3064note-7 で指摘されている

  • API の応答は 固定で1枚だけ画像のURLを出力するような実装ですが、複数枚投稿できるのであれば、複数枚出力した方が良くないでしょうか。
    • 1枚だけ出力するような仕様に意図的にするのであれば、例えば一番新しい画像のURLを出力する といった対応にしたほうがよいのではないかと思います。

について、複数枚アップロードの実装を行った当チケットで対応する。

#3 Updated by Youichi Kimura almost 6 years ago

  • Tracker changed from Bug(バグ) to Enhancement(機能追加・改善)
  • Subject changed from activity/post.json の images パラメータが複数枚の画像アップロードに対応していない to activity/post.json の images パラメータを複数枚の画像アップロードに対応させる
  • Description updated (diff)

#4 Updated by Youichi Kimura almost 6 years ago

複数枚の画像に対応した 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" 
    }
  ]
}

#5 Updated by Youichi Kimura almost 6 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

更新履歴 b1c33881a08af31718adabe54c97713c23d99084 で適用されました。

#6 Updated by Shinichi Urabe almost 6 years ago

  • Status changed from Pending Review(レビュー待ち) to 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',
    )   
  )
);

#7 Updated by Youichi Kimura almost 6 years ago

参考メモ

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,
      )
    }

#8 Updated by Youichi Kimura almost 6 years ago

こんな感じのヘルパー関数を 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);
  }
}

#9 Updated by Youichi Kimura almost 6 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

更新履歴 c7ce43f00f8e5b1c613673b59038692cdb26c317 で適用されました。

#10 Updated by Youichi Kimura almost 6 years ago

note-6 で指摘された _activityRecord.php の重複部分については 914b96596d77b72d9b1a981d33159d1b4cd82b17 の通り、ヘルパー関数として実装しました。

#11 Updated by Shinichi Urabe almost 6 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

レビューOKです

#12 Updated by Youichi Kimura almost 6 years ago

  • Status changed from Pending Testing(テスト待ち) to Pending Review(レビュー待ち)
  • % Done changed from 70 to 50

更新履歴 8f1bae7204cc09f9bd9bd75f6b423199f6ce5e1d で適用されました。

#13 Updated by Youichi Kimura almost 6 years ago

  • Status changed from Pending Review(レビュー待ち) to New(新規)
  • % Done changed from 50 to 0

すみません、バックポート時にコミットメッセージ修正し損ねました。一旦ステータス戻します

#14 Updated by Youichi Kimura almost 6 years ago

  • Status changed from New(新規) to Accepted(着手)

#15 Updated by Shinichi Urabe almost 6 years ago

  • Status changed from Accepted(着手) to Pending Testing(テスト待ち)
  • % Done changed from 0 to 70

コミットメッセージによりステータスが変わった状態ですので、ステータスを「テスト待ち」に戻します。

#16 Updated by isao sano over 2 years ago

  • Status changed from Pending Testing(テスト待ち) to Pending Merge(マージ待ち)
  • % Done changed from 70 to 80

OpenPNE 3.8.8 にて対応済みであったため、対応せずとします。

#17 Updated by isao sano over 2 years ago

  • Status changed from Pending Merge(マージ待ち) to Won't fix(対応せず)
  • % Done changed from 80 to 0

Also available in: Atom PDF