/** * Load css and yui file * @return null * @param $js Array[optional] * @param $css Array[optional] */ public static function load($module_list = false, $noprint = false) { $module_list = 'base,autocomplete,charts,tabview,table,treeview,colorpicker'; if (strpos($module_list, 'base') !== false) { $module_list = 'base,' . $module_list; } $list = explode(',', $module_list); $js_load = array(); $css_load = array(); foreach ($list as $k => $module) { if (isset(self::$_css_map[$module])) { $css_load = array_unique(array_merge($css_load, self::$_css_map[$module])); } if (isset(self::$_js_map[$module])) { $js_load = array_unique(array_merge($js_load, self::$_js_map[$module])); } } // remove js alredy loaded $css_load = array_diff($css_load, self::$_css_loaded); $js_load = array_diff($js_load, self::$_js_loaded); if (empty($css_load) && empty($js_load)) { return ''; } // load new css $to_load = ''; if (!empty($css_load)) { $to_load .= '<!-- yui css -->'; foreach ($css_load as $k => $filename) { $to_load .= Util::get_css(Get::tmpl_path('base') . 'yui-skin/' . $filename, true); } } // load new js if (!empty($js_load)) { $to_load .= '<!-- yui js -->'; foreach ($js_load as $k => $filename) { $to_load .= Util::get_js('/addons/yui/' . $filename); if ($filename == 'utilities/utilities.js') { $to_load .= "\n" . '<script type="text/javascript"> YAHOO.util.Connect.initHeader(\'X-Signature\',\'' . Util::getSignature() . '\'); YAHOO.util.Connect.startEvent.subscribe(function() { YAHOO.util.Connect.initHeader(\'X-Signature\',\'' . Util::getSignature() . '\'); });</script>'; } if ($filename == 'charts/charts-min.js') { $to_load .= "\n" . '<script type="text/javascript"> YAHOO.widget.Chart.SWFURL = "' . Get::rel_path('base') . '/addons/yui/charts/assets/charts.swf"; </script>'; } } if (Lang::direction() == 'rtl') { $to_load .= Util::get_js('/addons/yui/yui-rtl.js'); } } // add loaded file to the cache if (!empty($css_load)) { self::$_css_loaded = array_merge(self::$_css_loaded, $css_load); } if (!empty($js_load)) { self::$_js_loaded = array_merge(self::$_js_loaded, $js_load); } if (function_exists('cout') && !$noprint) { cout($to_load, 'page_head'); } else { return $to_load; } }