throw new Exception('CJTView::useStyles method must has at least on script parameter passed!'); } // Script name Reg Exp pattern. $nameExp = '/\\:?(\\{((\\w+)-)\\})?([\\w\\-\\.]+)$/'; // For every script, Enqueue and localize, only if localization file found/exists. foreach ($styles as $style) { // Get script name. preg_match($nameExp, $style, $styleObject); // [[2]Prefix], [4] name. Prefix may be not presented. $name = "{$styleObject[2]}{$styleObject[4]}"; if (!isset($GLOBALS['wp_styles']->registered[$name])) { // Make all enqueued styles names unique from enqueued scripts. // This is useful when merging styles & scripts is required. $name = "CSS-{$name}"; // Any JS lib file should named the same as the parent folder with the extension added. $libPath = ":{$styleObject[4]}"; // Get css file URI. $cssFile = cssJSToolbox::getURI(preg_replace($nameExp, "{$libPath}.css", $style)); // Register + Enqueue style. wp_enqueue_style($name, $cssFile); } else { // Enqueue already registered styles. wp_enqueue_style($name); } } } } // End class. // Initialize CJTView Event! CJTView::define('CJTView', array('hookType' => CJTWordpressEvents::HOOK_FILTER));