X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Futil.php;h=8a05a346f08a5b4269045a810c54c7041c71f91a;hb=070eacb2e79f6d7bd7c1d4251aa49d53d0ce469f;hp=8148acdf78ad7bd901ae16ecd181f02f96a1c2ce;hpb=e18c5321c49e8559cea55d1130dbfe436f2867a7;p=quix0rs-gnu-social.git diff --git a/lib/util.php b/lib/util.php index 8148acdf78..8a05a346f0 100644 --- a/lib/util.php +++ b/lib/util.php @@ -36,50 +36,122 @@ function common_user_error($msg, $code=200) { common_show_footer(); } +$xw = null; + # Start an HTML element function common_element_start($tag, $attrs=NULL) { - print "<$tag"; + global $xw; + $xw->startElement($tag); if (is_array($attrs)) { foreach ($attrs as $name => $value) { - print " $name='$value'"; + $xw->writeAttribute($name, $value); } } else if (is_string($attrs)) { - print " class='$attrs'"; + $xw->writeAttribute('class', $attrs); } - print '>'; } function common_element_end($tag) { - print ""; + global $xw; + $xw->endElement(); } function common_element($tag, $attrs=NULL, $content=NULL) { common_element_start($tag, $attrs); - if ($content) print htmlspecialchars($content); + if ($content) { + global $xw; + $xw->text($content); + } common_element_end($tag); } function common_show_header($pagetitle) { - global $config; - common_element_start('html'); + global $config, $xw; + + header('Content-Type: application/xhtml+xml'); + + $xw = new XMLWriter(); + $xw->openURI('php://output'); + $xw->setIndent(true); + $xw->startDocument('1.0', 'UTF-8'); + $xw->writeDTD('html', '-//W3C//DTD XHTML 1.0 Strict//EN', + 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'); + + # FIXME: correct language for interface + + common_element_start('html', array('xmlns' => 'http://www.w3.org/1999/xhtml', + 'xml:lang' => 'en', + 'lang' => 'en')); + common_element_start('head'); common_element('title', NULL, $pagetitle . " - " . $config['site']['name']); + common_element('link', array('rel' => 'stylesheet', + 'type' => 'text/css', + 'href' => $config['site']['path'] . 'theme/default/style/html.css', + 'media' => 'screen, projection, tv')); + common_element('link', array('rel' => 'stylesheet', + 'type' => 'text/css', + 'href' => $config['site']['path'] . 'theme/default/style/layout.css', + 'media' => 'screen, projection, tv')); + common_element('link', array('rel' => 'stylesheet', + 'type' => 'text/css', + 'href' => $config['site']['path'] . 'theme/default/style/print.css', + 'media' => 'print')); common_element_end('head'); common_element_start('body'); + common_element_start('div', array('id' => 'wrapper')); + common_element_start('div', array('id' => 'content')); + common_element_start('div', array('id' => 'header')); common_element('h1', 'title', $pagetitle); + common_element('h2', 'subtitle', $config['site']['name']); + common_element_end('div'); common_head_menu(); + common_element_start('div', array('id' => 'page')); } function common_show_footer() { + global $xw, $config; + common_element_start('p', 'footer'); common_foot_menu(); + common_license_block(); + common_element_end('p'); + common_element_end('div'); + common_element_end('div'); + common_element_end('div'); common_element_end('body'); common_element_end('html'); + $xw->endDocument(); + $xw->flush(); +} + +function common_text($txt) { + global $xw; + $xw->text($txt); +} + +function common_license_block() { + global $config, $xw; + common_element_start('div', 'license'); + common_element_start('a', array('class' => 'license', + 'rel' => 'license', + href => $config['license']['url'])); + common_element('img', array('class' => 'license', + 'src' => $config['license']['image'], + 'alt' => $config['license']['title'])); + common_element_end('a'); + common_text(_t('Unless otherwise specified, contents of this site are copyright by the contributors and available under the ')); + common_element('a', array('class' => 'license', + 'rel' => 'license', + href => $config['license']['url']), + $config['license']['title']); + common_text(_t('. Contributors should be attributed by full name or nickname.')); + common_element_end('div'); } function common_head_menu() { $user = common_current_user(); - common_element_start('ul', 'headmenu'); + common_element_start('ul', array('id' => 'menu', 'class' => ($user) ? 'five' : 'three')); common_menu_item(common_local_url('doc', array('title' => 'help')), _t('Help')); if ($user) { @@ -123,6 +195,7 @@ function common_menu_item($url, $text, $title=NULL) { } function common_input($id, $label, $value=NULL) { + common_element_start('p'); common_element('label', array('for' => $id), $label); $attrs = array('name' => $id, 'type' => 'text', @@ -131,14 +204,31 @@ function common_input($id, $label, $value=NULL) { $attrs['value'] = htmlspecialchars($value); } common_element('input', $attrs); + common_element_end('p'); } function common_password($id, $label) { + common_element_start('p'); common_element('label', array('for' => $id), $label); $attrs = array('name' => $id, 'type' => 'password', 'id' => $id); common_element('input', $attrs); + common_element_end('p'); +} + +function common_submit($id, $label) { + global $xw; + common_element_start('p'); + common_element_start('label', array('for' => $id)); + $xw->writeRaw(' '); + common_element_end('label'); + common_element('input', array('type' => 'submit', + 'id' => $id, + 'name' => $id, + 'value' => $label, + 'class' => 'button')); + common_element_end('p'); } # salted, hashed passwords are stored in the DB