developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.
Opened 13 years ago
Closed 13 years ago
#493 closed enhancement (duplicate)
HTML Transitional
Reported by: | benjamin | Owned by: | laurentj |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | jelix:core response | Version: | 1.0.2 |
Severity: | minor | Keywords: | jResponseHtml transitional |
Cc: | Blocked By: | ||
Blocking: | Documentation needed: | no | |
Hosting Provider: | Php version: |
Description
Salut, je sais que le (X)HTML transitional n'est pas bien et j'aimerais pouvoir toujours bosser en strict mais malheureusement la vie est parfois (souvent) injuste... Dans mon cas je me suis retrouvé avec un template de site en HTML 4 Transitional. Plutôt que de prendre du temps (que je n'avais pas) à le passer en strict, j'ai malgré tout voulu utiliser Jelix. Hors actuellement seuls les HTML et XHTML strict sont gérés. Du coup je me dis que la modification que j'ai fait pourrait servir à d'autre qui voudrait passer à Jelix et ses nombreux avantages sans pour autant se prendre la tête (au moins au début) sur le format du HTML.
Du coup, pour moi, la modification a été très simple et efficace.
J'ai modifié le 'jResponseHtml' dans lib/jelix/core/response
J'ai rajouté un attribut :
protected $_isTransitional = false;
plus les accesseurs qui vont bien :
/
- change the variant of (x)html for the output
- @param boolean $transitional true if you want transitional (x)html, false if you want strict (x)html */
final public function setTransitional($transitional = false){
$this->_isTransitional = $transitional;
} /
- says if the response will be transitional (x)html or not
- @return boolean true if it is transitional */
final public function isTransitional(){ return $this->_isTransitional; }
Ensuite, il suffit de modifier la méthode output avec quelque chose du genre:
final public function output(){
... if($this->_isXhtml){
if($this->_isTransitional){
echo '<!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 TransitionalEN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">', "\n";
}else{
echo '<!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 StrictEN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">', "\n";
} echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="',$this->_lang,'" lang="',$this->_lang,'">
';
}else{
if($this->_isTransitional){
echo '<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01 TransitionalEN">', "\n";
}else{
echo '<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01EN" "http://www.w3.org/TR/html4/strict.dtd">', "\n";
} echo '<html lang="',$this->_lang,'">';
}
Je pense que ça pourrait servir à certains qui n'ont pas (osés) passer le pas de Jelix...
Merci
Change History (1)
comment:1 Changed 13 years ago by laurentj
- Resolution set to duplicate
- Status changed from new to closed
ah ? depuis quand ? Un standard est un standard :-p
Non ça ne servira pas : ticket #440 ;-)