вопрос
Здравствуйте.
Мне на сайт понадобилось добавить новый bb тег audio5 для воспроизведения видео с youtube в аудио плеере. За основу взял тег media. Всё сделал, тег в панели выводится, вставляется и работает. Но при редактировании новости он заменяется на media. DLE 10.5
кусок кода из parse.class.php
кусок кода из bbcode.js
Прилагаю файлы целиком
parse.class.php
bbcodes.js
Мне на сайт понадобилось добавить новый bb тег audio5 для воспроизведения видео с youtube в аудио плеере. За основу взял тег media. Всё сделал, тег в панели выводится, вставляется и работает. Но при редактировании новости он заменяется на media. DLE 10.5
кусок кода из parse.class.php
function build_audio5( $matches=array() ) {
global $config;
$url = $matches[1];
if (!count($this->video_config)) {
include (ENGINE_DIR . '/data/videoconfig.php');
$this->video_config = $video_config;
}
$get_size = explode( ",", trim( $url ) );
$sizes = array();
if (count($get_size) == 2) {
$url = $get_size[1];
$sizes = explode( "x", trim( $get_size[0] ) );
$width = intval($sizes[0]) > 0 ? intval($sizes[0]) : $this->video_config['width'];
$height = intval($sizes[1]) > 0 ? intval($sizes[1]) : $this->video_config['height'];
if (substr ( $sizes[0], - 1, 1 ) == '%') $width = $width."%";
if (substr ( $sizes[1], - 1, 1 ) == '%') $height = $height."%";
} else {
$width = $this->video_config['width'];
$height = $this->video_config['height'];
}
$url = $this->clear_url( urldecode( $url ) );
$url = str_replace("&","&", $url );
$url = str_replace("&","&", $url );
if( $url == "" ) return;
if ( count($get_size) == 2 ) $decode_url = $width."x".$height.",".$url;
else $decode_url = $url;
$source = @parse_url ( $url );
$source['host'] = str_replace( "www.", "", strtolower($source['host']) );
if ($source['host'] != "youtube.com" AND $source['host'] != "youtu.be" AND $source['host'] != "vimeo.com" AND $source['host'] != "my.mail.ru") return "[audio5=".$url."]";
if ($source['host'] == "youtube.com") {
$a = explode('&', $source['query']);
$i = 0;
while ($i < count($a)) {
$b = explode('=', $a[$i]);
if ($b[0] == "v") $video_link = htmlspecialchars($b[1], ENT_QUOTES, $config['charset']);
$i++;
}
}
if ($source['host'] == "youtu.be") {
$video_link = str_replace( "/", "", $source['path'] );
$video_link = htmlspecialchars($video_link, ENT_QUOTES, $config['charset']);
}
if ($source['host'] == "youtube.com" OR $source['host'] == "youtu.be") {
if ( $this->video_config['tube_dle'] ) {
if ( count($get_size) == 2 ) $decode_url = $width."x".$height.",{$source['scheme']}://www.youtube.com/watch?v=".$video_link;
else $decode_url = "{$source['scheme']}://www.youtube.com/watch?v=".$video_link;
if( $this->video_config['flv_watermark'] ) $watermark = "&showWatermark=true&watermarkPosition={$this->video_config['flv_watermark_pos']}&watermarkMargin=0&watermarkAlpha={$this->video_config['flv_watermark_al']}&watermarkImageUrl={THEME}/dleimages/flv_watermark.png";
else $watermark = "&showWatermark=false";
$preview = "&showPreviewImage=true&getYouTubeVideoInfo=true";
if ( $this->video_config['play'] ) {
$preview = "&showPreviewImage=false&autoPlays=true";
}
$this->video_config['buffer'] = intval($this->video_config['buffer']);
if ( $this->video_config['autohide'] ) $autohide = "&autoHideNav=true&autoHideNavTime=3";
else $autohide = "&autoHideNav=false";
$id_player = md5( microtime() );
if( $this->video_config['use_html5'] ) {
return "<!--dle_audio_begin:{$decode_url}--><audio width=\"{$width}\" controls=\"control\" preload=\"none\" src=\"//www.youtube.com/watch?v={$video_link}\" type=\"audio/youtube\"></audio><!--dle_audio_end-->";
} else {
return "<!--dle_audio_begin:{$decode_url}--><audio width=\"{$width}\" controls=\"control\" preload=\"none\" src=\"//www.youtube.com/watch?v={$video_link}\" type=\"audio/youtube\"></audio><!--dle_audio_end-->";
}
} else return '<!--dle_audio_begin:'.$decode_url.'--><audio width="'.$width.'" src="http://www.youtube.com/watch?v='.$video_link.'" type="audio/youtube"></audio><!--dle_audio_end-->';
} elseif ($source['host'] == "vimeo.com") {
if (substr ( $source['path'], - 1, 1 ) == '/') $source['path'] = substr ( $source['path'], 0, - 1 );
$a = explode('/', $source['path']);
$a = end($a);
$video_link = intval( $a );
if ( count($get_size) == 2 ) $decode_url = $width."x".$height.",".$url;
else $decode_url = $url;
return '<!--dle_audio_begin:'.$decode_url.'--><iframe width="'.$width.'" height="'.$height.'" src="//player.vimeo.com/video/'.$video_link.'" frameborder="0" allowfullscreen></iframe><!--dle_audio_end-->';
} elseif ($source['host'] == "my.mail.ru") {
$video_link = $source['path'];
if ( count($get_size) == 2 ) $decode_url = $width."x".$height.",".$url;
else $decode_url = $url;
return '<!--dle_audio_begin:'.$decode_url.'--><iframe src="//videoapi.my.mail.ru/videos/embed'.$video_link.'" width="'.$width.'" height="'.$height.'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe><!--dle_audio_end-->';
}
}
кусок кода из bbcode.js
function tag_audio5(){var a=get_sel(eval("fombj."+selField));a||(a="http://");DLEprompt(text_enter_url,a,dle_prompt,function(a){doInsert("[audio5="+a+"]","",!1);ie_range_cache=null})}
Прилагаю файлы целиком
parse.class.php
bbcodes.js