/** * Build the block modals. */ private function buildModals() { $thb_modal = new THB_Modal($this->getTitle(), $this->getSlug()); $thb_modal_container = $thb_modal->createContainer('', $this->getSlug() . '_container'); $thb_field = new THB_TextField('title'); $thb_field->setLabel(__('Title', 'thb-portfolio')); $thb_modal_container->addField($thb_field); $thb_field = new THB_GraphicRadioField('layout'); $thb_field->setLabel(__('Layout', 'thb_text_domain')); $thb_field->setOptions(thb_portfolio_config('builder_portfolio_layouts')); $thb_modal_container->addField($thb_field); thb_grid_layout_add_fields($thb_modal_container, thb_portfolio_config('grid_builder_columns')); $thb_field = new THB_QueryFilterField('query_filter'); $thb_field->addClass('full'); $thb_field->setTaxonomies(thb_get_post_type_taxonomies('works')); $thb_modal_container->addField($thb_field); $thb_field = new THB_CheckboxField('disable_filter'); $thb_field->setLabel(__('Disable filter', 'thb-portfolio')); $thb_modal_container->addField($thb_field); $thb_field = new THB_YesNoField('works_ajax_pagination'); $thb_field->setLabel(__('Use AJAX pagination', 'thb-portfolio')); $thb_field->setHelp(__('If the page template supports this feature (e.g. its items are filterable), enabling AJAX pagination won\'t refresh your page while filtering through Portfolio items.', 'thb-portfolio')); $thb_modal_container->addField($thb_field); $thb_modal_container = $thb_modal->createContainer(__('Carousel', 'thb_text_domain'), $this->getSlug() . '_carousel_container'); thb_carousel_options($thb_modal_container); $this->addModal($thb_modal); }
/** * Portfolio single entries options */ function thb_portfolio_single_options() { if (thb_portfolio_framework_check()) { $thb_works = thb_theme()->getPostType('works'); $slide_field = new THB_SlideField(thb_portfolio_config('work_slides_key')); $slide_field->setLabel(__('Slide', 'thb-portfolio')); $slide_field = apply_filters('thb_work_slide', $slide_field); if (thb_is_admin_template('single-works.php') && thb_portfolio_config('single')) { $thb_metabox = thb_theme()->getPostType('works')->getMetabox('layout'); $thb_container = $thb_metabox->createContainer(__('Related works', 'thb-portfolio'), 'related_works'); $thb_field = new THB_CheckboxField('works_related'); $thb_field->setLabel(__('Enable a related works section', 'thb-portfolio')); $thb_field->setHelp(__('Selecting "Yes" automatically creates a "related works" section at the bottom of a Portfolio item page.', 'thb-portfolio')); $thb_field->setDynamicDefault('thb_default_works_related'); $thb_container->addField($thb_field); $thb_field = new THB_NumberField('works_related_number'); $thb_field->setLabel(__('Related works to show', 'thb-portfolio')); $thb_field->setHelp(__('Choose how many related works you want to display. Defaults to 3.', 'thb-portfolio')); $thb_field->setDynamicDefault('thb_default_works_related_number'); $thb_container->addField($thb_field); $thb_field = new THB_CheckboxField('works_related_thumb'); $thb_field->setLabel(__('Show thumbnails in related works', 'thb-portfolio')); $thb_field->setHelp(__('Choose to enable the display of thumbnails for related works.', 'thb-portfolio')); $thb_field->setDynamicDefault('thb_default_works_related_thumb'); $thb_container->addField($thb_field); } $thb_metabox = $thb_works->getMetabox('layout'); $thb_tab = $thb_metabox->createTab(__('Project data', 'thb-portfolio'), 'extra'); $thb_tab->setIcon('clipboard'); // $thb_metabox = new THB_Metabox( __('Project data', 'thb-portfolio'), 'extra' ); // $thb_metabox->setPriority('high'); if (thb_portfolio_config('work_external_url')) { $thb_container = $thb_tab->createContainer('', 'data_details'); $field = new THB_TextField('external_url'); $field->setLabel(__('External URL', 'thb-portfolio')); $field->setHelp(__('Insert here an external URL to link to in Portfolio pages directly.', 'thb-portfolio')); $thb_container->addField($field); } if ($work_details = thb_portfolio_config('work_details')) { if ($work_details == 'text') { $thb_container = $thb_tab->createContainer(__('Details', 'thb-portfolio'), 'details'); $field = new THB_TextareaField('prj_info'); $field->setHelp(__('Insert here your project details (Note: accepts basic HTML).', 'thb-portfolio')); $thb_container->addField($field); } elseif ($work_details == 'keyvalue') { $thb_container = $thb_tab->createDuplicableContainer(__('Details', 'thb-portfolio'), 'details'); $thb_container->setIntroText(__('Click on the "Add" button to start inserting a series of key/value pairs details.', 'thb-portfolio')); $thb_container->addControl(__('Add', 'thb-portfolio'), ''); $thb_container->setSortable(); $thb_upload = new THB_KeyValueField('prj_info'); $thb_upload->setLabel(__('Detail', 'thb-portfolio')); $thb_container->setField($thb_upload); } } if (thb_portfolio_config('work_slides')) { if ($work_slides_config = thb_portfolio_config('work_slides_config')) { if (is_callable($work_slides_config)) { $thb_tab->addContainer(call_user_func($work_slides_config)); } } $thb_container = new THB_MetaboxDuplicableFieldsContainer(__('Project images and videos', 'thb-portfolio'), 'slides_container'); $thb_container->setSortable(); $thb_container->addControl(__('Add images', 'thb-portfolio'), 'add_image', '', array('action' => 'thb_add_multiple_slides', 'title' => __('Add images', 'thb-portfolio'))); $thb_container->addControl(__('Add video', 'thb-portfolio'), 'add_video', '', array('action' => 'thb_add_video_slide', 'title' => __('Add video', 'thb-portfolio'))); $thb_container->setField($slide_field); $thb_tab->addContainer($thb_container); // $thb_works->addMetabox($thb_metabox); } } }
/** * Body classes * ----------------------------------------------------------------------------- */ function thb_portfolio_body_classes($classes) { if (!thb_portfolio_framework_check()) { return; } $thb_portfolio_grid_templates = thb_portfolio_config('grid_templates'); $grid_body_class = thb_config('backpack/layout', 'grid_body_class'); if ($grid_body_class && thb_is_page_template($thb_portfolio_grid_templates)) { $classes[] = thb_get_grid_class_name(thb_get_grid_columns()); } return $classes; }
/** * Sidebars * ----------------------------------------------------------------------------- */ function thb_portfolio_sidebars() { if (thb_portfolio_framework_check() && thb_portfolio_config('sidebars')) { $thb_theme = thb_theme(); $thb_works = $thb_theme->getPostType('works'); $thb_theme->addSidebar(__('Portfolio sidebar', 'thb-portfolio'), 'works-sidebar'); $thb_works->setSidebar('works-sidebar'); } }