public function testAddStyleFile() { $this->res->addStyleFile('com.example.ext', 'foo%20bar.css', 0, 'testAddStyleFile')->addStyleFile('com.example.ext', 'foo%20bar.css', 0, 'testAddStyleFile')->addStyleFile('civicrm', 'foo%20bar.css', 0, 'testAddStyleFile'); $smarty = CRM_Core_Smarty::singleton(); $actual = $smarty->fetch('string:{crmRegion name=testAddStyleFile}{/crmRegion}'); $expected = "" . "<link href=\"http://core-app/foo%20bar.css?r=resTest\" rel=\"stylesheet\" type=\"text/css\"/>\n" . "<link href=\"http://ext-dir/com.example.ext/foo%20bar.css?r=resTest\" rel=\"stylesheet\" type=\"text/css\"/>\n"; $this->assertEquals($expected, $actual); }
/** * @param CRM_Core_Resources $res */ public function registerResources(CRM_Core_Resources $res) { $weight = self::DEFAULT_MODULE_WEIGHT; $res->addSettingsFactory(function () { // inorder to use ext resource url in JS - e.g CRM.resourceUrls $jsvar = array('resourceUrls' => CRM_Extension_System::singleton()->getMapper()->getActiveModuleUrls()); return $jsvar; }); $res->addStyleFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/mosaico-material.min.css', $weight++, 'html-header', TRUE); $res->addStyleFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/notoregular/stylesheet.css', $weight++, 'html-header', TRUE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/knockout.js', $weight++, 'html-header', TRUE); // civi already has jquery.min //$res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.min.js', $weight++, 'html-header', TRUE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'js/index.js', $weight++, 'html-header', FALSE); $res->addStyleFile('uk.co.vedaconsulting.mosaico', 'css/index.css', $weight++, 'html-header', TRUE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'js/index2.js', $weight++, 'html-header', TRUE); }
/** * @param CRM_Core_Resources $res */ public function registerResources(CRM_Core_Resources $res) { $weight = self::DEFAULT_MODULE_WEIGHT; $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/knockout.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery-ui.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.ui.touch-punch.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/load-image.all.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/canvas-to-blob.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.iframe-transport.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.fileupload.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.fileupload-process.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.fileupload-image.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/jquery.fileupload-validate.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/knockout-jqueryui.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/evol.colorpicker.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/tinymce.min.js', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/mosaico.min.js?v=0.11', $weight++, 'html-header', FALSE); $res->addScriptFile('uk.co.vedaconsulting.mosaico', 'js/editor.js', $weight++, 'html-header', FALSE); $res->addStyleFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/mosaico-material.min.css?v=0.10', $weight++, 'html-header', TRUE); $res->addStyleFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/notoregular/stylesheet.css', $weight++, 'html-header', TRUE); $res->addStyleFile('uk.co.vedaconsulting.mosaico', 'packages/mosaico/dist/vendor/evol.colorpicker.min.css', $weight++, 'html-header', TRUE); }
/** * @param CRM_Core_Resources $res */ public function registerResources(CRM_Core_Resources $res) { $modules = self::getAngularModules(); $res->addSettingsFactory(function () use(&$modules) { // TODO optimization; client-side caching return array('resourceUrls' => CRM_Extension_System::singleton()->getMapper()->getActiveModuleUrls(), 'angular' => array('modules' => array_merge(array('ngRoute'), array_keys($modules)))); }); $res->addScriptFile('civicrm', 'packages/bower_components/angular/angular.min.js', 100, 'html-header', FALSE); $res->addScriptFile('civicrm', 'packages/bower_components/angular-route/angular-route.min.js', 110, 'html-header', FALSE); foreach ($modules as $module) { if (!empty($module['css'])) { foreach ($module['css'] as $file) { $res->addStyleFile($module['ext'], $file, self::DEFAULT_MODULE_WEIGHT, 'html-header', TRUE); } } if (!empty($module['js'])) { foreach ($module['js'] as $file) { $res->addScriptFile($module['ext'], $file, self::DEFAULT_MODULE_WEIGHT, 'html-header', TRUE); } } } }