Esempio n. 1
0
 /**
  * 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;
 }