操作
Backport(バックポート) #3110
完了管理画面から画像をアップロードしたときに透過画像のときに透過されなくなる
開始日:
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">
Yuya Watanabe さんが約12年前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 e4cd5003fd7712d5dcc6a00a5c4497512890050b で適用されました。
Yuya Watanabe さんが約12年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Yuma Sakata さんが約12年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストOKです。
操作