Вопрос-Ответ по RotorCMS 6

Форум / Обзор движков / RotorCMS / Печать / RSS-лента
0
151. ®_GodZiIIa_€ (05.02.17 / 16:14)
Последний из могикан
Vantuz, это поможет ?
Обработка тегов в ББкоде :
	$source = preg_replace_callback( "#\[video\s*=\s*(\S.+?)\s*\]#i", array( &$this, 'build_video'), $source );
$source = preg_replace_callback( "#\[audio\s*=\s*(\S.+?)\s*\]#i", array( &$this, 'build_audio'), $source );
$source = preg_replace_callback( "#\[flash=([^\]]+)\](.+?)\[/flash\]#i", array( &$this, 'build_flash'), $source );
$source = preg_replace_callback( "#\[media=([^\]]+)\]#i", array( &$this, 'build_media'), $source );
// Дополнительная обработка

$txt = preg_replace( "#<!--dle_youtube_begin:(.+?)-->(.+?)<!--dle_youtube_end-->#is", '[media=\\1]', $txt );
$txt = preg_replace( "#<!--dle_media_begin:(.+?)-->(.+?)<!--dle_media_end-->#is", '[media=\\1]', $txt );
$txt = preg_replace_callback( "#<!--dle_flash_begin:(.+?)-->(.+?)<!--dle_flash_end-->#is", array( &$this, 'decode_flash'), $txt );


Добавлено через 02:45 сек.
Обработка кода :
if ($source['host'] != "youtube.com" AND $source['host'] != "youtu.be" AND $source['host'] != "vimeo.com") return "[media=".$url."]";
if ($source['host'] == "youtube.com" OR $source['host'] == "youtu.be") {
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++;
}}
0
152. ®_GodZiIIa_€ (05.02.17 / 16:18)
Последний из могикан
Продолжение

if ($source['host'] == "youtu.be") {
$video_link = str_replace( "/", "", $source['path'] );
$video_link = htmlspecialchars($video_link, ENT_QUOTES, $config['charset']);
}
if ( $this->video_config['tube_dle'] ) {
if( $source['scheme'] ) $source['scheme'] .= ":";
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 (substr( $width, - 1, 1 ) != '%') $width = $width."px";
$width = "style=\"width:100%;max-width:{$width};\"";
return "<!--dle_media_begin:{$decode_url}--><div class=\"dlevideoplayer\" {$width}><ul data-theme=\"{$this->video_config['theme']}\" data-preload=\"metadata\"><li data-title=\"\" data-type=\"youtube\" data-url=\"https://www.youtube.com/watch?v={$video_link}\"></li></ul></div><!--dle_media_end-->";
} else return '<!--dle_media_begin:'.$decode_url.'--><iframe width="'.$width.'" height="'.$height.'" src="https://www.youtube.com/embed/'.$video_link.'?rel='.intval($this->video_config['tube_related']).'&wmode=transparent" frameborder="0" allowfullscreen></iframe><!--dle_media_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_media_begin:'.$decode_url.'--><iframe width="'.$width.'" height="'.$height.'" src="//player.vimeo.com/video/'.$video_link.'" frameborder="0" allowfullscreen></iframe><!--dle_media_end-->';
}}

Собственно код из dle, подробнее его можно просмотреть в файле /egine/classes/parse.class.php
Там не только ютуб но и другое можно, к тому же с подстановкой своего плеера.
Смайлы / Теги / Правила / Топ тем / Поиск