| | |
| | | */ |
| | | class CRUD { |
| | | protected CRUDSkeleton $skeleton; |
| | | protected CacheManager $cache; |
| | | protected Cache $cache; |
| | | protected array $config; |
| | | protected string $content; |
| | | protected array $taxonomies = []; |
| | |
| | | $this->user_id = get_current_user_id(); |
| | | $this->config = $this->constant[$content]; |
| | | $this->content = $content; |
| | | $this->cache = CacheManager::for($content); |
| | | $this->cache = Cache::for('crud')->connect('post')->connect('taxonomy'); |
| | | |
| | | if (JVB_TESTING) { |
| | | $this->cache->flush(); |
| | | } |
| | | |
| | | // Create and configure skeleton |
| | | $this->skeleton = new CRUDSkeleton(); |
| | | $this->configure(); |
| | |
| | | ); |
| | | |
| | | // Initialize meta |
| | | $this->skeleton->initMeta($this->type, $this->content); |
| | | |
| | | |
| | | $this->skeleton->addSearch(); |
| | | |
| | | // Timeline if applicable |
| | | if (Features::forContent($this->content)->has('is_timeline')) { |
| | |
| | | // Statuses |
| | | if (Features::forContent($this->content)->has('is_calendar')) { |
| | | $this->skeleton->setCalendar(); |
| | | }else { |
| | | $this->skeleton->setDefaultStatus(); |
| | | } |
| | | |
| | | $this->skeleton->setDefaultStatus(); |
| | | |
| | | // Views |
| | | $this->skeleton |
| | | ->addViews(['grid', 'list', 'table']) |
| | | ->addViews() |
| | | ->defaultView('grid'); |
| | | $this->skeleton->addItemActions(); |
| | | |
| | | // Filters |
| | | $this->skeleton->addDateFilter(); |