Example #1
0
 /**
  * Hidden constructor. Use Configuration::setup
  *
  * @param array $mapping The mapping between configuration files and classes.
  *
  * @throws ConfigurationNotFoundException
  */
 protected function __construct($mapping)
 {
     // Supported parsers for configuration files
     $parsers = array('config.php' => new PhpParser());
     // Parse each file
     $configRoot = Paths::configuration();
     $env = Baobab::environment();
     foreach ($mapping as $file => $className) {
         $fileLoaded = false;
         $data = array();
         $pathStack = array($configRoot . '/' . $env . '/' . $file, $configRoot . '/' . $file);
         foreach ($pathStack as $fullPath) {
             $tempData = null;
             /** @var \Baobab\Configuration\Parser\Parser $parser */
             foreach ($parsers as $ext => $parser) {
                 if (file_exists($fullPath . '.' . $ext)) {
                     $fileLoaded = true;
                     $tempData = $parser->parse($fullPath);
                     break;
                 }
             }
             if ($tempData != null) {
                 $data = array_merge($tempData, $data);
             }
         }
         if ($fileLoaded) {
             $this->initializers[$file] = new $className($file, $data);
             // Provide some hooks
             do_action('baobab/configuration/file-loaded?file=' . $file);
         }
     }
 }
Example #2
0
 /**
  * Constructor
  *
  * @param string $id The ID of the initializer
  * @param array $data The configuration key/value pairs
  */
 public function __construct($id, $data)
 {
     parent::__construct($id, $data);
     // Boostrap Kirki
     Hooks::filter('kirki/config', $this, 'configureKirki');
     Hooks::filter('customize_register', $this, 'createPanels');
     Hooks::filter('kirki/controls', $this, 'registerControls');
     /** @noinspection PhpIncludeInspection */
     require_once Paths::vendors('aristath/kirki/kirki.php');
 }
Example #3
0
 /**
  * Constructor
  *
  * @param string $id   The ID of the initializer
  * @param array  $data The configuration key/value pairs
  */
 public function __construct($id, $data)
 {
     parent::__construct($id, $data);
     // If blade is enabled, include required files
     if ($this->isBladeEnabled()) {
         require_once Paths::vendors('autoload.php');
     }
     // Our themes should be properly structured, so we could also provide some common templates within a
     // different folder
     Hooks::filter('get_search_form', $this, 'suggestMoreSearchFormTemplates');
 }
Example #4
0
 /**
  * Apply the data to configure the theme
  */
 public function configureTgmPluginActivationLibrary()
 {
     $data = $this->getData();
     if (!isset($data['plugins']) || empty($data['plugins'])) {
         return;
     }
     // The default TGMPA settings
     $defaults = array('id' => 'tgmpa-' . dirname(Paths::theme()), 'default_path' => Paths::theme('vendor/bundled'), 'menu' => dirname(Paths::theme()) . '-install-plugins', 'has_notices' => true, 'dismissable' => true, 'dismiss_msg' => '', 'is_automatic' => true, 'message' => '');
     // Merge user configuration with defaults
     $config = isset($data['options']) ? array_merge($defaults, $data['options']) : $defaults;
     tgmpa($data['plugins'], $config);
 }
Example #5
0
 /**
  * Apply the data to configure the theme
  */
 public function configureTgmPluginActivationLibrary()
 {
     $data = $this->getData();
     if (!isset($data['plugins']) || empty($data['plugins'])) {
         return;
     }
     // The default TGMPA settings
     $defaults = array('default_path' => Paths::theme('vendor/bundled'), 'menu' => dirname(Paths::theme()) . '-install-plugins', 'has_notices' => true, 'dismissable' => true, 'dismiss_msg' => '', 'is_automatic' => true, 'message' => '', 'strings' => array('page_title' => __('Install Required Plugins', 'baobab'), 'menu_title' => __('Install Plugins', 'baobab'), 'installing' => __('Installing Plugin: %s', 'baobab'), 'oops' => __('Something went wrong with the plugin API.', 'baobab'), 'notice_can_install_required' => _n_noop('This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.'), 'notice_can_install_recommended' => _n_noop('This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.'), 'notice_cannot_install' => _n_noop('Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.'), 'notice_can_activate_required' => _n_noop('The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.'), 'notice_can_activate_recommended' => _n_noop('The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.'), 'notice_cannot_activate' => _n_noop('Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.'), 'notice_ask_to_update' => _n_noop('The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.'), 'notice_cannot_update' => _n_noop('Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.'), 'install_link' => _n_noop('Begin installing plugin', 'Begin installing plugins'), 'activate_link' => _n_noop('Begin activating plugin', 'Begin activating plugins'), 'return' => __('Return to Required Plugins Installer', 'baobab'), 'plugin_activated' => __('Plugin activated successfully.', 'baobab'), 'complete' => __('All plugins installed and activated successfully. %s', 'baobab'), 'nag_type' => 'updated'));
     // Merge user configuration with defaults
     $config = isset($data['options']) ? array_merge_recursive($defaults, $data['options']) : $defaults;
     tgmpa($data['plugins'], $config);
 }
Example #6
0
 /**
  * Read the manifest file that can be found at the root of the theme's asset folder.
  *
  * @return object|null null if the file does not exist or an object representing the manifest data
  */
 protected function loadManifest()
 {
     $manifestPath = Paths::assets('manifest.json');
     if (file_exists($manifestPath)) {
         return json_decode(file_get_contents($manifestPath), true);
     }
     return null;
 }
Example #7
0
 /**
  * Apply the data to configure the theme
  */
 public function run()
 {
     $data = $this->getData();
     // Load translations
     load_theme_textdomain($data['text_domain'], Paths::theme('languages'));
 }
Example #8
0
<?php

return array('engine' => 'blade', 'blade' => array('paths' => array('views' => \Baobab\Helper\Paths::theme('app/views'), 'cache' => \Baobab\Helper\Paths::storage('cache/blade'))));
Example #9
0
<?php

use Baobab\Helper\Paths;
return array('always' => array('psr4' => array('Balsa\\Helpers\\' => Paths::theme('app/helpers'), 'Balsa\\Models\\' => Paths::theme('app/models'))), 'admin' => array('psr4' => array('Balsa\\Admin\\' => Paths::theme('app/admin')), 'instantiate' => array('ThemeActivation' => '\\Balsa\\Admin\\ThemeActivation')), 'frontend' => array('psr4' => array('Balsa\\Controllers\\' => Paths::theme('app/controllers'))));