source: spip-zone/_plugins_/soundmanager/sm_pipelines.php @ 100480

Last change on this file since 100480 was 100480, checked in by brunobergot@…, 4 years ago

ménage + sécu

File size: 3.9 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7// Ajouter soundmanager s'il n'y est pas déjà et qu'on a des enclosures dans la page
8function sm_affichage_final($page) {
9        if (!strpos($page, 'script/soundmanager2.js')){
10                if(strpos($page, 'rel="enclosure"')  OR strpos($page, "rel='enclosure'") AND $GLOBALS['html']){
11                                               
12                        $script .= "\n"."<script type=\"text/javascript\" src=\"" . find_in_path('script/soundmanager2.js') . "\"></script>"."\n";
13                        $script .= "<script type=\"text/javascript\" src=\"" . generer_url_public('soundmanager.js') . "\"></script>"."\n";
14                        $script .= "<link rel='stylesheet' href='" . generer_url_public('soundmanager.css') . "' type='text/css' media='projection, screen, tv' />"."\n";
15                       
16                        $page = substr_replace($page, $script, strpos($page, '</head>'), 0);
17                }
18
19                if(strpos($page, 'class="ui360')  OR strpos($page, "class='ui360") AND $GLOBALS['html']){                                       
20                        $script .= "<link rel='stylesheet' href='" . find_in_path('360-player/360player.css') . "' type='text/css' />"."\n";
21                        $script .= "<link rel='stylesheet' href='" . find_in_path('360-player/360player-visualization.css') . "' type='text/css' />"."\n";
22
23                        $script .= "\n"."<script type=\"text/javascript\" src=\"" . find_in_path('360-player/script/berniecode-animator.js') . "\"></script>"."\n";
24                        $script .= "\n"."<script type=\"text/javascript\" src=\"" . find_in_path('script/soundmanager2.js') . "\"></script>"."\n";
25                       
26                        $script .= "\n". "<!-- special IE-only canvas fix -->" . "\n". "<!--[if IE]><script type=\"text/javascript\" src=\"" . find_in_path('360-player/script/excanvas.js') . "\"></script><![endif]-->"."\n";
27                        $script .= "\n"."<script type=\"text/javascript\" src=\"" . find_in_path('360-player/script/360player.js') . "\"></script>"."\n";
28               
29                       
30$str = <<<EOD
31<script type="text/javascript">
32
33soundManager.setup({
34          url: '/plugins/soundmanager/swf/',
35          flashVersion: 9, // optional: shiny features (default = 8)
36          useFlashBlock: false, // optionally, enable when you're ready to dive in
37          debugMode: false
38});
39
40threeSixtyPlayer.config.scaleFont = (navigator.userAgent.match(/msie/i)?false:true);
41threeSixtyPlayer.config.showHMSTime = true;
42
43// enable some spectrum stuffs
44
45threeSixtyPlayer.config.useWaveformData = true;
46threeSixtyPlayer.config.useEQData = true;
47
48// enable this in SM2 as well, as needed
49
50if (threeSixtyPlayer.config.useWaveformData) {
51  soundManager.flash9Options.useWaveformData = true;
52}
53if (threeSixtyPlayer.config.useEQData) {
54  soundManager.flash9Options.useEQData = true;
55}
56if (threeSixtyPlayer.config.usePeakData) {
57  soundManager.flash9Options.usePeakData = true;
58}
59
60if (threeSixtyPlayer.config.useWaveformData || threeSixtyPlayer.flash9Options.useEQData || threeSixtyPlayer.flash9Options.usePeakData) {
61  // even if HTML5 supports MP3, prefer flash so the visualization features can be used.
62  soundManager.preferFlash = true;
63}
64
65</script>
66EOD;
67
68                        $script .= "\n" . $str ."\n";
69                       
70                        $page = substr_replace($page, $script, strpos($page, '</head>'), 0);
71                }
72
73        }
74        return $page;
75}
76
77
78 /**
79 * Ajout d'un rel="enclosure" sur les liens mp3.
80 * Permet de traiter les [mon son->http://monsite/mon_son.mp3] dans un texte.
81 * Le filtre peut etre appele dans un squelette apres |liens_absolus
82 *
83 * Pete cependant dans les cas (tordus) suivants :
84 * [{{Une histoire d'amour}}->documents/sons/PIRATAGE/01 UNE HISTOIRE D'AMOUR.mp3]
85 * [{{Une histoire d'amour à trois}}->documents/sons/PIRATAGE/02 UNE HISTOIRE D'AMOUR A TROIS[2].mp3]
86 *
87 */
88
89function sm_pre_liens($texte) {
90       
91        define('_RACCOURCI_LIEN_MP3', "/\[([^][]*?([[]\w*[]][^][]*)*)->(>?)([^]]*\.mp3)\]/msS");
92       
93        if (preg_match_all(_RACCOURCI_LIEN_MP3, $texte, $regs, PREG_SET_ORDER)) {
94
95                foreach ($regs as $k => $reg) {
96                        if($reg[1]){
97                                $l = "<a href='$reg[4]' rel='enclosure'>$reg[1]</a>";
98                        }else{
99                                $l = "<a href='$reg[4]' rel='enclosure'>".couper($reg[4],50)."</a>";
100                        }
101                        $p = $reg[0];
102                        $texte = str_replace($p,$l,$texte);
103                } 
104        }
105
106        return $texte;
107}
Note: See TracBrowser for help on using the repository browser.