Wie füge ich ein Logo in einen Block ein?

7

Ich habe versucht, diesen Code in einen benutzerdefinierten Block mit einer in PHP-Code formatierten Eingabe einzufügen:

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

In Drupal 7 funktioniert das nicht.

Ek Kosmos
quelle
1
Schauen Sie sich das Delta-Block-Modul
Chrisjlee

Antworten:

11

theme_get_settings() wurde in Drupal 7 entfernttheme_get_setting() . Verwenden Sie stattdessen . Das funktioniert:

<?php

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

?>

theme_get_setting()wird die Einstellung des aktuellen Themas erhalten. Wenn Sie jedoch die Einstellung eines beliebigen Themas wünschen, können Sie den optionalen zweiten Parameter verwenden, wie in den API-Dokumenten beschrieben. Früher theme_image()habe ich es weniger zerbrechlich gemacht.

Wenn Sie jedoch die Verwendung des PHP-Filters vermeiden können, sollten Sie Folgendes in Betracht ziehen: Erstellen Sie ein kleines benutzerdefiniertes Modul, das stattdessen einen Block mit dem Code erstellt.


quelle
4

Ein Problem mit Ihrem Code ist, dass Sie in Ihrer if-Anweisung =, nicht == verwenden.

Klingt nach einem Job für Blockify . Und wenn Sie nicht nur "ein ganzes Modul" dafür verwenden möchten, können Sie sehen, wie es gemacht wird, und das richtige Snippet verwenden.

tim.plunkett
quelle
Ja, das war eines der Probleme.
Ek Kosmos