<?php namespace App\Model; use App\Classes\Db; use App\Traits\Log; class PageModel extends Model { use Log { delete as deleteLog; } protected $table = 'page'; protected $sort = ['section_id', 'order']; // Attribute rules // Name | Type | Required | Filtered public $rules = [ ["page", "text", 1, 0], ["title", "text", 0, 0], ["title_url", "text", 0, 1], ["meta_description", "text", 0, 0], ["type", "text", 1, 1], ["order", "text", 1, 0], ["hide_navigation", "checkbox", 1, 0], ["active", "checkbox", 1, 0], ["section_id", "dropdown", 1, 0], ["log_id", "text", 1, 1], ]; //-------------------------------------// // Set default values public function __construct() { parent::__construct(); $this->type = 0; } // Generate the dropdown data public function getDropdownData(string $type): array { if ($type == 'section_id') { return $this->dropdownSection(); } return []; } public function delete(): bool { if (self::query( "DELETE FROM `{$this->table}_has_content` WHERE `{$this->table}_$this->primaryKey` = :id", [ [':id', $this->{$this->primaryKey}], ] ) === null) { return false; } return $this->deleteLog(); } //-------------------------------------// protected function dropdownSection(): array { // Pull sections from cache $sections = Db::getSections(); return ['' => 'Select section'] + array_combine( array_column($sections, 'id'), array_column($sections, 'title') ); } }