Search Results for 'updated'
-
AuthorSearch Results
-
May 31, 2014 at 1:49 pm #147217
Jerry
ParticipantOkay, 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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."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>".$wpdb->prefix."spr_votes</code> ;"; $wpdb->query($query); $query="TRUNCATE TABLE <code>".$wpdb->prefix."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>".$wpdb->prefix."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>
May 30, 2014 at 4:56 pm #147194Topic: Can't see any topics
in forum Installationubicray
ParticipantI 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/May 30, 2014 at 4:26 am #147171In reply to: Forum images went crazy
Robin W
ModeratorI 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?
May 28, 2014 at 11:10 pm #147084In reply to: Recent Topics link to most recent reply
Stephen Edgar
KeymasterThe ‘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.
May 27, 2014 at 7:22 pm #147045Topic: Setup bbPress as a standalone WP install
in forum InstallationTrishaM
ParticipantI’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.
May 24, 2014 at 6:52 pm #146965In reply to: Forum Root Page Issues
TulsaREIA
ParticipantFor 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.
May 24, 2014 at 3:49 am #146936boblebad
ParticipantYou’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.
May 23, 2014 at 3:12 pm #146918Topic: Security Issue – TapaTalk
in forum Requests & FeedbackSocially Uncensored
ParticipantIf 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/
May 23, 2014 at 8:02 am #146875In reply to: Per Forum Permissions by Group
Tom Dyer
ParticipantNope, 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?May 22, 2014 at 4:21 pm #146787In reply to: WP Symposium converter for bbPress
lagrou
ParticipantBack 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…May 21, 2014 at 6:10 am #146714In reply to: Requirement Questions
Robin W
ModeratorMultiple 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 thereMay 21, 2014 at 5:48 am #146707Topic: Requirement Questions
in forum Requests & Feedbackcalfacemedia
ParticipantHi 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.May 21, 2014 at 5:08 am #146702Topic: Send notification email without full post
in forum Requests & Feedbacknirgalo
ParticipantHi, 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.
May 20, 2014 at 4:43 pm #146654nirgalo
ParticipantbbPress 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?
May 19, 2014 at 1:24 am #146568In reply to: User profile pages not displaying correctly
Stephen Edgar
KeymasterI updated the
bbpress.php
file: https://gist.github.com/ntwb/1d884eb7bb889906285dMay 18, 2014 at 7:14 pm #146551In reply to: How to achieve this function?
Stephen Edgar
KeymasterTake 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)
May 18, 2014 at 5:13 pm #146543In reply to: How to add latest reply or topic to forum list
Yukon Cornelius
Participantupdate: 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');
May 17, 2014 at 9:49 pm #146486In reply to: Display unread posts distinctively
Stephen Edgar
KeymasterHere 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:
May 17, 2014 at 7:54 pm #146471In reply to: Documented import from snitz access database
Stephen Edgar
KeymasterOne 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.phpAs 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.
May 15, 2014 at 3:42 am #146356In reply to: Problems after Importing Vbulliten
Stephen Edgar
KeymasterI 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. 🙂
May 13, 2014 at 12:17 pm #146276In reply to: New Users Auto Subscribe to One Forum
Robin W
Moderatorkeep us updated, this is not my field of expertise, so can’t directly help you !
May 10, 2014 at 7:49 am #146119In reply to: Edit leading to 404 page
Stephen Edgar
KeymasterHave 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)
May 1, 2014 at 7:46 am #145713In reply to: Updating Color and Shortcode Help
calebbuxton
ParticipantRobin,
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!
April 29, 2014 at 11:57 am #145659In reply to: Importing from Invision 3.4.3 impossible
Zefred
ParticipantThus 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
April 26, 2014 at 12:52 pm #145523In reply to: Unable to create new topic
qlymax
ParticipantMmm, same problem here. I’ve updated WordPress to version 3.9 and now the users (except admins) are unable to create topics.
-
AuthorSearch Results