Exemple #1
0
/**
 * Calculates the bible references for an activity before it is saved
 *
 * @param $activity
 */
function bfox_bp_activity_before_save($activity)
{
    global $bp;
    // For blog posts, index the full post content and tags
    if ($activity->component == $bp->blogs->id && $activity->type == 'new_blog_post') {
        switch_to_blog($activity->item_id);
        $ref = bfox_blog_post_get_ref($activity->secondary_item_id);
        restore_current_blog();
    } elseif ($activity->component == $bp->groups->id && ($activity->type == 'new_forum_post' || $activity->type == 'new_forum_topic')) {
        // Get the forum post
        if ($activity->type == 'new_forum_topic') {
            list($post) = bp_forums_get_topic_posts(array('topic_id' => $activity->secondary_item_id, 'per_page' => 1));
        } else {
            $post = bp_forums_get_post($activity->secondary_item_id);
        }
        // Index the post text
        $ref = bfox_ref_from_content($post->post_text);
        // Only index the tags for the first post in a topic
        if ($activity->type == 'new_forum_topic') {
            $tags = bb_get_topic_tags($post->topic_id, array('fields' => 'names'));
            foreach ($tags as $tag) {
                $ref->add_ref(bfox_ref_from_tag($tag));
            }
        }
    } else {
        $ref = bfox_ref_from_content($activity->content);
    }
    // Add any 'Bible Tag' read passage strings
    if ('activity_update' == $activity->type && isset($_REQUEST['bfox_read_ref_str'])) {
        $tag_ref = new BfoxRef($_REQUEST['bfox_read_ref_str']);
        if ($tag_ref->is_valid()) {
            $activity->bfox_read_ref_str = $tag_ref->get_string();
            $activity->action = str_replace('posted an update', __('posted an update about ', 'bfox') . $activity->bfox_read_ref_str, $activity->action);
            $ref->add_ref($tag_ref);
        }
    }
    if ($ref->is_valid()) {
        $activity->bfox_ref = $ref;
    }
}
 /**
  * Constructor method.
  *
  * @param int $topic_id ID of the topic whose posts are being requested.
  * @param int $per_page Number of items to return per page.
  * @param int $max Max records to return.
  * @param string $order Direction to order results.
  */
 function __construct($topic_id, $per_page, $max, $order)
 {
     global $bp, $current_user, $forum_template;
     if (!isset($forum_template)) {
         $forum_template = new stdClass();
     }
     $this->pag_page = isset($_REQUEST['topic_page']) ? intval($_REQUEST['topic_page']) : 1;
     $this->pag_num = isset($_REQUEST['num']) ? intval($_REQUEST['num']) : $per_page;
     $this->order = $order;
     $this->topic_id = $topic_id;
     $forum_template->topic = (object) bp_forums_get_topic_details($this->topic_id);
     $this->forum_id = $forum_template->topic->forum_id;
     $this->posts = bp_forums_get_topic_posts(array('topic_id' => $this->topic_id, 'page' => $this->pag_page, 'per_page' => $this->pag_num, 'order' => $this->order));
     if (!$this->posts) {
         $this->post_count = 0;
         $this->total_post_count = 0;
     } else {
         if (!$max || $max >= (int) $forum_template->topic->topic_posts) {
             $this->total_post_count = (int) $forum_template->topic->topic_posts;
         } else {
             $this->total_post_count = (int) $max;
         }
         if ($max) {
             if ($max >= count($this->posts)) {
                 $this->post_count = count($this->posts);
             } else {
                 $this->post_count = (int) $max;
             }
         } else {
             $this->post_count = count($this->posts);
         }
     }
     // Load topic tags
     $this->topic_tags = bb_get_topic_tags($this->topic_id);
     $this->pag = new stdClass();
     if ((int) $this->total_post_count && (int) $this->pag_num) {
         $this->pag_links = paginate_links(array('base' => add_query_arg(array('topic_page' => '%#%', 'num' => (int) $this->pag_num)), 'format' => '', 'total' => ceil((int) $this->total_post_count / (int) $this->pag_num), 'current' => $this->pag_page, 'prev_text' => _x('←', 'Forum thread pagination previous text', 'buddypress'), 'next_text' => _x('→', 'Forum thread pagination next text', 'buddypress'), 'mid_size' => 1));
         $this->pag->total_pages = ceil((int) $this->total_post_count / (int) $this->pag_num);
     } else {
         $this->pag->total_pages = 1;
     }
 }
