PunBB + PE

это не просто форум

30.05.2008 16:58:58 #1: Grace ↓ 

Опытный
Здесь с: 22.06.2007
Сообщений: 40

Делаем настоящий XHTML

Здесь и сейчас рассмотрим как перейти на настоящий XHTML. Если уж брать за основу вёрстку в XHTML, то указание одного доктайпа маловато будет.

1. По дефолту сервер передаёт нам html-файлы с типом text/html, но это уже "не модно" smile теперь же нам необходимо чтобы он передавал файлы с типом application/xhtml+xml. Для этого указываем в настройках сервера в каком типе передавать нам файлы (если доступа к настройкам нет, то это делается в файле .htaccess (если сервер Apache), который распологает в корневой директории сайта).

Код:

DefaultType application/xhtml+xml

2. Теперь нам надо непосредственно подготовить страницу для передачи её в виде XHTML.
Первым делом указываем что страница связана с XML. Данное действие необходимо лишь в том случае, если кодировка документа отлична от UTF-8! Здесь важным моментом является проблема с IE 6 (ну а как же без этого, хотя IE 7 здесь исправился, но далеко не до конца), дело в том, что IE 6 ищет доктайп только в первой строке, а когда не находит, то переключается в Quirks Mode (где ваш сайт может перекосячить весьма неплохо).

Код:

<?xml version="1.0" encoding="windows-1251" ?>

Дальше необходимо указать доктайп, здесь выбор различный, главное чтобы это был XHTML-документ. Например:

Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Так же необходимо добавить параметр xmlns в тег <html>, это необходимо чтобы обозначить принадлежность элементов на странице к  зарегистрированному для XHTML пространству имен, а так же дополнительно можно указать язык документа:

Код:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">

И в завершении необходимо указать в мета-теге то, что мы указывали в самом начале для сервера, а именно — тип документа с передаваемой информацией:

Код:

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />

Вот теперь у нас есть полноценный XHTML.
Шаблоны для PunBB/PE теперь выглядит следующим образом:

Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="<pun_content_direction>">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=<pun_char_encoding>" />
<pun_head>
</head>
<body>
...

пример подписи

Неактивен

 

31.05.2008 07:24:48 #2: artoodetoo ↓ 

Administrator
MArt Keepers
bmw-club
Откуда: Россия
Здесь с: 14.03.2007
Сообщений: 715
Вебсайт

Re: Делаем настоящий XHTML

интересно. может мне завести специальную группу "колумнисты" или "журналисты" и дать доступ к написанию "статей"?

Неактивен

 

03.06.2008 14:31:09 #3: Grace ↓ 

Опытный
Здесь с: 22.06.2007
Сообщений: 40

Re: Делаем настоящий XHTML

даже не знаю. а оно надо? %)


пример подписи

Неактивен

 

04.06.2008 05:42:41 #4: artoodetoo ↓ 

Administrator
MArt Keepers
bmw-club
Откуда: Россия
Здесь с: 14.03.2007
Сообщений: 715
Вебсайт

Re: Делаем настоящий XHTML

это зависит от активности пользователей, тебя в частности. мне бы хотелось создать условия, когда активные пользователи генерируют полезный контент.

Неактивен

 

04.06.2008 14:43:10 #5: Grace ↓ 

Опытный
Здесь с: 22.06.2007
Сообщений: 40

Re: Делаем настоящий XHTML

Надумал небольшое дополнение к первому посту по поводу улучшения предложенного, но столкнулся с досаднейшей ошибкой в IE7 (IE6 при этом работает вроде даже исправно) sad Который не отображает сайт если указан контент-тайп как application/xhtml+xml, он его просто предлагает скачать ибо не может определить тип и соответвенно не знает что с ним делать. Баг ли это и будут ли он пофиксен, неизвестно sad

Дело было в том, чтобы избавиться от запесей в .htaccess (тип/кодировка) и этой строчки в голове шаблона:

Код:

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=<pun_char_encoding>" />

тем самым сберегая спички на уменьшении кода 8) Да и по сути она не нужна, т.к. не используется так как надо, настройки сервера в данном случае имееют привелегию в данном вопросе.

Передавать заголовок и кодировку хотелось непосредственно средствами php. Касательно punbb нам надо было залезть в include/header.php, найти 33-ю строку где идут параметры заголовка и после них вставить эту строку:

Код:

header('Content-Type: application/xhtml+xml; charset=utf-8');

Но как всегда IE не перестаёт "радовать". Так что о полноценном xhtml придётся всем ненадолго позабыть, немногим смячает участь то, что xhtml так же позволяет передавать данные в text/html, то при этом документ не является xml-документом, а просто набором тегов.

Код:

header('Content-Type: text/html; charset=utf-8');

Отредактированно Grace (04.06.2008 14:46:09)


пример подписи

Неактивен

 

13.06.2008 13:41:38 #6: Grace ↓ 

Опытный
Здесь с: 22.06.2007
Сообщений: 40

Re: Делаем настоящий XHTML

Ха! Пришлось проделать небольшой финт ушами. Оказывается мы можем спросить у браузера поддерживает ли он указанный контент-тайп или нет, и тем самым кто поддерживает — отсылать application/xhtml+xml, а кто нет (IE) — text/html.
Для этого открываем include/header.php и вместо

Код:

header('Content-Type: text/html; charset=utf-8');

ставим это:

Код:

if ( stristr($_SERVER["HTTP_ACCEPT"], "application/xhtml+xml") ) {
            header('Content-Type: application/xhtml+xml; charset=utf-8');
        }
        else {
            header('Content-Type: text/html; charset=utf-8');
        }

пример подписи

Неактивен

 

31.07.2008 13:24:25 #7: Grace ↓ 

Опытный
Здесь с: 22.06.2007
Сообщений: 40

Re: Делаем настоящий XHTML

кстати настоятельно рекомендую использовать данную конструкцию на этапе отладки и разработки, уже нашел и пофиксил пару синтаксических ошибок


пример подписи

Неактивен

 

Board footer

Powered by PunBB + PE

Valid XHTML Valid CSS

[ Generated in 0.027 seconds, 9 queries executed ]