ユーザーがアップロードした画像のサムネイル付きのビューがあります。ユーザーが画像をアップロードしなかった場合に備えて、サムネイルの代わりに表示されるデフォルトの画像を設定したいと思います。それは可能ですか?助言をいただければ幸いです。
ビューでは、「空のフィールドの動作を設定できます。そのため、ハードコードされた画像が存在しない場合はそこに配置できます。コンテンツタイプ自体に、存在しない場合はデフォルトの画像を設定できます。そのフィールドに設定します。
これは、コンテンツタイプ>画像フィールド>フィールド設定を編集するときに実行できます。そこで、デフォルトの画像をアップロードできます。この画像はビューに表示されます。
Drupal 7:ティーザーにデフォルトのアイコンを表示しますが、完全なビューではなく表示します。最終的に私はこの解決策を思いつきました:
少し試行錯誤しましたが、ここに私の作業コードがあります。私は3つの異なるコンテンツタイプを調べています。私のフィールドは「field_hero_shot」という名前で、私のプレースホルダー画像は「placeholder.png」という名前です。もちろん、コンテンツタイプとフィールド名に合わせてこれらを調整する必要があります。
function mytheme_preprocess_node(&$variables) {
// For Press room news types, hide the default thumbnail placeholder
// image in the full display mode.
// turn on for debugging: dpm($variables);
if (isset($variables['type']) &&
( ($variables['type'] == 'company_update')
|| ($variables['type'] == 'media_clipping')
|| ($variables['type'] == 'news_release')
) &&
isset($variables['view_mode']) && ($variables['view_mode'] == 'full')) {
// then it's a press room type and it is in full display mode!
// See if the Hero Shot field contains "placeholder.png".
if (isset($variables['field_hero_shot'][0]['filename'])
&& ($variables['field_hero_shot'][0]['filename'] == 'placeholder.png')) {
// If so that's the default image and we should hide it!
hide($variables['content']['field_hero_shot'][0]);
}
}
}