function thb_add_footerstripe_metabox() { if (thb_is_admin_template(thb_config('footerstripe', 'templates'))) { $thb_metabox = thb_theme()->getPostType('page')->getMetabox('layout'); $thb_container = $thb_metabox->createContainer(__('Footer stripe', 'thb_text_domain'), 'footerstripe_container'); $thb_field = new THB_SelectField('footerstripe'); $thb_field->setLabel(__('Select', 'thb_text_domain')); $thb_field->setDynamicOptions('thb_get_footerstripes_for_select'); $thb_container->addField($thb_field); } }
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); } } }
function thb_add_sidebar_metabox() { $thb_theme = thb_theme(); // $thb_posts = $thb_theme->getPostType('post'); // $thb_pages = $thb_theme->getPostType('page'); // $thb_posts->addMetabox( thb_sidebars_metabox('post') ); foreach (thb_config('core/sidebars', 'templates') as $template) { if (thb_is_admin_template($template)) { $post_type = thb_get_post_type_from_template($template); $thb_metabox = $thb_theme->getPostType($post_type)->getMetabox('layout'); if ($thb_metabox) { $thb_metabox->addContainer(thb_sidebars_metabox_container($post_type)); } } } // $thb_pages->addMetaboxToPages( thb_sidebars_metabox(), thb_config('core/sidebars', 'templates') ); // $thb_pages->addMetabox( thb_sidebars_metabox(), thb_config('core/sidebars', 'templates') ); }
function thb_photogallery_container() { $thb_theme = thb_theme(); $thb_photogallery_page_template = thb_config('core/photogallery', 'templates'); if (thb_is_admin_template($thb_photogallery_page_template)) { $thb_metabox = new THB_Metabox(__('Gallery', 'thb_text_domain'), 'slideshow'); $thb_container = $thb_metabox->createContainer(__('Configuration', 'thb_text_domain'), 'photogallery_masonry_details_container'); $thb_field = new THB_NumberField('slides_per_page'); $thb_field->setLabel(__('Pictures per page', 'thb_text_domain')); // $thb_field->setHelp( __('In case of AJAX loading, chose how many pictures to display.', 'thb_text_domain') ); $thb_field->setHelp(__('Choose how many pictures to load dinamically. Leaving this empty will show all the images available.', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_SelectField('portfolio_columns'); $thb_field->setLabel(thb_config('core/photogallery', 'grid_templates_columns_label')); $thb_field->setOptions(thb_config('core/photogallery', 'grid_templates_columns')); $thb_container->addField($thb_field); $image_sizes = thb_config('core/photogallery', 'image_sizes'); if (!empty($image_sizes)) { $slides_size_options = array(); if (is_array(current($image_sizes))) { $slides_size_options[] = __('Fixed', 'thb_text_domain'); $slides_size_options[] = __('Variable', 'thb_text_domain'); } else { $slides_size_options[$image_sizes[0]] = __('Fixed', 'thb_text_domain'); $slides_size_options[$image_sizes[1]] = __('Variable', 'thb_text_domain'); } $thb_field = new THB_SelectField('slides_size'); $thb_field->setLabel(__('Photos height', 'thb_text_domain')); $thb_field->setOptions($slides_size_options); $thb_container->addField($thb_field); } $thb_container = $thb_metabox->createDuplicableContainer(__('Photos', 'thb_text_domain'), 'photogallery_slides'); $thb_container->setSortable(); $thb_container->addControl(__('Add photo', 'thb_text_domain'), 'add_image', 'images.png', array('action' => 'thb_add_multiple_slides', 'title' => __('Add photos', 'thb_text_domain'))); $field = new THB_SlideField('photogallery_slide'); $field->setLabel(__('Slide', 'thb_text_domain')); $thb_container->setField($field); $thb_theme->getPostType('page')->addMetabox($thb_metabox); } }
function thb_template_home_admin_body_class($classes) { if (thb_is_admin_template("template-showcase.php")) { $classes .= " thb-no-editor"; } return $classes; }
/** * Check the page template. * * @param string $template The page template to be checked against. * @return string */ function thb_is_admin_template($template) { if (is_string($template)) { if (empty($_POST) && is_admin()) { return $template == thb_get_admin_template(); } return true; } elseif (is_array($template)) { foreach ($template as $t) { if (thb_is_admin_template($t)) { return true; } } } return false; }
/** * Check if a particular key is currently enabled or disabled, or if it is * enabled only for a specific set of page templates. * * @param string $key The option key. * @param string $subkey The option subkey. * @return boolean */ function thb_check_template_config($key, $subkey) { return thb_config($key, $subkey) === true || thb_is_admin_template(thb_config($key, $subkey)); }
/** * 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); } } }
/** * Add a Slideshow metabox to the specified page templates. * * @param array $templates The page templates. * @return void */ function thb_add_entry_slideshow_metabox($templates) { $thb_metabox = thb_create_entry_slideshow_metabox(); foreach ($templates as $template) { $post_type = thb_theme()->getPostType(thb_get_post_type_from_template($template)); if (thb_is_admin_template($template)) { $post_type->addMetabox($thb_metabox); } } }
/** * Add a custom metabox to the post type. * * @param THB_Metabox $metabox The custom metabox. * @param array $templates The admin templates that should display * the metabox. * @param int $index The insertion index. * @return void */ public function addMetabox($metabox, $templates = array(), $index = false) { $add = true; if (!empty($templates)) { $add = thb_is_admin_template($templates); } // if( empty($_POST) && is_admin() ) { // foreach( $conditions as $condition ) { // if( !$condition ) { // $add = false; // break; // } // } // } if ($add) { $metabox->setPostType($this->_type); $metabox = apply_filters('thb_' . $metabox->getSlug() . '_metabox', $metabox); if ($index === false) { $this->_metaboxes[] = $metabox; } else { $this->_metaboxes = thb_array_insert($this->_metaboxes, $metabox, $index); } } }