Exemple #3
0
function get_socialit()
{
    global $socialit_plugopts, $bbdb, $public_tags, $socialit_is_mobile, $socialit_is_bot;
    $dont_get_si = false;
    $topic = get_topic(get_topic_id());
    if (class_exists('Support_Forum') && $topic) {
        //compatibility with Support Forum plugin for bbPress
        $support_forum = new Support_Forum();
        if ($support_forum->isActive() && in_array($topic->forum_id, $support_forum->enabled)) {
            if ($socialit_plugopts['sfpnonres'] == "no" && $support_forum->getTopicStatus() == "no" || $socialit_plugopts['sfpres'] == "no" && $support_forum->getTopicStatus() == "yes" || $socialit_plugopts['sfpnonsup'] == "no" && $support_forum->getTopicStatus() == "mu") {
                $dont_get_si = true;
            }
        }
    }
    if ($socialit_plugopts['mobile-hide'] == 'yes' && ($socialit_is_mobile || $socialit_is_bot)) {
        $dont_get_si = true;
    }
    if (bb_is_topic() && bb_get_topicmeta($topic->topic_id, 'hide_socialit') == true) {
        $dont_get_si = true;
    }
    if (!$dont_get_si) {
        if (bb_is_topic()) {
            $perms = urlencode(get_topic_link());
            $title = get_topic_title();
            $feedperms = strtolower($perms);
            // Grab post tags for Twittley tags. If there aren't any, use default tags set in plugin options page
            $get_tags = bb_get_topic_tags(get_topic_id());
            if ($get_tags) {
                foreach ($get_tags as $tag) {
                    $keywords = $keywords . $tag->name . ',';
                }
            }
            $topic_id_ft = get_topic_id();
            //topic id for getting text
            $first_post = (int) $bbdb->get_var("SELECT post_id FROM {$bbdb->posts} WHERE topic_id = {$topic_id_ft} ORDER BY post_id ASC LIMIT 1");
            $socialit_content = get_post_text($first_post);
        } else {
            $perms = socialit_get_current_url();
            $title = bb_get_title();
            $feedperms = strtolower($perms);
            $socialit_content = bb_get_option('description');
        }
        if (strlen($title) >= 80) {
            $short_title = urlencode(substr($title, 0, 80) . "[..]");
        } else {
            $short_title = urlencode($title);
        }
        $title = urlencode($title);
        $site_name = bb_get_option('name');
        $socialit_content = urlencode(substr(strip_tags(strip_shortcodes($socialit_content)), 0, 300));
        $socialit_content = socialit_change_plus_apos($socialit_content);
        $mail_subject = socialit_change_plus_apos($title);
        $post_summary = stripslashes($socialit_content);
        if (!empty($keywords)) {
            $d_tags = $keywords;
        } else {
            $d_tags = $socialit_plugopts['defaulttags'];
        }
        $site_name = bb_get_option('name');
        $y_cat = $socialit_plugopts['ybuzzcat'];
        $y_med = $socialit_plugopts['ybuzzmed'];
        $t_cat = $socialit_plugopts['twittcat'];
        $short_url = socialit_get_fetch_url();
        $current_rss_link = socialit_get_current_rss_link();
        // Temporary fix for bug that breaks layout when using NextGen Gallery plugin
        if (strpos($post_summary, '[') || strpos($post_summary, ']')) {
            $post_summary = "";
        }
        if (strpos($socialit_content, '[') || strpos($socialit_content, ']')) {
            $socialit_content = "";
        }
        // select the background
        if (!isset($socialit_plugopts['bgimg-yes'])) {
            $bgchosen = '';
        } elseif ($socialit_plugopts['bgimg'] == 'sexy') {
            $bgchosen = ' social-it-bg-sexy';
        } elseif ($socialit_plugopts['bgimg'] == 'caring') {
            $bgchosen = ' social-it-bg-caring';
        } elseif ($socialit_plugopts['bgimg'] == 'care-old') {
            $bgchosen = ' social-it-bg-caring-old';
        } elseif ($socialit_plugopts['bgimg'] == 'love') {
            $bgchosen = ' social-it-bg-love';
        } elseif ($socialit_plugopts['bgimg'] == 'wealth') {
            $bgchosen = ' social-it-bg-wealth';
        } elseif ($socialit_plugopts['bgimg'] == 'enjoy') {
            $bgchosen = ' social-it-bg-enjoy';
        }
        $style = $socialit_plugopts['autocenter'] ? '' : ' style="' . __($socialit_plugopts['xtrastyle']) . '"';
        $isfeed = bb_is_feed();
        if ($isfeed) {
            $style = '';
        }
        // do not add inline styles to the feed.
        $expand = $socialit_plugopts['expand'] ? ' social-it-expand' : '';
        if ($socialit_plugopts['autocenter'] == 1) {
            $autocenter = ' social-it-center';
        } elseif ($socialit_plugopts['autocenter'] == 2) {
            $autocenter = ' social-it-spaced';
        } else {
            $autocenter = '';
        }
        //write the menu
        $socials = "\n\n" . '<!-- Start Of Code Generated By Social It Plugin By www.gaut.am -->' . "\n" . '<div class="social-it' . $expand . $autocenter . $bgchosen . '"' . $style . '><ul class="socials">';
        foreach ($socialit_plugopts['bookmark'] as $name) {
            if ($name == 'socialit-twitter') {
                $socials .= bookmark_list_item($name, array('post_by' => !empty($socialit_plugopts['twittid']) ? "(via+@" . $socialit_plugopts['twittid'] . ")" : '', 'short_title' => $short_title, 'fetch_url' => $short_url));
            } elseif ($name == 'socialit-mail') {
                $socials .= bookmark_list_item($name, array('title' => $mail_subject, 'post_summary' => $post_summary, 'permalink' => $perms));
            } elseif ($name == 'socialit-diigo') {
                $socials .= bookmark_list_item($name, array('socialit_teaser' => $socialit_content, 'permalink' => $perms, 'title' => $title));
            } elseif ($name == 'socialit-linkedin') {
                $socials .= bookmark_list_item($name, array('post_summary' => $post_summary, 'site_name' => $site_name, 'permalink' => $perms, 'title' => $title));
            } elseif ($name == 'socialit-comfeed') {
                $socials .= bookmark_list_item($name, array('permalink' => $current_rss_link));
            } elseif ($name == 'socialit-yahoobuzz') {
                $socials .= bookmark_list_item($name, array('permalink' => $perms, 'title' => $title, 'yahooteaser' => $socialit_content, 'yahoocategory' => $y_cat, 'yahoomediatype' => $y_med));
            } elseif ($name == 'socialit-twittley') {
                $socials .= bookmark_list_item($name, array('permalink' => urlencode($perms), 'title' => $title, 'post_summary' => $post_summary, 'twitt_cat' => $t_cat, 'default_tags' => $d_tags));
            } else {
                $socials .= bookmark_list_item($name, array('post_summary' => $post_summary, 'permalink' => $perms, 'title' => $title));
            }
        }
        $socials .= '</ul><div style="clear:both;"></div></div><!-- End Of Code Generated By Social It Plugin By www.gaut.am -->' . "\n\n";
        return $socials;
    }
}
Exemple #4
0
 /**
  * Returns the tags in a given topic or all tags
  *
  * @since 1.0
  * @return integer|object The tag data when successfully executed or an IXR_Error object on failure
  * @param array $args Arguments passed by the XML-RPC call
  * @param string $args[0] The username for authentication
  * @param string $args[1] The password for authentication
  * @param integer|string $args[2] The topic id or slug (optional)
  *
  * XML-RPC request to get all tags in the topic with slug "woot-frist-topic"
  * <methodCall>
  *     <methodName>bb.getTopicTags</methodName>
  *     <params>
  *         <param><value><string>joeblow</string></value></param>
  *         <param><value><string>123password</string></value></param>
  *         <param><value><string>woot-frist-topic</string></value></param>
  *     </params>
  * </methodCall>
  */
 function bb_getTopicTags($args)
 {
     do_action('bb_xmlrpc_call', 'bb.getTopicTags');
     // Escape args
     $this->escape($args);
     // Get the login credentials
     $username = $args[0];
     $password = (string) $args[1];
     // Check the user is valid
     if ($this->auth_readonly) {
         $user = $this->authenticate($username, $password);
     }
     do_action('bb_xmlrpc_call_authenticated', 'bb.getTopicTags');
     // If an error was raised by authentication or by an action then return it
     if ($this->error) {
         return $this->error;
     }
     // Can be numeric id or slug
     $topic_id = isset($args[2]) ? $args[2] : false;
     // Check for bad data
     if ($topic_id) {
         if (!is_string($topic_id) && !is_integer($topic_id)) {
             $this->error = new IXR_Error(400, __('The topic id is invalid.'));
             return $this->error;
         }
         // Check the requested topic exists
         if (!($topic = get_topic($topic_id))) {
             $this->error = new IXR_Error(400, __('No topic found.'));
             return $this->error;
         }
         // The topic id may have been a slug, so make sure it's an integer here
         $topic_id = (int) $topic->topic_id;
         // Now get the tags
         if (!($tags = bb_get_topic_tags($topic_id))) {
             $this->error = new IXR_Error(500, __('No topic tags found.'));
             return $this->error;
         }
     } else {
         global $nxt_taxonomy_object;
         $tags = $nxt_taxonomy_object->get_terms('bb_topic_tag', array('get' => 'all'));
         if (is_nxt_error($tags)) {
             $this->error = new IXR_Error(500, __('Could not retrieve all topic tags.'));
             return $this->error;
         }
         for ($i = 0; isset($tags[$i]); $i++) {
             _bb_make_tag_compat($tags[$i]);
         }
     }
     // Only include "safe" data in the array
     $_tags = array();
     foreach ($tags as $tag) {
         $_tags[] = $this->prepare_topic_tag($tag);
     }
     do_action('bb_xmlrpc_call_return', 'bb.getTopicTags');
     // Return the tags
     return $_tags;
 }
