Adam Harley (Kawauso) (@kawauso)

Forum Replies Created

Viewing 25 replies - 251 through 275 (of 285 total)
  • I’ve never quite understood the complaints about cookies and bbPress/WordPress integration… I set up a fresh copy of 1.0.2 locally with no prior knowledge and it worked fine (Windows test server). I FTPed it onto my live server and changed over the addresses and it works fine, apart from an odd quirk to do with bb-admin and where you log in. My cookies hold across either site, and for that matter to a MediaWiki install I have tied in to the same user set.

    I quite understand the issue with cross-posting though. I’d fix it myself if I could work out how to initialise bbPress core cleanly inside WordPress, but that’s not possible in 1.0, so for now all you can use is plugins that do it by HTTP. Hopefully that will be integrated into core later on, but including bbPress as a WordPress plugin would be shoehorning something that was designed to be relatively standalone into a different structure and no doubt would over complicate things.

    It’s using class new-topic, so you’d need .newtopic {}… it can’t be found because there’s no actual CSS affecting it specifically. I’d recommend using Mozilla Firefox’s DOM inspector or looking at the HTML source to find class/ID tags for things.

    Oh, and it’s affected by (in Kakumei at least):

    #latest th a, #forumlist th a, #favorites th a and a:visited

    In reply to: All RSS Feeds Broken?

    That’s weird. Seems to be throwing <![CDATA in still… could you check if there’s a rss2.php in your template’s directory and if so either change that or delete it? That’s the only thing I can think of that might be causing that. Forgot themes usually copy everything.

    I think the general consensus is that using permalinks is better and also a lot better for readablity. Could be wrong though.

    In reply to: Categories at the top?

    Hmm? I accidentally left the comment saying // List forums in there, but in actual fact that will only return categories, not forums in them because it does the bb_get_forum_is_category() check. If you’re referring to the normal forum code in frontpage.php, taking that out will take out the normal list of forums you see there, so I’m not sure if that’s what you want to do.

    Sorry about that! :)

    @ashfame have a look at the bottom of front-page.php, it should read <div class="bbcrumb"><a href="<?php bb_uri(); ?>"><?php bb_option('name'); ?></a> &raquo; <?php _e('Add New Topic'); ?></div>. Your code seems to have somehow dropped everything between the last two PHP snippets and the trailing </div> too. That’s not being returned by the breadcrumb function though at least, so it should be easier to fix :) if it doesn’t work with your template’s front-page.php deleted/renamed though, there might be something wrong with your core files.

    @gerikg he’s trying to fix an additional <a> with no closing tag in the new post form, not generate a link to it :)

    In reply to: If BBpress then, else

    Assuming you’re talking about deep integration of bbPress, you should be able to use one of the constants defined in the settings of WordPress MU / BuddPress to determine if bbPress is embedded or not.

    Using IE on it doesn’t work at all for me. How weird… http://www.oraclepronet.com/techzone/index.php loads fine though on first try, so it might be something to do with how the server is handling the directory index rather than bbPress. Your version of WordPress has security holes by the way, you might want to upgrade.

    I’m afraid I didn’t make it, so I can’t help you too much there, sorry. You used the full ID after http://www.facebook.com/group.php?gid= right?

    Actually, nevermind, you could use this: http://pipes.yahoo.com/jasonsilver/facebookgroup to get posts from a group. It’s throwing things out in german for me, but that’s probably fixable. Facebook is stupidly locked down in the whole though, good luck posting to it.

    From what I can tell, the only things relating to groups in Facebook’s API are

    groups.get
    Returns all visible groups according to the filters specified.
    groups.getMembers
    Returns membership list data associated with a group.

    I think you’d therefore have to scrape the Facebook page manually and parse it’s HTML to pass back Facebook posts. Do-able, but it wouldn’t be very good for keeping in sync well.

    Change @require_once( BB_PATH . BB_INC . 'registration-functions.php'); to @require_once( BB_PATH . BB_INC . 'functions.bb-meta.php'); on line 77 of wiki-post.php to get it to load. I’m not sure how to fix anything else though.

    For some reason it doesn’t get escaped by anything. How weird. Okay, the hackiest way of doing it ever:

    function bb_escape_nbsp( $text ) {
    $text = str_replace ( '&nbsp;', '&amp ;nbsp;', $text );
    return $text;
    }
    add_filter('post_text', 'bb_escape_nbsp');
    add_filter('edit_text', 'bb_escape_nbsp');

    Take out the space between amp and ;

    I’m pretty sure you can’t with Facebook groups, since (as far as I know), you can’t add applications to the groups page so you’re stuck with what’s available. Best I could suggest would be adding a link or using a Facebook Page.

    In reply to: Categories at the top?
    <?php if ( bb_forums() ) : // List forums ?>
    <ul class="cat_list">
    <?php while ( bb_forum() ) : ?>
    <?php if (bb_get_forum_is_category()) : ?>
    <li><a href="<?php forum_link(); ?>"><?php forum_name(); ?></a><li>
    <?php endif; ?>
    <? endwhile; ?>
    </ul>
    <?php endif; // bb_forums() ?>

    Put that in header.php or frontpage.php respectively and use CSS to format .cat_list li

    In reply to: target _blank

    Quick check, your code does actually include the <a (.+?)> part right? That got dropped from your post, but I’m presuming that’s because you didn’t use the code tag. The plugin should add the target=”_blank” HTML attribute, which tells the browser to open the link in a new window. You can change that in the browser to open in a new tab instead, but if it’s not doing either of those, there’s something wrong.

    In reply to: target _blank

    Check for a trailing space or anything after the ?> or before the <?php. That error implies that some text is being passed and in my test install, that was a space after the ?>.

    In reply to: All RSS Feeds Broken?

    With the final patch from track applied against 1.0.2 trunk you get:

    bb-templates/kakumei/rss2.php

    <?php
    header( 'Content-Type: text/xml; charset=UTF-8' );
    echo '<' . '?xml version="1.0" encoding="UTF-8"?' . '>' . "n";
    bb_generator( 'comment' );
    ?>
    <rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
    <title><?php echo $title; ?></title>
    <link><?php echo $link; ?></link>
    <description><?php echo $description; ?></description>
    <language><?php esc_html( bb_option('language') ); ?></language>
    <pubDate><?php echo gmdate('D, d M Y H:i:s +0000'); ?></pubDate>
    <?php bb_generator( 'rss2' ); ?>
    <textInput>
    <title><![CDATA[<?php _e('Search'); ?>]]></title>
    <description><![CDATA[<?php _e('Search all topics from these forums.'); ?>]]></description>
    <name>q</name>
    <link><?php bb_uri('search.php'); ?></link>
    </textInput>
    <atom:link href="<?php echo $link_self; ?>" rel="self" type="application/rss+xml" />

    <?php foreach ($posts as $bb_post) : ?>
    <item>
    <title><?php post_author(); ?> <?php _e('on')?> "<?php topic_title( $bb_post->topic_id ); ?>"</title>
    <link><?php post_link(); ?></link>
    <pubDate><?php bb_post_time('D, d M Y H:i:s +0000', array( 'localize' => false ) ); ?></pubDate>
    <dc:creator><?php post_author(); ?></dc:creator>
    <guid isPermaLink="false"><?php post_id(); ?>@<?php bb_uri(); ?></guid>
    <description><?php post_text(); ?></description>
    </item>
    <?php endforeach; ?>

    </channel>
    </rss>

    bb-includes/defaults.bb-filters.php

    <?php
    /**
    * Sets up the default filters and actions for most
    * of the bbPress hooks.
    *
    * If you need to remove a default hook, this file will
    * give you the priority for which to use to remove the
    * hook.
    *
    * Not all of the default hooks are found in this files
    *
    * @package bbPress
    */

    // Strip, trim, kses, special chars for string saves
    $filters = array( 'pre_term_name', 'bb_pre_forum_name', 'pre_topic_title' );
    foreach ( $filters as $filter ) {
    add_filter( $filter, 'strip_tags' );
    add_filter( $filter, 'trim' );
    add_filter( $filter, 'bb_filter_kses' );
    add_filter( $filter, 'esc_html', 30 );
    }

    // Kses only for textarea saves
    $filters = array( 'pre_term_description', 'bb_pre_forum_desc' );
    foreach ( $filters as $filter ) {
    add_filter( $filter, 'bb_filter_kses' );
    }

    // Slugs
    add_filter( 'pre_term_slug', 'bb_pre_term_slug' );

    // DB truncations
    add_filter( 'pre_topic_title', 'bb_trim_for_db_150', 9999 );
    add_filter( 'bb_pre_forum_name', 'bb_trim_for_db_150', 9999 );
    add_filter( 'pre_term_name', 'bb_trim_for_db_55', 9999 );

    // Format Strings for Display
    $filters = array( 'forum_name', 'topic_title', 'bb_title', 'bb_option_name' );
    foreach ( $filters as $filter ) {
    add_filter( $filter, 'esc_html' );
    }

    // Numbers
    $filters = array( 'forum_topics', 'forum_posts', 'total_posts', 'total_users', 'total_topics' );
    foreach ( $filters as $filter ) {
    add_filter( $filter, 'bb_number_format_i18n' );
    }

    // Offset Times
    $filters = array( 'topic_time', 'topic_start_time', 'bb_post_time' );
    foreach ( $filters as $filter ) {
    add_filter( $filter, 'bb_offset_time', 10, 2 );
    }

    add_filter('bb_topic_labels', 'bb_closed_label', 10);
    add_filter('bb_topic_labels', 'bb_sticky_label', 20);

    add_filter('pre_post', 'trim');
    add_filter('pre_post', 'bb_encode_bad');
    add_filter('pre_post', 'bb_code_trick');
    add_filter('pre_post', 'force_balance_tags');
    add_filter('pre_post', 'bb_filter_kses', 50);
    add_filter('pre_post', 'bb_autop', 60);

    add_filter('post_text', 'do_shortcode');

    function bb_contextualise_search_post_text()
    {
    if ( bb_is_search() ) {
    add_filter( 'get_post_text', 'bb_post_text_context' );
    }
    }
    add_action( 'bb_init', 'bb_contextualise_search_post_text' );

    add_filter('post_text', 'make_clickable');

    add_filter('edit_text', 'bb_code_trick_reverse');
    add_filter('edit_text', 'wp_specialchars');
    add_filter('edit_text', 'trim', 15);

    add_filter('pre_sanitize_with_dashes', 'bb_pre_sanitize_with_dashes_utf8', 10, 3 );

    add_filter('get_user_link', 'bb_fix_link');

    add_filter('sanitize_profile_info', 'esc_html');
    add_filter('sanitize_profile_admin', 'esc_html');

    add_filter( 'get_recent_user_replies_fields', 'bb_get_recent_user_replies_fields' );
    add_filter( 'get_recent_user_replies_group_by', 'bb_get_recent_user_replies_group_by' );

    add_filter('sort_tag_heat_map', 'bb_sort_tag_heat_map');

    // URLS

    if ( !bb_get_option( 'mod_rewrite' ) ) {
    add_filter( 'bb_stylesheet_uri', 'esc_attr', 1, 9999 );
    add_filter( 'forum_link', 'esc_attr', 1, 9999 );
    add_filter( 'bb_forum_posts_rss_link', 'esc_attr', 1, 9999 );
    add_filter( 'bb_forum_topics_rss_link', 'esc_attr', 1, 9999 );
    add_filter( 'bb_tag_link', 'esc_attr', 1, 9999 );
    add_filter( 'tag_rss_link', 'esc_attr', 1, 9999 );
    add_filter( 'topic_link', 'esc_attr', 1, 9999 );
    add_filter( 'topic_rss_link', 'esc_attr', 1, 9999 );
    add_filter( 'post_link', 'esc_attr', 1, 9999 );
    add_filter( 'post_anchor_link', 'esc_attr', 1, 9999 );
    add_filter( 'user_profile_link', 'esc_attr', 1, 9999 );
    add_filter( 'profile_tab_link', 'esc_attr', 1, 9999 );
    add_filter( 'favorites_link', 'esc_attr', 1, 9999 );
    add_filter( 'view_link', 'esc_attr', 1, 9999 );
    }

    // Feed Stuff

    function bb_filter_feed_content()
    {
    if ( bb_is_feed() ) {
    add_filter( 'bb_title_rss', 'strip_tags');
    add_filter( 'bb_title_rss', 'ent2ncr', 8);
    add_filter( 'bb_title_rss', 'esc_html' );

    add_filter( 'bb_description_rss', 'strip_tags');
    add_filter( 'bb_description_rss', 'ent2ncr', 8 );
    add_filter( 'bb_description_rss', 'esc_html' );

    add_filter( 'post_author', 'ent2ncr', 8 );

    add_filter( 'post_link', 'esc_html' );

    add_filter( 'post_text', 'ent2ncr' );
    add_filter( 'post_text', 'htmlspecialchars' ); // encode_bad should not be overruled by esc_html
    }
    }
    add_action( 'bb_init', 'bb_filter_feed_content' );

    add_filter( 'init_roles', 'bb_init_roles' );
    add_filter( 'map_meta_cap', 'bb_map_meta_cap', 1, 4 );

    // Actions

    add_action( 'bb_head', 'bb_generator' );
    add_action('bb_head', 'bb_template_scripts');
    add_action('bb_head', 'wp_print_scripts');
    add_action('bb_head', 'wp_print_styles');
    add_action('bb_head', 'bb_rsd_link');
    add_action('bb_head', 'bb_pingback_link');
    if ( $bb_log->type === 'console' ) {
    add_action('bb_head', array(&$bb_log, 'console_javascript'));
    add_action('bb_admin_head', array(&$bb_log, 'console_javascript'));
    }
    add_action('bb_send_headers', 'bb_pingback_header');
    add_action('bb_admin_print_scripts', 'wp_print_scripts');

    add_action('bb_user_has_no_caps', 'bb_give_user_default_role');

    add_action('do_pingbacks', array('BB_Pingbacks', 'send_all'), 10, 1);

    add_action( 'bb_init', 'bb_register_default_views' );

    add_action( 'set_current_user', 'bb_apply_wp_role_map_to_user' );

    add_filter( 'bb_pre_get_option_gmt_offset', 'wp_timezone_override_offset' );

    unset( $filters, $filter );

    rss.php

    <?php
    require('./bb-load.php');

    // Determine the type of feed and the id of the object
    if ( isset($_GET['view']) || bb_get_path() == 'view' ) {

    // View
    $feed = 'view';
    $feed_id = isset($_GET['view']) ? $_GET['view'] : bb_get_path(2);

    } elseif ( isset($_GET['topic']) || bb_get_path() == 'topic' ) {

    // Topic
    $feed = 'topic';
    $topic = get_topic(isset($_GET['topic']) ? $_GET['topic'] : bb_get_path(2));
    $feed_id = $topic->topic_id;

    } elseif ( isset($_GET['profile']) || bb_get_path() == 'profile' ) {

    // Profile
    $feed = 'profile';
    $feed_id = isset($_GET['profile']) ? $_GET['profile'] : bb_get_path(2);

    } elseif ( isset($_GET['tag']) || bb_get_path() == 'tags' ) {

    if ( isset($_GET['topics']) || bb_get_path(3) == 'topics' ) {
    // Tag recent topics
    $feed = 'tag-topics';
    } else {
    // Tag recent posts
    $feed = 'tag-posts';
    }
    $feed_id = isset($_GET['tag']) ? $_GET['tag'] : bb_get_path(2);

    } elseif ( isset($_GET['forum']) || bb_get_path() == 'forum' ) {

    if ( isset($_GET['topics']) || bb_get_path(3) == 'topics' ) {
    // Forum recent topics
    $feed = 'forum-topics';
    } else {
    // Forum recent posts
    $feed = 'forum-posts';
    }
    $forum = bb_get_forum(isset($_GET['forum']) ? $_GET['forum'] : bb_get_path(2));
    $feed_id = $forum->forum_id;

    } elseif ( isset($_GET['topics']) || bb_get_path() == 'topics' ) {

    // Recent topics
    $feed = 'all-topics';

    } else {

    // Recent posts
    $feed = 'all-posts';

    }

    // Initialise the override variable
    $bb_db_override = false;
    do_action( 'bb_rss.php_pre_db' );

    if ( !$bb_db_override ) {

    // Get the posts and the title for the given feed
    switch ($feed) {
    case 'view':
    if ( !isset($bb_views[$feed_id]) )
    die();
    if ( !$bb_views[$feed_id]['feed'] )
    die();
    if ( !$topics_object = new BB_Query( 'topic', $bb_views[$feed_id]['query'], "bb_view_$feed_id" ) )
    die();

    $topics = $topics_object->results;
    if ( !$topics || !is_array($topics) )
    die();

    $posts = array();
    foreach ($topics as $topic) {
    $posts[] = bb_get_first_post($topic->topic_id);
    }

    $title = sprintf( __( '%1$s » View: %2$s' ), bb_get_option( 'name' ), $bb_views[$feed_id]['title'] );
    $link = get_view_link($feed_id);
    $link_self = bb_get_view_rss_link($feed_id);
    break;

    case 'topic':
    if ( !$topic = get_topic ( $feed_id ) )
    die();
    if ( !$posts = get_thread( $feed_id, 0, 1 ) )
    die();
    $title = sprintf( __( '%1$s » Topic: %2$s' ), bb_get_option( 'name' ), get_topic_title() );
    $link = get_topic_link($feed_id);
    $link_self = get_topic_rss_link($feed_id);
    break;

    case 'profile':
    if ( bb_get_option( 'mod_rewrite' ) === 'slugs' ) {
    $user = bb_get_user_by_nicename( $feed_id );
    } else {
    $user = bb_get_user( $feed_id );
    }
    if ( !$user ) {
    die();
    }
    if ( !$posts = get_user_favorites( $user->ID ) ) {
    die();
    }
    $title = sprintf( __( '%1$s » User Favorites: %2$s' ), bb_get_option( 'name' ), $user->user_nicename );
    $link = bb_get_profile_link($feed_id);
    $link_self = get_favorites_rss_link($feed_id);
    break;

    case 'tag-topics':
    if ( !$tag = bb_get_tag( $feed_id ) )
    die();
    if ( !$topics = get_tagged_topics( array( 'tag_id' => $tag->tag_id, 'page' => 0 ) ) )
    die();

    $posts = array();
    foreach ($topics as $topic) {
    $posts[] = bb_get_first_post($topic->topic_id);
    }

    $title = sprintf( __( '%1$s » Tag: %2$s - Recent Topics' ), bb_get_option( 'name' ), bb_get_tag_name() );
    $link = bb_get_tag_link($feed_id);
    $link_self = bb_get_tag_topics_rss_link($feed_id);
    break;

    case 'tag-posts':
    if ( !$tag = bb_get_tag( $feed_id ) )
    die();
    if ( !$posts = get_tagged_topic_posts( array( 'tag_id' => $tag->tag_id, 'page' => 0 ) ) )
    die();
    $title = sprintf( __( '%1$s » Tag: %2$s - Recent Posts' ), bb_get_option( 'name' ), bb_get_tag_name() );
    $link = bb_get_tag_link($feed_id);
    $link_self = bb_get_tag_posts_rss_link($feed_id);
    break;

    case 'forum-topics':
    if ( !$topics = get_latest_topics( $feed_id ) )
    die();

    $posts = array();
    foreach ($topics as $topic) {
    $posts[] = bb_get_first_post($topic->topic_id);
    }

    $title = sprintf( __( '%1$s » Forum: %2$s - Recent Topics' ), bb_get_option( 'name' ), get_forum_name( $feed_id ) );
    $link = get_forum_link($feed_id);
    $link_self = bb_get_forum_topics_rss_link($feed_id);
    break;

    case 'forum-posts':
    if ( !$posts = bb_get_latest_forum_posts( $feed_id ) )
    die();
    $title = sprintf( __( '%1$s » Forum: %2$s - Recent Posts' ), bb_get_option( 'name' ), get_forum_name( $feed_id ) );
    $link = get_forum_link($feed_id);
    $link_self = bb_get_forum_posts_rss_link($feed_id);
    break;

    // Get just the first post from the latest topics
    case 'all-topics':
    if ( !$topics = get_latest_topics() )
    die();

    $posts = array();
    foreach ($topics as $topic) {
    $posts[] = bb_get_first_post($topic->topic_id);
    }

    $title = sprintf( __( '%1$s » Recent Topics' ), bb_get_option( 'name' ) );
    $link = bb_get_uri();
    $link_self = bb_get_topics_rss_link();
    break;

    // Get latest posts by default
    case 'all-posts':
    default:
    if ( !$posts = bb_get_latest_posts( 35 ) )
    die();
    $title = sprintf( __( '%1$s » Recent Posts' ), bb_get_option( 'name' ) );
    $link = bb_get_uri();
    $link_self = bb_get_posts_rss_link();
    break;
    }
    }

    bb_send_304( $posts[0]->post_time );

    if (!$description = bb_get_option( 'description' ) ) {
    $description = $title;
    }
    $title = apply_filters( 'bb_title_rss', $title, $feed );
    $description = apply_filters( 'bb_description_rss', $description, $feed );
    $posts = apply_filters( 'bb_posts_rss', $posts, $feed );
    $link_self = apply_filters( 'bb_link_self_rss', $link_self, $feed );

    bb_load_template( 'rss2.php', array('bb_db_override', 'title', 'description', 'link', 'link_self'), $feed );

    ?>

    In reply to: Hide Links

    @Shagalaga: Maybe you could use a hidden forum for guestbooks? One topic per user that’s had a comment posted, just use the existing topic functions and a modified post form on the bottom of their profile?

    In reply to: Hide Links

    I think should do it, it’s based off code here: https://bbpress.org/forums/topic/open-links-in-new-window

    Change the values of $forums to the forum IDs of those you wish to restrict (it’ll only work on direct parent forums, not grandparents or categories, I don’t want to include walker code unless people need it).

    Tested on 1.0.2 trunk, so I’m not 100% sure it’ll run on 0.9, sorry.

    <?php
    /*
    Plugin Name: Remove Links (conditional)
    Description: Removes links for non-registered users. Based on <a href="http://ckon.wordpress.com/2007/07/12/bbpress-plugin-bb-tweaks/">bb tweaks</a>.
    Plugin URI: https://bbpress.org/forums/topic/hide-links
    Version: 0.01
    */

    function bb_strip_links( $text ) {
    global $topic;

    $forums = array(
    1,
    2,
    3,
    );

    if ( !in_array( $topic->forum_id, $forums ) )
    return $text;

    if ( !bb_current_user_can( 'write_post' ) )
    $text = preg_replace('|<a (.+?)>(.+?)</a>|i', 'Login or register to download', $text);

    return $text;

    }

    add_filter('post_text', 'bb_strip_links');

    ?>

    @Hanratty: hiding links using CSS visibility will still leave the link URLs in the code, which isn’t too desirable for some

    Interesting thing sometimes worth knowing: you don’t have to copy everything from Kakumei, since anything not found in your theme will be used from there. I find it helps to reduce clutter if you only copy files as you need to edit them, since you can work out what might have gone wrong later.

    I guess it depends on the structure of the theme, but essentially you need to try and match the CSS elements in the theme’s stylesheet to their bbPress counterparts. Some of it will be redundant, and personally I found it easier to just take the bulk of the general styling and then add in the rest later. Didn’t turn out perfect though. I’d recommend using Kakumei as a base as well.

    Very impressive indeed :) if that equates to anything like that number of forums, that’s pretty amazing

Viewing 25 replies - 251 through 275 (of 285 total)