WP File Manager
Current Path:
/
home
/
argothem
/
www
/
organecyberpresse
/
plugins
/
auto
/
player
/
v4.3.0
/
Name
Action
..
.gitattributes
Edit
CHANGELOG.md
Edit
README.md
Edit
css
demo
formulaires
install.log
Edit
javascript
lang
lib
modeles
paquet.xml
Edit
player_administrations.php
Edit
player_fonctions.php
Edit
players
prive
todo.txt
Edit
Editing: player_fonctions.php
<?php /** * Plugin Lecteur (mp3) * Licence GPL * 2007-2022 */ if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Code JS a inserer dans la page pour faire fonctionner le player * @param $player * @return string */ function player_call_js() { include_spip('inc/filtres'); $enclosure = ''; $init = ''; lire_fichier(find_in_path('javascript/mejs-enclosure.min.js'), $enclosure); lire_fichier(find_in_path('javascript/mejs-init.min.js'), $init); $mejspath = timestamp(find_in_path('lib/mejs/build/mediaelement-and-player.min.js')); $mecss = timestamp(find_in_path('lib/mejs/build/mediaelementplayer.min.css')); $flux = '<script type="text/javascript">/*<![CDATA[*/' . "var mejspath='$mejspath',mejscss='$mecss';\n$enclosure\n$init\n" . "/*]]>*/</script>\n"; return $flux; } /** * inserer systematiquement le CSS dans la page * @param string $flux * @return string */ function player_insert_head_css($flux) { $css = timestamp(find_in_path('css/player.css')); $flux .= "\n" . '<link href="' . $css . '" rel="stylesheet" />'; return $flux; } /** * Inserer systematiquement le JS dans la page * @param string $flux * @return string */ function player_insert_head($flux) { if ( test_espace_prive() || (defined('_PLAYER_AFFICHAGE_FINAL') && !_PLAYER_AFFICHAGE_FINAL) ) { $cfg = lire_config('player'); if (in_array('inline_mini', $cfg['insertion_auto'] ?? [])) { $flux .= player_call_js(); } } return $flux; } /** * Inserer JS+CSS dans la page si elle contient un player * (a la demande) * @param string $flux * @return string */ function player_affichage_final($flux) { if ( (!defined('_PLAYER_AFFICHAGE_FINAL') || _PLAYER_AFFICHAGE_FINAL) && $GLOBALS['html'] ) { // inserer le head seulement si presente d'un rel='enclosure' // il faut etre pas trop stricte car on peut avoir rel='nofollow enclosure' etc... if ((strpos($flux, 'enclosure') !== false)) { $cfg = lire_config('player'); if (in_array('inline_mini', $cfg['insertion_auto'] ?? [])) { // on pourrait affiner la detection avec un preg ? $ins = player_call_js(); $p = stripos($flux, '</body>'); if ($p) { $flux = substr_replace($flux, $ins, $p, 0); } else { $flux .= $ins; } } } } return $flux; } /** * enclosures * ajout d'un rel="enclosure" sur les liens mp3 absolus * appele en pipeline apres propre pour traiter les [mon son->http://monsite/mon_son.mp3] * peut etre appele dans un squelette apres |liens_absolus * * @param $texte * @return mixed */ function player_post_propre($texte) { $reg_formats = 'mp3'; // plus vite if ( stripos($texte, ".$reg_formats") !== false && stripos($texte, '<a') !== false ) { $cfg = lire_config('player'); // insertion du mini-player inline if (in_array('inline_mini', $cfg['insertion_auto'] ?? [])) { $texte = preg_replace_callback(",<a(\s[^>]*href=['\"]?([a-zA-Z0-9\s()\/\:\._%\?+'=~-]*\.($reg_formats))['\"]?[^>]*)>,Uims", 'player_enclose_link', $texte); } if (in_array('player_end', $cfg['insertion_auto'] ?? [])) { preg_match_all(",<a(\s[^>]*href=['\"]?([a-zA-Z0-9\s()\/\:\._%\?+'=~-]*\.($reg_formats))['\"]?[^>]*)>(.*)</a>,Uims", $texte, $matches, PREG_SET_ORDER); if (count($matches)) { foreach ($matches as $m) { $url = $m[2]; $titre = $m[4]; $titre = ((!strlen(textebrut($titre)) || tester_url_absolue($titre)) ? player_joli_titre($url) : $titre); $emb = recuperer_fond('modeles/player', ['url_document' => $url,'titre' => $titre]); if ($wrap_embed_html = charger_fonction('wrap_embed_html', 'inc', true)) { $emb = $wrap_embed_html(' ', $emb); } $texte .= $emb; } } } } return $texte; } /** * Ajouter enclosure sur un lien mp3 * * @param $regs * @return mixed|string */ function player_enclose_link($regs) { $rel = extraire_attribut($regs[0], 'rel'); $rel = ($rel ? "$rel " : '') . 'enclosure'; return inserer_attribut($regs[0], 'rel', $rel); } /** * Un filtre pour afficher de joli titre a partir du nom du fichier * @param $titre * @return mixed|string */ function player_joli_titre($titre) { $titre = basename($titre); $titre = preg_replace('/.mp3/', '', $titre); $titre = preg_replace('/^ /', '', $titre); $titre = preg_replace('/_/i', ' ', $titre); $titre = preg_replace("/'/i", ' ', $titre); return $titre ; }