--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/bbpress/includes/core/template-loader.php Tue Dec 04 18:43:10 2012 -0800
@@ -0,0 +1,468 @@
+<?php
+
+/**
+ * bbPress Template Loader
+ *
+ * @package bbPress
+ * @subpackage TemplateLoader
+ */
+
+// Exit if accessed directly
+if ( !defined( 'ABSPATH' ) ) exit;
+
+/**
+ * Possibly intercept the template being loaded
+ *
+ * Listens to the 'template_include' filter and waits for any bbPress specific
+ * template condition to be met. If one is met and the template file exists,
+ * it will be used; otherwise
+ *
+ * Note that the _edit() checks are ahead of their counterparts, to prevent them
+ * from being stomped on accident.
+ *
+ * @since bbPress (r3032)
+ *
+ * @param string $template
+ *
+ * @uses bbp_is_single_user() To check if page is single user
+ * @uses bbp_get_single_user_template() To get user template
+ * @uses bbp_is_single_user_edit() To check if page is single user edit
+ * @uses bbp_get_single_user_edit_template() To get user edit template
+ * @uses bbp_is_single_view() To check if page is single view
+ * @uses bbp_get_single_view_template() To get view template
+ * @uses bbp_is_forum_edit() To check if page is forum edit
+ * @uses bbp_get_forum_edit_template() To get forum edit template
+ * @uses bbp_is_topic_merge() To check if page is topic merge
+ * @uses bbp_get_topic_merge_template() To get topic merge template
+ * @uses bbp_is_topic_split() To check if page is topic split
+ * @uses bbp_get_topic_split_template() To get topic split template
+ * @uses bbp_is_topic_edit() To check if page is topic edit
+ * @uses bbp_get_topic_edit_template() To get topic edit template
+ * @uses bbp_is_reply_edit() To check if page is reply edit
+ * @uses bbp_get_reply_edit_template() To get reply edit template
+ * @uses bbp_set_theme_compat_template() To set the global theme compat template
+ *
+ * @return string The path to the template file that is being used
+ */
+function bbp_template_include_theme_supports( $template = '' ) {
+
+ // Editing a user
+ if ( bbp_is_single_user_edit() && ( $new_template = bbp_get_single_user_edit_template() ) ) :
+
+ // User favorites
+ elseif ( bbp_is_favorites() && ( $new_template = bbp_get_favorites_template() ) ) :
+
+ // User favorites
+ elseif ( bbp_is_subscriptions() && ( $new_template = bbp_get_subscriptions_template() ) ) :
+
+ // Viewing a user
+ elseif ( bbp_is_single_user() && ( $new_template = bbp_get_single_user_template() ) ) :
+
+ // Single View
+ elseif ( bbp_is_single_view() && ( $new_template = bbp_get_single_view_template() ) ) :
+
+ // Forum edit
+ elseif ( bbp_is_forum_edit() && ( $new_template = bbp_get_forum_edit_template() ) ) :
+
+ // Single Forum
+ elseif ( bbp_is_single_forum() && ( $new_template = bbp_get_single_forum_template() ) ) :
+
+ // Forum Archive
+ elseif ( bbp_is_forum_archive() && ( $new_template = bbp_get_forum_archive_template() ) ) :
+
+ // Topic merge
+ elseif ( bbp_is_topic_merge() && ( $new_template = bbp_get_topic_merge_template() ) ) :
+
+ // Topic split
+ elseif ( bbp_is_topic_split() && ( $new_template = bbp_get_topic_split_template() ) ) :
+
+ // Topic edit
+ elseif ( bbp_is_topic_edit() && ( $new_template = bbp_get_topic_edit_template() ) ) :
+
+ // Single Topic
+ elseif ( bbp_is_single_topic() && ( $new_template = bbp_get_single_topic_template() ) ) :
+
+ // Topic Archive
+ elseif ( bbp_is_topic_archive() && ( $new_template = bbp_get_topic_archive_template() ) ) :
+
+ // Editing a reply
+ elseif ( bbp_is_reply_edit() && ( $new_template = bbp_get_reply_edit_template() ) ) :
+
+ // Single Reply
+ elseif ( bbp_is_single_reply() && ( $new_template = bbp_get_single_reply_template() ) ) :
+
+ // Editing a topic tag
+ elseif ( bbp_is_topic_tag_edit() && ( $new_template = bbp_get_topic_tag_edit_template() ) ) :
+
+ // Viewing a topic tag
+ elseif ( bbp_is_topic_tag() && ( $new_template = bbp_get_topic_tag_template() ) ) :
+ endif;
+
+ // bbPress template file exists
+ if ( !empty( $new_template ) ) {
+
+ // Override the WordPress template with a bbPress one
+ $template = $new_template;
+
+ // @see: bbp_template_include_theme_compat()
+ bbpress()->theme_compat->bbpress_template = true;
+ }
+
+ return apply_filters( 'bbp_template_include_theme_supports', $template );
+}
+
+/** Custom Functions **********************************************************/
+
+/**
+ * Attempt to load a custom bbPress functions file, similar to each themes
+ * functions.php file.
+ *
+ * @since bbPress (r3732)
+ *
+ * @global string $pagenow
+ * @uses bbp_locate_template()
+ */
+function bbp_load_theme_functions() {
+ global $pagenow;
+
+ // If bbPress is being deactivated, do not load any more files
+ if ( bbp_is_deactivation() )
+ return;
+
+ if ( ! defined( 'WP_INSTALLING' ) || ( !empty( $pagenow ) && ( 'wp-activate.php' !== $pagenow ) ) ) {
+ bbp_locate_template( 'bbpress-functions.php', true );
+ }
+}
+
+/** Individual Templates ******************************************************/
+
+/**
+ * Get the user profile template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_displayed_user_id()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_single_user_template() {
+ $nicename = bbp_get_displayed_user_field( 'user_nicename' );
+ $user_id = bbp_get_displayed_user_id();
+ $templates = array(
+ 'single-user-' . $nicename . '.php', // Single User nicename
+ 'single-user-' . $user_id . '.php', // Single User ID
+ 'single-user.php', // Single User
+ 'user.php', // User
+ );
+ return bbp_get_query_template( 'profile', $templates );
+}
+
+/**
+ * Get the user profile edit template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_displayed_user_id()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_single_user_edit_template() {
+ $nicename = bbp_get_displayed_user_field( 'user_nicename' );
+ $user_id = bbp_get_displayed_user_id();
+ $templates = array(
+ 'single-user-edit-' . $nicename . '.php', // Single User Edit nicename
+ 'single-user-edit-' . $user_id . '.php', // Single User Edit ID
+ 'single-user-edit.php', // Single User Edit
+ 'user-edit.php', // User Edit
+ 'user.php', // User
+ );
+ return bbp_get_query_template( 'profile_edit', $templates );
+}
+
+/**
+ * Get the user favorites template
+ *
+ * @since bbPress (r4225)
+ *
+ * @uses bbp_get_displayed_user_id()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_favorites_template() {
+ $nicename = bbp_get_displayed_user_field( 'user_nicename' );
+ $user_id = bbp_get_displayed_user_id();
+ $templates = array(
+ 'single-user-favorites-' . $nicename . '.php', // Single User Favs nicename
+ 'single-user-favorites-' . $user_id . '.php', // Single User Favs ID
+ 'favorites-' . $nicename . '.php', // Favorites nicename
+ 'favorites-' . $user_id . '.php', // Favorites ID
+ 'favorites.php', // Favorites
+ 'user.php', // User
+ );
+ return bbp_get_query_template( 'favorites', $templates );
+}
+
+/**
+ * Get the user subscriptions template
+ *
+ * @since bbPress (r4225)
+ *
+ * @uses bbp_get_displayed_user_id()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_subscriptions_template() {
+ $nicename = bbp_get_displayed_user_field( 'user_nicename' );
+ $user_id = bbp_get_displayed_user_id();
+ $templates = array(
+ 'single-user-subscriptions-' . $nicename . '.php', // Single User Subs nicename
+ 'single-user-subscriptions-' . $user_id . '.php', // Single User Subs ID
+ 'subscriptions-' . $nicename . '.php', // Subscriptions nicename
+ 'subscriptions-' . $user_id . '.php', // Subscriptions ID
+ 'subscriptions.php', // Subscriptions
+ 'user.php', // User
+ );
+ return bbp_get_query_template( 'subscriptions', $templates );
+}
+
+/**
+ * Get the view template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_view_id()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_single_view_template() {
+ $view_id = bbp_get_view_id();
+ $templates = array(
+ 'single-view-' . $view_id . '.php', // Single View ID
+ 'view-' . $view_id . '.php', // View ID
+ 'single-view.php', // Single View
+ 'view.php', // View
+ );
+ return bbp_get_query_template( 'single_view', $templates );
+}
+
+/**
+ * Get the single forum template
+ *
+ * @since bbPress (r3922)
+ *
+ * @uses bbp_get_forum_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_single_forum_template() {
+ $templates = array(
+ 'single-' . bbp_get_forum_post_type() . '.php' // Single Forum
+ );
+ return bbp_get_query_template( 'single_forum', $templates );
+}
+
+/**
+ * Get the forum archive template
+ *
+ * @since bbPress (r3922)
+ *
+ * @uses bbp_get_forum_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_forum_archive_template() {
+ $templates = array(
+ 'archive-' . bbp_get_forum_post_type() . '.php' // Forum Archive
+ );
+ return bbp_get_query_template( 'forum_archive', $templates );
+}
+
+/**
+ * Get the forum edit template
+ *
+ * @since bbPress (r3566)
+ *
+ * @uses bbp_get_topic_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_forum_edit_template() {
+ $templates = array(
+ 'single-' . bbp_get_forum_post_type() . '-edit.php' // Single Forum Edit
+ );
+ return bbp_get_query_template( 'forum_edit', $templates );
+}
+
+/**
+ * Get the single topic template
+ *
+ * @since bbPress (r3922)
+ *
+ * @uses bbp_get_topic_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_single_topic_template() {
+ $templates = array(
+ 'single-' . bbp_get_topic_post_type() . '.php'
+ );
+ return bbp_get_query_template( 'single_topic', $templates );
+}
+
+/**
+ * Get the topic archive template
+ *
+ * @since bbPress (r3922)
+ *
+ * @uses bbp_get_topic_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_topic_archive_template() {
+ $templates = array(
+ 'archive-' . bbp_get_topic_post_type() . '.php' // Topic Archive
+ );
+ return bbp_get_query_template( 'topic_archive', $templates );
+}
+
+/**
+ * Get the topic edit template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_topic_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_topic_edit_template() {
+ $templates = array(
+ 'single-' . bbp_get_topic_post_type() . '-edit.php' // Single Topic Edit
+ );
+ return bbp_get_query_template( 'topic_edit', $templates );
+}
+
+/**
+ * Get the topic split template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_topic_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_topic_split_template() {
+ $templates = array(
+ 'single-' . bbp_get_topic_post_type() . '-split.php', // Topic Split
+ );
+ return bbp_get_query_template( 'topic_split', $templates );
+}
+
+/**
+ * Get the topic merge template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_topic_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_topic_merge_template() {
+ $templates = array(
+ 'single-' . bbp_get_topic_post_type() . '-merge.php', // Topic Merge
+ );
+ return bbp_get_query_template( 'topic_merge', $templates );
+}
+
+/**
+ * Get the single reply template
+ *
+ * @since bbPress (r3922)
+ *
+ * @uses bbp_get_reply_post_type()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_single_reply_template() {
+ $templates = array(
+ 'single-' . bbp_get_reply_post_type() . '.php'
+ );
+ return bbp_get_query_template( 'single_reply', $templates );
+}
+
+/**
+ * Get the reply edit template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_reply_post_type()
+ * @uses bbp_get_query_template()
+* @return string Path to template file
+ */
+function bbp_get_reply_edit_template() {
+ $templates = array(
+ 'single-' . bbp_get_reply_post_type() . '-edit.php' // Single Reply Edit
+ );
+ return bbp_get_query_template( 'reply_edit', $templates );
+}
+
+/**
+ * Get the topic template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_topic_tag_tax_id()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_topic_tag_template() {
+ $tt_slug = bbp_get_topic_tag_slug();
+ $tt_id = bbp_get_topic_tag_tax_id();
+ $templates = array(
+ 'taxonomy-' . $tt_slug . '.php', // Single Topic Tag slug
+ 'taxonomy-' . $tt_id . '.php', // Single Topic Tag ID
+ );
+ return bbp_get_query_template( 'topic_tag', $templates );
+}
+
+/**
+ * Get the topic edit template
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses bbp_get_topic_tag_tax_id()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_topic_tag_edit_template() {
+ $tt_slug = bbp_get_topic_tag_slug();
+ $tt_id = bbp_get_topic_tag_tax_id();
+ $templates = array(
+ 'taxonomy-' . $tt_slug . '-edit.php', // Single Topic Tag Edit slug
+ 'taxonomy-' . $tt_id . '-edit.php' // Single Topic Tag Edit ID
+ );
+ return bbp_get_query_template( 'topic_tag_edit', $templates );
+}
+
+/**
+ * Get the templates to use as the endpoint for bbPress template parts
+ *
+ * @since bbPress (r3311)
+ *
+ * @uses apply_filters()
+ * @uses bbp_set_theme_compat_templates()
+ * @uses bbp_get_query_template()
+ * @return string Path to template file
+ */
+function bbp_get_theme_compat_templates() {
+ $templates = array(
+ 'plugin-bbpress.php',
+ 'bbpress.php',
+ 'forums.php',
+ 'forum.php',
+ 'generic.php',
+ 'page.php',
+ 'single.php',
+ 'index.php'
+ );
+ return bbp_get_query_template( 'bbpress', $templates );
+}