예제 #1
0
 /**
  * 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>";
     }
 }