\n";
}
return $flux;
}
/**
* Ajout de la css de jQuery UI pour les pages privées
*
* @param: $flux
* @return: $flux
*/
function jqueryui_header_prive_css($flux) {
$flux .= "\n";
return $flux;
}
/**
* Ajout du script effect de jQuery UI pour les pages privées
*
* @param: $flux
* @return: $flux
*/
function jqueryui_header_prive($flux) {
$flux .= "\n" . '';
return $flux;
}
/**
* Gérer les dépendances de la lib jQuery UI
*
* @param array $plugins tableau des plugins demandés
* @return array $plugins tableau des plugins nécessaires ou false
*/
function jqueryui_dependances($plugins) {
// Gestion des renommages de plugins jqueryui
foreach ($plugins as $nb => $val) {
if (0 === strpos($val, 'jquery.effects.')) {
$plugins[$nb] = str_replace('jquery.effects.', 'effect-', $val);
}
if (0 === strpos($val, 'jquery.ui.')) {
$plugins[$nb] = str_replace('jquery.ui.', '', $val);
}
}
/**
* Gestion des dépendances inter plugins
*/
$dependance_core = array(
'mouse',
'widget',
'datepicker',
'selectmenu'
);
/**
* Dépendances à widget
* Si un autre plugin est dépendant d'un de ceux là, on ne les ajoute pas
*/
$dependance_widget = array(
'accordion',
'autocomplete',
'button',
'dialog',
'mouse',
'menu',
'progressbar',
'tabs',
'tooltip',
'selectmenu'
);
$dependance_mouse = array(
'draggable',
'droppable',
'resizable',
'selectable',
'slider',
'sortable'
);
$dependance_position = array(
'autocomplete',
'dialog',
'menu',
'tooltip',
'selectmenu'
);
$dependance_button = array(
'dialog',
'spinner'
);
$dependance_menu = array(
'autocomplete',
'selectmenu'
);
$dependance_draggable = array(
'droppable'
);
$dependance_resizable = array(
'dialog'
);
$dependance_effects = array(
'effect-blind',
'effect-bounce',
'effect-clip',
'effect-drop',
'effect-explode',
'effect-fade',
'effect-fold',
'effect-highlight',
'effect-puff',
'effect-pulsate',
'effect-scale',
'effect-shake',
'effect-size',
'effect-slide',
'effect-transfer'
);
/**
* Vérification des dépendances
* Ici on ajoute quand même le plugin en question et on supprime les doublons via array_unique
* Pour éviter le cas où un pipeline demanderait un plugin dans le mauvais sens de la dépendance par exemple
*
* On commence par le bas de l'échelle :
* - button
* - menu
* - draggable
* - position
* - mouse
* - widget
* - core
* - effects
*/
if (count($intersect = array_intersect($plugins, $dependance_resizable)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'resizable');
}
if (count($intersect = array_intersect($plugins, $dependance_button)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'button');
}
if (count($intersect = array_intersect($plugins, $dependance_menu)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'menu');
}
if (count($intersect = array_intersect($plugins, $dependance_draggable)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'draggable');
}
if (count($intersect = array_intersect($plugins, $dependance_position)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'position');
}
if (count($intersect = array_intersect($plugins, $dependance_mouse)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'mouse');
}
if (count($intersect = array_intersect($plugins, $dependance_widget)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'widget');
}
if (count($intersect = array_intersect($plugins, $dependance_core)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'core');
}
if (count($intersect = array_intersect($plugins, $dependance_effects)) > 0) {
$keys = array_keys($intersect);
array_splice($plugins, $keys[0], 0, 'effect');
}
$plugins = array_unique($plugins);
return $plugins;
}