PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Gelöst] Wie YAML für Drupal Maintenance Seite (Offline) aktivieren?



MiDoe
11.09.2008, 21:16
Hallo,

ich möchte im Drupal-Wartungsmodus (m)eine YAML-Seite anzeigen.

1. in der settings.php das Standardtheme (minelli) durch yaml ersetzen -> klappt.
2. maintenance-page.tpl.php im yaml Ordner anlegen -> klappt.

aber

3. maintenance.css aus /modules/system/maintenance.css "aushebeln" -> klappt nicht.

Ich habe versucht http://drupal.org/node/171209#styles-override-module zu verstehen, aber da hapert's.

Wo genau muss ich "stylesheets[all][] = maintenance.css" einfügen?
In der 'yaml.info'? - Habe ich probiert: kein Erfolg.

Wer schubst mich in die richtige Richtung?
(Drupal ist noch recht neu für mich, YAML kenne ich sonst von TYPO3)

vielen Dank + viele Grüße

MiDoe

hass
12.09.2008, 00:21
Was hast Du denn eigentlich für ein Problem mit der maintenance.css? Ich konnte auf Anhieb nichts erkennen, dass Probleme machen könnte...!?

Folgendermaßen scheint es zu funktionieren - möglicherweise gibt es aber noch andere Wege zum Ziel:

1. settings.php (Erweiterung)


$conf['maintenance_theme'] = 'yaml_simple';


2. template.php (Erweiterung)


/**
* Alter some Drupal variables required by maintenance theme.
*/
function phptemplate_preprocess_maintenance_page(&$vars) {
// Dynamic sidebar switching.
$vars['body_classes'] = $vars['body_classes'] .' hideboth';

// Add YAML Theme styles
$vars['styles'] = _yaml_simple_add_styles($vars);

// Example to remove core CSS files from header
$vars['styles'] = preg_replace('/<link(.*)maintenance.css(.*)\/>\n/i', '', $vars['styles']);
}


3. Desweiteren die page.tpl.php noch zu dem Dateinamen maintenance-page.tpl.php kopieren.

MiDoe
12.09.2008, 01:27
Vielen Dank für die Hilfe, einen Schritt weiter bin ich nun :)



Was hast Du denn eigentlich für ein Problem mit der maintenance.css? Ich konnte auf Anhieb nichts erkennen, dass Probleme machen könnte...!?


Es sieht halt etwas "dröge" aus und ist von YAML ganz weit entfernt.
Beispiel: http://www.softcaseproduction.de/drupal/






$vars['styles'] = preg_replace('/<link(.*)maintenance.css(.*)\/>\n/i', '', $vars['styles']);




Das hat die maintenance.css immerhin "gekickt".
Optisch hat sich aber nichts geändert.


viele Grüße

MiDoe

hass
12.09.2008, 19:21
Während der Entwicklung von D6 themes empfiehlt es sich in der template.inc die auskommentierte Zeile



drupal_rebuild_theme_registry();


einzukommentieren... die oben aufgeführte template.php Erweiterung ist zwingend erforderlich... danach sieht die Seite 100% wie YAML Simple aus.

Das mit der maintaince.css stimmt übrigens nicht. Wenn das oben geschriebene Maintenance Theme mal läuft kannst Du die Zeile nochmal rausnehmen. Dabei ändert sich an der Seite nichts...

MiDoe
12.09.2008, 20:05
Während der Entwicklung von D6 themes empfiehlt es sich in der template.inc die auskommentierte Zeile



drupal_rebuild_theme_registry();


einzukommentieren...

Habe ich gemacht, hat leider nichts (sichtbares) verändert.



die oben aufgeführte template.php Erweiterung ist zwingend erforderlich... danach sieht die Seite 100% wie YAML Simple aus.

Vielleicht habe ich die falsche Datei editiert?

Ich habe die oben angegebene Erweiterung in /drupal/sites/all/themes/yaml/template.php vorgenommen.
Danach wird /drupal/modules/system/maintenance.css im Wartungsmodus nicht eingebunden.

Wenn ich die Erweiterung wieder raus nehme, wird die maintenance.css wieder eingebunden.

Das yaml-theme wird in keinem Fall angezeigt, aber auch nicht minelli. Ich stecke also bei "50%" fest ???

Vielleicht klappt es nicht, weil ich statt yaml_simple das yaml (ohne simple) benutze?

Ich hatte entsprechend $vars['styles'] = _yaml_add_styles($vars); in die template.php genommen.
War das richtig?

viele Grüße

MiDoe

hass
13.09.2008, 23:18
Im "yaml" Theme muss es folgender Code sein:



/**
* Alter some Drupal variables required by maintenance theme.
*/
function phptemplate_preprocess_maintenance_page(&$vars) {
// Dynamic sidebar switching.
$vars['body_classes'] = $vars['body_classes'] .' hideboth';

// Add YAML Theme styles
$vars['css'] = _yaml_add_css($vars);
$vars['styles'] = _yaml_add_styles($vars);
}

MiDoe
14.09.2008, 00:57
Ja, cool – jetzt geht's ;D

Es war letztlich die folgende Zeile, die mir fehlte:



$vars['css'] = _yaml_add_css($vars);


Vielleicht magst Du das im Codefragment des zweiten Posts oben noch ergänzen (für die Nach(ahmende)welt)

Und natürlich hast Du Recht, folgender Code ist eigentlich überflüssig:


$vars['styles'] = preg_replace('/<link(.*)maintenance.css(.*)\/>\n/i', '', $vars['styles']);



vielen Dank für den Support + viele Grüße

MiDoe

hass
14.09.2008, 10:05
Das oben aufgeführte Beispiel ist für "YAML Simple"... das untere für "YAML". Die zwei Beispiele sind also beide richtig.