Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » В помощь вебмастеру » WordPress

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Открыть новую тему     Написать ответ в эту тему

TheBat



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WordPress
система публикаций



Последняя версия: 4.8.2 19.09.2017    
Последний RC: 4.8 Release Candidate 2 01.06.2017    
Последняя бета-версия: 4.9 Beta 3 19.10.2017

Документация на русском.
Правильные плагины для WP
10 полезных коротких кодов для WordPress
Стили (темы) для WP - бесплатные:
Правильные темы для WP. Взятые с других источников могут быть небезопасные
Русские форумы:
Официальный русский форум
mywordpress.ru  
maxsite.org  
Блоги о WP - описание, русифицированные версии популярных плагинов:
lecactus  
sonika  
Блог Ю.Б.  
my-wordpress.ru  
wp-kama.ru - на сайте есть вольный перевод из кодекса функций ВП и тем.
обзор "Помощи вебмастеру" » все скрипты » новостные скрипты/скрипты блогов » WordPress

Всего записей: 802 | Зарегистр. 17-12-2002 | Отправлено: 18:16 02-05-2005 | Исправлено: fakintosh, 17:42 19-10-2017
Mavrikii

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gueest

Цитата:
Плагин называется power-builder

я потому и спрашиваю, что тут его нет
https://wordpress.org/plugins/search/power-builder/
но есть у templatemonster, который, возможно, идет как часть шаблонов от них.

Всего записей: 4942 | Зарегистр. 20-09-2014 | Отправлено: 21:37 14-10-2017
Gueest



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Осталось выяснить, где в коде формируется вывод видео....

Всего записей: 519 | Зарегистр. 25-04-2011 | Отправлено: 22:07 14-10-2017
Mavrikii

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gueest

Цитата:
Осталось выяснить, где в коде формируется вывод видео

в js коде просто идет замена ссылки на youtube на iframe с туб ссылкой вида youtube.com/embed
 

Всего записей: 4942 | Зарегистр. 20-09-2014 | Отправлено: 22:17 14-10-2017
Gueest



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
в js коде

в каком именно? там их куча

Всего записей: 519 | Зарегистр. 25-04-2011 | Отправлено: 22:21 14-10-2017
Mavrikii

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
в каком именно? там их куча

в двух, один от tinymce редактора (может быть только для отображения в нем), второй jquery.magnific-popup.js
посмотрите в коде конечной страницы, как изначально выводится туб - ссылкой или уже преобразованный iframe. тогда и поймете - делает это php код или js

Всего записей: 4942 | Зарегистр. 20-09-2014 | Отправлено: 22:24 14-10-2017 | Исправлено: Mavrikii, 22:24 14-10-2017
Gueest



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большое спасибо

Всего записей: 519 | Зарегистр. 25-04-2011 | Отправлено: 15:42 15-10-2017
Mavrikii

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gueest

Цитата:
Большое спасибо

ну так решили проблему или нет? решение лучше показывать, вдруг кому еще пригодится

Всего записей: 4942 | Зарегистр. 20-09-2014 | Отправлено: 21:35 15-10-2017
Gueest



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго  времени суток!
Да, проблема решена.
 
Все оказалось достаточно просто, вывод реализован на стороне сервера и выдается подготовленными, стандартными html-кусками кода.
Формирование iframe для модулей видео, находится в файле class-builder-module-video.php (путь от корня: wp-content\plugins\power-builder\framework\includes\modules\).  
Внутри класса имеется метод shortcode_callback, и на скрине можно увидеть мою вставку кода:
 
...скрин https://prntscr.com/gzyv2r
 
и сам код:

Код:
<?php  
if ( is_type_link_youtube($src) ) {
    $video_src = '<div class="container_yt_player" style="position: relative;"><img class="container_img" width="80" style="visibility: hidden;position: absolute; z-index: 5;padding-top: -40px;opacity: 0.6;" src="' . plugins_url('/power-builder/framework/images/') .'blackyt.png" /><div class="vid" style="text-align: center; position: relative;padding-bottom: 50%; padding-top: 40px;
height: 0;overflow: hidden;" data-url="' . get_yt_video_id($src) . '" data-num="1"><img style="margin-top: -40px;transform: scale(1.4);" src="//img.youtube.com/vi/' . get_yt_video_id($src) . '/hqdefault.jpg"></div></div>';
}
?>
 
Вспомогательные функции, удобно разместились в глобальном файле functions.php (путь от корня: wp-content\plugins\power-builder\framework\).  
и сам код:
 
