Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?PHP
- NAMESPACE tri4m\Wp;
- USE tri4m\Wp\__const_Action;
- USE tri4m\Wp\__const_AdminLink;
- USE tri4m\Wp\__const_Filter;
- USE tri4m\Wp\__type_Call;
- USE tri4m\Wp\Hook;
- USE tri4m\Wp\Inv;
- USE tri4m\Wp\Theme;
- USE tri4m\Wp\Trace;
- USE tri4m\Wp\Wtf\__type_AdminBar;
- USE tri4m\Wp\Wtf\__type_ContextualHelp;
- USE tri4m\Wp\Wtf\__type_ManageColumns;
- USE tri4m\Wp\Wtf\__type_Name;
- USE tri4m\Wp\Wtf\__type_PostType;
- USE tri4m\Wp\Wtf\__type_Settings;
- USE tri4m\Wp\Wtf\__type_SideBar;
- USE tri4m\Wp\Wtf\__type_Taxonomy;
- USE tri4m\Wp\Wtf\AdminBar;
- USE tri4m\Wp\Wtf\AdminBar\Child;
- USE tri4m\Wp\Wtf\ContextualHelp;
- USE tri4m\Wp\Wtf\ContextualHelp\__type_Tab;
- USE tri4m\Wp\Wtf\ContextualHelp\Tabs;
- USE tri4m\Wp\Wtf\ManageColumns;
- USE tri4m\Wp\Wtf\PostType;
- USE tri4m\Wp\Wtf\PostType\__flag_Support;
- USE tri4m\Wp\Wtf\Settings;
- USE tri4m\Wp\Wtf\Settings\__type_Field;
- USE tri4m\Wp\Wtf\Settings\__type_Page;
- USE tri4m\Wp\Wtf\Settings\__type_Section;
- USE tri4m\Wp\Wtf\Settings\Fields;
- USE tri4m\Wp\Wtf\Settings\Sections;
- USE tri4m\Wp\Wtf\SideBar;
- USE tri4m\Wp\Wtf\SubMenuPage;
- USE tri4m\Wp\Wtf\__type_SubMenuPage;
- USE tri4m\Wp\Wtf\Taxonomy;
- USE ILLI\Core\Util\String;
- USE WP_Post;
- CLASS Application
- {
- function boot()
- {
- Trace::add(__METHOD__);
- (new SubMenuPage(new __type_SubMenuPage([
- __type_SubMenuPage::id => 'bob',
- __type_SubMenuPage::title => 'bob Options',
- __type_SubMenuPage::menuTitle => 'bob',
- __type_SubMenuPage::content => new __type_Call([
- __type_Call::fn => function()
- {
- print 'hello';
- }
- ])
- ])))->install();
- #:options:
- (new Settings(new __type_Settings([
- __type_Settings::id => 'foobar',
- __type_Settings::deep => TRUE,
- __type_Settings::page => new __type_Page([
- __type_Page::title => 'foobar Options',
- ]),
- __type_Settings::sections => new Sections([
- new __type_Section([
- __type_Section::id => 'FOO',
- __type_Section::title => 'FOO VARS',
- __type_Section::content => '<p>trolololol</p>',
- __type_Section::fields => new Fields([
- new __type_Field([
- __type_Field::id => 'first_option',
- __type_Field::title => '1st Option',
- __type_Field::std => '1st Value',
- __type_Field::type => 'text',
- __type_Field::desc => 'another textfield',
- ]),
- new __type_Field([
- __type_Field::id => 'second_option',
- __type_Field::title => '2nd Option',
- __type_Field::std => '2nd Value',
- __type_Field::type => 'text',
- ])
- ])
- ]),
- new __type_Section([
- __type_Section::id => 'BAR',
- __type_Section::title => 'BAR VARS',
- __type_Section::content => '<p>Hello world</p>',
- __type_Section::fields => new Fields([
- new __type_Field([
- __type_Field::id => 'third_option',
- __type_Field::title => '3rd Option',
- __type_Field::std => '3rd Value',
- __type_Field::type => 'text',
- ]),
- new __type_Field([
- __type_Field::id => 'fourth_option',
- __type_Field::title => '4th Option',
- __type_Field::std => '4th Value',
- __type_Field::type => 'text',
- ])
- ])
- ])
- ])
- ])))->install();
- (new Settings(new __type_Settings([
- __type_Settings::id => 'foobaz',
- __type_Settings::deep => FALSE,
- __type_Settings::page => new __type_Page([
- __type_Page::title => 'foobaz Options',
- __type_Page::parentId => __const_AdminLink::PAGES,
- ]),
- __type_Settings::sections => new Sections([
- new __type_Section([
- __type_Section::id => 'FOO',
- __type_Section::title => 'FOO VARS',
- __type_Section::content => '<p>trolololol</p>',
- __type_Section::fields => new Fields([
- new __type_Field([
- __type_Field::id => 'first_option',
- __type_Field::title => '1st Option',
- __type_Field::std => '1st Value',
- __type_Field::type => 'text',
- __type_Field::desc => 'another textfield',
- ]),
- new __type_Field([
- __type_Field::id => 'second_option',
- __type_Field::title => '2nd Option',
- __type_Field::std => '2nd Value',
- __type_Field::type => 'text',
- ])
- ])
- ]),
- new __type_Section([
- __type_Section::id => 'BAR',
- __type_Section::title => 'BAR VARS',
- __type_Section::content => '<p>Hello world</p>',
- __type_Section::fields => new Fields([
- new __type_Field([
- __type_Field::id => 'third_option',
- __type_Field::title => '3rd Option',
- __type_Field::std => '3rd Value',
- __type_Field::type => 'text',
- ]),
- new __type_Field([
- __type_Field::id => 'fourth_option',
- __type_Field::title => '4th Option',
- __type_Field::std => '4th Value',
- __type_Field::type => 'text',
- ])
- ])
- ])
- ])
- ])))->install();
- #::
- #:config:
- Hook::enqueue(new __type_Call([
- __type_Call::fn => ['tri4m\Wp\Inv', 'addThemeSupport'],
- __type_Call::arguments => ['post-formats', ['aside', 'gallery', 'link', 'image', 'quote', 'status', 'audio', 'video', 'chat']]
- ]));
- Hook::enqueue(new __type_Call([
- __type_Call::fn => ['tri4m\Wp\Inv', 'addThemeSupport'],
- __type_Call::arguments => ['post-thumbnails']
- ]));
- Hook::enqueue(new __type_Call([
- __type_Call::fn => ['tri4m\Wp\Inv', 'addThemeSupport'],
- __type_Call::arguments => ['automatic-feed-links']
- ]));
- Hook::enqueue(new __type_Call([
- __type_Call::fn => ['tri4m\Wp\Inv', 'addImageSize'],
- __type_Call::arguments => ['edit-screen-thumbnail', 100, 100, TRUE]
- ]));
- Hook::enqueue(new __type_Call([
- __type_Call::fn => ['tri4m\Wp\Inv', 'addThemeSupport'],
- __type_Call::arguments => [720, 240, true]
- ]));
- Hook::enqueue(new __type_Call([
- __type_Call::fn => ['tri4m\Wp\Inv', 'addEditorStyle']
- ]));
- #::
- #:posttypes:
- #! capabilities not implemented
- #:events:
- $Event = new __type_PostType([
- __type_PostType::name => new __type_Name([
- __type_Name::singular => 'Event',
- __type_Name::plural => 'Events',
- __type_Name::slugSingular => 'event',
- __type_Name::slugPlural => 'events'
- ])
- ]);
- $EventType = new __type_Taxonomy([
- __type_Taxonomy::type => $Event->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Type',
- __type_Name::plural => 'Types',
- __type_Name::slugSingular => 'event_type',
- __type_Name::slugPlural => 'event_types'
- ])
- ]);
- $Event->env->supports = 11 + __flag_Support::POST_FORMATS;
- $Event->env->hierarchical = TRUE;
- $Event->env->taxonomies = [$EventType->name->slugSingular];
- $Event->env->rewrite->slug = 'event';
- (new PostType($Event))->install();
- $EventType->args->rewrite->slug = 'events/by-type';
- (new Taxonomy($EventType))->install();
- #::
- #:members:
- $Member = new __type_PostType([
- __type_PostType::name => new __type_Name([
- __type_Name::singular => 'Member',
- __type_Name::plural => 'Members',
- __type_Name::slugSingular => 'member',
- __type_Name::slugPlural => 'members'
- ])
- ]);
- $MemberProfession = new __type_Taxonomy([
- __type_Taxonomy::type => $Member->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Profession',
- __type_Name::plural => 'Professions',
- __type_Name::slugSingular => 'profession',
- __type_Name::slugPlural => 'professions'
- ])
- ]);
- $MemberLevel = new __type_Taxonomy([
- __type_Taxonomy::type => $Member->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Level',
- __type_Name::plural => 'Levels',
- __type_Name::slugSingular => 'level',
- __type_Name::slugPlural => 'levels'
- ])
- ]);
- $Member->env->supports = 11 + __flag_Support::POST_FORMATS;
- $Member->env->hierarchical = FALSE;
- $Member->env->taxonomies = [$MemberProfession->name->slugSingular, $MemberLevel->name->slugSingular];
- $Member->env->rewrite->slug = 'member';
- (new PostType($Member))->install();
- $MemberProfession->args->rewrite->slug = 'members/by-profession';
- (new Taxonomy($MemberProfession))->install();
- $MemberLevel->args->rewrite->slug = 'members/by-level';
- (new Taxonomy($MemberLevel))->install();
- #:test:
- #+ contextual help from __type_Call
- (new ContextualHelp(new __type_ContextualHelp([
- __type_ContextualHelp::name => $Member->name,
- __type_ContextualHelp::id => 'edit-'.$Member->name->slugSingular,
- __type_ContextualHelp::content => new __type_Call([
- __type_Call::fn => function()
- {
- return [
- '<h2>Edit {:singular}</h2>',
- '<p>This page allows you to view/modify {:singular} details. Please make sure to fill out the available boxes with the appropriate details and <strong>not</strong> add these details to the {:singular} description.</p>'
- ];
- }
- ])
- ])))->install();
- #+ contextual help tabs from __type_Call, SPL_ARRAY
- (new ContextualHelp(new __type_ContextualHelp([
- __type_ContextualHelp::name => $Member->name,
- __type_ContextualHelp::id => $Member->name->slugSingular,
- __type_ContextualHelp::content => new Tabs([
- new __type_Tab([
- __type_Tab::id => 'welcome',
- __type_Tab::label => 'edit {:plural}',
- __type_Tab::content =>
- [
- '<h2>{:plural}</h2>',
- '<p>{:plural} show the details of the items that we sell on the website. You can see a list of them on this page in reverse chronological order - the latest one we added is first.</p>',
- '<p>You can view/edit the details of each {:singular} by clicking on its name, or you can perform bulk actions using the dropdown menu and selecting multiple items.</p>'
- ]
- ]),
- new __type_Tab([
- __type_Tab::id => 'test',
- __type_Tab::label => 'Test',
- __type_Tab::content =>
- [
- '<h2>Testertesting</h2>',
- '<p>This page allows you to view/modify {:singular} details. Please make sure to fill out the available boxes with the appropriate details and <strong>not</strong> add these details to the {:singular} description.</p>'
- ],
- ]),
- new __type_Tab([
- __type_Tab::id => 'ctest',
- __type_Tab::label => 'Callable Test',
- __type_Tab::content => new __type_Call([
- __type_Call::fn => function()
- {
- return 'hello {:singular}';
- }
- ])
- ]),
- ])
- ])))->install();
- #::
- #::
- #:skills:
- $Skill = new __type_PostType([
- __type_PostType::name => new __type_Name([
- __type_Name::singular => 'Skill',
- __type_Name::plural => 'Skills',
- __type_Name::slugSingular => 'skill',
- __type_Name::slugPlural => 'skills'
- ])
- ]);
- $SkillTechnology = new __type_Taxonomy([
- __type_Taxonomy::type => $Skill->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Technology',
- __type_Name::plural => 'Technologies',
- __type_Name::slugSingular => 'skill_technology',
- __type_Name::slugPlural => 'skill_technologies'
- ])
- ]);
- $SkillPlotKW = new __type_Taxonomy([
- __type_Taxonomy::type => $Skill->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Plot Keyword',
- __type_Name::plural => 'Plot Keywords',
- __type_Name::slugSingular => 'skill_plot_keyword',
- __type_Name::slugPlural => 'skill_plot_keywords'
- ])
- ]);
- $SkillType = new __type_Taxonomy([
- __type_Taxonomy::type => $Skill->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Type',
- __type_Name::plural => 'Types',
- __type_Name::slugSingular => 'skill_type',
- __type_Name::slugPlural => 'skill_types'
- ])
- ]);
- $SkillYear = new __type_Taxonomy([
- __type_Taxonomy::type => $Skill->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Year',
- __type_Name::plural => 'Years',
- __type_Name::slugSingular => 'skill_year',
- __type_Name::slugPlural => 'skill_years'
- ])
- ]);
- $SkillClient = new __type_Taxonomy([
- __type_Taxonomy::type => $Skill->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Client',
- __type_Name::plural => 'Clients',
- __type_Name::slugSingular => 'skill_client',
- __type_Name::slugPlural => 'skill_clients'
- ])
- ]);
- $SkillLocation = new __type_Taxonomy([
- __type_Taxonomy::type => $Skill->name->slugSingular,
- __type_Taxonomy::name => new __type_Name([
- __type_Name::singular => 'Location',
- __type_Name::plural => 'Location',
- __type_Name::slugSingular => 'skill_location',
- __type_Name::slugPlural => 'skill_locations'
- ])
- ]);
- $Skill->env->supports = 11 + __flag_Support::PAGE_ATTRIBUTES | __flag_Support::POST_FORMATS;
- $Skill->env->hierarchical = TRUE;
- $Skill->env->taxonomies =
- [
- $SkillTechnology->name->slugSingular,
- $SkillType->name->slugSingular,
- $SkillYear->name->slugSingular,
- $SkillClient->name->slugSingular
- ];
- $Skill->env->rewrite->slug = 'skill';
- (new PostType($Skill))->install();
- $SkillTechnology->args->rewrite->slug = 'skills/by-technology';
- (new Taxonomy($SkillTechnology))->install();
- $SkillType->args->rewrite->slug = 'skills/by-plot-keyword';
- (new Taxonomy($SkillPlotKW))->install();
- $SkillType->args->rewrite->slug = 'skills/by-type';
- (new Taxonomy($SkillType))->install();
- $SkillYear->args->rewrite->slug = 'skills/by-year';
- (new Taxonomy($SkillYear))->install();
- $SkillClient->args->rewrite->slug = 'skills/by-client';
- (new Taxonomy($SkillClient))->install();
- $SkillLocation->args->rewrite->slug = 'skills/by-location';
- (new Taxonomy($SkillLocation))->install();
- #::
- #::
- #:sidebar:
- #:test:
- (new SideBar(new __type_SideBar([
- __type_Sidebar::name => 'Left',
- __type_Sidebar::id => '{:slug}_sidebar_left',
- __type_Sidebar::desc => 'The {:name} sidebar.'
- ])))->install();
- (new SideBar(new __type_SideBar([
- __type_Sidebar::name => 'Right',
- __type_Sidebar::id => '{:slug}_sidebar_right',
- __type_Sidebar::desc => 'The {:name} sidebar.'
- ])))->install();
- (new SideBar(new __type_SideBar([
- __type_Sidebar::name => '2nd Right',
- __type_Sidebar::id => '{:slug}_sidebar_right_2',
- __type_Sidebar::desc => 'The {:name} sidebar.'
- ])))->install();
- (new SideBar(new __type_SideBar([
- __type_Sidebar::name => 'Footer',
- __type_Sidebar::id => '{:slug}_sidebar_footer',
- __type_Sidebar::desc => 'The {:name} sidebar.'
- ])))->install();
- #::
- #::
- #:adminbar:
- #:test:
- (new AdminBar(new __type_AdminBar([
- __type_AdminBar::title => Theme::fullName(),
- __type_AdminBar::id => Theme::fullName(),
- __type_AdminBar::href => '#',
- __type_AdminBar::child => new Child([
- new AdminBar(new __type_AdminBar([
- __type_AdminBar::title => 'foo'
- ]))
- ])
- ])))->install();
- (new AdminBar(new __type_AdminBar([
- __type_AdminBar::title => Theme::name(),
- __type_AdminBar::id => Theme::name(),
- __type_AdminBar::href => '#',
- __type_AdminBar::child => new Child([
- new AdminBar(new __type_AdminBar([
- __type_AdminBar::title => 'baz'
- ]))
- ])
- ])))->install();
- #::
- #::
- #:manageColumns:
- #:posts:
- #:test:
- #+ remove column 'tags' from postType 'post'
- (new ManageColumns(new __type_ManageColumns([
- __type_ManageColumns::filterEvent => String::insert(__const_Filter::MANAGE_POST_TYPE_POSTS_COLUMNS__, ['postType' => 'post']),
- __type_ManageColumns::filter => new __type_Call([
- __type_Call::fn => function($__columns)
- {
- unset($__columns['tags']);
- return $__columns;
- }
- ])
- ])))->install();
- #::
- #:featuredImage:
- #+ add featuredImage to multiple postTypes
- (new ManageColumns(new __type_ManageColumns([
- __type_ManageColumns::id => 'featured_image',
- __type_ManageColumns::title => 'Featured Image',
- __type_ManageColumns::index => 0,
- __type_ManageColumns::filterEvent =>
- [
- String::insert(__const_Filter::MANAGE_POST_TYPE_POSTS_COLUMNS__, ['postType' => 'post']),
- String::insert(__const_Filter::MANAGE_POST_TYPE_POSTS_COLUMNS__, ['postType' => $Event->name->slugSingular]),
- String::insert(__const_Filter::MANAGE_POST_TYPE_POSTS_COLUMNS__, ['postType' => $Member->name->slugSingular]),
- String::insert(__const_Filter::MANAGE_POST_TYPE_POSTS_COLUMNS__, ['postType' => $Skill->name->slugSingular]),
- ],
- __type_ManageColumns::actionEvent =>
- [
- String::insert(__const_Action::MANAGE_POST_TYPE_POSTS_CUSTOM_COLUMN__, ['postType' => 'post']),
- String::insert(__const_Action::MANAGE_POST_TYPE_POSTS_CUSTOM_COLUMN__, ['postType' => $Event->name->slugSingular]),
- String::insert(__const_Action::MANAGE_POST_TYPE_POSTS_CUSTOM_COLUMN__, ['postType' => $Member->name->slugSingular]),
- String::insert(__const_Action::MANAGE_POST_TYPE_POSTS_CUSTOM_COLUMN__, ['postType' => $Skill->name->slugSingular]),
- ],
- __type_ManageColumns::action => new __type_Call([
- __type_Call::fn => function($__column, WP_Post $__WpPost)
- {
- print Inv::getThePostThumbnail($__WpPost->ID, 'edit-screen-thumbnail');
- }
- ])
- ])))->install();
- #::
- #:wordCount:
- #+ add wordCount to postType 'post'
- (new ManageColumns(new __type_ManageColumns([
- __type_ManageColumns::id => 'word_count',
- __type_ManageColumns::title => 'Word Count',
- __type_ManageColumns::index => 2,
- __type_ManageColumns::filterEvent => String::insert(__const_Filter::MANAGE_POST_TYPE_POSTS_COLUMNS__, ['postType' => 'post']),
- __type_ManageColumns::actionEvent => String::insert(__const_Action::MANAGE_POST_TYPE_POSTS_CUSTOM_COLUMN__, ['postType' => 'post']),
- __type_ManageColumns::action => new __type_Call([
- __type_Call::fn => function($__column, WP_Post $__WpPost)
- {
- print Inv::strWordCount($__WpPost->post_content);
- }
- ])
- ])))->install();
- #::
- #::
- #::
- }
- function run()
- {
- Trace::add(__METHOD__);
- Hook::dequeue();
- }
- function shutdown()
- {
- Trace::add(__METHOD__);
- }
- function install()
- {
- Trace::add(__METHOD__);
- }
- function uninstall()
- {
- Trace::add(__METHOD__);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement