X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FResources.php;h=26bd78fc75c562db662919fef5ad96a3a5153fa2;hb=900eb33a20f6f8ed03c1a8da6259a61679935ac8;hp=4a4c1222bad055cf4299df53a232e02a7f232320;hpb=c6c0959a0a991b7f019af504805a183050bd8435;p=civicrm-core.git diff --git a/CRM/Core/Resources.php b/CRM/Core/Resources.php index 4a4c1222ba..26bd78fc75 100644 --- a/CRM/Core/Resources.php +++ b/CRM/Core/Resources.php @@ -428,41 +428,31 @@ class CRM_Core_Resources { $this->addedCoreResources[$region] = TRUE; $config = CRM_Core_Config::singleton(); - // Add resources from jquery.files.tpl - $files = self::parseTemplate('CRM/common/jquery.files.tpl'); + // Add resources from coreResourceList + $files = $this->coreResourceList(); $jsWeight = -9999; - foreach ($files as $file => $type) { - if ($type == 'js') { + foreach ($files as $file) { + if (substr($file, -2) == 'js') { // Don't bother looking for ts() calls in packages, there aren't any $translate = (substr($file, 0, 9) != 'packages/'); $this->addScriptFile('civicrm', $file, $jsWeight++, $region, $translate); } - elseif ($type == 'css') { + else { $this->addStyleFile('civicrm', $file, -100, $region); } } - // Add localized calendar js - // Search for i18n file in order of specificity (try fr-CA, then fr) - list($lang) = explode('_', $config->lcMessages); - foreach (array(str_replace('_', '-', $config->lcMessages), $lang) as $language) { - $localizationFile = "packages/jquery/jquery-ui-1.9.0/development-bundle/ui/i18n/jquery.ui.datepicker-{$language}.js"; - if ($this->getPath('civicrm', $localizationFile)) { - $this->addScriptFile('civicrm', $localizationFile, $jsWeight++, $region, FALSE); - break; - } - } - // Initialize CRM.url and CRM.formatMoney $url = CRM_Utils_System::url('civicrm/example', 'placeholder', FALSE, NULL, FALSE); $js = "CRM.url('init', '$url');\n"; - $js .= "CRM.formatMoney('init', '" . CRM_Utils_Money::format(1234.56) . "');"; + $js .= "CRM.formatMoney('init', " . json_encode(CRM_Utils_Money::format(1234.56)) . ");"; $this->addScript($js, $jsWeight++, $region); // Add global settings $settings = array( 'userFramework' => $config->userFramework, 'resourceBase' => $config->resourceBase, + 'lcMessages' => $config->lcMessages, ); $this->addSetting(array('config' => $settings)); @@ -490,11 +480,10 @@ class CRM_Core_Resources { // Load custom or core css $config = CRM_Core_Config::singleton(); if (!empty($config->customCSSURL)) { - $this->addStyleUrl($config->customCSSURL, -99, $region); + $this->addStyleUrl($config->customCSSURL, 99, $region); } - else { + if (!CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'disable_core_css')) { $this->addStyleFile('civicrm', 'css/civicrm.css', -99, $region); - $this->addStyleFile('civicrm', 'css/extras.css', -98, $region); } } return $this; @@ -534,20 +523,71 @@ class CRM_Core_Resources { } /** - * Read resource files from a template + * List of core resources we add to every CiviCRM page * - * @param $tpl (str) template file name - * @return array: filename => filetype + * @return array */ - static function parseTemplate($tpl) { - $items = array(); - $template = CRM_Core_Smarty::singleton(); - $buffer = $template->fetch($tpl); - $lines = preg_split('/\s+/', $buffer); - foreach ($lines as $line) { - $line = trim($line); - if ($line) { - $items[$line] = substr($line, 1 + strrpos($line, '.')); + public function coreResourceList() { + $config = CRM_Core_Config::singleton(); + // Use minified files for production, uncompressed in debug mode + $min = $config->debug ? '' : '.min'; + + $items = array( + "packages/jquery/jquery-1.10.2$min.js", + "packages/jquery/jquery-migrate-1.2.1.js", + "packages/jquery/jquery-ui/js/jquery-ui-1.10.3.custom$min.js", + "packages/jquery/jquery-ui/css/black-tie/jquery-ui-1.10.3.custom$min.css", + + "packages/jquery/plugins/select2/select2$min.js", + "packages/jquery/plugins/select2/select2.css", + + "packages/jquery/plugins/jquery.autocomplete.js", + "packages/jquery/css/jquery.autocomplete.css", + + "packages/jquery/plugins/jquery.menu$min.js", + "packages/jquery/css/menu.css", + + "packages/jquery/plugins/jquery.tableHeader.js", + + "packages/jquery/plugins/jquery.textarearesizer.js", + + "packages/jquery/plugins/jquery.form$min.js", + + "packages/jquery/plugins/jquery.tokeninput$min.js", + "packages/jquery/css/token-input-facebook.css", + + "packages/jquery/plugins/jquery.timeentry$min.js", + + "packages/jquery/plugins/DataTables/media/js/jquery.dataTables$min.js", + + "packages/jquery/plugins/jquery.FormNavigate$min.js", + + "packages/jquery/plugins/jquery.validate$min.js", + "packages/jquery/plugins/jquery.ui.datepicker.validation.pack.js", + + "packages/jquery/plugins/jquery.jeditable$min.js", + + "packages/jquery/plugins/jquery.blockUI$min.js", + + "packages/jquery/plugins/jquery.notify$min.js", + + "js/rest.js", + "js/Common.js", + + "js/jquery/jquery.crmeditable.js", + ); + + // Add localized jQuery UI files + if ($config->lcMessages && $config->lcMessages != 'en_US') { + // Search for i18n file in order of specificity (try fr-CA, then fr) + list($lang) = explode('_', $config->lcMessages); + $path = "packages/jquery/jquery-ui/development-bundle/ui/" . ($min ? 'minified/' : '') . "i18n"; + foreach (array(str_replace('_', '-', $config->lcMessages), $lang) as $language) { + $localizationFile = "$path/jquery.ui.datepicker-{$language}{$min}.js"; + if ($this->getPath('civicrm', $localizationFile)) { + $items[] = $localizationFile; + break; + } } } return $items;