function bb_get_public_tags($topic_id)
{
    $tags = bb_get_topic_tags($topic_id);
    if (!is_array($tags)) {
        return;
    }
    $used_tags = array();
    $public_tags = array();
    foreach ($tags as $tag) {
        if (!in_array($tag->tag_id, $used_tags)) {
            $public_tags[] = $tag;
            $used_tags[] = $tag->tag_id;
        }
    }
    return $public_tags;
}
function get_topic_tags($topic_id)
{
    bb_log_deprecated('function', __FUNCTION__, 'bb_get_topic_tags');
    return bb_get_topic_tags($topic_id);
}
function bb_list_tags($args = null)
{
    $defaults = array('tags' => false, 'format' => 'list', 'topic' => 0, 'list_id' => 'tags-list');
    $args = wp_parse_args($args, $defaults);
    extract($args, EXTR_SKIP);
    if (!($topic = get_topic(get_topic_id($topic)))) {
        return false;
    }
    if (!is_array($tags)) {
        $tags = bb_get_topic_tags($topic->topic_id);
    }
    if (!$tags) {
        return false;
    }
    $list_id = esc_attr($list_id);
    $r = '';
    switch (strtolower($format)) {
        case 'table':
            break;
        case 'list':
        default:
            $args['format'] = 'list';
            $r .= '<ul id="' . $list_id . '" class="tags-list list:tag">' . "\n";
            foreach ($tags as $tag) {
                $r .= _bb_list_tag_item($tag, $args);
            }
            $r .= '</ul>';
            break;
    }
    echo $r;
}
<div id="topic-tags">
<p><?php 
_e('Tags:');
?>
</p>

