ロゴをブロックに入れるにはどうすればよいですか?


7

PHPコードにフォーマットされた入力を使用して、このコードをカスタムブロックに配置しようとしました:

$settings = theme_get_settings('my theme');
if (!$settings[toogle_logo] = 0) {
  print '<img src="' . base_path() . $settings['logo_path'] . '" alt="my logo" />'; 
}

Drupal 7では機能しません。


1
デルタブロックモジュールをチェックしてください
chrisjlee

回答:


11

theme_get_settings() Drupal 7で削除されました。代わりにを使用してくださいtheme_get_setting()。これは機能します:

<?php

if (theme_get_setting('toggle_logo')) {
  $image = array(
    'path' => theme_get_setting('logo'),
    'alt' => 'my logo',
  );
  print theme('image', $image); 
}

?>

theme_get_setting()現在のテーマの設定を取得しますが、任意のテーマの設定が必要な場合は、APIドキュメントで説明されているように、オプションの2番目のパラメーターを使用できます。私が使用しtheme_image()、それが壊れにくくするために。

ただし、PHPフィルターの使用を回避できる場合は、実際にすべきです。代わりに、コードを使用してブロックを作成する小さなカスタムモジュールを作成することを検討してください。


4

コードの1つの問題は、ifステートメントで==ではなく=を使用することです。

Blockifyの仕事のように聞こえます。そして、そのためだけに「モジュール全体」を使用したくない場合は、それがどのように行われるかを確認し、正しいスニペットを使用できます。


はい、これは問題の1つでした。
Ek Kosmos 2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.