[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / thickbox2 / head.php
diff --git a/www/plugins/auto/thickbox2/head.php b/www/plugins/auto/thickbox2/head.php
new file mode 100644 (file)
index 0000000..1521308
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+
+function ThickBox1_insert_head_css($flux){
+       static $done = false;
+       if (!$done) {
+               $done = true;
+               $flux .= ThickBox_call_css();
+       }
+       return $flux;
+}
+
+function ThickBox1_insert_head($flux){
+       $flux = ThickBox1_insert_head_css($flux);
+       
+       // on ajoute la class thickbox aux liens de type="image/xxx"
+
+       // TODO: ne charger thickbox.js et thickbox.css que si 
+       // jQuery("a.thickbox,a[type='image/jpeg'],...").size() > 0)
+       if(!$GLOBALS["spip_pipeline"]["insert_js"])
+               $flux .= ThickBox_call_js();
+
+       return $flux;
+}
+
+function ThickBox1_header_prive($flux) {
+include_spip("inc/filtres");
+
+$flux .= ThickBox_call_css();
+$flux .= ThickBox_call_js();
+
+return $flux;
+
+}
+
+function ThickBox1_insert_js($flux){
+include_spip("inc/filtres");
+
+// on ajoute la class thickbox aux liens de type="image/xxx"
+
+// TODO: ne charger thickbox.js et thickbox.css que si 
+// jQuery("a.thickbox,a[type='image/jpeg'],...").size() > 0)
+
+if($flux['type']=='inline')
+  $flux["data"]["ThickBox1"] =
+'
+<script type="text/javascript"><!--
+// Inside the function "this" will be "document" when called by ready() 
+// and "the ajaxed element" when called because of onAjaxLoad 
+var init_f = function() {
+       var me = this;
+       if (jQuery("a.thickbox,a[type=\'image/jpeg\'],a[type=\'image/png\'],a[type=\'image/gif\']",me).addClass("thickbox").size()) {
+       
+               var TB_initload = function(){
+                       TB_chemin_animation = "'.url_absolue(find_in_path('circle_animation.gif')).'";
+                       TB_chemin_close = "'.url_absolue(find_in_path('close.gif')).'";
+                       TB_chemin_css = "'.url_absolue(find_in_path('thickbox.css')).'";
+                       TB_init(me);
+               };
+
+               if (typeof TB_init == "function") {
+                       TB_initload();
+               } else {
+                       jQuery("head")
+                       .prepend("<link rel=\'stylesheet\'type=\'text/css\' href=\''.url_absolue(find_in_path('thickbox.css')).'\' />");
+                       jQuery.getScript("'
+                               .url_absolue(find_in_path('javascript/thickbox.js'))
+                               .'", TB_initload)
+               }
+       };
+}
+//onAjaxLoad is defined in private area only
+if(typeof onAjaxLoad == "function") onAjaxLoad(init_f);
+
+// Demarrage : on charge et execute les scripts de thickbox en asynchrone
+// ce qui permet a la page de s\'afficher plus tot
+jQuery(document).ready(function(){setTimeout(init_f.apply(document),200)});
+// --></script>';
+
+       return $flux;
+}
+
+function ThickBox1_verifie_js_necessaire($flux) {
+
+//var_dump($flux["page"]);
+$page = $flux["page"]["texte"];
+//cherche <a> avec un type image ou une class thickbox
+$necessaire = preg_match(",<a[^>]+(?:(type)|class)\s*=\s*['\"](?(1)image/(?:jpeg|png|gif)|[^>'\"]*\bthickbox\b[^>'\"]*)['\"],iUs",$page); 
+$flux["data"]["ThickBox1"] = $necessaire;
+
+return $flux;
+  
+}
+
+function ThickBox_call_js() {
+       $flux = '<script src=\''.url_absolue(find_in_path('javascript/thickbox.js')).'\' type=\'text/javascript\'></script>';
+       $flux .= '<script type="text/javascript"><!--
+// Inside the function "this" will be "document" when called by ready() 
+// and "the ajaxed element" when called because of onAjaxLoad 
+var init_f = function() {
+       if (jQuery("a.thickbox,a[type=\'image/jpeg\'],a[type=\'image/png\'],a[type=\'image/gif\']",this).addClass("thickbox").size()) {
+               TB_chemin_animation = "'.url_absolue(find_in_path('circle_animation.gif')).'";
+               TB_chemin_close = "'.url_absolue(find_in_path('close.gif')).'";
+               TB_chemin_css = "'.url_absolue(find_in_path('thickbox.css')).'";
+               TB_init(this);
+       };
+}
+//onAjaxLoad is defined in private area only
+if(typeof onAjaxLoad == "function") onAjaxLoad(init_f);
+if (window.jQuery) jQuery(document).ready(init_f);
+// --></script>';
+       return $flux;
+}
+
+function ThickBox_call_css() {
+       $flux = '<link rel="stylesheet" href="'.url_absolue(find_in_path('thickbox.css')).'" type="text/css" media="all" />';
+       return $flux;
+}
+?>