bueltge
  • 0
Гуру

Пользовательская высота/ширина для толстого блока в бэкенде WP

  • 0

Я использую толстую коробку в бэкенде WP для предварительного просмотра или другого контента. На собственных страницах в бэкенде мой скрипт работает очень хорошо, и я могу использовать пользовательскую ширину и высоту для толстого блока. ниже моего кода:

            <script type="text/javascript">
            <!--
                var viewportwidth;
                var viewportheight;

                if (typeof window.innerWidth != 'undefined') {
                    viewportwidth = window.innerWidth-80,
                    viewportheight = window.innerHeight-100
                } else if (typeof document.documentElement != 'undefined'
                    && typeof document.documentElement.clientWidth !=
                    'undefined' && document.documentElement.clientWidth != 0)
                {
                    viewportwidth = document.documentElement.clientWidth,
                    viewportheight = document.documentElement.clientHeight
                } else { // older versions of IE
                    viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
                    viewportheight = document.getElementsByTagName('body')[0].clientHeight
                }
                //document.write('<p class="textright">Your viewport width is '+viewportwidth+'x'+viewportheight+'</p>');
                document.write('<a onclick="return false;" href="<?php echo WP_PLUGIN_URL . '/' . FB_ADM_BASEDIR; ?>/inc/index.php?username=<?php echo DB_USER; ?>&?KeepThis=true&amp;TB_iframe=true&amp;height='+viewportheight+'&width='+viewportwidth+'" class="thickbox button"><?php _e( 'Start Adminer', FB_ADM_TEXTDOMAIN ); ?></a>');
                //-->
            </script>

Теперь о моей проблеме и вопросе. Я буду использовать толстую коробку на странице wp-admin/plugins.php и здесь не работает скрипт. WP всегда устанавливает высоту и ширину в соответствии с основными значениями, и это слишком мало для моего запроса.

Возможно, у других читателей есть идея или решение.

Большое спасибо!

Share
  1. plugins.php страница вызывает add_thickbox() функцию, которая ставит в очередь собственный сценарий и стиль толстого ящика WP. Это есть в документации:

    Если необходимо изменить какие-либо настройки, это можно сделать с помощью другого js-файла, похожего на media-upload.js и theme-preview.js. Этот файл должен требовать массива (‘thickbox’), чтобы гарантировать, что он будет загружен после.

    Таким образом, есть разные возможные способы приблизиться к этому:

    1. Поскольку WP предлагает создать и поставить в очередь файл.js, который добавит необходимые вам настройки по умолчанию.
    2. Перерегистрируйте или полностью отключите собственный толстый ящик и замените его собственным кодом.
    • 0
  2. Front End или Backend вы можете установить ширину и высоту толстого ящика, задав GET значение исходного URL.

    код толстого ящика js будет примерно таким:

    tb_show('Demo', '?action=show_demo&type=extended&width=900&height=800');
    

    обратите внимание на параметр width и height . И, конечно же, вам нужно будет сначала поставить в очередь thickbox сценарий и стиль.

    Примечание. Код протестирован и работает на моем внешнем интерфейсе. Это должно работать и на бэкэнде. Если это не работает на бэкэнде, пожалуйста, дайте мне знать. попробую исправить код

    • 0
  3. Решение, которое я нигде не читал в Интернете:

    tb_position — это функция Thickbox, которая делает странные вещи с размером окна. Вы можете легко и просто переопределить его к тому времени, когда его вызовет толстая коробка.

    old_tb_position = tb_position;  
    tb_position = function(){
        $("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px', height: TB_HEIGHT + 'px', marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});    
    };
    
    // Set-up inner size
    tb_show("Window title,"<?= $the_url; ?>&width=600&height=350",      
    tb_position = old_tb_position;
    
    • 0

Оставить ответ

You must login to add an answer.