![[Хаки] Добавление видео ВКонтакте на DLE 9.5 и ниже [Хаки] Добавление видео ВКонтакте на DLE 9.5 и ниже](/uploads/posts/2011-07/partnertraffic.ru_1297181708_vk_video.jpg)
Хак на JQuery для всех версий DLE (в том числе и 9.3-9.5) исправляет невозможность добавить в новость код плеера ВКонтакте, изменения никак не повлияют на безопасность движка DataLife Engine, поскольку все другие IFrame кода будут удалены, автоматически попав под стандартный фильтр системы. В этом варианте не нужно заменять внутренние коды dle, а всего-лишь добавить свой код без дополнительных файлов.
Инструкция для DLE 9.3-9.5:
1. Открыть файл /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_media_begin:(.+?)-->(.+?)<!--dle_media_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 (высота плеера) заменяем на удобные для Вас, либо оставляем стандартные.
2. Открыть файл /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>3. Открыть файл /engine/skins/default.skin.php и после
<body> (возможно 2 раза) вставить:<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>Теперь все должно работать! Просто вставляйте в новость весь код iframe!
Удачи!




.