Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
evsmash/widgets / libs / Review.php
Size: Mime:
<?php

namespace Evsmash\Widgets;

use Evsmash\Core\Database\Eloquent;

use Evsmash\Core\Database\SoftDeleting;
use Evsmash\Core\Simpy\Params;

use Evsmash\Widgets\Schemas\Reviews as Schema;

class Review extends Eloquent {

	use SoftDeleting;

	// validate
	static public function validate() {

		return Schema::validate();

	}

	// belongs to user
	public function user() {

		return $this->belongsTo('Evsmash\Core\Users\User');

	}

	// params
	public function scopeParams($query, $params = false) {

		$scope = new Params();
		$scope->scope($query, $params);
		$scope->where('published');
		$scope->order(['created_at' => 'desc']);		
		return $scope->query;

	}

	// published
	public function scopePublished($query, $params = false) {

		return $query->where('published', 1);

	}

	// summary
	static public function summary($rel) {

		// get
		$ratings = Review::where('rel', $rel)->where('published', 1)->pluck('rate');

		// init
		$output = new \stdClass;

		// avarage
		if($ratings->count()) {
			$output->avarage = round($ratings->avg(), 1);
			$output->total = $ratings->count();
		} else {
			$output->avarage = '-';
			$output->total = 0; 
		}

		// output
		return $output;

	}

	// stars
	static public function stars($rate, $total = 5) {

		// rate
		$rate = ceil($rate) + 1;

		// output
		$output = '';
		$output .= '<span class="stars">';
		for($i = 1; $i <= $total; $i++) {
			if($rate > $i) {
				$output .= '<i class="fa fa-star" style="color: #ffa500; font-size: 1rem;"></i>';
			} else {
				$output .= '<i class="fa fa-star" style="color: #aaa; font-size: 1rem;"></i>';
			}
		}
		$output .= '</span>';
		return $output;

	}

}