Standard-Theme Browserabhängig wählbar für Mobilgerät?
am 17.07.2006 - 14:51 Uhr in
Hallo,
vor einigen Wochen habe ich während eines langweiligen WM-Spiels Drupal installiert. Technisch gesehen erfolgreich, wenngleich ich noch nicht von allen technischen Möglichkeiten (Kategorien...) gebrauch mache, da mir hier dann doch noch ein wenig der Durchblick und die Zeit fehlt.
Gestern habe ich mir den 1&1 Pocket Web bestellt, der ja nur ein kleines Browserfenster hat. Ich würde Drupal nun gerne so einrichten, dass ich mit dem mobilen Browser ein ganz einfaches einspaltiges Layout habe. Mit dem PC hingegen jedes andere beliebige Theme. Lässt sich das rein über die Browserinformation lösen?
Notfalls könnte ich auch eine Subdomain anlegen, wie müssten dann die prefix-arrays in der Settings.php aussehen bei gleicher Userbase und gleichem Inhalt!.
Gibt es schon ein geeignetes Theme zu diesem Zweck? Mir würden die Primary-Links zu diesem Zweck absolut reichen. Ich will damit nur den Blog überwachen und meine RSS-News-Zusammenstellung lesen.
Ciao Holger
- Anmelden oder Registrieren um Kommentare zu schreiben
Das kannst Du per CSS
am 17.07.2006 - 16:00 Uhr
Das kannst Du per CSS lösen, siehe dazu auch http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=css+media .
vg
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Wie genau geht das?
am 17.07.2006 - 16:55 Uhr
Danke für die Antwort, ich vermute du spielst auf das media="handheld" an? Wo genau muss ich als Anfänger das jetzt bei Drupal umsetzen?
Bleibt noch die Frage nach einem geeigneten Theme oder css...
Ciao Holger
Es scheint zu gehen
am 18.07.2006 - 14:41 Uhr
O.K., ich habe jetzt in der page.tpl.php unterhalb von
<?php print $styles ?>
die Zeile
<link rel="stylesheet" media="handheld" href="/themes/xxx/handheld.css">
eingefügt. Zum Testen das media natürlich auf "screen" gesetzt. Das geänderte Stylesheet wird verwendet, wunderbar.
Im nächsten Schritt habe ich dann in der handheld.css folgenden Eintrag abgeändert:
#sidebar-left, #sidebar-right {
display:none;
}
Sollte das tatsächlich schon reichen? Oder hab' ich Anfänger da nen Bock geschossen?
Noch ne Frage, da ich mich nicht wirklich mit PHP auskenne: Gibt es im php-template die Möglichkeit je nach Browser bzw. media-type auf einen anderen Code innerhalb des templates zu verzweigen um zum Beispiel die Kopfzeile anders zu gestalten? Wie ginge das? Angabe der if-Bedingung reicht schon.
Ciao Holger
P.S.: Warum wird dieser Beitrag nicht im Forum "Allgemeines zu Drupal" in der Übersicht dargestellt, sondern nur unter "aktive Diskussionen", ist das Forum moderiert oder hab ich irgendwo nen Fehler gemacht?
Gelöst über Sub-Domain
am 18.07.2006 - 21:37 Uhr
Andernorts musste ich lesen, dass media="handheld" nur von den wenigsten Mobilgeräten beachtet wird bzw. sich diese nicht entsprechend identifizieren.
Ich habe nun eine Subdomain eingerichtet und die Datei /sites/sub.domain/settings.php angepasst:
$conf = array(
'site_name' => 'Mobiler Zugang',
'theme_default' => 'mytheme-pda',
'anonymous' => 'Besucher-PDA'
);
Die angepasste Kopie des Theme musste ich natürlich vorher noch aktivieren...
Die Lösung über die Subdomain ist vermutlich ohnehin die elegantere, denn man will ja seine User nicht bevormunden und wenn die PDA-Userlieber dreispaltig arbeiten wollen, dann sollen sie doch...
Ciao Holger
Das direkte Eintragen
am 18.07.2006 - 23:14 Uhr
Das direkte Eintragen von
<?php
<link rel="stylesheet" media="handheld" href="/themes/xxx/handheld.css">
?>
in der "page.tpl.php" funktioniert zwar, aber Du könntest das auch mehr Drupal-like lösen, in dem Du an gleicher Stelle
<?php
theme_add_style('themes/your_theme/handheld.css', 'handheld');
?>
verwendest.
-------------
quiptime
Da geht noch was.
h99 schrieb:Im nächsten
am 18.07.2006 - 23:22 Uhr
Im nächsten Schritt habe ich dann in der handheld.css folgenden Eintrag abgeändert:
#sidebar-left, #sidebar-right {
display:none;
}
Sollte das tatsächlich schon reichen? Oder hab' ich Anfänger da nen Bock geschossen?
Einen Bock hast Du nicht geschossen, aber ich möchte trotzdem was zu denken geben.
Mit "display: none" wird der damit betroffene Code zwar nicht angezeigt, aber er wird zum Handheld übertragen.
Wenn also Übertragungsvolumen eine Rolle spielen - bei Handheldseiten wohl meist der Fall, werden sich die "display: none" - Daten auf das Volumen auswirken. Wenn Du diese Daten also nicht nur ausblenden willst sondern erst gar nicht zum Handheld übertragen, musst Du Dir was entsprechendes einfallen lassen.
-------------
quiptime
Da geht noch was.
Schon klar
am 19.07.2006 - 20:55 Uhr
Hallo quip,
heute morgen unter der Dusche bin ich selbst drauf gekommen, dass ein display:none unsinnig ist, da die sidebars hiermit nur optisch entfernt werden. Aber mit der Lösung über Subdomain und eigenem Theme kann ich ja jetzt die Templates anpassen.
Zu deiner 1. Antwort:
In der ersten Box setzt du das
<link rel=...>
in php-tags. Ich bin zwar php-Anfänger kann mir aber nicht vorstellen, dass das so stimmt? IMHO müsste die HTML-Syntax doch außerhalb der php-tags stehen oder innerhalb mit "print" eingebaut sein???Das zweite Beispiel fällt aber auch flach, da sich ja viele Handheld-Geräte - wie oben geschrieben - gar nicht als solche identifizieren (Habe ich andernorts gelesen). Außerdem bliebe immer noch das Template-Problem, alleine mit css lässt sich das ja nicht lösen. Es wäre also noch eine bedingte Verzweigung innerhal der page.tpl.php erforderlich, die Inhalte media- oder browser-abhängig darstellen bzw. weglassen.
Ciao und Danke, Holger
Für mein 1. Beispiel hätte
am 19.07.2006 - 21:35 Uhr
Für mein 1. Beispiel hätte ich besser einen Codebereich zum Darstellen der einen Zeile verwenden sollen. Die beiden PHP-Tags gehören nicht zur Funktion sondern halten im Post nur die eine Codezeile.
Also dann so:
<link rel="stylesheet" media="handheld" href="/themes/xxx/handheld.css">
Den Codebereich habe ich nicht gewählt, weil in ihm der Code in schmalen Browserfenstern umgebrochen wird.
Du kannst es nicht wissen. Ich wiederhole mich jetzt hier im Forum.
Wann endlich kriegt man seitens drupalcenter.de die Angelegenheit mit den Codebereichen in den Griff?
Siehe dazu auch meine Post's in : http://www.drupalcenter.de/node/1207
-------------
quiptime
Da geht noch was.
Mein 2. Beispiel sollte
am 19.07.2006 - 21:40 Uhr
Mein 2. Beispiel sollte lediglich auf die andere Form des Einbindens einer CSS-Datei hinweisen, zumal Du ja bereits selbst festgestellt hast, das es mit "handheld" Probleme gibt.
Sorry, hätte mich deutlicher ausdrücken sollen. Verstehe es einfach als Hinweis für spätere und/oder andere Anwendungsfälle.
-------------
quiptime
Da geht noch was.
oga identifiziert sich als handheld
am 23.07.2006 - 23:58 Uhr
Nur der Vollständigkeit halber: Mein ogo (= 1&1 PocketWeb) ist jetzt da, klappt alles wunderbar und der identifziert sich sogar als media:handheld dadurch ergeben sich noch weitere Möglichkeiten für zusätzliche css-Anpassungen.