<?php 
if (bb_get_topic_tags()) {
    ?>

<?php 
    bb_list_tags();
    ?>

<?php 
} else {
    ?>

<p><?php 
    printf(__('No <a href="%s">tags</a> yet.'), bb_get_tag_page_link());
    ?>
</p>

<?php 
}
?>

<?php 
tag_form();
?>
Exemple #9
0
function bb_export_topic_tags($r, $topic_id)
{
    global $topic_tag_cache;
    if (!get_topic($topic_id)) {
        return;
    }
    if (!($tags = bb_get_topic_tags($topic_id))) {
        return $r;
    }
    $r .= "\n";
    foreach ((array) $tags as $tag) {
        $r .= bb_export_tag($tag);
    }
    $topic_tag_cache = array();
    return $r;
}
Exemple #10
0
}
bb_repermalink();
if (!$topic) {
    bb_die(__('Topic not found.'));
}
if ($view_deleted) {
    add_filter('get_thread_where', create_function('', 'return "p.topic_id = ' . $topic_id . '";'));
    add_filter('get_thread_post_ids', create_function('', 'return "p.topic_id = ' . $topic_id . '";'));
    add_filter('post_edit_uri', 'bb_make_link_view_all');
}
$bb_db_override = false;
do_action('bb_topic.php_pre_db', $topic_id);
if (!$bb_db_override) {
    $posts = get_thread($topic_id, $page);
    $forum = bb_get_forum($topic->forum_id);
    $tags = bb_get_topic_tags($topic_id);
    if ($tags && ($bb_current_id = bb_get_current_user_info('id'))) {
        $user_tags = bb_get_user_tags($topic_id, $bb_current_id);
        $other_tags = bb_get_other_tags($topic_id, $bb_current_id);
        $public_tags = bb_get_public_tags($topic_id);
    } elseif (is_array($tags)) {
        $user_tags = false;
        $other_tags = bb_get_public_tags($topic_id);
        $public_tags =& $other_tags;
    } else {
        $user_tags = $other_tags = $public_tags = false;
    }
    $list_start = ($page - 1) * bb_get_option('page_topics') + 1;
    bb_post_author_cache($posts);
}
bb_load_template('topic.php', array('bb_db_override', 'user_tags', 'other_tags', 'list_start'), $topic_id);