Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'updated'

Viewing 25 results - 801 through 825 (of 2,086 total)
  • Author
    Search Results
  • Jerry
    Participant

    Okay, here is a very tough and long question. So I have this plugin created by Igor Yavych. I have a book review site and I really need my users to be able to rate the books listed (star rating). Here is my dilemma; this plugin only works for WordPress Posts. It does not work for bbpress posts. I want to change this plugin to function with bbpress. I think I probably have to dig through the bbpress codex, but I am hoping someone can tell me an easier way? There is a lot of code posted below from rating.php (my apologies). I will also post code from settings.php at the bottom. I think perhaps I need to just change some common wordpress variables to bbpress variables?
    Of course, what I would actually hope is that someone knows of a star rating plugin that already works for bbpress. I’ve been searching for days and cannot find one.

    <?php
    /*
      Plugin Name: Simple Rating
      Description: Allows users to rate posts and pages.
      Version: 1.3.2
      Author: Igor Yavych
      Author URI: https://www.odesk.com/users/~~d196de64099a8aa3
     */
    require_once ("spr_widgets.php");
    require_once ("spr_upgrade.php");
    upgrade();
    $options=spr_options();
    if ($options['activated']==1&&$options['method']=="auto")
    {
        add_filter('the_content', 'spr_filter', 15);
    }
    
    function spr_filter($content)
    {
        $options=spr_options();
        $list=spr_list_cpt_slugs();
        global $post, $wpdb, $spr_style;
        $disable_rating=get_post_meta($post->ID, '_spr_disable', true);
        //trying to change this to a bbpress plugin instead of a wordpress plugin - bbp_topic_id() or topic_id
        //$disable_rating=get_post_meta($post->topic_id, '_spr_disable', true);
        foreach ($list as $list_)
        {
            if (is_singular($list_)&&$options['where_to_show'][$list_]&&$disable_rating!='1')
            {
                if ($options['position']=='before')
                {
                    $content=spr_rating().$content;
                }
                elseif ($options['position']=='after')
                {
                    $content .= spr_rating();
                }
                break;
            }
            else if ((is_archive()||(is_home()&&$options['loop_on_hp']==1&&in_the_loop()))&&$options['show_in_loops']==1)
            {
                if ($post->post_type==$list_&$options['where_to_show'][$list_]&&$disable_rating!='1')
                {
                    wp_enqueue_style('spr_style', plugins_url('/resources/spr_style.css', __FILE__));
                    if ($spr_style!=1)
                    {
                        spr_print_additional_styles();
                        $spr_style=1;
                    }
                    $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post->ID';";
                    $popularity=$wpdb->get_results($query, ARRAY_N);
                    if (count($popularity)>0)
                    {
                        $votes=$popularity[0][0];
                        $points=$popularity[0][1];
                    }
                    else
                    {
                        $votes=0;
                        $points=0;
                    }
                    $results='<div id="spr_container"><div class="spr_visual_container">'.spr_show_voted($votes, $points, $options['show_vote_count']).'</div></div>';
                    if ($options['position']=='before')
                    {
                        $content=$results.$content;
                    }
                    elseif ($options['position']=='after')
                    {
                        $content .= $results;
                    }
                    break;
                }
            }
        }
        return $content;
    }
    
    function spr_show_rating()
    {
        $options=spr_options();
        $list=spr_list_cpt_slugs();
        global $post, $wpdb, $spr_added, $spr_added_loop, $spr_style;
        $disable_rating=get_post_meta($post->ID, '_spr_disable', true);
        //trying to change this to a bbpress plugin instead of a wordpress plugin
        //$disable_rating=get_post_meta($post->topic_id, '_spr_disable', true);
        $result="";
        if ($options['method']=="manual"&&$options['activated']==1)
        {
            foreach ($list as $list_)
            {
                if (is_singular($list_)&&$options['where_to_show'][$list_]&&$disable_rating!='1'&&$spr_added!=1)
                {
                    $result=spr_rating();
                    $spr_added=1;
                    break;
                }
                if ((is_archive()||($options['loop_on_hp']==1&&is_home()&&in_the_loop()))&&$options['show_in_loops']==1)
                {
                    if ($post->post_type==$list_&$options['where_to_show'][$list_]&&$disable_rating!='1'&&!isset($spr_added_loop[$post->ID]))
                    {
                        wp_enqueue_style('spr_style', plugins_url('/resources/spr_style.css', __FILE__));
                        if ($spr_style!=1)
                        {
                            spr_print_additional_styles();
                            $spr_style=1;
                        }
                        $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post->ID';";
                        $popularity=$wpdb->get_results($query, ARRAY_N);
                        if (count($popularity)>0)
                        {
                            $votes=$popularity[0][0];
                            $points=$popularity[0][1];
                        }
                        else
                        {
                            $votes=0;
                            $points=0;
                        }
                        $result='<div id="spr_container"><div class="spr_visual_container">'.spr_show_voted($votes, $points, $options['show_vote_count']).'</div></div>';
                        $spr_added_loop[$post->ID]=1;
                        break;
                    }
                }
            }
            return $result;
        }
    }
    
    function spr_get_entry_rating($post_id, $echo=false)
    {
        global $wpdb, $spr_added_loop, $spr_style;
        $options=spr_options();
        if ($options['activated'])
        {
            if (is_numeric($post_id))
            {
                wp_enqueue_style('spr_style', plugins_url('/resources/spr_style.css', __FILE__));
                if ($spr_style!=1)
                {
                    spr_print_additional_styles();
                    $spr_style=1;
                }
                if (!isset($spr_added_loop[$post_id]))
                {
                    $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post_id';";
                    $popularity=$wpdb->get_results($query, ARRAY_N);
                    if (count($popularity)>0)
                    {
                        $votes=$popularity[0][0];
                        $points=$popularity[0][1];
                    }
                    else
                    {
                        $votes=0;
                        $points=0;
                    }
                    $result='<div id="spr_container"><div class="spr_visual_container">'.spr_show_voted($votes, $points, $options['show_vote_count']).'</div></div>';
                    $spr_added_loop[$post_id]=1;
                    if ($echo)
                    {
                        echo $result;
                    }
                    else
                    {
                        return $result;
                    }
                }
            }
            else
            {
                echo "Invalid Post ID was supplied";
            }
        }
    }
    
    function spr_rating()
    {
        global $post, $current_user, $wpdb;
        $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post->ID';";
        $popularity=$wpdb->get_results($query, ARRAY_N);
        if (count($popularity)>0)
        {
            $votes=$popularity[0][0];
            $points=$popularity[0][1];
        }
        else
        {
            $votes=0;
            $points=0;
        }
        wp_enqueue_script('spr_script', plugins_url('/resources/spr_script.js', __FILE__), array('jquery'), NULL);
        wp_enqueue_style('spr_style', plugins_url('/resources/spr_style.css', __FILE__));
        $options=spr_options();
        spr_print_additional_styles();
        if ($votes>0)
        {
            $rate=$points/$votes;
            if ($options['use_aggregated'])
            {
                $aggregated='<div class="spr_hidden" itemscope="" itemtype="http://schema.org/Product"><meta itemprop="name" content="'.$post->post_title.'"><div class="spr_hidden" itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating"><meta itemprop="bestRating" content="'.$options['scale'].'"><meta itemprop="ratingValue" content="'.$rate.'"><meta itemprop="ratingCount" content="'.$votes.'"></div></div>';
            }
            else
            {
                $aggregated='';
            }
        }
        else
        {
            $rate=0;
            $votes=0;
            $aggregated='';
        }
    
        if (is_user_logged_in()==1)
        {
            $query="select * from <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> where <code>post_id</code>='$post->ID' and <code>user_id</code>='$current_user->ID';";
            $voted=$wpdb->get_results($query, ARRAY_N);
            if (count($voted)>0)
            {
                $results='<div id="spr_container"><div class="spr_visual_container">'.spr_show_voted($votes, $points, $options['show_vote_count']).'</div></div>'.$aggregated;
                wp_localize_script('spr_script', 'spr_ajax_object', array('ajax_url'=>admin_url('admin-ajax.php'), 'scale'=>$options['scale'], 'spr_type'=>$options['color'].$options['shape'], 'rating_working'=>false, 'post_id'=>$post->ID));
                return $results;
            }
            else
            {
                $results='<div id="spr_container"><div class="spr_visual_container" id="spr_container_'.$post->ID.'">'.spr_show_voting($votes, $points, $options['show_vote_count']).'</div></div>'.$aggregated;
                wp_localize_script('spr_script', 'spr_ajax_object', array('ajax_url'=>admin_url('admin-ajax.php'), 'scale'=>$options['scale'], 'spr_type'=>$options['color'].$options['shape'], 'rating_working'=>true, 'post_id'=>$post->ID));
                return $results;
            }
        }
        else if ($options['allow_guest_vote']&&filter_var(spr_get_ip(), FILTER_VALIDATE_IP))
        {
            $query="select * from <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> where <code>post_id</code>='$post->ID' and <code>user_id</code>='".spr_get_ip()."';";
            $voted=$wpdb->get_results($query, ARRAY_N);
            if (count($voted)>0)
            {
                $results='<div id="spr_container"><div class="spr_visual_container">'.spr_show_voted($votes, $points, $options['show_vote_count']).'</div></div>'.$aggregated;
                wp_localize_script('spr_script', 'spr_ajax_object', array('ajax_url'=>admin_url('admin-ajax.php'), 'scale'=>$options['scale'], 'spr_type'=>$options['color'].$options['shape'], 'rating_working'=>false, 'post_id'=>$post->ID));
                return $results;
            }
            else
            {
                $results='<div id="spr_container"><div class="spr_visual_container" id="spr_container_'.$post->ID.'">'.spr_show_voting($votes, $points, $options['show_vote_count']).'</div></div>'.$aggregated;
                wp_localize_script('spr_script', 'spr_ajax_object', array('ajax_url'=>admin_url('admin-ajax.php'), 'scale'=>$options['scale'], 'spr_type'=>$options['color'].$options['shape'], 'rating_working'=>true, 'post_id'=>$post->ID));
                return $results;
            }
        }
        else
        {
            wp_localize_script('spr_script', 'spr_ajax_object', array('ajax_url'=>admin_url('admin-ajax.php'), 'scale'=>$options['scale'], 'spr_type'=>$options['color'].$options['shape'], 'rating_working'=>false));
            $results='<div id="spr_container"><div class="spr_visual_container">'.spr_show_voted($votes, $points, $options['show_vote_count']).'</div></div>'.$aggregated;
            return $results;
        }
    }
    
    function spr_show_voted($votes, $points, $show_vc)
    {
        $options=spr_options();
        $spr_type=$options['color'].$options['shape'];
        if ($votes>0)
        {
            $rate=$points/$votes;
        }
        else
        {
            $rate=0;
            $votes=0;
        }
        $html='<div id="spr_shapes">';
        for ($i=1; $i<=$options['scale']; $i++)
        {
            if ($rate>=($i-0.25))
            {
                $class='spr_'.$spr_type.'_full_voted';
            }
            elseif ($rate<($i-0.25)&&$rate>=($i-0.75))
            {
                $class='spr_'.$spr_type.'_half_voted';
            }
            else
            {
                $class='spr_'.$spr_type.'_empty';
            }
            $html .= '<span class="spr_rating_piece '.$class.'"></span> ';
        }
        $html.='</div>';
        if ($show_vc)
        {
            if ($votes==1)
            {
                $votesorvote='vote';
            }
            else
            {
                $votesorvote='votes';
            }
            $html .= '<span id="spr_votes">'.$votes.' '.$votesorvote.'</span>';
        }
    
        return $html;
    }
    
    function spr_show_voting($votes, $points, $show_vc)
    {
        $options=spr_options();
        $spr_type=$options['color'].$options['shape'];
        if ($votes>0)
        {
            $rate=$points/$votes;
        }
        else
        {
            $rate=0;
            $votes=0;
        }
        $html='<div id="spr_shapes">';
        for ($i=1; $i<=$options['scale']; $i++)
        {
            if ($rate>=($i-0.25))
            {
                $class='spr_'.$spr_type.'_full_voting';
            }
            elseif ($rate<($i-0.25)&&$rate>=($i-0.75))
            {
                $class='spr_'.$spr_type.'_half_voting';
            }
            else
            {
                $class='spr_'.$spr_type.'_empty';
            }
            $html .= '<span id="spr_piece_'.$i.'" class="spr_rating_piece '.$class.'"></span> ';
        }
        $html.='</div>';
        if ($show_vc)
        {
            if ($votes==1)
            {
                $votesorvote='vote';
            }
            else
            {
                $votesorvote='votes';
            }
            $html .= '<span id="spr_votes">'.$votes.' '.$votesorvote.'</span>';
        }
        return $html;
    }
    
    function spr_rate()
    {
        global $current_user, $wpdb;
        $options=spr_options();
        if ($options['activated']==1)
        {
            if (isset($_POST['points'])&&isset($_POST['post_id'])) // key parameters are set
            {
                $post_id=(int) esc_sql($_POST['post_id']);
                $points_=(int) esc_sql($_POST['points']);
                if ($points_>=1&&$points_<=$options['scale'])
                {
                    if (is_user_logged_in()==1) // user is logged in
                    {
                        $query="select * from <code>&quot;.$wpdb->prefix.&quot;posts</code> where <code>ID</code>='$post_id';";
                        $post_exists=$wpdb->get_results($query, ARRAY_N);
                        if (count($post_exists)>0) // post exists
                        {
                            $query="select * from <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> where <code>post_id</code>='$post_id' and <code>user_id</code>='$current_user->ID';";
                            $voted=$wpdb->get_results($query, ARRAY_N);
                            if (count($voted)>0)  // already voted
                            {
                                $response=json_encode(array('status'=>2));
                            }
                            else // haven't voted yet 
                            {
                                $wpdb->query("INSERT INTO <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> (<code>post_id</code>, <code>user_id</code>, <code>points</code>) VALUES ('$post_id', '$current_user->ID', '$points_');");
                                $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post_id';";
                                $popularity=$wpdb->get_results($query, ARRAY_N);
                                if (count($popularity)>0)
                                {
                                    $votes=$popularity[0][0];
                                    $points=$popularity[0][1];
                                }
                                else
                                {
                                    $votes=0;
                                    $points=0;
                                }
                                if ($votes==0||$points==0)
                                {
                                    $wpdb->query("INSERT INTO <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> (<code>post_id</code>, <code>votes</code>, <code>points</code>) VALUES ('$post_id', '1', '$points_');");
                                }
                                else
                                {
                                    $points=$points+$points_;
                                    $votes=$votes+1;
                                    $wpdb->query("UPDATE <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> set <code>votes</code>='$votes', <code>points</code>='$points' where <code>post_id</code>='$post_id';");
                                }
                                $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post_id';";
                                $popularity=$wpdb->get_results($query, ARRAY_N);
                                if (count($popularity)>0)
                                {
                                    $votes=$popularity[0][0];
                                    $points=$popularity[0][1];
                                }
                                else
                                {
                                    $votes=0;
                                    $points=0;
                                }
                                $html=spr_show_voted($votes, $points, $options['show_vote_count']);
                                $response=json_encode(array('status'=>1, 'html'=>$html));
                            }
                        }
                        else
                        {
                            $response=json_encode(array('status'=>3)); // post doesn't exist
                        }
                    }
                    else if ($options['allow_guest_vote']&&filter_var(spr_get_ip(), FILTER_VALIDATE_IP))
                    {
                        $query="select * from <code>&quot;.$wpdb->prefix.&quot;posts</code> where <code>ID</code>='$post_id';";
                        $post_exists=$wpdb->get_results($query, ARRAY_N);
                        if (count($post_exists)>0) // post exists
                        {
                            $query="select * from <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> where <code>post_id</code>='$post_id' and <code>user_id</code>='".spr_get_ip()."';";
                            $voted=$wpdb->get_results($query, ARRAY_N);
                            if (count($voted)>0)  // already voted
                            {
                                $response=json_encode(array('status'=>2));
                            }
                            else // haven't voted yet 
                            {
                                $wpdb->query("INSERT INTO <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> (<code>post_id</code>, <code>user_id</code>, <code>points</code>) VALUES ('$post_id', '".spr_get_ip()."', '$points_');");
                                $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post_id';";
                                $popularity=$wpdb->get_results($query, ARRAY_N);
                                if (count($popularity)>0)
                                {
                                    $votes=$popularity[0][0];
                                    $points=$popularity[0][1];
                                }
                                else
                                {
                                    $votes=0;
                                    $points=0;
                                }
                                if ($votes==0||$points==0)
                                {
                                    $wpdb->query("INSERT INTO <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> (<code>post_id</code>, <code>votes</code>, <code>points</code>) VALUES ('$post_id', '1', '$points_');");
                                }
                                else
                                {
                                    $points=$points+$points_;
                                    $votes=$votes+1;
                                    $wpdb->query("UPDATE <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> set <code>votes</code>='$votes', <code>points</code>='$points' where <code>post_id</code>='$post_id';");
                                }
                                $query="select <code>votes</code>, <code>points</code> from <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> where <code>post_id</code>='$post_id';";
                                $popularity=$wpdb->get_results($query, ARRAY_N);
                                if (count($popularity)>0)
                                {
                                    $votes=$popularity[0][0];
                                    $points=$popularity[0][1];
                                }
                                else
                                {
                                    $votes=0;
                                    $points=0;
                                }
                                $html=spr_show_voted($votes, $points, $options['show_vote_count']);
                                $response=json_encode(array('status'=>1, 'html'=>$html));
                            }
                        }
                        else
                        {
                            $response=json_encode(array('status'=>3)); // post doesn't exist
                        }
                    }
                    else
                    {
                        $response=json_encode(array('status'=>4)); // user isn't logged in
                    }
                }
                else
                {
                    $response=json_encode(array('status'=>5));  // key parameters aren't set
                }
            }
            else
            {
                $response=json_encode(array('status'=>6));  // key parameters aren't set
            }
        }
        else
        {
            $response=json_encode(array('status'=>7));  // rating isn't active
        }
        echo $response;
        if (isset($_POST['action']))
        {
            die();
        }
    }
    
    function spr_options()
    {
        $list=spr_list_cpt_slugs();
        foreach ($list as $list_)
        {
            $def_types[$list_]=0;
        }
        $default_options=array("shape"=>"s", "color"=>"y", "where_to_show"=>$def_types, "position"=>"before", "show_vote_count"=>"1", "activated"=>"0", "scale"=>"5", "method"=>"auto", "alignment"=>"center", "vote_count_color"=>"", "vc_bold"=>"0", "vc_italic"=>"0", "show_in_loops"=>"0", "loop_on_hp"=>"0", "use_aggregated"=>"1", "allow_guest_vote"=>"0", "show_stats_metabox"=>"1");
        $options=get_option('spr_settings', 'undef');
        if ($options!='undef')
        {
            $options=json_decode($options, true);
            $diff=array_diff_key($default_options, $options);
            if (count($diff)>0)
            {
                $options=array_merge($options, $diff);
            }
        }
        else
        {
            $options=$default_options;
        }
        return $options;
    }
    
    function spr_options_page()
    {
        require_once (plugin_dir_path(__FILE__).'/settings.php');
    }
    
    function spr_save_settings()
    {
        $current_options=spr_options();
        $current_json=json_encode($current_options);
        if (isset($_POST['spr_shape'])||isset($_POST['spr_color'])||isset($_POST['spr_position'])||isset($_POST['spr_scale'])||isset($_POST['spr_show_vote_count'])||isset($_POST['spr_activated'])||isset($_POST['spr_method'])||isset($_POST['spr_vote_count_color'])||isset($_POST['spr_vc_bold'])||isset($_POST['spr_vc_italic'])||isset($_POST['spr_show_in_loops'])||isset($_POST['spr_loop_on_hp'])||isset($_POST['spr_use_aggregated'])||isset($_POST['spr_allow_guest_vote'])||isset($_POST['spr_show_stats_metabox']))
        {
    
    //Shape
            if (isset($_POST['spr_shape']))
            {
                switch ($_POST['spr_shape'])
                {
                    case 'c' :
                        {
                            $options['shape']='c';
                            break;
                        }
                    case 'h' :
                        {
                            $options['shape']='h';
                            break;
                        }
                    case 'b' :
                        {
                            $options['shape']='b';
                            break;
                        }
                    case 's' :
                        {
                            $options['shape']='s';
                            break;
                        }
                    default:
                        {
                            $options['shape']=$current_options['shape'];
                            break;
                        }
                }
            }
            //Color
            if (isset($_POST['spr_color']))
            {
                switch ($_POST['spr_color'])
                {
                    case 'p' :
                        {
                            $options['color']='p';
                            break;
                        }
                    case 'b' :
                        {
                            $options['color']='b';
                            break;
                        }
                    case 'y' :
                        {
                            $options['color']='y';
                            break;
                        }
                    case 'r' :
                        {
                            $options['color']='r';
                            break;
                        }
                    case 'g' :
                        {
                            $options['color']='g';
                            break;
                        }
                    default:
                        {
                            $options['color']=$current_options['color'];
                            break;
                        }
                }
            }
            //Position
            if (isset($_POST['spr_position']))
            {
                switch ($_POST['spr_position'])
                {
                    case 'before' :
                        {
                            $options['position']='before';
                            break;
                        }
                    case 'after' :
                        {
                            $options['position']='after';
                            break;
                        }
                    default:
                        {
                            $options['position']=$current_options['position'];
                            break;
                        }
                }
            }
            //Alignment 
            if (isset($_POST['spr_alignment']))
            {
                switch ($_POST['spr_alignment'])
                {
                    case 'center' :
                        {
                            $options['alignment']='center';
                            break;
                        }
                    case 'left' :
                        {
                            $options['alignment']='left';
                            break;
                        }
                    case 'right' :
                        {
                            $options['alignment']='right';
                            break;
                        }
                    default:
                        {
                            $options['alignment']=$current_options['alignment'];
                            break;
                        }
                }
            }
            //Show vote count
            if (isset($_POST['spr_show_vote_count']))
            {
                $options['show_vote_count']='1';
            }
            else
            {
                $options['show_vote_count']='0';
            }
            //Activated
            if (isset($_POST['spr_activated']))
            {
                $options['activated']='1';
            }
            else
            {
                $options['activated']='0';
            }
            //Scale
            if (isset($_POST['spr_scale']))
            {
                if ($_POST['spr_scale']>=3&&$_POST['spr_scale']<=10)
                {
                    $options['scale']=$_POST['spr_scale'];
                }
                else
                {
                    $options['scale']=$current_options['scale'];
                }
            }
            //Method
            if (isset($_POST['spr_method']))
            {
                switch ($_POST['spr_method'])
                {
                    case 'auto' :
                        {
                            $options['method']='auto';
                            break;
                        }
                    case 'manual' :
                        {
                            $options['method']='manual';
                            break;
                        }
                    default:
                        {
                            $options['method']=$current_options['method'];
                            break;
                        }
                }
            }
            // Vote count color
            if (isset($_POST['spr_vote_count_color']))
            {
                if (preg_match('@^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$@', $_POST['spr_vote_count_color']))
                {
                    $options['vote_count_color']=$_POST['spr_vote_count_color'];
                }
                else
                {
                    $_POST['spr_vote_count_color']="";
                }
            }
            //Bold
            if (isset($_POST['spr_vc_bold']))
            {
                $options['vc_bold']='1';
            }
            else
            {
                $options['vc_bold']='0';
            }
            //Italic
            if (isset($_POST['spr_vc_italic']))
            {
                $options['vc_italic']='1';
            }
            else
            {
                $options['vc_italic']='0';
            }
    
            if (isset($_POST['spr_show_in_loops']))
            {
                $options['show_in_loops']='1';
            }
            else
            {
                $options['show_in_loops']='0';
            }
            //Loop on homepage
            if (isset($_POST['spr_loop_on_hp']))
            {
                $options['loop_on_hp']='1';
            }
            else
            {
                $options['loop_on_hp']='0';
            }
            //Use aggregated
            if (isset($_POST['spr_use_aggregated']))
            {
                $options['use_aggregated']='1';
            }
            else
            {
                $options['use_aggregated']='0';
            }
    
            //Allow guests to vote
            if (isset($_POST['spr_allow_guest_vote']))
            {
                $options['allow_guest_vote']='1';
            }
            else
            {
                $options['allow_guest_vote']='0';
            }
            //Show statistics metabox
            if (isset($_POST['spr_show_stats_metabox']))
            {
                $options['show_stats_metabox']='1';
            }
            else
            {
                $options['show_stats_metabox']='0';
            }
    
            //where to show
            $list=spr_list_cpt_slugs();
            foreach ($list as $list_)
            {
                $def_types[$list_]=0;
                if (isset($_POST[$list_]))
                {
                    $options['where_to_show'][$list_]='1';
                }
                else
                {
                    $options['where_to_show'][$list_]='0';
                }
            }
            $default_options=array("shape"=>"s", "color"=>"y", "where_to_show"=>$def_types, "position"=>"before", "show_vote_count"=>"1", "activated"=>"0", "scale"=>"5", "method"=>"auto", "alignment"=>"center", "vote_count_color"=>"", "vc_bold"=>"0", "vc_italic"=>"0", "show_in_loops"=>"0", "loop_on_hp"=>"0", "use_aggregated"=>"1", "allow_guest_vote"=>"0", "show_stats_metabox"=>"1");
            $diff=array_diff_key($default_options, $options);
            if (count($diff)>0)
            {
                $options=array_merge($options, $diff);
            }
            $options=json_encode($options);
    
            if ($current_json!=$options)
            {
                update_option('spr_settings', $options);
                echo "<div class='updated'><p>Settings were updated successfully.</p></div>";
            }
        }
    }
    
    function spr_menu()
    {
        add_options_page('Simple Rating', 'Simple Rating', 'manage_options', 'spr_options', 'spr_options_page');
    }
    
    function spr_activation_func()
    {
        global $wpdb;
        $query="CREATE TABLE IF NOT EXISTS <code>&quot;.$wpdb->prefix.&quot;spr_votes</code>  (
    	<code>post_id</code> INT(11) NULL DEFAULT NULL,
    	<code>user_id</code> TINYTEXT NULL COLLATE 'utf8_unicode_ci',
    	<code>points</code> INT(11) NULL DEFAULT NULL 
    )
    COLLATE='utf8_unicode_ci'
    ENGINE=MyISAM;
    ";
        $wpdb->query($query);
        $query="CREATE TABLE IF NOT EXISTS <code>&quot;.$wpdb->prefix.&quot;spr_rating</code> (
    	<code>post_id</code> INT(11) NOT NULL,
    	<code>votes</code> INT(11) NOT NULL,
    	<code>points</code> INT(11) NOT NULL
    )
    COLLATE='utf8_unicode_ci'
    ENGINE=MyISAM;
    ";
        $wpdb->query($query);
        $list=spr_list_cpt_slugs();
        foreach ($list as $list_)
        {
            $def_types[$list_]=0;
        }
        $default_options=array("shape"=>"s", "color"=>"y", "where_to_show"=>$def_types, "position"=>"before", "show_vote_count"=>"1", "activated"=>"0", "scale"=>"5", "method"=>"auto", "alignment"=>"center", "vote_count_color"=>"", "vc_bold"=>"0", "vc_italic"=>"0", "show_in_loops"=>"0", "loop_on_hp"=>"0", "use_aggregated"=>"1", "allow_guest_vote"=>"0", "show_stats_metabox"=>"1");
        add_option('spr_settings', json_encode($default_options));
        add_option('spr_version', '1.3.1');
    }
    
    function add_spr_checkbox()
    {
        global $post;
        $type=get_post_type($post->ID);
        $disable_rating=get_post_meta($post->ID, '_spr_disable', true);
        ?>
        <div class="misc-pub-section">
            <input id="spr_disable_rating" type="checkbox" name="spr_disable_rating"  value="<?php echo $disable_rating; ?>" <?php checked($disable_rating, 1, true); ?>>
            <label for="spr_enable_rating">Disable rating for this entry</label></div>
        <?php
    }
    
    function spr_new_update_post_handler($data, $postarr)
    {
    
        if (isset($_POST['spr_disable_rating']))
        {
            update_post_meta($postarr['ID'], '_spr_disable', '1');
        }
        else
        {
            delete_post_meta($postarr['ID'], '_spr_disable');
        }
        return $data;
    }
    
    function spr_truncate_tables()
    {
        global $wpdb;
        $query="TRUNCATE TABLE <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> ;";
        $wpdb->query($query);
        $query="TRUNCATE TABLE <code>&quot;.$wpdb->prefix.&quot;spr_rating</code>;";
        $wpdb->query($query);
        echo "<div class='updated'><p>All votes were cleared.</p></div>";
    }
    
    function spr_add_settings_link($links)
    {
    
        return array_merge(
                array(
            'settings'=>'<a href="'.admin_url('options-general.php?page=spr_options').'">Settings</a>'
                ), $links
        );
    }
    
    function spr_print_additional_styles()
    {
        $options=spr_options();
        $style="<style>";
        $vc_style="#spr_votes{";
        $c_style="#spr_container{";
        if (strlen($options['vote_count_color'])>0&&$options['show_vote_count'])
        {
            $vc_style.="color:".$options['vote_count_color']." !important;";
        }
        if ($options['vc_bold']&&$options['show_vote_count'])
        {
            $vc_style.="font-weight:700 !important;";
        }
        if ($options['vc_italic']&&$options['show_vote_count'])
        {
            $vc_style.="font-style:italic !important;";
        }
        $vc_style.="}";
        if ($vc_style!="#spr_votes{}")
        {
            $style.=$vc_style;
        }
        if ($options['alignment']=="right"||$options['alignment']=="left")
        {
            $c_style.="text-align:".$options['alignment']." !important;";
        }
        $c_style.="}";
        if ($c_style!="#spr_container{}")
        {
            $style.=$c_style;
        }
        $style.="</style>";
        if ($style!="<style></style>")
        {
            echo $style;
        }
    }
    
    function spr_get_post_types_fo()
    {
        $options=spr_options();
        $post_types=get_post_types(array('public'=>true, '_builtin'=>false), 'objects', 'and');
        $result='<table><tr><td class="spr_cb_labels">Posts</td><td><input type="checkbox" name="post" id="post" value="'.$options['where_to_show']['post'].'" '.checked($options['where_to_show']['post'], 1, false).'></td></tr><tr><td class="spr_cb_labels">Pages</td><td><input type="checkbox" name="page" id="page" value="'.$options['where_to_show']['page'].'" '.checked($options['where_to_show']['page'], 1, false).'></td></tr>';
        foreach ($post_types as $post_type)
        {
            $result.= '<tr><td class="spr_cb_labels">'.$post_type->labels->name.'</td><td><input type="checkbox" name="'.$post_type->rewrite['slug'].'" id="'.$post_type->rewrite['slug'].'" value="'.$options['where_to_show'][$post_type->rewrite['slug']].'" '.checked($options['where_to_show'][$post_type->rewrite['slug']], 1, false).'></td></tr>';
        }
        $result.="</table>";
        return $result;
    }
    
    function spr_list_cpt_slugs()
    {
        $types=array("post", "page");
        $post_types=get_post_types(array('public'=>true, '_builtin'=>false), 'objects', 'and');
        foreach ($post_types as $post_type)
        {
            $types[]=$post_type->rewrite['slug'];
        }
        return $types;
    }
    
    function spr_get_ip()
    {
        if (getenv("HTTP_CLIENT_IP")&&strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
        {
            $ip=getenv("HTTP_CLIENT_IP");
        }
        else if (getenv("HTTP_X_FORWARDED_FOR")&&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
        {
            $ip=getenv("HTTP_X_FORWARDED_FOR");
        }
        else if (getenv("REMOTE_ADDR")&&strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
        {
            $ip=getenv("REMOTE_ADDR");
        }
        else if (isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
        {
            $ip=$_SERVER['REMOTE_ADDR'];
        }
        else
        {
            $ip="unknown";
        }
        return($ip);
    }
    
    function spr_list_ratings($post)
    {
        $options=spr_options();
        global $wpdb;
        wp_enqueue_style('spr_style', plugins_url('/resources/spr_style.css', __FILE__));
        $query="select <code>points</code>,<code>user_id</code>, count(points) as <code>amount</code> from <code>&quot;.$wpdb->prefix.&quot;spr_votes</code> where <code>post_id</code>='".$post->ID."' group by <code>points</code> order by <code>points</code> asc;";
        $list=$wpdb->get_results($query, ARRAY_A);
        $html="";
        $result="";
        if (count($list)>0)
        {
            $totalpoints=0;
            $totalvoters=0;
            for ($i=$options['scale']; $i>=1; $i--)
            {
                $users=0;
                $guests=0;
                $votes=0;
                $found=false;
                foreach ($list as $list_)
                {
                    if ($list_['points']==$i)
                    {
                        $found=true;
                        $totalpoints+=$list_['points']*$list_['amount'];
                        $totalvotes+=$list_['amount'];
                        $votes=$list_['amount'];
                        if (is_numeric($list_['used_id']))
                        {
                            $users++;
                        }
                        else if ($options['allow_guest_vote']&&filter_var($list_['used_id'], FILTER_VALIDATE_IP))
                        {
                            $guests++;
                        }
                    }
                }
                if ($found)
                {
                    if ($votes==1)
                    {
                        $votesorvote='vote';
                    }
                    else
                    {
                        $votesorvote='votes';
                    }
                    $html.='<div id="spr_visual_container_adm">'.spr_show_voted(1, $i, false).'<span id="spr_votes">'.$votes." ".$votesorvote."</span></div><br/>";
                }
                else
                {
                    $html.='<div id="spr_visual_container_adm">'.spr_show_voted(1, $i, false)."<span id='spr_votes'>0 votes</span></div><br/>";
                }
            }
            $result='<div id="spr_visual_container_adm">'.spr_show_voted($totalvotes, $totalpoints, true)."</div><div style='text-align:center;font-size:15px;margin:3px;font-weight:700;'>Statistics by rating:</div>";
        }
        else
        {
            $html.="There are no votes for this entry yet.";
        }
        echo $result.$html;
    }
    
    function spr_add_custom_box()
    {
        $options=spr_options();
        if ($options['show_stats_metabox'])
        {
            foreach ($options['where_to_show'] as $k=> $v)
            {
                if ($v)
                {
                    $screens[]=$k;
                }
            }
            if (count($screens)>0)
            {
                foreach ($screens as $screen)
                {
                    add_meta_box('spr_rating_stats', __('Rating statistics', 'spr_text_domain'), 'spr_list_ratings', $screen, 'side');
                }
            }
        }
    }
    
    add_action('add_meta_boxes', 'spr_add_custom_box');
    add_filter('plugin_action_links_'.plugin_basename(__FILE__), 'spr_add_settings_link');
    add_filter('wp_insert_post_data', 'spr_new_update_post_handler', '99', 2);
    add_action('post_submitbox_misc_actions', 'add_spr_checkbox');
    add_action('admin_menu', 'spr_menu');
    add_action('wp_ajax_spr_rate', 'spr_rate');
    add_action('wp_ajax_nopriv_spr_rate', 'spr_rate');
    register_activation_hook(__FILE__, 'spr_activation_func');
    ?>

    Here is code from settings.php. Here I think I probably have to change wp_enqueue to something else, among other things:

    <?php
    if (isset($_POST['spr_reset_votes']))
    {
        if (current_user_can('activate_plugins'))
        {
            spr_truncate_tables();
        }
    }
    spr_save_settings();
    $options=spr_options();
    wp_enqueue_style('farbtastic');
    wp_enqueue_script('farbtastic');
    wp_enqueue_style('spr_style', plugins_url('/resources/spr_style.css', __FILE__));
    wp_enqueue_script('spr_admin', plugins_url('/resources/spr_admin.js', __FILE__), array('farbtastic', 'jquery'), NULL);
    wp_localize_script('spr_admin', 'spr_ajax_object', array('scale'=>$options['scale'], 'spr_type'=>$options['color'].$options['shape']));
    ?>
    <h1>Adjust settings of the Simple Rating</h1>
    <div style="float:left;">
        <form name="form" method="POST" style="margin-top:15px;">
            <table>
                <tr>
                    <td  class="spr_adm_label"><label>Show rating</label></td>
                    <td><input type="checkbox" name="spr_activated" id="spr_activated" value="<?php echo $options['activated']; ?>" <?php checked($options['activated'], 1, true); ?>></td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="Unless you check this box, rating won't show up."></div></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Allow guests to vote</label></td>
                    <td><input type="checkbox" name="spr_allow_guest_vote" id="spr_allow_guest_vote" value="<?php echo $options['allow_guest_vote']; ?>" <?php checked($options['allow_guest_vote'], 1, true); ?>></td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="If you check this box, guests will be allowed to vote. Guest votes will be tracked by IP instead of UserID"></div></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Insertion method</label></td>
                    <td>
                        <select name="spr_method" id="spr_method" class="spr_admin_input">
                            <option value="auto" <?php selected($options['method'], 'auto', true); ?>>Automatic</option>
                            <option value="manual" <?php selected($options['method'], 'manual', true); ?>>Manual</option>
                        </select>
                    </td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="Automatic method is recommended if you don't want to touch theme files. It will use filter to insert rating before or after content. If you want to insert rating into a specific part of your template, set method to Manual and insert <?php if(function_exists('spr_show_rating')){echo spr_show_rating();}?> where you need it."></div></td>
                </tr> 
                <tr>
                    <td  class="spr_adm_label"><label>Shape</label></td>
                    <td>
                        <select name="spr_shape" id="spr_shape" class="spr_admin_input">
                            <option value="s" <?php selected($options['shape'], 's', true); ?>>Stars</option>
                            <option value="c" <?php selected($options['shape'], 'c', true); ?>>Circles</option>
                            <option value="h" <?php selected($options['shape'], 'h', true); ?>>Hearts</option>
                            <option value="b" <?php selected($options['shape'], 'b', true); ?>>Bar</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Color</label></td>
                    <td>
                        <select name="spr_color" id="spr_color" class="spr_admin_input">
                            <option value="y" <?php selected($options['color'], 'y', true); ?>>Yellow</option>
                            <option value="p" <?php selected($options['color'], 'p', true); ?>>Purple</option>
                            <option value="g" <?php selected($options['color'], 'g', true); ?>>Green</option>
                            <option value="b" <?php selected($options['color'], 'b', true); ?>>Blue</option>
                            <option value="r" <?php selected($options['color'], 'r', true); ?>>Red</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Alignment</label></td>
                    <td>
                        <select name="spr_alignment" id="spr_alignment" class="spr_admin_input">
                            <option value="center" <?php selected($options['alignment'], 'center', true); ?>>Center</option>
                            <option value="right" <?php selected($options['alignment'], 'right', true); ?>>Right</option>
                            <option value="left" <?php selected($options['alignment'], 'left', true); ?>>Left</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Show vote count</label></td>
                    <td><input type="checkbox" name="spr_show_vote_count" id="spr_show_vote_count" value="<?php echo $options['show_vote_count']; ?>" <?php checked($options['show_vote_count'], 1, true); ?>></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Vote count color</label></td>
                    <td>
                        <input type="text" size="10" maxlength="8" name="spr_vote_count_color" id="spr_vote_count_color" value="<?php echo $options['vote_count_color']; ?>" class="spr_admin_input">
                    </td>
                    <td><a href="#" id="spr_vote_count_color_box" class="pickcolor" style="padding: 4px 11px; border: 1px solid #dfdfdf; background-color: <?php echo $options['vote_count_color']; ?>;"></a>
                        <div id="psr_color_picker" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Vote count style</label></td>
                    <td> 
                        Bold <input type="checkbox" name="spr_vc_bold" id="spr_vc_bold" value="<?php echo $options['vc_bold']; ?>" <?php checked($options['vc_bold'], 1, true); ?>>
                        Italic <input type="checkbox" name="spr_vc_italic" id="spr_vc_italic" value="<?php echo $options['vc_italic']; ?>" <?php checked($options['vc_italic'], 1, true); ?>>
                    </td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Scale</label></td>
                    <td><input type="text" size="10" maxlength="200" name="spr_scale" id="spr_scale" value="<?php echo $options['scale']; ?>" class="spr_admin_input"></td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="Scale of rating. Allowed values: 3-10."></div></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Where to add rating</label></td>
                    <td>
                        <?php echo spr_get_post_types_fo(); ?>
                    </td>
                </tr> 
                <tr>
                    <td  class="spr_adm_label"><label>Position</label></td>
                    <td>
                        <select name="spr_position" id="spr_position" class="spr_admin_input">
                            <option value="before" <?php selected($options['position'], 'before', true); ?>>Before content</option>
                            <option value="after" <?php selected($options['position'], 'after', true); ?>>After content</option>
                        </select>
                    </td>
                </tr>  
                <tr>
                    <td  class="spr_adm_label"><label>Show in loops</label></td>
                    <td><input type="checkbox" name="spr_show_in_loops" id="spr_show_in_loops" value="<?php echo $options['show_in_loops']; ?>" <?php checked($options['show_in_loops'], 1, true); ?>></td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="Check this box if you want to show rating in the loops. Category page for example. Note: voting is allowed only from a single page."></div></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Show in loop on home page</label></td>
                    <td><input type="checkbox" name="spr_loop_on_hp" id="spr_loop_on_hp" value="<?php echo $options['loop_on_hp']; ?>" <?php checked($options['loop_on_hp'], 1, true); ?>></td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="If your homepage uses loop and you want to show rating there, check this box."></div></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Use aggregated rating</label></td>
                    <td><input type="checkbox" name="spr_use_aggregated" id="spr_use_aggregated" value="<?php echo $options['use_aggregated']; ?>" <?php checked($options['use_aggregated'], 1, true); ?>></td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="If you check this box, rating will be shown in search engines' snippets. See Screenshot 4 for example. Note: this plugin can't control rating style in snippets."></div></td>
                </tr>
                <tr>
                    <td  class="spr_adm_label"><label>Show statistics metabox</label></td>
                    <td><input type="checkbox" name="spr_show_stats_metabox" id="spr_show_stats_metabox" value="<?php echo $options['show_stats_metabox']; ?>" <?php checked($options['show_stats_metabox'], 1, true); ?>></td>
                    <td class="spr_hint_container"><div class="spr_hint tooltip-right" data-tooltip="If you check this box, you will see metabox with rating statistics when editing posts/pages/custom post type entries."></div></td>
                </tr>
            </table>
            <input type="submit" style="margin-top:10px;" class='button button-primary button-large' value="Save settings">
        </form>
    </div>
    <div id="postbox-container-1" class="postbox-container" style="float: right;display:inline-block;width: 280px;margin-right:20px;">
        <div class="postbox ">
            <h3 class="spr_widget_title">
                <span>Live preview</span>
            </h3>
            <div class="inside">         
                <div id="spr_container"><div class="spr_visual_container"><?php echo spr_show_voting(5, 25, $options['show_vote_count']); ?></div></div>
            </div>
        </div>
        <div class="postbox ">
            <h3 class="spr_widget_title">
                <span>Donate</span>
            </h3>
            <div class="inside">         
                <form action="https://www.moneybookers.com/app/payment.pl" method="post">
                    <input type="hidden" name="pay_to_email" value="igor.yavych@gmail.com">
                    <input type="hidden" name="status_url" value="mailto:igor.yavych@gmail.com">
                    <input type="hidden" name="language" value="EN">
                    <input type="hidden" name="recipient_description" value="Simple Rating">
                    <input type="text" name="amount" size="5"  value="5" />
                    <select name="currency" style="margin-top:-1px;" id="currency">
                        <option value="USD" selected="selected">USD</option>
                        <option value="EUR">EUR</option>
                    </select>
                    <input type="hidden" name="confirmation_note" value="Thanks for your support!">
                    <br/><input class="spr_button button button-primary button-small" type="submit" value="Donate via Skrill">
                </form>
            </div>
        </div>
        <div class="postbox ">
            <h3 class="spr_widget_title">
                <span>Reset votes</span>
            </h3>
            <div class="inside">         
                <form method="post" onsubmit="return confirm('Do you really want to reset votes?')">
                    You can reset votes by pressing button below.<br/>
                    <input type="hidden" name="spr_reset_votes" value="1">
                    <input class="spr_button button button-primary button-small" type="submit" value="Reset votes">
                </form>
            </div>
        </div>
        <div class="postbox ">
            <h3 class="spr_widget_title">
                <span>Feedback</span>
            </h3>
            <div class="inside">         
                Found a bug? Or maybe have a feature request? Head over to <a href="http://wordpress.org/support/plugin/simple-rating">support forum</a> and let me know!
            </div>
        </div>
    </div>
    #147194
    ubicray
    Participant

    I just create a topic, click post and it’s gone forever!
    Please, I would be more than grateful if someone helps
    Everything is updated to the last version, site is like this:
    http://forum.gamesap.az/

    #147171
    Robin W
    Moderator

    I presume they used to be ok? or have they never worked?

    Since they are images, almost anything in wordpress could have affected.

    have you added any plugins, or updated/changed themes?

    #147084
    Stephen Edgar
    Keymaster

    The ‘Recent Topics’ widget even though it can include ‘Recent Replies’ the widget itself only outputs topic links. The ‘Recent Replies’ widget does link to the most recent reply id.

    I also read your comments on the Trac tickets, we will get the widgets updated, the performance improvements we are making for bbPress 2.6 will most likely affect the widgets also, so we will take a look at the widget tickets at the same time.

    #147045
    TrishaM
    Participant

    I’m looking for advice on how to keep bbPress separate from my primary WP installation while still using the newest version of bbPress…..I think I know what to do but want to be sure I do it right before I start.

    My plan is to create a fresh, empty installation of WP, add the bbPress Plugin, and then import my old bb_ tables, which I know will then go into the wp_posts table in the new install – I just don’t want them co-mingled with the content on my primary site.

    I can then point a subdomain of my primary site (forums.mysite.com) to this install and just link to it from my site.

    To head off questions and just get advice, the reason I want them separate is that I tried integrating the forum with the site (unintentionally) last year when I updated the bbPress plugin and found that it was no longer stand-alone. It created a major catastrophe that took me months to recover from and get back to the way it was previously, and both my site and forum were offline for an unacceptable length of time…..I just never want to go through that level of frustration and work again, as much as I love bbPress I’d rather use some other forum software to keep things separated if I have to.

    BUT that said I want to keep my forum software up-to-date and I know that means using the current version.

    Any advice, thoughts, suggestions would be greatly appreciated.

    #146965

    In reply to: Forum Root Page Issues

    TulsaREIA
    Participant

    For people still looking for an easy solution to this issue, I found a simple solution.

    I wanted my blog categories to use excepts but when that setting is turned on, the root forum page does not display because it is truncated as described above.

    So I turned excepts off so that the forum displayed correctly and then to make the the rest of my site use excepts, I installed the plug in “posts in page”. Then I created new pages with the shortcode from the plugin to create new static pages for my posts to display in excerpts. I updated my menus and widgets to display links to the new pages so that site visitors can easily browse the posts by seeing excerpts. Plus I did not have to hard code the forum or theme.

    boblebad
    Participant

    You’re absolutely right, there’s no tables called bb-something, i thought i saw them, but it was bp-something all of them.

    I got a step further, it’s the Paid Memberships Pro plugin that does it, the weird thing is that i have the completely same setup on the other site, all plugins are same version, has bin updated at the same point, all settings are the same.

    There’s something with the PMPro plugin, i’ll try figure it out, and then see where it takes me, what it is.

    #146918
    Socially Uncensored
    Participant

    If you’re site is using TapaTalk, update now! There was a security flaw found in TapaTalk and they decided NOT to inform anyone or advise anyone to update their files.

    I did not find out until today, when I just happen to scroll over and found a post about it.

    They even publicly admit to patching it silently, but NOT issuing a release or any notice telling people they should replace their files (because they did not even bother changing the version number either).

    So I can only imagine how many sites are using the other copy without knowing they have a problem. This is completely irresponsible.

    Hi,

    This issue has been addressed in April 26th, 9 days before this site published the issue. However, since this is a low risk item – we have simply replaced all the plugins that are affected. If this is concerning you and If you have updated the plugin after April 26th, you are not affected.

    Source: https://support.tapatalk.com/threads/tapatalk-cross-site-scripting-vulnerability.24719/

    #146875
    Tom Dyer
    Participant

    Nope, I’ve not touched the Twenty fourteen theme since I added it. It’s been updated whenever required anyway though (I don’t like the seeing the update icon in the admin, so I tend to always keep things on the latest version whether I’m using it or not).

    This is a multisite install of WordPress though – Would that affect the $wpdb->get_col() visibility?

    #146787
    lagrou
    Participant

    Back to topic, just updated the GitHub repo with the following:
    – Add User section
    – Fix & make use of callback_forum_status, add Forum status (Open or Closed)
    – Fix & make use of callback_sticky_status
    All this tested OK on my nested test install. I’m leaving the “pre-alpha code” warning, though.

    Some more questions raised at this stage:
    – How do you access a parentless topic in bbPress ? Could these be used for WP Symposium groups forum topics ?
    – Could you clarify what a forum and a category refer to, in bbPress terminology ? Is a category a subforum, which has necessarily a parent forum, while a forum has no parent ? In such a case, there should be a test over symposium_cats.cat_parent in callback_forum_type(), otherwise it can be simply disregarded…

    #146714

    In reply to: Requirement Questions

    Robin W
    Moderator

    Multiple user levels https://wordpress.org/support/plugin/bbp-private-groups plugin should do this
    Capacity to see at a glance live updated list of who has commented – could be coded but is not in the current version.
    Is there a way to integrate Dropbox – not that I know
    He would like a tag cloud also. – yes that’s there

    #146707
    calfacemedia
    Participant

    Hi everyone

    We have a client who manages blocks of flats who wants a site focused around a forum. I was looking for some advice as to whether bbPress would would accommodate some of his requirements or if you had another suggestion. Thanks!

    – Multiple User levels – so he can assign each user when they sign up to individual forums/threads and they are restricted from viewing any others.
    – Capacity to see at a glance live updated list of who has commented in what thread, pulled together for him to view with ease.
    – Is there a way to integrate Dropbox into a site like this? He wants to have various documents downloadable by users but doesn’t want to have to reupload all of them to the back end of the site.
    – He would like a tag cloud also.

    nirgalo
    Participant

    Hi, when users subscribe to a forum or a topic, they receive an email with content of a new topic or new reply. Problem is when the topic or reply is edited by the author some time later, users read the original post in their email and not the updated one on the forum. So they miss information, sometimes important information. I would suggest to send in the email only a short excerpt of the topic content so users are inclined to go to the forum to read the message instead of doing so in their email which may be outdated by the time they read it.

    nirgalo
    Participant

    bbPress 2.5.3, WP 3.9.1

    I moved a topic from forum A to forum B (on the same site), by editing the topic and updating the Forum field. The topic was properly moved and now appears in forum B, but the post count of forum A still retains the old count when the topic was in forum A (and probably the count of forum B was not updated either but I am not sure of this). To get the count I am using bbp_get_forum_post_count(). Looks like a bug to me. Any workaround?

    #146568
    Stephen Edgar
    Keymaster

    I updated the bbpress.php file: https://gist.github.com/ntwb/1d884eb7bb889906285d

    #146551
    Stephen Edgar
    Keymaster

    Take a look at the following plugins:

    https://wordpress.org/plugins/bbpress-vip-support-plugin/ (You need to get an updated version of this via the support forums for this to work https://wordpress.org/support/plugin/bbpress-vip-support-plugin)

    https://wordpress.org/plugins/buddy-bbpress-support-topic/

    #146543
    Yukon Cornelius
    Participant

    update: this was undesirable because the link to the reply was going to the reply itself, which is just a single post of the ‘reply’ custom post type. I have created this dodgy hack of the above code so the permalink for the replies is still the topic permalink. I’m sure there are a million better ways to do this, but it does the job for me so i thought i’d share the updated version.

    function jag_add_last_reply() { { 
     $jag_last_reply_id = bbp_get_forum_last_reply_id();
     $jag_last_topic_id = bbp_get_forum_last_topic_id();
    
    $new_args = array(
        'post_type'=> 'reply',
        'p' => $jag_last_reply_id
    );
    $post_title_args = array(
        'post_type'=> 'topic',
        'p' => $jag_last_topic_id
    );
    $other_args = array(
        'post_type'=> 'topic',
        'p' => $jag_last_topic_id
    );
    $jag_query = new WP_Query( $post_title_args );
    $nest_query = new WP_Query( $new_args );
    $another_nest_query = new WP_Query( $other_args );
    
       if ( $jag_query->have_posts() ) : while ( $jag_query->have_posts() ) : $jag_query->the_post();
         $this_post_id=$post->ID;
         $this_post_permalink= get_permalink(); ?>   
                                 
         <a href="<?php echo $this_post_permalink; ?>">
    
    <?php endwhile; 
       endif; wp_reset_query();
    
       if ( $nest_query->have_posts() ) : while ( $nest_query->have_posts() ) : $nest_query->the_post();
         $this_post_id=$post->ID;
         $this_post_title= get_the_title();
         $this_post_content= get_the_excerpt(); ?>
                                 
         <h1><?php echo $this_post_title; ?></h1></a>
         <div class="the_content"><?php echo $this_post_content; ?></div>
                         
       <?php endwhile;
    elseif ( $another_nest_query->have_posts() ) : while ( $another_nest_query->have_posts() ) : $another_nest_query->the_post();
         $this_post_id=$post->ID;
         $this_post_title= get_the_title();
         $this_post_content= get_the_excerpt(); ?>   
                                 
         <h1><?php echo $this_post_title; ?></h1></a>
         <div class="the_content"><?php echo $this_post_content; ?></div>
                         
       <?php endwhile; 
       endif; 
        }} 
    // Hook into action
    add_action('bbp_theme_after_forum_description','jag_add_last_reply');
    #146486
    Stephen Edgar
    Keymaster

    Here is our ‘Official’ stance on the ‘Unread’ feature/functionality:

    https://bbpress.trac.wordpress.org/ticket/1937

    The primary issue is performance, we have not seen a plugin that will work well for larger sites, if we implement this as a feature it must work for everyone who uses bbPress.

    I just updated the list of ‘Unread’ type plugins I know of here:

    Feature Plugins Tracking

    #146471
    Stephen Edgar
    Keymaster

    One more thing, when making a custom importer always base it of the Example.php importer, I keep that updated with examples and any other changes I make for bbPress.

    The latest (updated 3 days ago) is here:
    https://bbpress.trac.wordpress.org/browser/trunk/src/includes/admin/converters/Example.php

    As Robin points out, you just delete/remove the sections or fields that are not applicable to your import e.g. ‘tags’ or if your database doesn’t include the ‘counts’ for topics in forums then remove that part in the forum section.

    #146356
    Stephen Edgar
    Keymaster

    I just checked the difference between the current version included with bbPress and that version you linked above. The version included with bbPress has quite a few enhancements, password support, forum categories, author IP, closed topics, sticky topics and topic tag slugs.

    The difference that you need is the BBCodes:

    // This is what is currently included with bbPress for YouTube:

    
    $vbulletin_markup = preg_replace( '/\[video\=youtube;(.*?)\](.*?)\[\/video\]/', '$2', $vbulletin_markup );
    

    //And this is what we had in that custom linked version:

    
    // Replace '[video=youtube;$1]$2[/video]' with '$2"
    $vbulletin_markup = preg_replace( '/\[video\=youtube;(.*?)\](.*?)\[\/video\]/', '$2', $vbulletin_markup );
    		
    // Replace '[video=youtube_share;$1]$2[/video]' with '$2"
    $vbulletin_markup = preg_replace( '/\[video\=youtube_share;(.*?)\](.*?)\[\/video\]/', '$2', $vbulletin_markup );
    // Replace '[SOUNDCLOUD]$1[/SOUNDCLOUD]' with '$1"
    $vbulletin_markup = preg_replace( '/\[SOUNDCLOUD\](.*?)\[\/SOUNDCLOUD\]/', '$1', $vbulletin_markup );
    

    So the addition of these two BBCodes:

    [video=youtube_share;$1]$2[/video] and [SOUNDCLOUD]$1[/SOUNDCLOUD]

    Do you know if both of these BBCodes are included with all vBulletin versions or are these custom BBCodes you manuallly created in your vBulletin install?

    Either way I just updated that gist with the above BBCode that you should be able to download and test as you did 8 months ago, it has ‘all the things’ above included in it. 🙂

    https://gist.github.com/ntwb/513187363f36b56ec77d

    #146276
    Robin W
    Moderator

    keep us updated, this is not my field of expertise, so can’t directly help you !

    #146119
    Stephen Edgar
    Keymaster

    Have you tried using just %postname% rather than /index.php/%postname% ?

    I have a sneaky suspicion this will be your issue.

    If you are not able to remove the /index.php/ before %postname% check your “WordPress Address (URL)” and “Site Address (URL)” in Settings -> General. If these include the /index.php/ I’d suggest you contact your web host and have these updated.

    (I only say contact your host as if you change these to something your web host doesn’t support you may lose access to your site)

    #145713
    calebbuxton
    Participant

    Robin,

    Thanks for the quick response. I will use the link provided to get the styles updated.

    I messed around with some of the padding and some random coding that had ended up on the page and was able to fix the forums appearance on the page.

    Thanks!

    #145659
    Zefred
    Participant

    Thus it is advisable to setup a local MAMP/XAMPP install and perform an import on your local machine

    Very good idea. I’m gonna try this solution, because I have already used the optimization tools on the database (with PHPMyadmin).

    Thank you again and i’ll keep you updated

    #145523
    qlymax
    Participant

    Mmm, same problem here. I’ve updated WordPress to version 3.9 and now the users (except admins) are unable to create topics.

Viewing 25 results - 801 through 825 (of 2,086 total)
Skip to toolbar