Привет! Давненько я не писал уже никаких полезных
На данный момент очень популярны сайты с фильмами онлайн на которых используется видеоплеер от сайта Вконтакте. Для встраивания видео там используется фрейм (iframe). При добавлении айфрейм кода в новости на дле сайтах, парсер DataLife Engine съедает тот код и на выходе мы ничего не получаем. Это сделано в целях безопасности.
Однако фрейм код от вк не несёт ничего вредоносного, поэтому мы будем использовать специальный хак, который будет обрабатывать добавляемый код и превращать его в нужный нам вид.
Если вам лень самим делать сайты, то советую прибегнуть вк помощи специальных студий работающих в этом направлении. В настоящее время
Используемый мною хак добавления видео с социальной сети Вконтакте является лучшим решением этой проблемы. В нём используется jquery, что добавляет множество преимуществ. Вам нужно будет только скопировать код видео и вставить его в новость, а остальное за вас сделает хак.
Инструкция по установке хака (Работает на DLE 9.4-9.5!):
- Открыть /engine/classes/parse.class.php
найти$source = preg_replace( «#\[media=([^\]]+)\]#ies», «\$this->build_media(‘\\1′)», $source );ниже добавляем
$source = preg_replace( «#\[vk=([^\]]+)\]#ies», «\$this->build_vk(‘\\1′)», $source );найти
$txt = preg_replace( «#<!—dle_youtube_begin:(.+?)—>(.+?)<!—dle_youtube_end—>#is», ‘[media=\\1]‘, $txt );ниже добавить
$txt = preg_replace( «#<!—dle_vk_begin:(.+?)—>(.+?)<!—dle_vk_end—>#is», ‘[vk=\\1]‘, $txt );найти
function build_url($url = array()) {выше добавить
function build_vk($url) {
$url = $this->clear_url( urldecode( $url ) );
$url = str_replace(«&»,»&», $url );
if( $url == «» ) return;
$source = @parse_url ( $url );
$source['host'] = str_replace( «www.», «», strtolower($source['host']) );
if ($source['host'] != «vk.com» AND $source['host'] != «vkontakte.ru») return «[vk=".$url."]«;
return ‘<!—dle_vk_begin:’.$url.’—><center><iframe src=\»‘.$url.’\» width=\»585\» height=\»360\» frameborder=\»0\»></iframe></center><!—dle_vk_end—>’;
}Width и height — это ширина и высота видеоплеера, которую вы можете отрегулировать по желанию.
- Открыть templates/ваш_шаблон/addnews.tpl и в самый верх добавляем
<script language=»javascript» type=»text/javascript»>
/*<![CDATA[*/
document.onmouseup = function(){var t = document.getElementsByTagName('textarea');
var short_scrollTop = document.getElementById('short_story').scrollTop;
var short_scrollLeft = document.getElementById('short_story').scrollLeft;
var full_scrollTop = document.getElementById('full_story').scrollTop;
var full_scrollLeft = document.getElementById('full_story').scrollLeft;for (var i=0; i<t.length; i++) {
t[i].value=t[i].value.replace(/<iframe src=»(.*?)».*?<\/iframe>/gim, ‘[vk=$1]‘);
}document.getElementById(‘short_story’).scrollLeft = short_scrollLeft;
document.getElementById(‘short_story’).scrollTop = short_scrollTop;
document.getElementById(‘full_story’).scrollLeft = full_scrollLeft;
document.getElementById(‘full_story’).scrollTop = full_scrollTop;
}
/*]]>*/</script>
- Открыть /engine/skins/default.skin.php
и перед</body>добавить
<script language=»javascript» type=»text/javascript»>
/*<![CDATA[*/
document.onmouseup = function(){var t = document.getElementsByTagName('textarea');
var short_scrollTop = document.getElementById('short_story').scrollTop;
var short_scrollLeft = document.getElementById('short_story').scrollLeft;
var full_scrollTop = document.getElementById('full_story').scrollTop;
var full_scrollLeft = document.getElementById('full_story').scrollLeft;for (var i=0; i<t.length; i++) {
t[i].value=t[i].value.replace(/<iframe src=»(.*?)».*?<\/iframe>/gim, ‘[vk=$1]‘);
}document.getElementById(‘short_story’).scrollLeft = short_scrollLeft;
document.getElementById(‘short_story’).scrollTop = short_scrollTop;
document.getElementById(‘full_story’).scrollLeft = full_scrollLeft;
document.getElementById(‘full_story’).scrollTop = full_scrollTop;
}
/*]]>*/</script>
На этом всё. Хак должен работать на версиях DLE от 8.3 до 9.2. Благодаря этому хаку, вы отныне можете без проблем добавлять видео с ВКонтакте на свой DLE сайт.
Пользуйтесь.
Источник: terobait48.ru