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.
		
		
		
		
		
			
		
			
				
					
					
						
							68 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							68 lines
						
					
					
						
							1.4 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace App\Model; | 
						|
 | 
						|
use App\Classes\Db; | 
						|
use App\Model\ContentModel; | 
						|
use App\Model\PageModel; | 
						|
 | 
						|
class PageHasContentModel extends Model { | 
						|
 | 
						|
	protected $table = 'page_has_content'; | 
						|
	protected $sort = ['page_id', 'order']; | 
						|
 | 
						|
	public $title = "PageHasContent"; | 
						|
 | 
						|
	// Attribute rules | 
						|
	// Name | Type | Required | Filtered | 
						|
	public $rules = [ | 
						|
		["order",       "text",      1, 0], | 
						|
		["page_id",     "dropdown",  1, 0], | 
						|
		["content_id",  "dropdown",  1, 0], | 
						|
	]; | 
						|
 | 
						|
	//-------------------------------------// | 
						|
 | 
						|
	// Generate the dropdown data | 
						|
	public function getDropdownData(string $type): array | 
						|
	{ | 
						|
		if ($type == 'page_id') { | 
						|
			return $this->dropdownPage(); | 
						|
		} | 
						|
		else if ($type == 'content_id') { | 
						|
			return $this->dropdownContent(); | 
						|
		} | 
						|
 | 
						|
		return []; | 
						|
	} | 
						|
 | 
						|
	//-------------------------------------// | 
						|
 | 
						|
	protected function dropdownPage(): array | 
						|
	{ | 
						|
		$pages = PageModel::selectAll( | 
						|
			'*', "WHERE `active` = ? ORDER BY `title` ASC", [1], '?'); | 
						|
 | 
						|
		return [0 => 'Select page'] + array_combine( | 
						|
			array_column($pages, 'id'), | 
						|
			array_column($pages, 'title') | 
						|
		); | 
						|
	} | 
						|
 | 
						|
	protected function dropdownContent(): array | 
						|
	{ | 
						|
		$contents = ContentModel::selectAll( | 
						|
			'*', "WHERE `active` = ? ORDER BY `title` ASC", [1], '?'); | 
						|
 | 
						|
		// Exit if nothing was found | 
						|
		if (!_exists($contents)) { | 
						|
			return []; | 
						|
		} | 
						|
 | 
						|
		return [0 => 'Select content'] + array_combine( | 
						|
			array_column($contents, 'id'), | 
						|
			array_column($contents, 'title') | 
						|
		); | 
						|
	} | 
						|
 | 
						|
}
 | 
						|
 |