public function insertKitScripts($params = array()) { $kit = ContextlyWpKit::getInstance(); $params += array('preload' => '', 'libraries' => array(), 'foreign' => array(), 'overrides' => true, 'wpdata' => true, 'loader' => $kit->getLoaderName()); static $known_packages = array('wp/widgets' => array('include' => array('widgets' => true), 'js' => array('contextly-wordpress.js' => true)), 'wp/editor' => array('include' => array('wp/widgets' => true, 'overlay-dialogs/overlay' => true), 'js' => array('contextly-post-editor.js' => true, 'contextly-quicktags.js' => true))); $foreign_packages = array_intersect_key($known_packages, $params['foreign']); foreach ($foreign_packages as $name => $contents) { $contents += array('js' => array(), 'include' => array()); $js = array(); foreach (array_keys($contents['js']) as $script_name) { $js[$this->getPluginJs($script_name)] = true; } $contents['js'] = $js; $foreign_packages[$name] = $kit->newAssetsPackageForeign()->addAssets($contents)->addIncluded($contents['include'])->toExposed(); } $ready = array(); if (!empty($foreign_packages)) { $ready[] = array('expose', $foreign_packages); } if (!empty($params['libraries'])) { $ready[] = array('libraries', $params['libraries']); } if (!empty($params['preload'])) { $ready[] = array('load', $params['preload']); } $manager = $kit->newAssetsManager(); $packages = $manager->getPackageWithDependencies($params['loader']); $exposedTree = $manager->buildExposedTree(array_keys($packages)); $code = ''; if (!empty($params['overrides'])) { $code .= $kit->newOverridesManager(Contextly::getKitSettingsOverrides())->compile(TRUE); } if (!empty($params['wpdata'])) { $code .= $kit->newJsExporter($this->getContextlyJSObject())->export('wpdata', TRUE); } print $kit->newAssetsAsyncRenderer($packages, $exposedTree)->renderAll(array('ready' => $ready, 'code' => $code)); }