Вопрос

Я попытался поместить этот код в пользовательский блок с входом, образованным в 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.

Это было полезно?

Решение

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. я использовал theme_image() сделать это менее хрупким.

Но если вы можете избежать использования фильтра PHP, вам действительно следует: подумайте о создании небольшого пользовательского модуля, который вместо этого создает блок с кодом.

Другие советы

Одна проблема с вашим кодом заключается в том, что вы используете = не == в вашем операторе if.

Звучит как работа для БлокироватьАнкет И если вы не хотите использовать «целый модуль» только для этого, вы можете увидеть, как это сделано, и использовать правильный фрагмент.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top