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 + -
显示快捷键?