/** * 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); }
function thb_add_portfolio_metabox() { $ajax = thb_config('core/portfolio', 'ajax'); $thb_metabox = new THB_Metabox(__('Portfolio items', 'thb_text_domain'), 'portfolio_loop'); $thb_metabox->setPriority('high'); $thb_container = $thb_metabox->createContainer('', 'portfolio_loop_container'); $thb_field = new THB_QueryFilterField('works_query'); $thb_field->setTaxonomies(thb_get_post_type_taxonomies('works')); if (thb_is_admin_template(thb_config('core/portfolio', 'pagination_disabled'))) { $thb_field->setHideNum(); } $thb_container->addField($thb_field); if (!empty($ajax)) { if (thb_is_admin_template($ajax)) { $thb_field = new THB_YesNoField('works_ajax_pagination'); $thb_field->setLabel(__('Use AJAX pagination', 'thb_text_domain')); $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_text_domain')); $thb_container->addField($thb_field); } } thb_theme()->getPostType('page')->addMetabox($thb_metabox); if (thb_check_template_config('core/portfolio', 'grid_templates')) { $thb_metabox = thb_theme()->getPostType('page')->getMetabox('layout'); $thb_container = $thb_metabox->getContainer('layout_container'); $thb_field = new THB_SelectField('portfolio_columns'); $thb_field->setLabel(thb_config('core/portfolio', 'grid_templates_columns_label')); $thb_field->setOptions(thb_config('core/portfolio', 'grid_templates_columns')); $thb_container->addField($thb_field); $grid_image_sizes = thb_config('core/portfolio', 'grid_image_sizes'); if (!empty($grid_image_sizes)) { $grid_size_options = array(); if (is_array(current($grid_image_sizes))) { $grid_size_options[] = __('Fixed', 'thb_text_domain'); $grid_size_options[] = __('Variable', 'thb_text_domain'); } else { $grid_size_options[$grid_image_sizes[0]] = __('Fixed', 'thb_text_domain'); $grid_size_options[$grid_image_sizes[1]] = __('Variable', 'thb_text_domain'); } $thb_field = new THB_SelectField('portfolio_grid_image_sizes'); $thb_field->setLabel(__('Thumbnails height', 'thb_text_domain')); $thb_field->setOptions($grid_size_options); $thb_container->addField($thb_field); } } }
/** * Portfolio page templates options metabox */ function thb_add_portfolio_metabox() { if (thb_portfolio_framework_check() && thb_portfolio_config('metabox') && thb_is_admin_template(thb_portfolio_config('templates'))) { $ajax = thb_portfolio_config('ajax'); $grid = thb_portfolio_config('grid_templates'); $grid_columns = thb_portfolio_config('grid_templates_columns'); $thb_metabox = thb_theme()->getPostType('page')->getMetabox('layout'); $thb_tab = $thb_metabox->createTab(__('Portfolio options', 'thb-portfolio'), 'portfolio_options'); $thb_tab->setIcon('welcome-view-site'); $thb_container = $thb_tab->createContainer('', 'portfolio_loop_container'); if (!empty($grid)) { if (thb_is_admin_template($grid)) { $current_template = thb_get_admin_template(); // if ( isset( $grid_columns[$current_template] ) ) { if (in_array($current_template, array_keys($grid_columns))) { thb_grid_layout_add_fields($thb_container, $grid_columns[$current_template]); } } } $thb_container = $thb_tab->createContainer('Filtering & ordering', 'portfolio_filtering_container'); $thb_field = new THB_QueryFilterField('works_query'); $thb_field->addClass('full'); $thb_field->setTaxonomies(thb_get_post_type_taxonomies('works')); if (thb_is_admin_template(thb_portfolio_config('pagination_disabled_templates'))) { $thb_field->setHideNum(); } $thb_container->addField($thb_field); $thb_container = $thb_tab->getContainer('portfolio_loop_container'); if (!empty($ajax)) { if (thb_is_admin_template($ajax)) { $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_container->addField($thb_field); } } } }
function thb_woocommerce_extra_options() { $thb_theme = thb_theme(); $thb_page = $thb_theme->getAdmin()->getMainPage(); $thb_tab = $thb_page->getTab('woocommerce'); $thb_container = $thb_tab->createContainer(__('Shop general options', 'thb_text_domain'), 'woocommerce_general_options'); $thb_field = new THB_YesNoField('enable_shop_cart_allpages'); $thb_field->setLabel(__('Enable shop cart on all pages', 'thb_text_domain')); $thb_field->setHelp(__('Choose if you want to enable the shop cart on header on all pages or only for "Shop" related pages.', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_container = $thb_tab->getContainer('woocommerce_shop_options'); $thb_field = new THB_SelectField('woocommerce_shop_pageheader_layout'); $thb_field->setLabel(__('Page header layout', 'thb_text_domain')); $thb_field->setOptions(array('left' => __('Left', 'thb_text_domain'), 'center' => __('Center', 'thb_text_domain'), 'right' => __('Right', 'thb_text_domain'))); $thb_container->addField($thb_field); $thb_field = new THB_SelectField('woocommerce_shop_pageheader_height'); $thb_field->setLabel(__('Page header height', 'thb_text_domain')); $thb_field->setOptions(array('pageheader-big' => __('Large', 'thb_text_domain'), 'pageheader-compact' => __('Compact', 'thb_text_domain'))); $thb_field->setHelp(__('This setting will affect also the shop\'s archive and taxonomy pages.', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_UploadField('woocommerce_shop_pageheader_background_image'); $thb_field->setLabel(__('Page header background image', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_NumberField('woocommerce_shop_pageheader_background_opacity'); $thb_field->setMin(0); $thb_field->setMax(1); $thb_field->setStep(0.05); $thb_field->setLabel(__('Page header background opacity', 'thb_text_domain')); $thb_container->addField($thb_field); }