69 lines
1.4 KiB
PHP
69 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Model;
|
|
|
|
use App\Classes\Db;
|
|
use App\Model\ContentModel;
|
|
use App\Model\SectionModel;
|
|
|
|
class SectionHasContentModel extends Model {
|
|
|
|
protected $table = 'section_has_content';
|
|
protected $sort = ['section_id', 'order'];
|
|
|
|
public $title = "SectionHasContent";
|
|
|
|
// Attribute rules
|
|
// Name | Type | Required | Filtered
|
|
public $rules = [
|
|
["order", "text", 1, 0],
|
|
["section_id", "dropdown", 1, 0],
|
|
["content_id", "dropdown", 1, 0],
|
|
];
|
|
|
|
//-------------------------------------//
|
|
|
|
// Generate the dropdown data
|
|
public function getDropdownData(string $type): array
|
|
{
|
|
if ($type == 'section_id') {
|
|
return $this->dropdownSection();
|
|
}
|
|
else if ($type == 'content_id') {
|
|
return $this->dropdownContent();
|
|
}
|
|
|
|
return [];
|
|
}
|
|
|
|
//-------------------------------------//
|
|
|
|
protected function dropdownSection(): array
|
|
{
|
|
$sections = SectionModel::selectAll(
|
|
'*', "WHERE `active` = ? ORDER BY `title` ASC", [1], '?');
|
|
|
|
return [0 => 'Select section'] + array_combine(
|
|
array_column($sections, 'id'),
|
|
array_column($sections, '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')
|
|
);
|
|
}
|
|
|
|
}
|