/** * returns page XML */ function getPageXML($first_load = 1, &$p) { global $gConf; $fdb = new DbForum(); $a = $fdb->getCategs(); reset($a); $c = ''; while (list(, $r) = each($a)) { $icon_url = $r['cat_icon'] ? $gConf['url']['icon'] . $r['cat_icon'] : ''; $c .= "<categ id=\"{$r['cat_id']}\" icon=\"{$icon_url}\">"; encode_post_text($r['cat_name'], 1); $c .= "<title>{$r['cat_name']}</title>"; if (isset($p['cat']) && (int) $p['cat'] == $r['cat_id'] || 1 == $r['cat_id']) { $c .= '<forums>' . $this->getForumsXML($r['cat_id'], 0) . '</forums>'; } $c .= "</categ>"; } $s = "<categs>{$c}</categs>"; if ($first_load && isset($p['action']) && 'goto' == $p['action'] && (int) $p['forum_id']) { $s .= "<onload>f.selectForum(" . (int) $p['forum_id'] . ", 0)</onload>"; } if ($first_load && isset($p['action']) && 'goto' == $p['action'] && (int) $p['topic_id']) { $s .= "<onload>f.selectTopic(" . (int) $p['topic_id'] . ")</onload>"; } // live tracker $lt = "<live_tracker>" . $this->getLivePostsXML() . "</live_tracker>"; $li = $this->_getLoginInfo(); eval($GLOBALS['l']('ICAgICAgICBpZiAoJGxpWydhZG1pbiddKQ0KICAgICAgICB7DQogICAgICAgICAgICAkb0FkbSA9IG5ldyBBZG1pbigpOw0KICAgICAgICAgICAgJGlDb2RlID0gJG9BZG0tPmdldENvZGUgKCRzTXNnKTsNCiAgICAgICAgICAgIGlmICgwICE9PSAkaUNvZGUgJiYgMTAgIT09ICRpQ29kZSkNCiAgICAgICAgICAgICAgICAkcyAuPSAnPGludmFsaWRfbGljZW5zZSAvPic7DQogICAgICAgICAgICBzZXRDb25maWdQYXJhbSgnZGlzYWJsZV9ib29uZXhfZm9vdGVycycsIDAgPT09ICRpQ29kZSA/IDEgOiAwKTsNCiAgICAgICAgfQ==')); if ($first_load) { return $this->addHeaderFooter($li, $s . $lt); } else { $cu = $this->getUrlsXml(); return "<root>{$cu}<logininfo>" . array2xml($li) . "</logininfo><page>{$s}{$lt}</page></root>"; } }