Ergebnis 1 bis 8 von 8

Thema: Doctype auf XHTML-MP 1.2

  1. #1
    Contao-Nutzer Avatar von sizta7
    Registriert seit
    02.09.2009.
    Beiträge
    194

    Standard Doctype auf XHTML-MP 1.2

    Hallo zusammen,

    ich bin gerade dabei eine Website für mobile Endgeräte zu erstellen und möchte gern den Doctype auf XHTML Basic 1.1, bzw. XHTML-MP 1.2 umändern, damit sie valide, bzw. "ok für mobile Endgeräte" ist. Da muss ich wohl im Template Hand anlegen, oder? Gibt es eine andere Möglichkeit einen anderen Typ zu verwenden? Bei der Doctypeauswahl gibt es ja bisher XHTML Transitional und Strict.

  2. #2
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Standard

    Guten Tach,

    entweder du machst es händisch im Template, oder du baust eine Erweiterung in welcher du die dca der tl_page um die entsprechenden Optionswerte ausbaust.

    Einfacher, schneller aber weniger nachhaltig ist allerdings erstere Variante.

  3. #3
    Contao-Nutzer Avatar von sizta7
    Registriert seit
    02.09.2009.
    Beiträge
    194

    Standard

    ..ja, ich dacht's mir.
    Dann werd ich mich wohl mal ans Template ranmachen müssen..
    (Schade, dass ich kein PHP Programmierer bin. Sonst würd' ich gleich mit der Erweiterung anfangen )

    Ist denn eigentlich was in der Richtung für zukünftige Versionen geplant?

  4. #4
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Frage

    Ich denke in Planung ist da nichts weiter.
    Allerdings ist da zum Erweitern nicht soo viel PHP-Kenntnis von Nöten.

    Kurz gesagt, lege dir einen Ordner unter system/modules an (z. Bsp. 'zDoctypes' > der z-Präfix garantiert die Ausführung am Ende des Modul-Ladevorgangs) und darin den Ordner 'dca' mit der Datei 'tl_layout.php'.

    (Datei > system/modules/zDoctypes/dca/tl_layout.php)
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    $GLOBALS['TL_DCA']['tl_layout']['fields']['doctype']['options'] = array('xhtml_strict''xhtml_trans''xhtml_basic''xhtml_mp');

    ?>
    'xhtml_strict' und 'xhtml_trans' sind die beizubehaltenden Contao-Voreinstellungen.

    Damit das ganze auch sprachlich funktioniert, muss die Sprachdatei, im Beispiel für Deutsch angelegt werden:
    (Datei > system/modules/zDoctypes/languages/de/tl_layout.php)
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    /* Kopie der übersetzten Voreinstellungen */
    // $GLOBALS['TL_LANG']['tl_layout']['xhtml_strict'] = 'XHTML Strict';
    // $GLOBALS['TL_LANG']['tl_layout']['xhtml_trans']  = 'XHTML Transitional';

    /* Ergänzend dazu die eigenen Übersetzungen */
    $GLOBALS['TL_LANG']['tl_layout']['xhtml_basic'] = 'XHTML Basic';
    $GLOBALS['TL_LANG']['tl_layout']['xhtml_mp'] = 'XHTML MP 1.2';

    ?>
    Jetzt dürfte die Auswahl der Doctype zur Verfügung stehen. Allerdings wird der entsprechende Doctype-String in der PageRegular.php in der Methode createTemplate in einem Switch für das Template erzeugt. Dafür lässt sich der generatePage-Hook verwenden.
    Um den Hook zu registrieren muss in der Erweiterung eine config.php angelegt werden.

    (Datei > system/modules/zDoctypes/config/config.php)
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    $GLOBALS['TL_HOOKS']['generatePage'][] = array('zDoctypes''generateDoctypes');

    ?>
    Jetzt brauchst du noch zu guter Letzt die Klasse zum Hook

    (Datei > system/modules/zDoctypes/zDoctypes.php)
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    class 
    zDoctypes extends PageRegular {
        public function 
    generateDoctypes(Database_Result $objPageDatabase_Result $objLayoutPageRegular $objPageRegular) {
            
    // DTD
            
    switch ($objLayout->doctype) {
                case 
    'xhtml_strict':
                    
    $objPageRegular->Template->doctype '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' "\n";
                    break;

                case 
    'xhtml_trans':
                    
    $objPageRegular->Template->doctype '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' "\n";
                    break;

                case 
    'xhtml_basic':
                    
    $objPageRegular->Template->doctype '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">' "\n";
                    break;

                case 
    'xhtml_mp':
                    
    $objPageRegular->Template->doctype '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">' "\n";
                    break;
            }
        }
    }

    ?>
    So könnte es gehen, habe es nicht getestet.
    Mehr zu HOOKs unter Contao, insbesondere generatePage.

    Viel Spass
    Geändert von david enke (26.10.2010 um 21:48 Uhr)

  5. #5
    Contao-Nutzer Avatar von sizta7
    Registriert seit
    02.09.2009.
    Beiträge
    194

    Standard

    Danke für Deine Anleitung.. hab das auch eben mal getestet (mit 2.9.1):
    Es läuft gut bis zur Auswahl der Doctypes.
    Wenn man dann aber das Layout (egal mit welchem Doctype - neue oder alte) speichern will, erscheint eine weisse Seite. Auch im Frontend.

  6. #6
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Standard

    Mach im Backend in den Einstellungen mal das Häkchen bei 'Fehler anzeigen'.
    Wenn du magst, kannst du mir auch gern mal die nötigen Doctypes zukommen lassen, dann schraub ich die Erweiterung gleich mal in die Extension Repository.

    EDIT: Erweiterung im Repository verfügbar
    Geändert von david enke (26.10.2010 um 21:47 Uhr)

  7. #7
    Contao-Nutzer Avatar von sizta7
    Registriert seit
    02.09.2009.
    Beiträge
    194

    Standard

    ok, ich hab die Erweiterung jetzt aus dem ER installiert, es klappt auch soweit ganz gut

    Man muss nur wissen, dass nun im Backend unter
    System > Einstellungen > Frontend-Einstellungen
    eine Liste mit den beiden Standard Doctypes XHTML Strict und Transitional auftaucht,
    und man dort zuerst die eigenen gewünschten Doctypes hinzufügen muss,
    bevor man im Layout welche auswählen kann.

    Wenn man die alle anhakt und speichert kann man auch im Layout das gewünschte Doctype einstellen.

    Funktioniert super soweit. Vielen 1000 Dank.

    Allerdings macht der veränderte Doctype noch keinen dazu passenden Code.
    Bei mir wird im W3C MobileOK Checker z.Bsp. noch über das "lang" attribut im Element html gemeckert:

    HTML-Code:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    und über "name" in a an folgender Stelle:

    HTML-Code:
    <a name="skipNavigation11" id="skipNavigation11" class="invisible">&nbsp;</a>
    Vermutlich scheint sich hier eine größere Baustelle aufzutun, wenn man nun die Templates an die entsprechenden Spezifikationen anpassen muss.
    Geändert von sizta7 (27.10.2010 um 09:28 Uhr)

  8. #8
    Contao-Nutzer Avatar von david enke
    Registriert seit
    26.06.2009.
    Beiträge
    96

    Standard

    Tjaaa, die Doctypes zu ändern ist noch nicht alles.
    Natürlich muss der Rest entsprechend valid sein

    Du kommst somit nicht drum herum, das Template anzupassen; womöglich fast alle von dir verwendeten.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Doctype Declaration (DTD)
    Von peterpostmaster im Forum Sonstiges zu Contao
    Antworten: 1
    Letzter Beitrag: 03.03.2011, 13:12
  2. Doctype-Fehlermeldung beim NL-Empfang
    Von ernieseinbert im Forum Newsletter
    Antworten: 1
    Letzter Beitrag: 13.10.2010, 15:50
  3. [themp3_player] XHTML Fehler
    Von Andreas im Forum Sonstige Erweiterungen
    Antworten: 1
    Letzter Beitrag: 29.10.2009, 08:58
  4. xhtml Validator
    Von Toflar im Forum Entwickler-Fragen
    Antworten: 3
    Letzter Beitrag: 12.10.2009, 21:12
  5. doctype im TinyMCE
    Von oliver im Forum Allgemeine Inhaltselemente
    Antworten: 1
    Letzter Beitrag: 24.06.2009, 18:46

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •