web-dev-qa-db-ja.com

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

PHP code:

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

Drupal 7.では機能しません。

7
Ek Kosmos

theme_get_settings()削除されました in 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フィルターの使用を回避できる場合は、実際に行う必要があります。代わりに、コードでブロックを作成する小さなカスタムモジュールを作成することを検討してください。

11
user7

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

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

4
tim.plunkett