Видео в блогах. Нужна помощь!

#1 24 июля 2012 в 23:26
Не нашел тут решения. Посему еще раз задаю вопрос — как научить блоги (и форум тоже) понимать видео не только с Ютуба? Никакие другие коды не принимает. Ни Вконтакте, ни Vimeo. Либо просто публикуется сам код, либо пустое место. Как пофиксить???
#2 25 июля 2012 в 02:38
А ссылки дайте попробовать
#3 25 июля 2012 в 02:47
Фух. Разобрался. Нужно сделать следующее:
В файле /core/cms.php меняем
  1. public static function badTagClear($string){
  2.  
  3. $bad_tags = array (
  4. "'<script[^>]*?>.*?</script>'si",
  5. "'<style[^>]*?>.*?</style>'si",
  6. "'<meta[^>]*?>'si",
  7. '/<iframe.*?src=(?!"http:\/\/www\.youtube\.com\/embed\/|"http:\/\/vkontake\.ru\/video_ext\.php\?).*?>.*?<\/iframe>/i',
  8. '/<iframe.*>.+<\/iframe>/i'
  9. );
  10.  
  11. $string = preg_replace($bad_tags, '', $string);
  12.  
  13. return $string;
на вот это:

  1. public static function badTagClear($string){
  2.  
  3. $bad_tags = array (
  4. "'<script[^>]*?>.*?</script>'si",
  5. "'<style[^>]*?>.*?</style>'si",
  6. "'<meta[^>]*?>'si",
  7. '/<iframe.*?src=(?!"http:\/\/www\.youtube\.com\/embed\/|"http:\/\/player\.vimeo\.com\/video\/|"http:\/\/vk\.com\/video_ext\.php\?).*?>.*?<\/iframe>/i',
  8. '/<iframe.*>.+<\/iframe>/i'
  9. );
  10.  
  11. $string = preg_replace($bad_tags, '', $string);
  12.  
  13. return $string;
А в файле /includes/bbcode/bbcode.lib.php

меняем

  1. function video_2html($elem) {
  2. $str = '<div class="bb_tag_video">';
  3. foreach ($elem['val'] as $item) {
  4.  
  5. if ('item'==$item['type']) { continue; }
  6.  
  7. $iframe_regexp = '/<iframe.*?src=(?!"http:\/\/www\.youtube\.com\/embed\/|"http:\/\/vkontakte\.ru\/video_ext\.php\?).*?><\/iframe>/i';
  8. $iframe_regexp2 = '/<iframe.*>.+<\/iframe>/i';
  9. $item['str'] = preg_replace($iframe_regexp, '', $item['str']);
  10. $item['str'] = preg_replace($iframe_regexp2, '', $item['str']);
  11.  
  12. $str .= strip_tags($item['str'], '<iframe><object><param><embed>');
  13.  
  14. }
  15. $str .= '</div>';
  16. return $str;
  17. }
на это

  1. function video_2html($elem) {
  2. $str = '<div class="bb_tag_video">';
  3. foreach ($elem['val'] as $item) {
  4.  
  5. if ('item'==$item['type']) { continue; }
  6.  
  7. $iframe_regexp = '/<iframe.*?src=(?!"http:\/\/www\.youtube\.com\/embed\/|"http:\/\/player\.vimeo\.com\/video\/|"http:\/\/vk\.com\/video_ext\.php\?).*?><\/iframe>/i';
  8. $iframe_regexp2 = '/<iframe.*>.+<\/iframe>/i';
  9. $item['str'] = preg_replace($iframe_regexp, '', $item['str']);
  10. $item['str'] = preg_replace($iframe_regexp2, '', $item['str']);
  11.  
  12. $str .= strip_tags($item['str'], '<iframe><object><param><embed>');
  13.  
  14. }
  15. $str .= '</div>';
  16. return $str;
  17. }
Проблема была в том, что Vimeo там было не прописано, а у Вконтакта поменялась ссылка на vk.com Собственно и все теперь работает )
#4 25 июля 2012 в 02:56
Хотя, конечно, было бы неплохо, если бы сделали так, чтобы пользователю надо было вставлять не код видео, а только ссылку. Не все же знают, как это делать. Зато на многих соцсетях это реализовано. Просто вставляешь ссылку на видео, а оно добавляется автоматом. Будет такое в iCMS v.2?
#5 4 декабря 2012 в 18:42
Версия 1.10
Второй день перебираю коды и понять не могу почему не работает

Есть желание чтобы на сайте воиспроизводился этот код

  1. <iframe width="440" height="365" scrolling="no" src="http://cmsinstant.ru/components/video/ajax/get_movie_code.php?id=110&width=425&height=349" frameborder="0" allowfullscreen></iframe>
В связи с этим в файлы /core/cms.php и /includes/bbcode/bbcode.lib.php добавил этот код

  1. |"http:\/\/cmsinstant\.ru\/components\/video\/ajax\/get_movie_code\.php\?|
Полностью код выглядит так;

  1. <iframe.*?src=(?!"http:\/\/www\.youtube\.com\/embed\/|"http:\/\/player\.vimeo\.com\/video\/|"http:\/\/cmsinstant\.ru\/components\/video\/ajax\/get_movie_code\.php\?|"http:\/\/vk\.com\/video_ext\.php\?|"'.$my_domen_regexp.').*?>.*?<\/iframe>
Суть в том что воспроизводит видео даже с "вторгнутого сайта vimeo.com/
а с cmsinstant.ru/video/ ни в какую не хочет.
ПОЧЕМУ ТАК?????????
#6 4 декабря 2012 в 19:27
В ядре есть строчка
  1. self::$jevix->cfgAllowTagParams('iframe', array('width' => '#int', 'frameborder' => '#int', 'allowfullscreen' => '#int', 'height' => '#int', 'src' => array('#domain'=>array('youtube.com','vimeo.com','vk.com', self::getHost()))));
Добавьте нужный домен в список по аналогии.
#7 4 декабря 2012 в 20:14
Помогло!!! Спасибо огромное!!!
#8 26 марта 2013 в 16:26
Как rutube.ru добавить?
#9 2 февраля 2014 в 01:57


Как rutube.ru добавить?

Димарио

В файлах /core/cms.php и /includes/bbcode/bbcode.lib.php замените
  1. '/<iframe.*?src=(?!"http:\/\/www\.youtube\.com\/embed\/|"http:\/\/player\.vimeo\.com\/video\/|"http:\/\/vk\.com\/video_ext\.php\?).*?>.*?<\/iframe>/i',
на
  1. '/<iframe.*?src=(?!"http:\/\/www\.youtube\.com\/embed\/|"http:\/\/rutube\.ru\/video\/embed\/|"http:\/\/player\.vimeo\.com\/video\/|"http:\/\/vk\.com\/video_ext\.php\?).*?>.*?<\/iframe>/i',
… и все будет работать: Youtube, Rutube, Vimeo и VK.
Единственное, в полученный код с любого из этих видеохостингов (кроме VK), при вставке приходится вручную прописывать http:, т.к. код вида <iframe src="//rutube… не работает, а работает только вот так: <iframe src="http://rutube...
Данную проблему пока не решил. Если кто знает, подскажите решение (версия 1.9).
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.