You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							44 lines
						
					
					
						
							844 B
						
					
					
				
			
		
		
	
	
							44 lines
						
					
					
						
							844 B
						
					
					
				| <?php | |
| /** | |
|  * Created by Error202 | |
|  * Date: 24.01.2018 | |
|  */ | |
|  | |
| namespace frontend\widgets\post; | |
|  | |
|  | |
| use core\entities\post\Post; | |
| use yii\base\Widget; | |
| use yii\helpers\Url; | |
|  | |
| class PostWidget extends Widget | |
| { | |
| 	const FILTER_LAST = 1; | |
| 	const FILTER_POPULAR = 2; | |
|  | |
| 	public $type; | |
| 	public $count; | |
| 	public $view; | |
| 	public $filter; | |
|  | |
| 	public function __construct($config = []) | |
| 	{ | |
| 		parent::__construct($config); | |
| 		$this->count = $this->count ? $this->count : 5; | |
| 	} | |
|  | |
| 	public function run(): string | |
| 	{ | |
| 		if ($this->filter == self::FILTER_POPULAR) { | |
| 			$posts = Post::find()->byType( $this->type )->popular()->limit($this->count)->all(); | |
| 		} | |
| 		else { | |
| 			$posts = Post::find()->byType( $this->type )->last()->limit($this->count)->all(); | |
| 		} | |
| 		return $this->render($this->view, [ | |
| 			'posts' => $posts, | |
| 			'view' => $this->view, | |
| 			'url' => Url::canonical(), | |
| 		]); | |
| 	} | |
| } |