Repository URL to install this package:
|
Version:
3.3.1 ▾
|
<?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;
}
}