プロジェクト

全般

プロフィール

Backport(バックポート) #3110

完了

管理画面から画像をアップロードしたときに透過画像のときに透過されなくなる

開 石切山 さんが12年以上前に追加. 約12年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2011-11-29
期日:
進捗率:

100%

予定工数:

説明

概要

管理画面から画像をアップロードしたときに透過画像のときに透過されなくなる.

原因

管理画面画像リスト(/pc_backend.php/monitoring/imageList)で画像を表示する際に保存されている画像のフォーマットが考慮されていない.
他の画像の場合にはファイル名のサフィックスとして拡張子を付与する(例: hoge_png)ことで sf_image_path() 使用時に自動的に保管するようになっているが, 管理画面の画像アップロードページからのアップロードではそのサフィックスが与えられていない.

apps/pc_backend/modules/monitoring/templates/_imageInfo.php

  5 <dd class="upImage"><a href="<?php echo sf_image_path($image->getName()) ?>"><?php echo image_tag_sf_image($image->getName(), $options = array('size' => '120x120')) ?></a></dd>

lib/vendor/symfony/lib/plugins/sfImageHandlerPlugin/lib/helper/sfImageHelper.php

 27 function image_tag_sf_image($filename, $options = array())
 28 {
 29   if (empty($options['alt']))
 30   {
 31     $options['alt'] = '';
 32   }
 33 
 34   if (!$filename)
 35   {
 36     if (isset($options['no_image']))
 37     {
 38       $filename = $options['no_image'];
 39       unset($options['no_image']);
 40     }
 41     else
 42     {
 43       $filename = 'no_image.gif';
 44     }
 45     return image_tag($filename, $options);
 46   }
 47 
 48   $filepath = sf_image_path($filename, $options);
...
 69 function sf_image_path($filename, $options = array(), $absolute = false)
 70 {
 71   if (isset($options['f']))
 72   {
 73     $f = $options['f'];
 74   }
 75   elseif (isset($options['format']))
 76   {
 77     $f = $options['format'];
 78   }
 79   elseif (is_callable(array($filename, 'getType')))
 80   {
 81     $f = str_replace('image/', '', $filename->getType());
 82   }
 83   else
 84   {
 85     $parts = explode('_', $filename);
 86     $f = array_pop($parts);
 87   }
 88 
 89   if ($f !== 'jpg' && $f !== 'png' && $f !== 'gif')
 90   {
 91     $f = 'jpg';
 92   }

修正方法

File クラスインスタンスを表示用のヘルパー関数に渡すようにしていき、インスタンスの保持する MIME Type 情報に基づく画像フォーマットを選択できるようにする.

diff --git a/apps/pc_backend/modules/monitoring/templates/_imageInfo.php b/apps/pc_backend/modules/monitoring/templates/_imageInfo.php
index 2e4af77..37d1913 100644
--- a/apps/pc_backend/modules/monitoring/templates/_imageInfo.php
+++ b/apps/pc_backend/modules/monitoring/templates/_imageInfo.php
@@ -2,7 +2,7 @@
 <div class="cell">
 <dl>
 <dt class="day"><?php echo $image->getCreatedAt() ?></dt>
-<dd class="upImage"><a href="<?php echo sf_image_path($image->getName()) ?>"><?php echo image_tag_sf_image($image->getName(), $options = array('size' => '120x120')) ?></a></dd>
+<dd class="upImage"><a href="<?php echo sf_image_path($image) ?>"><?php echo image_tag_sf_image($image, $options = array('size' => '120x120')) ?></a></dd>
 <dd class="fileName"><?php echo $image->getName() ?></dd>
 <?php if ($deleteBtn): ?>
 <dd class="delete"> 


関連するチケット 1 (0件未完了1件完了)

関連している OpenPNE 3 - Bug(バグ) #2632: 管理画面から画像をアップロードしたときに透過画像のときに透過されなくなるWon't fix(対応せず)Yuya Watanabe2011-11-29

操作

開 石切山 さんが12年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

Yuma Sakata さんが12年以上前に更新

  • 対象バージョンOpenPNE 3.8.1 から OpenPNE 3.8.x に変更

3.8.2 以降で対応します。

Yuma Sakata さんが約12年前に更新

  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.8.2 に変更

Yuma Sakata さんが約12年前に更新

  • ステータスAccepted(着手) から New(新規) に変更

Yuya Watanabe さんが約12年前に更新

  • ステータスNew(新規) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

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

Yuya Watanabe さんが約12年前に更新

Yuya Watanabe さんが約12年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

Yuma Sakata さんが約12年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

他の形式にエクスポート: Atom PDF