[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / mediabox / mediabox_pipelines.php
index b9c2d1b..7064e25 100644 (file)
-<?php\r
-\r
-if (!defined('_ECRIRE_INC_VERSION')) return;\r
-\r
-function mediabox_config($public=null){\r
-       include_spip("inc/filtres");\r
-       $config = @unserialize($GLOBALS['meta']['mediabox']);\r
-       if (!is_array($config))\r
-               $config = array();\r
-       $config = array_merge(array(\r
-               'active' => 'oui',\r
-               'traiter_toutes_images' => 'oui',\r
-               'selecteur_galerie' => '#documents_portfolio a[type=\'image/jpeg\'],#documents_portfolio a[type=\'image/png\'],#documents_portfolio a[type=\'image/gif\']',\r
-               'selecteur_commun' => '.mediabox',\r
-               'splash_url' => '',\r
-               'skin' => 'black-striped',\r
-               'transition' => 'elastic',\r
-               'speed'=>'200',\r
-               'maxWidth'=>'90%',\r
-               'maxHeight'=>'90%',\r
-               'minWidth'=>'400px',\r
-               'minHeight'=>'',\r
-               'slideshow_speed' => '2500',\r
-               'opacite' => '0.9',\r
-       ), $config);\r
-\r
-       if ((is_null($public) AND test_espace_prive()) OR $public===false) {\r
-               $config = array_merge($config,array(\r
-               'active' => 'oui',\r
-               'selecteur_galerie' => '#portfolios a[type^=\'image/\']',\r
-               'selecteur_commun' => '.mediabox, .iconifier a[href$=jpg],.iconifier a[href$=png],.iconifier a[href$=gif]',\r
-               'splash_url' => '',\r
-               'skin' => 'white-shadow',\r
-               'maxWidth'=>'90%',\r
-               'maxHeight'=>'95%',\r
-               'minWidth'=>'600px',\r
-               'minHeight'=>'300px',\r
-               'opacite' => '0.9',\r
-               ));\r
-       }\r
-       \r
-       // charger la config du theme uniquement dans le public\r
-       if (!test_espace_prive() AND include_spip("colorbox/".$config['skin']."/mediabox_config_theme")) {\r
-               $config_theme = mediabox_config_theme();\r
-               $config = array_merge($config, $config_theme);\r
-       }\r
-       \r
-       return $config; \r
-}\r
-\r
-function mediabox_insert_head_css($flux){\r
-       $config = mediabox_config();\r
-       if ($config['active']=='oui' AND $f = find_in_path((test_espace_prive()?"prive/":"")."colorbox/".$config['skin'].'/colorbox.css')) {\r
-               $flux .= '<link rel="stylesheet" href="'.direction_css($f).'" type="text/css" media="all" />';\r
-       /**\r
-        * Initialiser la config de la mediabox\r
-        */\r
-       $flux ='<script type="text/javascript">/* <![CDATA[ */\r
-var box_settings = {tt_img:'.($config['traiter_toutes_images'] == 'oui'?'true':'false')\r
-.',sel_g:"'.$config['selecteur_galerie']\r
-.'",sel_c:"'.$config['selecteur_commun']\r
-.'",trans:"'.$config['transition']\r
-.'",speed:"'.$config['speed']\r
-.'",ssSpeed:"'.$config['slideshow_speed']\r
-.'",maxW:"'.$config['maxWidth']\r
-.'",maxH:"'.$config['maxHeight']\r
-.'",minW:"'.$config['minWidth']\r
-.'",minH:"'.$config['minHeight']\r
-.'",opa:"'.$config['opacite']\r
-.'",str_ssStart:"'.unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStart')))\r
-.'",str_ssStop:"'.unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStop')))\r
-.'",str_cur:"'._T('mediabox:boxstr_current', array('current'=>'{current}', 'total'=>'{total}'))\r
-.'",str_prev:"'._T('mediabox:boxstr_previous')\r
-.'",str_next:"'._T('mediabox:boxstr_next')\r
-.'",str_close:"'._T('mediabox:boxstr_close')\r
-.'",splash_url:"'.$config['splash_url']\r
-.'"};\r
-/* ]]> */</script>'."\n" . $flux;\r
-       }\r
-       return $flux;\r
-}\r
-\r
-\r
-function mediabox_timestamp($fichier){\r
-       if ($m = filemtime($fichier))\r
-               return "$fichier?$m";\r
-       return $fichier;\r
-}\r
-\r
-function mediabox_insert_head($flux){\r
-       $config = mediabox_config();\r
-       if ($config['active']=='oui') {\r
-\r
-               $flux .='\r
-       <script src="'.mediabox_timestamp(find_in_path('javascript/jquery.colorbox.js')).'" type="text/javascript"></script>\r
-       <script src="'.mediabox_timestamp(find_in_path('javascript/spip.mediabox.js')).'" type="text/javascript"></script>';\r
-               if ($config['splash_url'])\r
-                       $flux .='<script src="'.mediabox_timestamp(find_in_path('javascript/splash.mediabox.js')).'" type="text/javascript"></script>';\r
-       }\r
-\r
-       return $flux;\r
-}\r
-\r
-function mediabox_jquery_plugins($plugins){\r
-       $config = mediabox_config();\r
-       if ($config['splash_url']) {\r
-               $plugins[] = 'javascript/jquery.cookie.js';\r
-       }\r
-       return $plugins;\r
-}\r
-\r
-?>\r
+<?php
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
+
+function mediabox_config($public = null) {
+       include_spip('inc/filtres');
+       include_spip('inc/config');
+       $config = lire_config('mediabox', array());
+
+       $config = array_merge(array(
+               'active' => 'oui',
+               'traiter_toutes_images' => 'oui',
+               'selecteur_galerie' => '#documents_portfolio a[type=\'image/jpeg\'],#documents_portfolio a[type=\'image/png\'],#documents_portfolio a[type=\'image/gif\']',
+               'selecteur_commun' => '.mediabox',
+               'splash_url' => '',
+               'splash_width' => '600px',
+               'splash_height' => '90%',
+               'skin' => 'black-striped',
+               'transition' => 'elastic',
+               'speed' => '200',
+               'maxWidth' => '90%',
+               'maxHeight' => '90%',
+               'minWidth' => '400px',
+               'minHeight' => '',
+               'slideshow_speed' => '2500',
+               'opacite' => '0.9',
+       ), $config);
+
+       if ((is_null($public) and test_espace_prive()) or $public === false) {
+               $config = array_merge($config, array(
+                       'active' => 'oui',
+                       'selecteur_galerie' => '#portfolios a[type^=\'image/\']',
+                       'selecteur_commun' => '.mediabox, .iconifier a[href$=jpg],.iconifier a[href$=png],.iconifier a[href$=gif]',
+                       'splash_url' => '',
+                       'skin' => 'white-shadow',
+                       'maxWidth' => '90%',
+                       'maxHeight' => '95%',
+                       'minWidth' => '600px',
+                       'minHeight' => '300px',
+                       'opacite' => '0.9',
+               ));
+       }
+
+       // Gerer aussi les liens internes de SPIP
+       if (!test_espace_prive() and $config['splash_url']) {
+               include_spip('inc/filtres_ecrire');
+               $config['splash_url'] = url_absolue(extraire_attribut(lien_article_virtuel($config['splash_url']), 'href'));
+       }
+
+       // charger la config du theme uniquement dans le public
+       if (!test_espace_prive() and include_spip('colorbox/' . $config['skin'] . '/mediabox_config_theme')) {
+               $config_theme = mediabox_config_theme();
+               $config = array_merge($config, $config_theme);
+       }
+
+       return $config;
+}
+
+function mediabox_insert_head_css($flux) {
+       $config = mediabox_config();
+       if ($config['active'] == 'oui'
+               and $f = find_in_path((test_espace_prive() ? 'prive/' : '') . 'colorbox/' . $config['skin'] . '/colorbox.css')) {
+               $flux .= '<link rel="stylesheet" href="' . direction_css($f) . '" type="text/css" media="all" />';
+               /**
+                * Initialiser la config de la mediabox
+                */
+               $configmediabox = '<script type="text/javascript">/* <![CDATA[ */
+var box_settings = {tt_img:' . ($config['traiter_toutes_images'] == 'oui' ? 'true' : 'false')
+                       . ',sel_g:"' . $config['selecteur_galerie']
+                       . '",sel_c:"' . $config['selecteur_commun']
+                       . '",trans:"' . $config['transition']
+                       . '",speed:"' . $config['speed']
+                       . '",ssSpeed:"' . $config['slideshow_speed']
+                       . '",maxW:"' . $config['maxWidth']
+                       . '",maxH:"' . $config['maxHeight']
+                       . '",minW:"' . $config['minWidth']
+                       . '",minH:"' . $config['minHeight']
+                       . '",opa:"' . $config['opacite']
+                       . '",str_ssStart:"' . unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStart')))
+                       . '",str_ssStop:"' . unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStop')))
+                       . '",str_cur:"' . _T('mediabox:boxstr_current', array('current' => '{current}', 'total' => '{total}'))
+                       . '",str_prev:"' . _T('mediabox:boxstr_previous')
+                       . '",str_next:"' . _T('mediabox:boxstr_next')
+                       . '",str_close:"' . _T('mediabox:boxstr_close')
+                       . '",splash_url:"' . $config['splash_url']
+                       . '"};' . "\n";
+               // Si c'est une image, on la chargera avec une redimentionnement automatique
+               // Sinon, chargement dans une iframe
+               $extension = pathinfo($config['splash_url'], PATHINFO_EXTENSION);
+               if (match($extension, 'gif|png|jpg|jpeg')) {
+                       $configmediabox .= 'var box_settings_iframe = false;' . "\n";
+               } else {
+                       $configmediabox .= 'var box_settings_splash_width = "' . $config['splash_width'] . '";
+var box_settings_splash_height = "' . $config['splash_height'] . '";' . "\n";
+                       $configmediabox .= 'var box_settings_iframe = true;' . "\n";
+               }
+               $flux = $configmediabox . '/* ]]> */</script>' . "\n" . $flux;
+       }
+
+       return $flux;
+}
+
+
+function mediabox_timestamp($fichier) {
+       if ($m = filemtime($fichier)) {
+               return "$fichier?$m";
+       }
+
+       return $fichier;
+}
+
+function mediabox_insert_head($flux) {
+       $config = mediabox_config();
+       if ($config['active'] == 'oui') {
+               $flux .= '
+       <script src="' . mediabox_timestamp(find_in_path('javascript/jquery.colorbox.js')) . '" type="text/javascript"></script>
+       <script src="' . mediabox_timestamp(find_in_path('javascript/spip.mediabox.js')) . '" type="text/javascript"></script>';
+               if ($config['splash_url']) {
+                       $flux .= '<script src="' . mediabox_timestamp(find_in_path('javascript/splash.mediabox.js')) . '" type="text/javascript"></script>';
+               }
+       }
+
+       return $flux;
+}
+
+function mediabox_jquery_plugins($plugins) {
+       $config = mediabox_config();
+       if ($config['splash_url']) {
+               $plugins[] = 'javascript/js.cookie.js';
+       }
+
+       return $plugins;
+}