web-dev-qa-db-ja.com

CCK ImageFieldタグから高さと幅の属性を削除する方法は?

Drupal 6 with the CCK ImageField module を使用しています。デフォルトでは、タグの属性として画像の高さと幅が出力されます。現在のプロジェクトでは、これらをCSSでオーバーライドできるようにしたいのですが、これらの属性を追加するテーマ関数を特定できませんでした。

これらのタグを削除するには、どの関数/テンプレートをオーバーライドする必要がありますか?

3
acrosman

ImageCacheも使用していることを知る必要がありましたが、探していた答えが見つかりました。 template.phpのtheme_imagecache()をオーバーライドする必要がありました:

function mytheme_imagecache($presetname, $path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) {
  // Overrode the default here to get ride of height and width attributes.

  // Check is_null() so people can intentionally pass an empty array of
  // to override the defaults completely.
  if (is_null($attributes)) {
    $attributes = array('class' => 'imagecache imagecache-'. $presetname);
  }

  $attributes = drupal_attributes($attributes);
  $imagecache_url = imagecache_create_url($presetname, $path);
  return '<img src="'. $imagecache_url .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $attributes .' />';
}

そうは言っても、ティムの答えはより簡単で、おそらく同じかそれ以上に機能するでしょう。

1
acrosman

これらの属性は、ブラウザーのパフォーマンス上の理由で存在しています。 CSSでそれらをオーバーライドすることはまだ可能です。幅を指定する場合は、高さを自動に設定するか、その逆を行います。

4
tim.plunkett