/** * Loads the jquery library and set of jquery plugins passed as parameters to the function. * * The required jquery plugins should be passed as associative array of names with name as libs * Ex: * <code> * $params = array('libs'=>array('ui', 'form', 'validate', 'treeview', 'menu', 'waypoints', 'tags', 'inlinelabel', 'scrollto'), 'theme'=>'start'); * CJFunctions::load_jquery($params); * </code> * * @param array $params */ public static function load_jquery($params = array()) { $app = JFactory::getApplication(); $document = JFactory::getDocument(); $plugins = !empty($app->jqueryplugins) ? $app->jqueryplugins : array(); $custom_tag = isset($params['custom_tag']) ? true : false; if (!in_array('baseloc', $plugins)) { $document->addScriptDeclaration('var cjlib_loc = "' . CJLIB_URI . '";'); $plugins[] = 'baseloc'; } if (APP_VERSION <= 2.5 && !$app->get('jquery', false)) { CJFunctions::add_script_to_document($document, 'jquery.min.js', $custom_tag); CJFunctions::add_script_to_document($document, 'jquery.noconflict.js', $custom_tag); $app->set('jquery', true); } else { if (APP_VERSION > 2.5) { JHtml::_('jquery.framework'); } } if (!in_array('ui', $plugins) && in_array('ui', $params['libs'])) { if (APP_VERSION <= 2.5) { $theme = !empty($params['theme']) && strcmp($params['theme'], 'default') != 0 ? JFile::makeSafe($params['theme']) : 'start'; if ($theme != 'none') { $document->addStyleSheet(CJLIB_URI . '/jquery/themes/' . $theme . '/jquery-ui.css'); CJFunctions::add_script_to_document($document, 'jquery-ui.min.js', $custom_tag); } else { $document->addStyleSheet(CJLIB_URI . '/jquery/themes/no-theme/jquery-ui.css'); CJFunctions::add_script_to_document($document, 'jquery-ui-core.min.js', $custom_tag); } } else { JHtml::_('jquery.ui', array('core', 'sortable')); } $plugins[] = 'ui'; } if (!in_array('extras', $plugins)) { if (in_array('extras', $params['libs'])) { $document->addStyleSheet(CJLIB_URI . '/jquery/jquery.extras.min.css'); CJFunctions::add_script_to_document($document, 'jquery.extras.min.js', $custom_tag); CJFunctions::add_script_to_document($document, 'jquery.form.min.js', $custom_tag); $plugins[] = 'extras'; $plugins[] = 'form'; $plugins[] = 'validate'; $plugins[] = 'treeview'; } else { /** deprecated */ if (in_array('menu', $params['libs'])) { CJFunctions::add_script_to_document($document, 'jquery.extras.min.js', $custom_tag); $document->addStyleSheet(CJLIB_URI . '/jquery/jquery.extras.min.css'); $plugins[] = 'extras'; } } } if (!in_array('json', $plugins) && in_array('json', $params['libs'])) { CJFunctions::add_script_to_document($document, 'json2.js', $custom_tag); $plugins[] = 'json'; } if (!in_array('validate', $plugins) && in_array('validate', $params['libs'])) { $lang = JFactory::getLanguage()->getTag(); $locale = strstr($lang, '-', true); CJFunctions::add_script('https://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.min.js', $custom_tag); if ($locale != 'en') { CJFunctions::add_script('https://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/localization/messages_' . $locale . '.js', $custom_tag); } //CJFunctions::add_script_to_document($document, 'jquery.validate.min.js', $custom_tag); $plugins[] = 'validate'; } if (!in_array('rating', $plugins) && in_array('rating', $params['libs'])) { CJFunctions::add_script_to_document($document, 'jquery.raty.min.js', $custom_tag); $plugins[] = 'rating'; } if (!in_array('form', $plugins) && in_array('form', $params['libs'])) { CJFunctions::add_script(CJLIB_MEDIA_URI . '/jquery/jquery.form.min.js', $custom_tag); $plugins[] = 'form'; } // if(!in_array('morris', $plugins) && in_array('morris', $params['libs'])){ // CJFunctions::add_script_to_document($document, 'raphael-min.js', $custom_tag); // CJFunctions::add_script_to_document($document, 'morris.min.js', $custom_tag); // $plugins[] = 'morris'; // } if (!in_array('datepicker', $plugins) && in_array('datepicker', $params['libs'])) { $document->addStyleSheet(CJLIB_URI . '/jquery/datepicker.css'); CJFunctions::add_script_to_document($document, 'bootstrap-datepicker.js', $custom_tag); $plugins[] = 'datepicker'; } if (!in_array('treeview', $plugins) && in_array('treeview', $params['libs'])) { $document->addStyleSheet(CJLIB_URI . '/jquery/jquery.treeview.css'); CJFunctions::add_script_to_document($document, 'jquery.treeview.js', $custom_tag); $plugins[] = 'treeview'; } if (!in_array('colorbox', $plugins) && in_array('colorbox', $params['libs'])) { $document->addStyleSheet(CJLIB_URI . '/jquery/colorbox.css'); CJFunctions::add_script_to_document($document, 'jquery.colorbox.min.js', $custom_tag); $plugins[] = 'colorbox'; } if (!in_array('social', $plugins) && in_array('social', $params['libs'])) { $document->addStyleSheet(CJLIB_URI . '/jquery/social/socialcount-with-icons.min.css'); CJFunctions::add_script_to_document($document, 'socialcount.min.js', $custom_tag, CJLIB_URI . '/jquery/social/'); $plugins[] = 'social'; } if (!in_array('chosen2', $plugins) && in_array('chosen2', $params['libs'])) { if (APP_VERSION <= 2.5) { $document->addStyleSheet(CJLIB_URI . '/jquery/chosen/chosen.css'); CJFunctions::add_script_to_document($document, 'chosen.jquery.min.js', $custom_tag, CJLIB_URI . '/jquery/chosen/'); CJFunctions::add_script_to_document($document, 'ajax-chosen.min.js', $custom_tag, CJLIB_URI . '/jquery/chosen/'); if (in_array('chosentags', $params['libs'])) { CJFunctions::add_script_to_document($document, 'cj.chosentags.js', $custom_tag, CJLIB_URI . '/jquery/chosen/'); } } else { $document->addStyleSheet(JUri::root(true) . '/media/jui/css/chosen.css'); $document->addScript(JUri::root(true) . '/media/system/js/core.js'); $document->addScript(JUri::root(true) . '/media/jui/js/chosen.jquery.js'); if (in_array('chosentags', $params['libs'])) { $document->addScript(JUri::root(true) . '/media/jui/js/ajax-chosen.min.js'); $document->addScript(CJLIB_URI . '/jquery/chosen/cj.chosentags.js'); } } $plugins[] = 'chosen2'; } if (!in_array('chosen', $plugins) && in_array('chosen', $params['libs'])) { if (APP_VERSION <= 2.5) { $document->addStyleSheet(CJLIB_URI . '/jquery/chosen/chosen.css'); CJFunctions::add_script_to_document($document, 'chosen.jquery.min.js', $custom_tag, CJLIB_URI . '/jquery/chosen/'); CJFunctions::add_script_to_document($document, 'ajax-chosen.min.js', $custom_tag, CJLIB_URI . '/jquery/chosen/'); CJFunctions::add_script_to_document($document, 'cj.chosentags.js', $custom_tag, CJLIB_URI . '/jquery/chosen/'); } else { $document->addStyleSheet(JUri::root(true) . '/media/jui/css/chosen.css'); $document->addScript(JUri::root(true) . '/media/system/js/core.js'); $document->addScript(JUri::root(true) . '/media/jui/js/chosen.jquery.js'); $document->addScript(JUri::root(true) . '/media/jui/js/ajax-chosen.min.js'); $document->addScript(CJLIB_URI . '/jquery/chosen/cj.chosentags.js'); } $plugins[] = 'chosen'; } if (!in_array('tags', $plugins) && in_array('tags', $params['libs'])) { $document->addStyleSheet(CJLIB_URI . '/jquery/cj.tags.min.css'); CJFunctions::add_script_to_document($document, 'cj.tags.js', $custom_tag); $plugins[] = 'tags'; } if (!in_array('backbone', $plugins) && in_array('backbone', $params['libs'])) { CJFunctions::add_script_to_document($document, 'underscore-min.js', $custom_tag); CJFunctions::add_script_to_document($document, 'backbone-min.js', $custom_tag); $plugins[] = 'backbone'; } if (!in_array('bootstrap', $plugins) && in_array('bootstrap', $params['libs']) && !CJLib::$_bootstrap_loaded) { if (APP_VERSION == '2.5') { CJFunctions::add_script_to_document($document, 'bootstrap.min.js', $custom_tag, CJLIB_MEDIA_URI . '/bootstrap/js/'); CjFunctions::add_css_to_document($document, CJLIB_MEDIA_URI . '/bootstrap/css/bootstrap.min.css', $custom_tag); } else { JHtml::_('bootstrap.framework'); CjFunctions::add_css_to_document($document, CJLIB_MEDIA_URI . '/bootstrap/css/bootstrap.min.css', $custom_tag); // JHtmlBootstrap::loadCss(true, $document->direction); } $document->addScriptDeclaration('<!--[if lt IE 9]><script type="text/javascript" src="' . CJLIB_MEDIA_URI . '/bootstrap/js/respond.min.js"><![endif]-->'); $plugins[] = 'bootstrap'; CJLib::$_bootstrap_loaded = true; } if (!in_array('fontawesome', $plugins) && in_array('fontawesome', $params['libs'])) { // CjFunctions::add_css_to_document($document, '//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css', $custom_tag); CjFunctions::add_css_to_document($document, CJLIB_MEDIA_URI . '/fontawesome/css/font-awesome.min.css', $custom_tag); $plugins[] = 'fontawesome'; } if (!in_array('blockui', $plugins) && in_array('blockui', $params['libs'])) { CJFunctions::add_script(CJLIB_MEDIA_URI . '/jquery/jquery.blockui.js', $custom_tag); $plugins[] = 'blockui'; } if (!in_array('message', $plugins) && in_array('message', $params['libs'])) { CJFunctions::add_script(CJLIB_MEDIA_URI . '/jquery/jquery.message.min.js', $custom_tag); CjFunctions::add_css_to_document($document, CJLIB_MEDIA_URI . '/jquery/jquery.message.css', $custom_tag); $plugins[] = 'message'; } if (!in_array('dygraph', $plugins) && in_array('dygraph', $params['libs'])) { CJFunctions::add_script(CJLIB_MEDIA_URI . '/jquery/dygraph-combined.js', $custom_tag); $plugins[] = 'dygraph'; } $app->jqueryplugins = $plugins; }