Esempio n. 1
0
 function aft_plgn_calculate_summary($aft_data, $aft_fetch_data, $isnew, $aft_old_data = null, $is_delete = false)
 {
     global $wpdb;
     // Initialize value for declared variables.
     $post_id = $aft_data['post_id'];
     $total_trustworthy = $aft_data['trustworthy_rate'];
     $total_objective = $aft_data['objective_rate'];
     $total_complete = $aft_data['complete_rate'];
     $total_wellwritten = $aft_data['wellwritten_rate'];
     $is_page = $aft_data['is_page'];
     // Identify if the summary stored is a page rated summary.
     // Counting the # of user who rated the posts/pages based on each items.
     $count_trustworthy = rtp_count_rated_item($post_id, 'trustworthy_rate');
     $count_objective = rtp_count_rated_item($post_id, 'objective_rate');
     $count_complete = rtp_count_rated_item($post_id, 'complete_rate');
     $count_wellwritten = rtp_count_rated_item($post_id, 'wellwritten_rate');
     // Check if post_id already exist in wp_feedbacks_summary table.
     if ($aft_fetch_data->post_id != 0) {
         if (!$isnew) {
             // Sum of total rate from users for Trustworthy Rating.
             if ($total_trustworthy <= $aft_old_data->trustworthy_rate) {
                 $temp_total = intval($aft_old_data->trustworthy_rate - $total_trustworthy);
                 if ($temp_total == 0 && $is_delete) {
                     $total_trustworthy = intval($aft_fetch_data->total_trustworthy - $total_trustworthy);
                 } else {
                     $total_trustworthy = intval($aft_fetch_data->total_trustworthy - $temp_total);
                 }
             } else {
                 $temp_total = intval($total_trustworthy - $aft_old_data->trustworthy_rate);
                 $total_trustworthy = intval($aft_fetch_data->total_trustworthy + $temp_total);
             }
             // Sum of total rate from users for Objective Rating.
             if ($total_objective <= $aft_old_data->objective_rate) {
                 $temp_total = intval($aft_old_data->objective_rate - $total_objective);
                 if ($temp_total == 0 && $is_delete) {
                     $total_objective = intval($aft_fetch_data->total_objective - $total_objective);
                 } else {
                     $total_objective = intval($aft_fetch_data->total_objective - $temp_total);
                 }
             } else {
                 $temp_total = intval($total_objective - $aft_old_data->objective_rate);
                 $total_objective = intval($aft_fetch_data->total_objective + $temp_total);
             }
             // Sum of total rate from users for Complete Rating.
             if ($total_complete <= $aft_old_data->complete_rate) {
                 $temp_total = intval($aft_old_data->complete_rate - $total_complete);
                 if ($temp_total == 0 && $is_delete) {
                     $total_complete = intval($aft_fetch_data->total_complete - $total_complete);
                 } else {
                     $total_complete = intval($aft_fetch_data->total_complete - $temp_total);
                 }
             } else {
                 $temp_total = intval($total_complete - $aft_old_data->complete_rate);
                 $total_complete = intval($aft_fetch_data->total_complete + $temp_total);
             }
             // Sum of total rate from users for Well-written Rating.
             if ($total_wellwritten <= $aft_old_data->wellwritten_rate) {
                 $temp_total = intval($aft_old_data->wellwritten_rate - $total_wellwritten);
                 if ($temp_total == 0 && $is_delete) {
                     $total_wellwritten = intval($aft_fetch_data->total_wellwritten - $total_wellwritten);
                 } else {
                     $total_wellwritten = intval($aft_fetch_data->total_wellwritten - $temp_total);
                 }
             } else {
                 $temp_total = intval($total_wellwritten - $aft_old_data->wellwritten_rate);
                 $total_wellwritten = intval($aft_fetch_data->total_wellwritten + $temp_total);
             }
         } else {
             $total_trustworthy = intval($aft_fetch_data->total_trustworthy + $total_trustworthy);
             $total_objective = intval($aft_fetch_data->total_objective + $total_objective);
             $total_complete = intval($aft_fetch_data->total_complete + $total_complete);
             $total_wellwritten = intval($aft_fetch_data->total_wellwritten + $total_wellwritten);
         }
     }
     // Place all supplied variable in an array.
     $aft_sdata = array('post_id' => $post_id, 'total_trustworthy' => $total_trustworthy, 'count_trustworthy' => $count_trustworthy, 'total_objective' => $total_objective, 'count_objective' => $count_objective, 'total_complete' => $total_complete, 'count_complete' => $count_complete, 'total_wellwritten' => $total_wellwritten, 'count_wellwritten' => $count_wellwritten, 'is_page' => $is_page);
     // Compute overall average rating of the article that was rated.
     $total_votes_score = array($total_trustworthy, $total_objective, $total_complete, $total_wellwritten);
     $total_votes_count = array($count_trustworthy, $count_objective, $count_complete, $count_wellwritten);
     $sum_of_votes = array_sum($total_votes_score);
     $sum_of_counts = array_sum($total_votes_count);
     if ($sum_of_votes == 0 && $sum_of_counts == 0) {
         $aft_sdata['rate_average'] = 0;
     } else {
         $aft_sdata['rate_average'] = $sum_of_votes / $sum_of_counts;
     }
     // Check if post_id not exist in wp_feedbacks_summary table.
     if ($aft_fetch_data->post_id == 0) {
         $sql = sprintf('%sfeedbacks_summary', $wpdb->prefix);
         $wpdb->insert($sql, $aft_sdata);
     } else {
         // The summary of the page being rated.
         if ($aft_fetch_data->is_page == 'true') {
             $sql = sprintf('%sfeedbacks_summary', $wpdb->prefix);
             $wpdb->update($sql, $aft_sdata, array('post_id' => $post_id, 'is_page' => $is_page));
         } else {
             $sql = sprintf('%sfeedbacks_summary', $wpdb->prefix);
             $wpdb->update($sql, $aft_sdata, array('post_id' => $post_id));
         }
     }
 }
</strong>] Rate / 
								<br />[<strong><?php 
        echo rtp_count_rated_item($rows->post_id, 'wellwritten_rate');
        ?>
</strong>] Count
							</td>
							<?php 
        if ($_POST['aft-filter'] != 'last-update') {
            ?>
							<td class="rtp-rpt-average">
								[<strong><?php 
            echo $rows->rate_average;
            ?>
</strong>] Ave. / 
								<br />[<strong><?php 
            echo rtp_count_rated_item($rows->post_id, array('trustworthy_rate', 'objective_rate', 'complete_rate', 'wellwritten_rate'));
            ?>
</strong>] Count
							</td>
							<?php 
        } else {
            ?>
							<td><?php 
            echo $rows->rate_modified;
            ?>
</td>
							<?php 
        }
        ?>
						</tr>
						<?php