it-swarm.com.de

Wie ändere ich das Thema für eine bestimmte Administrationsseite in Drupal?

Ich habe eine Seite mit url ?q=admin/settings/history. Gibt es eine Möglichkeit, wie ich das template nur für diese Seite ändern kann? Ich habe versucht, hook_preprocess_page aber ich konnte das Layout der Seite nicht ändern. Könnte mich bitte jemand in die richtige Richtung führen?

4
Outlooker

Eine weitere Lösung in einigen Codezeilen lautet:

hook_custom_theme

Gibt den maschinenlesbaren Namen des Themas zurück, das für die aktuelle Seite verwendet werden soll. Dieser Hook kann verwendet werden, um das Thema für die aktuelle Seitenanforderung dynamisch festzulegen. Es sollte von Modulen verwendet werden, die das Thema basierend auf dynamischen Bedingungen überschreiben müssen

z.B

/**
 * Implements hook_custom_theme
 */
function MYMODULE_custom_theme() {
  // Set path specific theme.
  if (current_path() == 'admin/settings/history') {
    return variable_get('custom_theme', 'theme_name');
  }
}

Kernbeispiel: system_custom_theme

Update : Um eine bestimmte Vorlage zu verwenden, können Sie page.tpl.php Überschreiben.

  • kopieren Sie page.tpl.php nach page--admin--settings--history.tpl.php, löschen Sie die Caches (Themenregistrierung) und verwenden Sie diese.

Weitere Informationen: https://drupal.org/node/1089656

10
David Thomas

Es sieht so aus, als würden Sie nach einem ThemeKey Modul suchen:

Mit ThemeKey können Sie einfache oder ausgefeilte Regeln für den Themenwechsel definieren, die die automatische Auswahl eines Themas in Abhängigkeit vom aktuellen Pfad , den Taxonomiebegriffen, der Sprache und dem Knotentyp ermöglichen und viele, viele andere Eigenschaften. Es kann auch einfach erweitert werden, um zusätzliche Eigenschaften zu unterstützen, die von anderen Modulen bereitgestellt werden

Hervorhebung von mir.

Sie können es entweder direkt verwenden oder den Quellcode als Beispiel verwenden - es ist die GPL, sodass Sie das Recht dazu haben.

5
Mołot

Auf einfache Weise können Sie den Themenschlüssel ändern, indem Sie die Bedingung überprüfen.

/**
 * Implements hook_init().
 */
function <module_name>_theme_init() {
    global $theme_key;

    if ($_GET['q'] == "admin/settings/history") {
        $theme_key = '<Your new Theme key>';        
    }
}
3

Sie können das Modul Seitenthema verwenden

Das Modul "Seitenthema" ist ein einfaches und benutzerfreundliches Modul, mit dem auf bestimmten Seiten andere Themen als die Standardeinstellungen der Website verwendet werden können.

enter image description here

2
Bala

Ich würde vorschlagen, ein benutzerdefiniertes Modul zu implementieren, das das für bestimmte Seiten verwendete Thema ändert. Es reicht aus, hook_custom_theme () wie folgt zu implementieren:

function mymodule_custom_theme() {
  if (arg(0) == '' && is_numeric(arg()) && arg(3)== history
) {
    return 'go theme page what you want yo use';
  }
}
0
Adi