rdf.php.t
来自「eGroupWare is a multi-user, web-based gr」· T 代码 · 共 489 行 · 第 1/2 页
T
489 行
$pc = @unserialize($r->poll_cache); if (!empty($pc)) { foreach ($pc as $o) { echo '<rdf:li> <content:item rdf:about="poll_opt"> <opt_title>'.sp($o[0]).'></opt_title> <opt_votes>'.$o[1].'</opt_votes> </content:item></rdf:li>'; } } } echo '</rdf:Bag></content:items>'; } echo '</item>'; } } if ($basic) { echo $basic_rss_header . "\t\t</rdf:Seq>\n\t</items>\n</channel>\n" . $basic_rss_data; } break; case 't': /* check for various supported limits * cat - category * frm - forum * id - topic id * ds - start date * de - date end * o - offset * n - number of rows to get * l - latest */ $lmt = " t.moved_to=0 AND m.apr=1"; if (isset($_GET['cat'])) { $lmt .= ' AND f.cat_id IN('.multi_id($_GET['cat']).')'; } if (isset($_GET['frm'])) { $lmt .= ' AND t.forum_id IN('.multi_id($_GET['frm']).')'; } if (isset($_GET['id'])) { $lmt .= ' AND t.id IN ('.multi_id($_GET['id']).')'; } if (isset($_GET['ds'])) { $lmt .= ' AND t.last_post_date >='.(int)$_GET['ds']; } if (isset($_GET['de'])) { $lmt .= ' AND t.last_post_date <='.(int)$_GET['de']; } /* This is an optimization so that the forum does not need to * go through the entire message db to fetch latest messages. * So, instead we set an arbitrary search limit if 5 days. */ if (isset($_GET['l']) && $lmt == " t.moved_to=0 AND m.apr=1") { $lmt .= ' AND t.last_post_date >=' . (__request_timestamp__ - 86400 * 5); } if ($FUD_OPT_2 & 33554432) { if ($RDF_AUTH_ID) { $join = ' INNER JOIN {SQL_TABLE_PREFIX}group_cache g1 ON g1.user_id=2147483647 AND g1.resource_id=f.id LEFT JOIN {SQL_TABLE_PREFIX}group_cache g2 ON g2.user_id='.$RDF_AUTH_ID.' AND g2.resource_id=f.id LEFT JOIN {SQL_TABLE_PREFIX}mod mm ON mm.forum_id=f.id AND mm.user_id='.$RDF_AUTH_ID.' '; $lmt .= " AND (mm.id IS NOT NULL OR ((CASE WHEN g2.id IS NOT NULL THEN g2.group_cache_opt ELSE g1.group_cache_opt END) & 2) > 0)"; } else { $join = ' INNER JOIN {SQL_TABLE_PREFIX}group_cache g1 ON g1.user_id=0 AND g1.resource_id=f.id '; $lmt .= " AND (g1.group_cache_opt & 2) > 0"; } } $c = uq('SELECT t.*, f.name AS frm_name, c.name AS cat_name, m.subject, m.post_stamp, m.poster_id, m2.subject AS lp_subject, u.alias FROM {SQL_TABLE_PREFIX}thread t INNER JOIN {SQL_TABLE_PREFIX}forum f ON t.forum_id=f.id INNER JOIN {SQL_TABLE_PREFIX}cat c ON c.id=f.cat_id INNER JOIN {SQL_TABLE_PREFIX}msg m ON t.root_msg_id=m.id INNER JOIN {SQL_TABLE_PREFIX}msg m2 ON t.last_post_id=m2.id LEFT JOIN {SQL_TABLE_PREFIX}users u ON m.poster_id=u.id '.$join.' WHERE ' . $lmt . (isset($_GET['l']) ? ' ORDER BY m.post_stamp DESC LIMIT ' : ' LIMIT ') . qry_limit($limit, $offset)); $res = 0; while ($r = db_rowobj($c)) { if (!$res) { header('Content-Type: text/xml'); echo '<?xml version="1.0" encoding="'.$charset.'"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns="http://purl.org/rss/1.0/"><channel rdf:about="'.__ROOT__.'"> <title>'.$FORUM_TITLE.' RDF feed</title> <link>'.__ROOT__.'</link> <description>'.$FORUM_TITLE.' RDF feed</description></channel>'; $res = 1; } if ($r->root_msg_id == $r->last_post_id) { $r->last_post_id = $r->lp_subject = $r->last_post_date = ''; } else { $r->last_post_date = gmdate('r', $r->last_post_date); } echo '<item> <topic_id>'.$r->id.'</topic_id> <topic_title>'.sp($r->subject).'</topic_title> <topic_creation_date>'.date('r', $r->post_stamp).'</topic_creation_date> <forum_id>'.$r->forum_id.'</forum_id> <forum_title>'.sp($r->frm_name).'</forum_title> <category_title>'.sp($r->cat_name).'</category_title> <author>'.sp($r->alias).'</author> <author_id>'.$r->poster_id.'</author_id> <replies>'.(int)$r->replies.'</replies> <views>'.(int)$r->views.'</views> <last_post_id>'.$r->last_post_id.'</last_post_id> <last_post_subj>'.sp($r->lp_subject).'</last_post_subj> <last_post_date>'.$r->last_post_date.'</last_post_date></item>'; } break; case 'u': /* check for various supported limits * pc - order by post count * rd - order by registration date * cl - show only currently online users * l - limit to 'l' rows * o - offset * n - max rows to fetch */ $lmt .= ' u.id>1 '; if (isset($_GET['pc'])) { $order_by = 'u.posted_msg_count'; } else if (isset($_GET['rd'])) { $order_by = 'u.join_date'; } else { $order_by = 'u.alias'; } if (isset($_GET['cl'])) { $lmt .= ' AND u.last_visit>='.(__request_timestamp__ - $LOGEDIN_TIMEOUT * 60); } if ($FUD_OPT_2 & 33554432) { if ($RDF_AUTH_ID) { $join = ' INNER JOIN {SQL_TABLE_PREFIX}group_cache g1 ON g1.user_id=2147483647 AND g1.resource_id=f.id LEFT JOIN {SQL_TABLE_PREFIX}group_cache g2 ON g2.user_id='.$RDF_AUTH_ID.' AND g2.resource_id=f.id LEFT JOIN {SQL_TABLE_PREFIX}mod mm ON mm.forum_id=f.id AND mm.user_id='.$RDF_AUTH_ID.' '; $perms = ", (CASE WHEN (mm.id IS NOT NULL OR ((CASE WHEN g2.id IS NOT NULL THEN g2.group_cache_opt ELSE g1.group_cache_opt END) & 2) > 0) THEN 1 ELSE 0 END) AS can_show_msg"; } else { $join = ' INNER JOIN {SQL_TABLE_PREFIX}group_cache g1 ON g1.user_id=0 AND g1.resource_id=f.id '; $perms = ", (g1.group_cache_opt & 2) > 0 AS can_show_msg"; } } else { $perms = ', 1 AS can_show_msg'; } $c = uq('SELECT u.id, u.alias, u.join_date, u.posted_msg_count, u.avatar_loc, u.users_opt, u.home_page, u.bday, u.last_visit, u.icq, u.aim, u.yahoo, u.msnm, u.jabber, u.affero, u.name, u.email, m.id AS msg_id, m.subject, m.thread_id, t.forum_id, f.name AS frm_name, c.name AS cat_name '.$perms.' FROM {SQL_TABLE_PREFIX}users u LEFT JOIN {SQL_TABLE_PREFIX}msg m ON m.id=u.u_last_post_id LEFT JOIN {SQL_TABLE_PREFIX}thread t ON m.thread_id=t.id LEFT JOIN {SQL_TABLE_PREFIX}forum f ON f.id=t.forum_id LEFT JOIN {SQL_TABLE_PREFIX}cat c ON c.id=f.cat_id '.$join.' WHERE ' . $lmt . ' ORDER BY ' . $order_by . ' DESC LIMIT ' . qry_limit($limit, $offset)); $res = 0; while ($r = db_rowobj($c)) { if (!$res) { header('Content-Type: text/xml'); echo '<?xml version="1.0" encoding="'.$charset.'"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns="http://purl.org/rss/1.0/"><channel rdf:about="'.__ROOT__.'"> <title>'.$FORUM_TITLE.' RDF feed</title> <link>'.__ROOT__.'</link> <description>'.$FORUM_TITLE.' RDF feed</description></channel>'; $res = 1; } if ($r->bday && $r->bday > 18500000) { $y = substr($r->bday, 0, 4); $m = substr($r->bday, 4, 2); $d = substr($r->bday, 6, 2); $r->bday = gmdate('r', gmmktime(1, 1, 1, $m, $d, y)); } else { $r->bday = ''; } $r->last_visit = ($r->last_visit && $r->last_visit > 631155661) ? gmdate('r', $r->last_visit) : ''; $r->join_date = ($r->join_date && $r->join_date > 631155661) ? gmdate('r', $r->join_date) : ''; if ($r->users_opt >= 16777216) { $r->avatar_loc = ''; } echo '<item> <user_id>'.$r->id.'</user_id> <user_login>'.sp($r->alias).'</user_login> <user_name>'.sp($r->name).'</user_name> <user_email>'.sp(email_format($r->email)).'</user_email> <post_count>'.(int)$r->posted_msg_count.'</post_count> <avatar_img>'.sp($r->avatar_loc).'</avatar_img> <homepage>'.sp(htmlspecialchars($r->homepage)).'</homepage> <bday>'.$r->bday.'</bday> <last_visit>'.$r->last_visit.'</last_visit> <reg_date>'.$r->join_date.'</reg_date> <im_icq>'.$r->icq.'</im_icq> <im_aim>'.sp($r->aim).'</im_aim> <im_yahoo>'.sp($r->yahoo).'</im_yahoo> <im_msnm>'.sp($r->msnm).'</im_msnm> <im_jabber>'.sp($r->msnm).'</im_jabber> <im_affero>'.sp($r->affero).'</im_affero>'; if ($r->subject && $r->can_show_msg) { echo '<m_subject>'.sp($r->subject).'</m_subject><m_id>'.$r->msg_id.'</m_id><m_thread_id>'.$r->thread_id.'</m_thread_id><m_forum_id>'.$r->forum_id.'</m_forum_id><m_forum_title>'.sp($r->frm_name).'</m_forum_title><m_cat_title>'.sp($r->cat_name).'</m_cat_title>'; } echo '</item>'; } break; } if (!empty($res)) { un_register_fps(); echo '</rdf:RDF>'; } else { exit('no data'); }?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?