/** * Ajoute les scripts JS et CSS de saisies dans l'espace public * * Ajoute également de quoi gérer le datepicker de la saisie date si * celle-ci est utilisée dans la page. * * @param string $flux * @return string **/ function saisies_affichage_final($flux) { if (($p = strpos($flux, "<!--!inserer_saisie_editer-->")) !== false) { // On insère la CSS devant le premier <link> trouvé if (!($pi = strpos($flux, "<link")) and !($pi = strpos($flux, '</head'))) { $pi = $p; } // si pas de <link inserer comme un goret entre 2 <li> de saisies $css = generer_url_public('saisies.css'); $ins_css = "\n<link rel='stylesheet' href='{$css}' type='text/css' media='all' />\n"; if (strpos($flux, "saisie_date") !== false) { //si on a une saisie de type date, on va charger les css de jquery_ui include_spip("jqueryui_pipelines"); if (function_exists("jqueryui_dependances")) { $ui_plugins = jqueryui_dependances(array("jquery.ui.datepicker")); array_push($ui_plugins, "jquery.ui.theme"); foreach ($ui_plugins as $ui_plug) { $ui_plug_css = find_in_path("css/{$ui_plug}.css"); if (strpos($flux, "css/{$ui_plug}.css") === false) { // si pas déjà chargé $ins_css .= "\n<link rel='stylesheet' href='{$ui_plug_css}' type='text/css' media='all' />\n"; } } } } $flux = substr_replace($flux, $ins_css, $pi, 0); // On insère le JS à la fin du <head> $pos_head = strpos($flux, '</head'); $js = find_in_path('javascript/saisies.js'); $ins_js = "\n<script type='text/javascript' src='{$js}'></script>\n"; $flux = substr_replace($flux, $ins_js, $pos_head, 0); } return $flux; }
/** * Ajout des css de jQuery UI pour les pages publiques * * @param: $flux * @return: $flux */ function jqueryui_insert_head_css($flux) { /** * Doit on ne pas insérer les css (défini depuis un autre plugin) ? */ if (defined('_JQUERYUI_CSS_NON')) { return $flux; } // Modules demandés par le pipeline jqueryui_plugins is_array($jqueryui_plugins = pipeline('jqueryui_plugins', array())) || ($jqueryui_plugins = array()); // gestion des dépendances des modules demandés is_array($jqueryui_plugins = jqueryui_dependances($jqueryui_plugins)) || ($jqueryui_plugins = array()); // ajouter le thème si nécessaire if ($jqueryui_plugins and !in_array('jquery.ui.theme', $jqueryui_plugins)) { $jqueryui_plugins[] = 'theme'; } // les css correspondantes aux plugins $styles = array('accordion', 'autocomplete', 'button', 'core', 'datepicker', 'dialog', 'draggable', 'menus', 'progressbar', 'resizable', 'selectable', 'selectmenu', 'slider', 'sortable', 'spinner', 'tabs', 'tooltip', 'theme'); // insérer les css nécessaires foreach ($jqueryui_plugins as $plugin) { if (in_array($plugin, $styles)) { $flux .= "<link rel='stylesheet' type='text/css' media='all' href='" . find_in_path('css/ui/' . $plugin . '.css') . "' />\n"; } } return $flux; }
/** * Ajoute les scripts JS et CSS de saisies dans l'espace public * * Ajoute également de quoi gérer le datepicker de la saisie date si * celle-ci est utilisée dans la page. * * @param string $flux * @return string **/ function saisies_affichage_final($flux){ if ( $GLOBALS['html'] // si c'est bien du HTML and ($p = strpos($flux,"<!--!inserer_saisie_editer-->")) !== false // et qu'on a au moins une saisie and strpos($flux,'<head') !== false // et qu'on a la balise <head> quelque part ){ // On insère la CSS devant le premier <link> trouvé if (!$pi = strpos($flux, "<link") AND !$pi=strpos($flux, '</head')) { $pi = $p; // si pas de <link inserer comme un goret entre 2 <li> de saisies } $css = generer_url_public('saisies.css'); $ins_css = "\n<link rel='stylesheet' href='$css' type='text/css' media='all' />\n"; if (strpos($flux,"saisie_date")!==false){//si on a une saisie de type date, on va charger les css de jquery_ui include_spip("jqueryui_pipelines"); if (function_exists("jqueryui_dependances")){ $ui_plugins = jqueryui_dependances(array("jquery.ui.datepicker")); $theme_css = "jquery.ui.theme"; $ui_css_dir = "css"; // compatibilité SPIP 3.1 et jQuery UI 1.11 $version = explode(".",$GLOBALS['spip_version_branche']); if ($version[0]>3 OR ($version[0]==3 AND $version[1]>0)) { $theme_css = "theme"; $ui_css_dir = "css/ui"; } array_push($ui_plugins,$theme_css); foreach ($ui_plugins as $ui_plug){ $ui_plug_css = find_in_path("$ui_css_dir/$ui_plug.css"); if (strpos($flux,"$ui_css_dir/$ui_plug.css")===false){// si pas déjà chargé $ins_css .= "\n<link rel='stylesheet' href='$ui_plug_css' type='text/css' media='all' />\n"; } } } } $flux = substr_replace($flux, $ins_css, $pi, 0); // On insère le JS à la fin du <head> $pos_head = strpos($flux, '</head'); $js = find_in_path('javascript/saisies.js'); $ins_js = "\n<script type='text/javascript' src='$js'></script>\n"; $flux = substr_replace($flux, $ins_js, $pos_head, 0); } return $flux; }
/** * Ajoute les scripts JS et CSS de saisies dans l'espace public * * Ajoute également de quoi gérer le datepicker de la saisie date si * celle-ci est utilisée dans la page. * * @param string $flux * @return string **/ function saisies_affichage_final($flux) { if ($GLOBALS['html'] and ($p = strpos($flux, '<!--!inserer_saisie_editer-->')) !== false and strpos($flux, '<head') !== false) { // On insère la CSS devant le premier <link> trouvé if (!($pi = strpos($flux, '<link')) and !($pi = strpos($flux, '</head'))) { $pi = $p; // si pas de <link inserer comme un goret entre 2 <li> de saisies } $css = generer_url_public('saisies.css'); $ins_css = "\n<link rel='stylesheet' href='{$css}' type='text/css' media='all' />\n"; if (strpos($flux, 'saisie_date') !== false) { //si on a une saisie de type date, on va charger les css de jquery_ui include_spip('jqueryui_pipelines'); if (function_exists('jqueryui_dependances')) { $ui_plugins = jqueryui_dependances(array('jquery.ui.datepicker')); $theme_css = 'jquery.ui.theme'; $ui_css_dir = 'css'; // compatibilité SPIP 3.1 et jQuery UI 1.11 $version = explode('.', $GLOBALS['spip_version_branche']); if ($version[0] > 3 or $version[0] == 3 and $version[1] > 0) { $theme_css = 'theme'; $ui_css_dir = 'css/ui'; } array_push($ui_plugins, $theme_css); foreach ($ui_plugins as $ui_plug) { $ui_plug_css = find_in_path("{$ui_css_dir}/{$ui_plug}.css"); if (strpos($flux, "{$ui_css_dir}/{$ui_plug}.css") === false) { // si pas déjà chargé $ins_css .= "\n<link rel='stylesheet' href='{$ui_plug_css}' type='text/css' media='all' />\n"; } } } } $flux = substr_replace($flux, $ins_css, $pi, 0); // On insère le JS à la fin du <head> $pos_head = strpos($flux, '</head'); $js = find_in_path('javascript/saisies.js'); $ins_js = "\n<script type='text/javascript' src='{$js}'></script>\n"; $flux = substr_replace($flux, $ins_js, $pos_head, 0); } return $flux; }