メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • hook_themeがキャッシュからけされない

hook_themeがキャッシュからけされない

drupal
drupal
file
development
question

Themeをオーバーライト

  • ファイルリンクを以下のコードでオーバーライトする。
function media_file_icon($variables) {
	$file = $variables['file'];
	$icon_directory = $variables['icon_directory'];

	$mime = check_plain($file->filemime);
	$icon_url = file_icon_url($file, $icon_directory);
	return '

';
}

オーバーライトされた部分が正しく表示されない

  • 画面が前のままで上記コード通りに表示されされていない。
  • デバッグモードで、上記ソースにブレイクポイントを入れて、アプリを起動してもブレイクポイントのところに止まらない(このMethodに経由していない)

キャッシュを消しても上記コードがうまく表示されない

  • Admin管理画面のキャッシュクリアー(Home » Administration » Configuration » Development)ボタンを何回押してもうまく表示されない
  • Apacheを再起動しても直らない

対処方法

  • いろいろ調べて、直接に上記Methodでオーバーライトより、Theme登録変更をしたほうがいいという記事がありました。
  • 以下のコードでTheme登録を変更する
 
function media_theme_registry_alter(&$theme_registry) {

	if (!empty($theme_registry['file_icon']['function'])) {
		$theme_registry['file_icon']['function'] = 'media_file_icon';
	}

}
  • もう一度サイトのキャッシュを消して、オーバーライトした部分が正常に表示された。

注意点

  • ブレイクポイントを上記2Methodに入れて、観察してみました。
  • キャッシュを消す時に、「media_theme_registry_alter」のブレイクポイントにとまる。画面が表示の時にこのMethodを経由しない(Themeがキャッシュされたなー)
  • 画面が表示の時に「media_file_icon」のブレイクポイントに止まる。(上記登録変更後に、このMethodが正常に作動する)

ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)