<?php  
//------  
// Type provider Youtube/ Return Boolean: true|false
if ( ! function_exists( 'is_type_link_youtube' ) ) {
function is_type_link_youtube( $url ) {
    $links = array("http://www.youtube.com", "https://www.youtube.com", "https://youtu.be", "http://youtu.be");
    for($j=0; $j<count($links); $j++) {
        if(strpos($url, $links[$j]) !== false) {
            return true;
        }
    }
    return false;
}
}
// Return puth folder: plugins
if ( ! function_exists( 'get_puth_plugin' ) ) {
function get_puth_plugin() {    
    return plugin_dir_url( __FILE__ );
}
}
 
// Return idvideo yt from url Youtube
if ( ! function_exists( 'get_yt_video_id' ) ) {
function get_yt_video_id( $url ) {
    $urls = array("v=", "/youtu.be/");
    $idv = "";
    $index = false;
    if( strpos($url, $urls[0]) !== false ) {
        $index = strpos($url, $urls[0]) + strlen($urls[0]);                                                            
    } elseif ( strpos($url, $urls[1]) !== false ) {
        $index = strpos($url, $urls[1]) +strlen($urls[1]);        
    }
    if($index !== false) {
        $f = false;
        for($j=$index; $j<strlen($url); $j++) {
            if($url[$j] == '&' || $url[$j] == '?') {  
                $idv = substr($url, $index, $j - $index);
                return $idv;
            }
        }    
        $idv = substr($url, $index);
    }                    
    return $idv;
}
}
function my_library_enqueue_scripts(){
    //if (is_admin()):
        wp_register_script(
            'lib-player-yt', //идентификатор
            plugins_url('/power-builder/framework/library-player.js'), //источник
            array(), //зависимости
            '1.0.2.4', //версия
            true //выполняем в нижнем колонтитуле
        );
        wp_enqueue_script('lib-player-yt');
    //endif; //!is_admin
}
 
// System Hook
add_action('wp_print_scripts', 'my_library_enqueue_scripts');
//------
?>
 
Javascript код, вынесен в отдельный файл и соответствующим образом подключен в стиле WP
и сам код:
<script>
/**
 * the script manager load iframe player yt when click on button Play
*/
(function() {
    document.addEventListener("DOMContentLoaded", function() {
        var css1 = document.createElement("style");
        css1.innerHTML = ".container_yt_player:hover {cursor: pointer;}";
        document.getElementsByTagName("head")[0].appendChild(css1);
        var containers_player = document.querySelectorAll(".container_yt_player");
        var containers_img = document.querySelectorAll(".container_yt_player img");
        for(let j=0; j<containers_player.length; j++) {
            containers_player[j].addEventListener("mouseover", function(event) {
                this.children[0].src = "/wp-content/plugins/power-builder/framework/images/redyt.png";
                this.children[0].style.opacity = "1";
            }, false);
            containers_player[j].addEventListener("mouseout", function(event) {
                this.children[0].src = "/wp-content/plugins/power-builder/framework/images/blackyt.png";
                this.children[0].style.opacity = "0.5";
 
            }, false);
            containers_player[j].addEventListener("click", function(event) {
                this.children[0].style.display = "none";
                this.children[1].innerHTML = "<iframe width='"+this.parentNode.offsetWidth+"' height='"+this.parentNode.offsetHeight+"' style='position: absolute;top: 0;left: 0; width:100%;height:100%;' src='https://www.youtube.com/embed/"+this.children[1].dataset.url+"?autoplay=1&showinfo=0&rel=0' frameborder='0' allowfullscreen></iframe>";
            }, false);
        }
        function res(){
            // reposition picture buttons when resize window
            for(var j=0; j<containers_img.length; j++) {
                var picture = containers_img[j];
                picture.style.top = ( (containers_img[j].parentNode.offsetHeight - picture.offsetHeight) / 2 )+ "px";
                picture.style.left = ( (containers_img[j].parentNode.offsetWidth - picture.offsetWidth) / 2 )+ "px";
                picture.style.visibility = "visible";
            }
        }  
        res();
        window.addEventListener("resize", res, false);
        
    }, false);
})();
</script>

Всего записей: 519 | Зарегистр. 25-04-2011 | Отправлено: 00:27 21-10-2017 | Исправлено: Gueest, 00:29 21-10-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Компьютерный форум Ru.Board » Интернет » В помощь вебмастеру » WordPress

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru