| | |
| | | use JVBase\registrar\config\Directory; |
| | | use JVBase\registrar\config\Feed; |
| | | use JVBase\registrar\config\Integration; |
| | | use JVBase\registrar\config\Register; |
| | | use JVBase\registrar\config\Section; |
| | | use JVBase\registrar\config\SEO; |
| | | use JVBase\registrar\helpers\AddIntegrationFields; |
| | |
| | | public string $prefix_with = 'by'; |
| | | |
| | | public bool $system = false; |
| | | public bool $baseless = false; |
| | | public bool $modify = false; |
| | | |
| | | protected static array $allFlags = [ |
| | | //Shared Flags |
| | |
| | | protected Dashboard $dashboard; |
| | | protected Directory|false $directory; |
| | | protected Feed|false $feed; |
| | | protected Register|false $login; |
| | | // protected Management $management; |
| | | // protected Responses $responses; |
| | | protected ?SEO $seo = null; |
| | |
| | | 'post_parent__not_in' => [0], // Only get posts with a parent |
| | | ]); |
| | | } |
| | | |
| | | public function ensureRegistrar():void |
| | | { |
| | | $this->initRegistrar(); |
| | | } |
| | | protected function initRegistrar():void { |
| | | $this->registrar = match ($this->type) { |
| | | 'post' => new Posts($this->slug, $this->singular, $this->plural), |
| | | 'term' => new Terms($this->slug, $this->singular, $this->plural), |
| | | default => false, |
| | | }; |
| | | |
| | | |
| | | if ($this->baseless) { |
| | | $this->registrar->baseless = true; |
| | | $this->registrar->postType = jvbNoBase($this->slug); |
| | | } |
| | | if ($this->modify) { |
| | | $this->registrar->modify = true; |
| | | } |
| | | } |
| | | |
| | | protected function initClasses():void { |
| | |
| | | return self::$instances[$slug]; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Adds the properties for register_post_type or register_taxonomy |
| | | * @param array $args |
| | |
| | | return $this->args; |
| | | } |
| | | |
| | | public function baseless():self |
| | | { |
| | | $this->baseless = true; |
| | | return $this; |
| | | } |
| | | public function modify():self |
| | | { |
| | | $this->modify = true; |
| | | return $this; |
| | | } |
| | | |
| | | public function setFields():void |
| | | { |
| | | $this->fields = new Fields($this->type, $this); |
| | |
| | | |
| | | public function config(string $config):mixed |
| | | { |
| | | $allowed = ['breadcrumbs','calendar','dashboard','directory','feed','management','has_responses','seo','trackchanges','verification']; |
| | | $allowed = ['breadcrumbs','calendar','register','login','dashboard','directory','feed','management','has_responses','seo','trackchanges','verification']; |
| | | if (!in_array(strtolower($config), $allowed)) { |
| | | error_log('Invalid config requested from Registrar: '.$config); |
| | | return []; |
| | |
| | | 'breadcrumbs' => $this->getBreadcrumbs(), |
| | | 'dashboard' => $this->getDashboard(), |
| | | 'directory' => $this->getDirectory(), |
| | | 'register','login' => $this->getLogin(), |
| | | 'feed' => $this->getFeed(), |
| | | 'management' => $this->getManagement(), |
| | | 'has_responses' => $this->getResponses(), |
| | |
| | | 'verification' => $this->getVerification() |
| | | }; |
| | | } |
| | | protected function getLogin():Register|false |
| | | { |
| | | if (!isset($this->login)) { |
| | | $this->login = new Register(); |
| | | } |
| | | return $this->login; |
| | | } |
| | | protected function getBreadcrumbs():Breadcrumbs |
| | | { |
| | | if (!isset($this->breadcrumbs)) { |
| | |
| | | |
| | | unset($processing[$termId]); |
| | | } |
| | | |
| | | public function renderContent(string $content, array $block):string |
| | | { |
| | | if (!is_page($this->page)) { |