[Gelöst] Abfrage ob Admin-Tätigkeitsseite
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 08.06.2009 - 19:57 Uhr in
Hi.
Eigentlich dachte ich, mit der Lösung aus dem Thread hier: http://www.drupalcenter.de/node/19092 könnte ich mein Problem beheben, jedoch geht es doch nicht.
Folgendes Problem:
Ich habe ein eigenes Template fürs Frontend und damit die Views-Templates übernommen werden, muss ich das auch für den Admin nehmen (in einem anderen Thread behandelt). Das Problem dabei ist, mein Template hat nur eine Anzeigebreite von 468px im Frontend. Breite Seiten löse ich durch eine Abfrage, welche den Seitentitel prüft (unkomfortabel aber es läuft).
Wenn ich jetzt das Admin-Template auf die Frontansicht stelle, kann ich teilweise die Administration nicht mehr ausführen, weil es entweder in die 468 reingequetscht ist oder abgeschnitten wird (alles das, was überlappt).
Somit muss ich irgendwie abfragen, ob gerade eine Admin-Tätigkeitsseite aufgerufen wird. Ich dachte es geht über den Pfad, aber wenn ich einen Node bearbeitet, dann ist der Pfad ja nicht "admin/" sondern "node/123/edit", dazu kommt, dass es ja noch zig andere Varianten gibt, wie "node/454/images" usw.
Hat einer eine Idee, wie ich das Abfragen kann, bzw. wie ich die Admintätigkeit abfrage um eine breitere Seite (über eine CSS-Klasse) verwenden kann um noch komfortabel Einstellungen vornehmen zu können?
Hoffe, meine Erklärung ist soweit verständlich.
Schon einmal danke für jeden Tipp.
Gruß
- Anmelden oder Registrieren um Kommentare zu schreiben
Nimm ein fluides Theme,
am 08.06.2009 - 20:21 Uhr
Nimm ein fluides Theme, welches sich an die Breite automatisch anpasst und kein fixed. Bzw. wähle in deinem Benutzerkonto ein passenendes Theme aus, dann können die Besucher die eingequetschte Variante sehen.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).
Danke für deine
am 08.06.2009 - 20:26 Uhr
Danke für deine Antwort.
Ein anderes Theme kann ich ja nicht nehmen (muss für Frontend und Backend gleich sein) sonst habe ich wieder das Problem mit den Views-Templates (siehe hier: http://www.drupalcenter.de/node/19035)
Mein Theme ist auch schon komplett fertig, daran kann ich nichts ändern.
Gruß
Dann musst du dein Theme
am 08.06.2009 - 20:42 Uhr
Dann musst du dein Theme anpassen. Du kannst ja nicht 100te tpls haken nur weil du es verschlafen hast dein Theme zeitgemäß zu gestalten :D.
Ach naja ich muss es ja nicht verwalten/pflegen.
<div class="bla bla <?php global $user; ($user->uid == 1) ? print ' adminclasse' : '' ?>"> Bla</div>
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).
Würde folgende Lösung
am 08.06.2009 - 20:58 Uhr
Würde folgende Lösung funktionieren:
1) Wartungstheme definieren (bspw Garland
2) system.module erweitern:
/**
* Use the administrative theme if the user is looking at a page in the admin/* path.
*/
- if (arg(0) == 'admin') {
+ if (arg(0) == 'admin' || arg(0) == 'node') {
global $custom_theme;
$custom_theme = variable_get('admin_theme', '0');
drupal_add_css(drupal_get_path('module', 'system') .'/admin.css', 'module');
}
Die Wartungsstheme würde nun überall angezeigt werden, wo der erste Parameter
admin
oder
node ist
Alternative (Wenn Du lieber deine Theme Breite höher setzen willst:
if (arg(0) == 'admin') {
global $custom_theme;
$custom_theme = variable_get('admin_theme', '0');
drupal_add_css(drupal_get_path('module', 'system') .'/admin.css', 'module');
}
+ if (arg(0) == 'admin' || arg(0) == 'node'){
+ $_SESSION['custom_admin_theme_width'] = 1024; //setzt die Breite auf 1024 oder Gott weiss was
+}
+else
+ $_SESSION['custom_admin_theme_width']='';
In der Theme könntest Du dann entweder
if (!empty($_SESSION['custom_admin_theme_width']))
$themewidth = 1024; //oder wie auch immer
Und noch ne Möglichkeit:
Setzen einer Admin CSS:
if (arg(0) == 'admin') {
global $custom_theme;
$custom_theme = variable_get('admin_theme', '0');
drupal_add_css(drupal_get_path('module', 'system') .'/admin.css', 'module');
}
+ if (arg(0) == 'admin' || arg(0) == 'node'){
+ drupal_add_css('./theme/admintheme.css'); //Völlig eigenes, festes Theme hinzufügen; hier steht dann die neue bessere Breite drin
+}
Ich hoffe, da war was dabei.
MfG
Passer
Hehe, mein Theme ist ja
am 08.06.2009 - 20:58 Uhr
Hehe, mein Theme ist ja zeitgemäß, nur kann ich nix dafür wenn das mit den Views nicht mit zwei Templates funktioniert (wenn ich ein anderes Admin-Theme als Frontend-Theme wähle).
Aber danke für deinen Tipp, so ist zwar eingeloggt immer die Klasse, auch auf den Nicht-Bearbeitungsseiten, aber es geht.
Gruß
Danke dir, schau ich mir
am 08.06.2009 - 21:08 Uhr
Danke dir, schau ich mir auch mal an.
Unsere Posts haben sich wohl überschnitten.
Gruß
bzw. es gibt ja die schicken
am 08.06.2009 - 21:21 Uhr
bzw. es gibt ja die schicken body classen. das würde man in die template.php packen.
<?php
meinthemename_preprocess_page(&vars) {
if($_GET['q']=='node/123' || (arg(0) == 'node' && arg(1) == '123')) {
$vars['body_classes'] = $vars['body_classes'].' adminclasse';
}
}
?>
Wobei $_GET['q'] die relative URL (node/123) ist, ob es der Systempfad (Nicht-Alias (node/123)) bzw. auch ein Alias (content/meinalias) weiß ich nicht.
oder flexibler via arg(0) der erste Teil der URL (node) und arg(1) der zweite (123) arg(2)...
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).