/** * This file represents an example of the code that themes would use to register * the required plugins. * * It is expected that theme authors would copy and paste this code into their * functions.php file, and amend to suit. * * @package TGM-Plugin-Activation * @subpackage Example * @version 2.3.6 * @author Thomas Griffin * @author Gary Jones * @copyright Copyright (c) 2012, Thomas Griffin * @license http://opensource.org/licenses/gpl-2.0.php GPL v2 or later * @link https://github.com/thomasgriffin/TGM-Plugin-Activation */ /** * Include the TGM_Plugin_Activation class. */ require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php'; add_action( 'tgmpa_register', 'my_theme_register_required_plugins' ); /** * Register the required plugins for this theme. * * In this example, we register two plugins - one included with the TGMPA library * and one from the .org repo. * * The variable passed to tgmpa_register_plugins() should be an array of plugin * arrays. * * This function is hooked into tgmpa_init, which is fired within the * TGM_Plugin_Activation class constructor. */ function my_theme_register_required_plugins() { /** * Array of plugin arrays. Required keys are name and slug. * If the source is NOT from the .org repo, then source is also required. */ $plugins = array( // This is an example of how to include a plugin pre-packaged with a theme array( 'name' => 'Contact Form 7', // The plugin name 'slug' => 'contact-form-7', // The plugin slug (typically the folder name) 'source' => get_stylesheet_directory() . '/includes/plugins/contact-form-7.zip', // The plugin source 'required' => true, // If false, the plugin is only 'recommended' instead of required 'version' => '', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented 'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins 'external_url' => '', // If set, overrides default API URL and points to an external URL ), array( 'name' => 'Cherry Plugin', // The plugin name. 'slug' => 'cherry-plugin', // The plugin slug (typically the folder name). 'source' => PARENT_DIR . '/includes/plugins/cherry-plugin.zip', // The plugin source. 'required' => true, // If false, the plugin is only 'recommended' instead of required. 'version' => '1.1', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented. 'force_activation' => true, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch. 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins. 'external_url' => '', // If set, overrides default API URL and points to an external URL. ) ); /** * Array of configuration settings. Amend each line as needed. * If you want the default strings to be available under your own theme domain, * leave the strings uncommented. * Some of the strings are added into a sprintf, so see the comments at the * end of each line for what each argument will be. */ $config = array( 'domain' => CURRENT_THEME, // Text domain - likely want to be the same as your theme. 'default_path' => '', // Default absolute path to pre-packaged plugins 'parent_menu_slug' => 'themes.php', // Default parent menu slug 'parent_url_slug' => 'themes.php', // Default parent URL slug 'menu' => 'install-required-plugins', // Menu slug 'has_notices' => true, // Show admin notices or not 'is_automatic' => true, // Automatically activate plugins after installation or not 'message' => '', // Message to output right before the plugins table 'strings' => array( 'page_title' => theme_locals("page_title"), 'menu_title' => theme_locals("menu_title"), 'installing' => theme_locals("installing"), // %1$s = plugin name 'oops' => theme_locals("oops_2"), 'notice_can_install_required' => _n_noop( theme_locals("notice_can_install_required"), theme_locals("notice_can_install_required_2") ), // %1$s = plugin name(s) 'notice_can_install_recommended' => _n_noop( theme_locals("notice_can_install_recommended"), theme_locals("notice_can_install_recommended_2") ), // %1$s = plugin name(s) 'notice_cannot_install' => _n_noop( theme_locals("notice_cannot_install"), theme_locals("notice_cannot_install_2") ), // %1$s = plugin name(s) 'notice_can_activate_required' => _n_noop( theme_locals("notice_can_activate_required"), theme_locals("notice_can_activate_required_2") ), // %1$s = plugin name(s) 'notice_can_activate_recommended' => _n_noop( theme_locals("notice_can_activate_recommended"), theme_locals("notice_can_activate_recommended_2") ), // %1$s = plugin name(s) 'notice_cannot_activate' => _n_noop( theme_locals("notice_cannot_activate"), theme_locals("notice_cannot_activate_2") ), // %1$s = plugin name(s) 'notice_ask_to_update' => _n_noop( theme_locals("notice_ask_to_update"), theme_locals("notice_ask_to_update_2") ), // %1$s = plugin name(s) 'notice_cannot_update' => _n_noop( theme_locals("notice_cannot_update"), theme_locals("notice_cannot_update_2") ), // %1$s = plugin name(s) 'install_link' => _n_noop( theme_locals("install_link"), theme_locals("install_link_2") ), 'activate_link' => _n_noop( theme_locals("activate_link"), theme_locals("activate_link_2") ), 'return' => theme_locals("return"), 'plugin_activated' => theme_locals("plugin_activated"), 'complete' => theme_locals("complete"), // %1$s = dashboard link 'nag_type' => theme_locals("updated") // Determines admin notice type - can only be 'updated' or 'error' ) ); tgmpa( $plugins, $config ); } KUMGROT Curtain Products: Braces and Owners That Really Hold

