diff options
Diffstat (limited to 'lib/htmloutputter.php')
-rw-r--r-- | lib/htmloutputter.php | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index 8ad7dc20f..2ff9380cc 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -106,14 +106,16 @@ class HTMLOutputter extends XMLOutputter } } - header('Content-Type: '.$type); + header('Content-Type: '.$type.'; charset=UTF-8'); $this->extraHeaders(); - if( ! substr($type,0,strlen('text/html'))=='text/html' ){ - // Browsers don't like it when <?xml it output for non-xhtml documents + if (preg_match("/.*\/.*xml/", $type)) { + // Required for XML documents $this->xw->startDocument('1.0', 'UTF-8'); } - $this->xw->writeDTD('html'); + $this->xw->writeDTD('html', + '-//W3C//DTD XHTML 1.0 Strict//EN', + 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'); $language = $this->getLanguage(); @@ -412,4 +414,25 @@ class HTMLOutputter extends XMLOutputter $this->element('p', 'form_guide', $instructions); } } + + + /** + * Internal script to autofocus the given element on page onload. + * + * @param string $id element ID, must refer to an existing element + * + * @return void + * + */ + function autofocus($id) + { + $this->elementStart('script', array('type' => 'text/javascript')); + $this->raw('/*<![CDATA[*/'. + ' $(document).ready(function() {'. + ' var el = $("#' . $id . '");'. + ' if (el.length) { el.focus(); }'. + ' });'. + ' /*]]>*/'); + $this->elementEnd('script'); + } } |