function thb_seo_options_tab() { if (thb_is_super_user()) { $thb_page = thb_theme()->getAdmin()->getMainPage(); $thb_tab = new THB_Tab(__('SEO', 'thb_text_domain'), 'seo'); $thb_container = $thb_tab->createContainer('', 'seo_options'); $thb_field = new THB_CheckboxField('seo_enable'); $thb_field->setLabel(__('Enable SEO', 'thb_text_domain')); $thb_field->setHelp(__('This option will enable the search engines optimization component. If you mind to use an external plugin, you might want to disable it.', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextField('seo_author'); $thb_field->setLabel(__('Site author', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextareaField('seo_description'); $thb_field->setLabel(__('Site description', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextareaField('seo_keywords'); $thb_field->setLabel(__('Keywords', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextField('seo_robots'); $thb_field->setLabel(__('Robots', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextField('google_site_verification'); $thb_field->setLabel(__('Google site verification', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_page->addTab($thb_tab); } }
/** * Constructor * */ public function __construct() { $this->instance = thb_theme(); $this->instance->getAdmin()->setInstallationDetails(array('updates' => array('last_check' => 0, 'latest_version' => 0, 'changelog' => '')), true); // Preserve original data $this->checkForUpdates(); }
function thb_save_option($key, $value) { $theme = thb_theme(); $options = $theme->getOptions(); $options[$key] = $value; update_option(THB_OPTIONS_KEY, $options); }
/** * Constructor * * @param string $name The widget name. * @param string $label The widget label. * @param string $description The widget description. * @param string $shortcode The widget shortcode. */ public function __construct($name, $label, $description, $shortcode) { parent::__construct($name, $label, array('description' => $description)); $thb_theme = thb_theme(); $this->_shortcode = $thb_theme->getShortcode($shortcode); $this->_description = $description; }
function thb_append_theme_customization() { thb_css_start('thb_theme_customization'); thb_theme()->getCustomization()->render(true); // echo get_option(THB_CUSTOMIZATIONS); thb_custom_css(); thb_css_end(); }
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); } }
/** * Render the control. * * @return void */ public function render_content() { $thb_theme = thb_theme(); $fonts = thb_get_fonts(); ?> <label> <span class="customize-control-title"><?php echo esc_html($this->label); ?> </span> <select <?php $this->link(); ?> class="font-family"> <?php foreach ($fonts as $style => $families) { ?> <optgroup label="<?php echo $style; ?> "> <?php foreach ($families as $family => $font) { ?> <?php if (is_array($font)) { ?> <option value="<?php echo $family; ?> "><?php echo $font['family']; ?> </option> <?php } ?> <?php } ?> </optgroup> <?php } ?> </select> </label> <?php }
function thb_add_footerstripes_posttype_config_metabox() { $consumer_key = thb_get_option('twitter_consumer_key'); $consumer_secret = thb_get_option('twitter_consumer_secret'); $oauth_token = thb_get_option('twitter_oauth_token'); $oauth_token_secret = thb_get_option('twitter_oauth_token_secret'); $config_note = ''; if ($consumer_key == '' || $consumer_secret == '' || $oauth_token == '' || $oauth_token_secret == '') { $config_note = __('Make sure to fill the required Twitter API settings in the "Theme options > Social" tab.', 'thb_text_domain'); } $post_type = thb_theme()->getPostType('footerstripes'); $thb_metabox = new THB_Metabox(__('Footer contents', 'thb_text_domain'), 'footerstripes_config'); $thb_container = $thb_metabox->createContainer('', 'footerstripes_config_container'); $thb_field = new THB_SelectField('footerstripes_content_type'); $thb_field->setLabel(__('Content type', 'thb_text_domain')); $thb_field->setOptions(array('twitter' => __('Twitter', 'thb_text_domain'), 'call-to-action' => __('Call to action', 'thb_text_domain'), 'social' => __('Social', 'thb_text_domain'))); $thb_container->addField($thb_field); // Twitter $thb_container = $thb_metabox->createContainer(__('Twitter', 'thb_text_domain'), 'footerstripes_content_type_twitter'); $thb_container->setIntroText($config_note); $thb_field = new THB_TextField('footerstripes_twitter_username'); $thb_field->setLabel(__('Username', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_NumberField('footerstripes_twitter_num'); $thb_field->setLabel(__('Tweets #', 'thb_text_domain')); $thb_container->addField($thb_field); // Social $thb_container = $thb_metabox->createContainer(__('Social', 'thb_text_domain'), 'footerstripes_content_type_social'); $thb_field = new THB_TextField('footerstripes_social_services'); $thb_field->setLabel(__('Services', 'thb_text_domain')); $thb_field->setHelp(__('Comma separated, order matters', 'thb_text_domain') . '. ' . __('Possible values', 'thb_text_domain') . ': twitter, facebook, googleplus, flickr, youtube, vimeo, pinterest, dribbble, forrst.'); $thb_container->addField($thb_field); // Call to action $thb_container = $thb_metabox->createContainer(__('Call to action', 'thb_text_domain'), 'footerstripes_content_type_call-to-action'); $thb_field = new THB_TextField('footerstripes_call-to-action_big_text'); $thb_field->setLabel(__('Big text', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextareaField('footerstripes_call-to-action_small_text'); $thb_field->setLabel(__('Small text', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextField('footerstripes_call-to-action_btn_text'); $thb_field->setLabel(__('Button text', 'thb_text_domain')); $thb_container->addField($thb_field); $thb_field = new THB_TextField('footerstripes_call-to-action_btn_url'); $thb_field->setLabel(__('Button URL', 'thb_text_domain')); $thb_container->addField($thb_field); $post_type->addMetabox($thb_metabox); }
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') ); }
/** * Portfolio custom post type. * * --- * * The Happy Framework: WordPress Development Framework * Copyright 2012, Andrea Gandino & Simone Maranzana * * Licensed under The MIT License * Redistribuitions of files must retain the above copyright notice. * * @package THB Portfolio * @author The Happy Bit <*****@*****.**> * @copyright Copyright 2012, Andrea Gandino & Simone Maranzana * @link http:// * @since The Happy Framework v 1.0 * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ function thb_portfolio_post_type() { /** * The post type labels. * * @see http://codex.wordpress.org/Function_Reference/register_post_type */ $thb_works_labels = array('name' => __('Portfolio', 'thb-portfolio'), 'singular_name' => __('Work', 'thb-portfolio'), 'add_new' => __('Add new', 'thb-portfolio'), 'add_new_item' => __('Add new Work', 'thb-portfolio'), 'edit' => __('Edit', 'thb-portfolio'), 'edit_item' => __('Edit Work', 'thb-portfolio'), 'new_item' => __('New Work', 'thb-portfolio'), 'view' => __('View Work', 'thb-portfolio'), 'view_item' => __('View Work', 'thb-portfolio'), 'search_items' => __('Search Works', 'thb-portfolio'), 'not_found' => __('No Works found', 'thb-portfolio'), 'not_found_in_trash' => __('No Works found in Trash', 'thb-portfolio'), 'parent' => __('Parent Work', 'thb-portfolio')); /** * The post type arguments. * * @see http://codex.wordpress.org/Function_Reference/register_post_type */ if (thb_portfolio_framework_check()) { $options_slug = thb_get_option('works_url_slug'); } else { $options_slug = apply_filters('thb_portfolio_slug', ''); } $slug = !empty($options_slug) ? $options_slug : 'works'; $thb_works_args = array('labels' => $thb_works_labels, 'public' => true, 'show_ui' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => $slug, 'with_front' => true), 'query_var' => true, 'show_in_nav_menus' => true, 'supports' => array('title', 'thumbnail', 'excerpt', 'editor', 'comments', 'custom-fields')); /** * Create the post type object. */ register_post_type('works', $thb_works_args); if (thb_portfolio_framework_check()) { $thb_works = new THB_PostType('works', $thb_works_args); } /** * Create the post type taxonomy for Works categories. */ $thb_portfolio_categories_args = array('hierarchical' => true, 'labels' => array('name' => __('Portfolio Categories', 'thb-portfolio'), 'singular_name' => __('Portfolio Category', 'thb-portfolio'), 'search_items' => __('Search Portfolio Categories', 'thb-portfolio'), 'all_items' => __('All Portfolio Categories', 'thb-portfolio'), 'parent_item' => __('Parent Portfolio Category', 'thb-portfolio'), 'parent_item_colon' => __('Parent Portfolio Category:', 'thb-portfolio'), 'edit_item' => __('Edit Portfolio Category', 'thb-portfolio'), 'update_item' => __('Update Portfolio Category', 'thb-portfolio'), 'add_new_item' => __('Add New Portfolio Category', 'thb-portfolio'), 'new_item_name' => __('New Portfolio Category Name', 'thb-portfolio'), 'menu_name' => __('Portfolio Category', 'thb-portfolio')), 'rewrite' => true, 'query_var' => true); register_taxonomy('portfolio_categories', 'works', $thb_portfolio_categories_args); if (thb_portfolio_framework_check()) { $thb_works_taxonomy = new THB_Taxonomy('portfolio_categories', $thb_portfolio_categories_args); $thb_works->addTaxonomy($thb_works_taxonomy); } /** * Add the post type to the theme instance. */ if (thb_portfolio_framework_check()) { $thb_theme = thb_theme(); $thb_theme->addPostType($thb_works); } }
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); } }
} } } else { if (!is_archive() && !is_search() && !is_404()) { if (is_active_sidebar('post-sidebar')) { $classes[] = 'w-sidebar'; } } } return $classes; } add_filter('body_class', 'sidebars_body_classes'); } /** * Dynamic sidebars options * ----------------------------------------------------------------------------- */ if (thb_config('core/sidebars', 'options')) { $thb_options_page = thb_theme()->getAdmin()->getMainPage(); $thb_tab = new THB_Tab(__('Sidebars', 'thb_text_domain'), 'sidebars'); $thb_options_page->addTab($thb_tab, 2); if (thb_config('core/sidebars', 'duplicable')) { $thb_tab = $thb_options_page->getTab('sidebars'); $thb_container = $thb_tab->createDuplicableContainer(__('Sidebars', 'thb_text_domain'), 'sidebars'); $thb_container->addControl(__('Add new sidebar', 'thb_text_domain'), ''); $thb_container->setSortable(); $thb_field = new THB_TextField(THB_DUPLICABLE_SIDEBARS); $thb_field->setLabel(__('Name', 'thb_text_domain')); $thb_container->setField($thb_field); } }
function thb_works_slideshow_metabox() { $thb_theme = thb_theme(); $thb_works = $thb_theme->getPostType('works'); $thb_metabox = new THB_Metabox(__('Work images and videos', 'thb_text_domain'), 'portfolio_slides_config'); $thb_metabox->setPriority('high'); if (thb_config('core/portfolio', 'work_slides_config')) { $thb_metabox->addContainer(call_user_func(thb_config('core/portfolio', 'work_slides_config'))); } $thb_metabox->addContainer(thb_create_slideshows_slides_container('', array('slides_key' => thb_config('core/portfolio', 'work_slides_key')))); $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); } } }
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); }
function thb_get_post_type_sidebar($post_type = null) { if (!empty($post_type)) { $thb_theme = thb_theme(); $post_type = $thb_theme->getPostType($post_type); if ($post_type) { return $post_type->getSidebar(); } } return ''; }
function thb_single_layout_options() { $post_types = thb_theme()->getPostTypes(); foreach ($post_types as $pt) { if ($pt->isPublicContent() || $pt->getType() == 'post' || $pt->getType() == 'page') { $thb_metabox = new THB_Metabox(__('Layout', 'thb_text_domain'), 'layout'); $thb_metabox->setPriority('high'); $thb_metabox->addContainer(thb_layout_global_options_container()); $pt->addMetabox($thb_metabox); } } }
/** * 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'); } }
/** * 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); } } }
function thb_get_field_template() { $theme = thb_theme(); if (isset($_POST['posttype'])) { $postType = $theme->getPostType($_POST['posttype']); $metabox = $postType->getMetabox($_POST['metabox']); $container = $metabox->getContainer($_POST['container']); $field = $container->getField(); } else { $page = $theme->getAdmin()->getPage($_POST['page']); $tab = $page->getTab($_POST['tab']); $container = $tab->getContainer($_POST['container']); $field = $container->getField(); } $field->reset(); if (isset($_POST['subtemplate']) && !empty($_POST['subtemplate'])) { $field->setMetaKey('subtemplate', $_POST['subtemplate']); } $field->render(); die; }
function thb_add_home_page_slides_metabox() { $thb_metabox = new THB_Metabox(__('Slides', 'thb_text_domain'), 'slides'); $thb_container = $thb_metabox->createDuplicableContainer('', 'slides_container'); $thb_container->setSortable(); $thb_container->setIntroText(__("<strong>How to use</strong><br><br>Insert the post type ID in order to populate the slide with the post's featured image, excerpt, title and a button with a link to the single post page.<br>Alternatively, you can insert custom texts and button.<br><br>Please note that if you're using a post type ID, custom texts and background image will override the entry's content.", 'thb_text_domain')); $thb_container->addControl(__('Add', 'thb_text_domain'), ''); $thb_upload = new THB_HomePageSlideField('home_page_slide'); $thb_upload->setLabel(__('Home page slide', 'thb_text_domain')); $thb_container->setField($thb_upload); thb_theme()->getPostType('page')->addMetabox($thb_metabox, array('template-showcase.php')); }
function thb_style() { thb_theme()->getFrontend()->addStyle(get_stylesheet_uri()); }
* --- * * The Happy Framework: WordPress Development Framework * Copyright 2012, Andrea Gandino & Simone Maranzana * * Licensed under The MIT License * Redistribuitions of files must retain the above copyright notice. * * @package Core\Shortcodes * @author The Happy Bit <*****@*****.**> * @copyright Copyright 2012, Andrea Gandino & Simone Maranzana * @link http:// * @since The Happy Framework v 1.0 * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ $thb_theme = thb_theme(); /** * Flickr * ----------------------------------------------------------------------------- */ $shortcode = new THB_Shortcode('thb_flickr', 'frontend/shortcodes/flickr'); $shortcode->setAttributes(array('id' => '', 'num' => 3, 'title' => '')); $shortcode->setExample('[thb_flickr id="..." num="3"]'); $shortcode->setLabel(__('Flickr', 'thb_text_domain')); $shortcode->setType(__('Social', 'thb_text_domain')); $thb_theme->addShortcode($shortcode); /** * Twitter * ----------------------------------------------------------------------------- */ $shortcode = new THB_Shortcode('thb_twitter', 'frontend/shortcodes/twitter');
function thb_translated_admin_resource($key) { $thb_theme = thb_theme(); $thb_admin_language = $thb_theme->getAdmin()->getLanguage(); $thb_admin_default_language = $thb_theme->getAdmin()->getDefaultLanguage(); if (file_exists(THB_LANGUAGES_DIR . '/' . $thb_admin_language . '/admin/resources/' . $key . '.php')) { // $file = THB_LANGUAGES_DIR . '/' . $thb_admin_language . '/admin/resources/' . $key; $thb_valid_language = $thb_admin_language; } else { // $file = THB_LANGUAGES_DIR . '/' . $thb_admin_default_language . '/admin/resources/' . $key; $thb_valid_language = $thb_admin_default_language; } $file = $thb_valid_language . '/admin/resources/' . $key; if (file_exists(THB_THEME_TEMPLATES_DIR . '/languages/' . $file . '.php')) { $file = THB_THEME_TEMPLATES_DIR . '/languages/' . $file; } else { $file = THB_LANGUAGES_DIR . '/' . $file; } $resource = new THB_Template($file); return $resource->render(true); }
function thb_load_admin_translation() { global $thb_lang; $thb_theme = thb_theme(); $thb_admin = $thb_theme->getAdmin(); $thb_admin_language = $thb_admin->getLanguage(); $thb_admin_default_language = $thb_admin->getDefaultLanguage(); // Strings translation $file = 'strings.php'; $strings = THB_LANGUAGES_DIR . '/' . $thb_admin_language . '/' . $file; if (!file_exists($strings)) { $strings = THB_LANGUAGES_DIR . '/' . $thb_admin_default_language . '/' . $file; } include $strings; // JavaScript translation $file = 'strings.js'; $strings = THB_LANGUAGES_DIR . '/' . $thb_admin_language . '/' . $file; $strings_url = THB_LANGUAGES_URL . '/' . $thb_admin_language . '/' . $file; if (!file_exists($strings)) { $strings = THB_LANGUAGES_DIR . '/' . $thb_admin_default_language . '/' . $file; $strings_url = THB_LANGUAGES_URL . '/' . $thb_admin_default_language . '/' . $file; } $thb_admin->addScript($strings_url); }
?> </p> <?php if (is_child_theme()) { ?> <p><?php _e('Parent theme version', 'thb_text_domain'); ?> <?php echo THB_PARENT_THEME_VERSION; ?> </p> <?php } ?> </div> <?php echo thb_translated_admin_resource('messages/update'); ?> <div class="thb-page-content"> <?php $installationDetails = thb_theme()->getAdmin()->getInstallationDetails(); $changelog = $installationDetails['updates']['changelog']; $theme_changelog = new THB_Template(THB_RESOURCES_DIR . '/admin/pages/thb_theme_changelog', array('changelog' => $changelog)); $theme_changelog->render(); ?> </div> </div>
function thb_save_tab() { thb_system_verify_nonce('THB_tab'); $theme = thb_theme(); $page = $theme->getAdmin()->getPage($_POST['page']); $tab = $page->getTab($_POST['tab']); $containers = $tab->getContainers(); $uniqids = array(); foreach ($containers as $container) { if (!$container->isDuplicable()) { $newoptions = array(); foreach ($container->getFields() as $field) { if ($field->isComplex()) { $value = array(); foreach ($field->getSubkeys() as $subKey) { $value[$subKey] = thb_text_toDB($_POST[$field->getName()][$subKey]); } } else { $value = thb_text_toDB($_POST[$field->getName()]); } $newoptions[$field->getName()] = $value; } $theme->saveOptions($newoptions); } else { $uniqids[$container->getSlug()] = thb_duplicable_fields_save($container->getField()); } } thb_system_raise_success(__('All saved!', 'thb_text_domain'), $uniqids); }
function thb_portfolio_script_and_styles() { $thb_theme = thb_theme(); $thb_works = $thb_theme->getPostType('works'); $conds = array('templates' => $thb_works->getPageTemplates()); $thb_frontend = $thb_theme->getFrontend(); $thb_frontend->addScript(THB_FRONTEND_JS_URL . '/jquery.isotope.min.js', $conds); $thb_frontend->addScript(thb_get_module_url('core/portfolio') . '/js/thb.portfolio.js', $conds); $thb_frontend->addScript(thb_get_module_url('core/portfolio') . '/js/config.js', $conds); $thb_frontend->addStyle(THB_FRONTEND_CSS_URL . '/isotope.css', $conds); }
/** * Render the page. * * @return void */ public function render() { $page_template = new THB_TemplateLoader($this->_template, array('page' => $this, 'theme' => thb_theme())); $page_template->render(); }
function thb_get_post_types_for_select() { $thb_theme = thb_theme(); $post_types = array(); foreach ($thb_theme->getPostTypes() as $post_type) { $post_types[$post_type->getType()] = $post_type->getName(); } return $post_types; }