KUMGROT Curtain Products: Braces and Owners That Really Hold

The Hardware Behind Every Well-Hung Curtain

Drapes transform an area-- regulating light, including heat, defining the character of a space. However the brackets holding them up are what figure out whether that change lasts. Poorly made drape pole holders strip from walls, sag under weight, or fall short to grip the pole firmly enough to prevent creep and tilt gradually. KUMGROT methods curtain hardware similarly it approaches every item group: with material quality, accurate dimensions, and designs that offer their feature dependably rather than simply appropriately. Throughout timber and light weight aluminum choices, the brand name provides curtain rod brackets built to support genuine curtains in real rooms-- without the installation disappointments that generic hardware brings.

Dual Drape Rod Brackets: Adaptability for Layered Window Treatments

The KUMGROT double curtain rod bracket is designed for home windows that require more than a solitary layer-- spaces where sheer and blackout drapes hang together, or where multi-layer grommet treatments produce a layered look that single brackets simply can not sustain. The double-hole design supplies boosted security and load-bearing capacity for two poles all at once, fitting poles with an outer size of 0.8 to 1 inch (21-- 26mm). Made from quality picked wood with solid structure and visible grain patterns, the braces bring a natural warmth to the hardware that steel options do not have. Each set consists of the braces, screws, and supports-- whatever needed for setup from the minute the bundle opens up. Compatible with light weight aluminum, wood, alloy, and plastic poles, and matched to eating spaces, living rooms, bedrooms, hotels, and restrooms, these braces eliminate the requirement to source various hardware for various rooms or rod products.

Solid Timber Solitary Braces: Minimalist Beauty in Dark Brown

For windows that call for a cleaner, a lot more taken into consideration aesthetic, the KUMGROT solid timber curtain pole bracket in dark brown provides downplayed elegance with real worldly quality. Crafted from high-grade solid timber with a protective repainted surface area layer that guards against dampness and rot, these braces are constructed to keep their look and structural honesty over years of use-- not simply via the very first season. The 35mm (1.37 inch) size hook suits poles as much as 1-2/5 inches, and the measurements are specifically stated: 4.8 x 2.36 x 1.34 inches with an iron plate opening center of 1.6 inches, so there is no uncertainty regarding fit prior to acquisition.

The minimalist design is a genuine stylistic possession. Easy, smooth, and elegant, these KUMGROT brackets match a wide variety of indoor decoration styles without contending for visual attention-- which is specifically what excellent drape hardware should do. Beyond curtain poles, they function just as well as door drape rod supports and garments drying pole holders, expanding their energy past the home window where they're first mounted.

Light Weight Aluminum Alloy Ceiling Brackets: Toughness With Ornamental Information

Where the timber brackets bring natural heat, the KUMGROT light weight aluminum alloy ceiling curtain brace brings structural accuracy and a distinct decorative personality. Cast from premium aluminum alloy with updated thick material, these 6.5-inch wall-mounted owners deliver robust load-bearing toughness without the contortion danger that thinner metal equipment creates under sustained weight. The 1.1-inch opening size accommodates a range of rod sizes, and both included screws-- at 1.46 and 1.2 inches-- cover the typical installation circumstances without requiring extra hardware sourcing.

What collections these brackets apart aesthetically is the feather-shaped sculpting worked into the ceiling install style-- a stylish craft information that mixes perfectly with modern-day, typical, and transitional interior designs alike. In a product classification where most hardware is simply practical, the ornamental consideration developed right into the KUMGROT light weight aluminum bracket makes it a piece worth observing rather than hiding. Ideal for door drapes, washroom drapes, floor-length window treatments, and veranda drying shelf setting up, the application variety extends well beyond the conventional curtain window installation.

The Right Brace for Every Window and Every Room

3 distinct products, 3 distinctive usage cases-- yet the very same underlying KUMGROT typical going through all of them. Precise measurements stated ahead of time so buyers understand specifically what they're getting. Products selected for sturdiness over the long-term rather than simply acceptable at the point of acquisition. Designs that take into consideration just how the brace searches the wall, not simply how it works mechanically. And installment made as simple as feasible, with all essential equipment consisted of so the process doesn't delay for want of a missing screw. For anyone furnishing or renovating a room where drapes matter, that level of hardware integrity is worth specifying by brand.