hakre
  • 0
Гуру

Изменение JS-файла с данными из настроек плагина

  • 0

У меня есть плагин, который, помимо прочего, имеет файл javascript, для которого требуется несколько пользовательских настроек. Каков наилучший способ получить эти настройки в javascript из параметров настроек плагина?

Другими словами, если я сделаю эти настройки частью страницы настроек, где пользователь может их ввести, как мне лучше всего получить эти значения в javascript? Должен ли я использовать что-то, чтобы добавить некоторые теги сценария и установить их через PHP при каждой загрузке страницы? Будет ли установка файла cookie лучшим способом сделать это?

Share
  1. Это действительно отличный вопрос, который я планировал задать. Спасибо, что спросили!

    • 0
  2. лучше использовать для этого функции WP, пример для мультиязычности:

        add_action( 'admin_enqueue_scripts', 'add_scripts' );
        function add_scripts($where) {
            wp_localize_script( 'post2media', 'post2media_strings', $this->localize_vars() );
        }
        function localize_vars() {
    
            $strings = array(
                    'btntext'    => __( 'Link with post', INPSYDE_P2M_TEXTDOMAIN ),
                    'txtallnone' => __( 'Include in gallery:', INPSYDE_P2M_TEXTDOMAIN ),
                    'txtall'     => __( 'All', INPSYDE_P2M_TEXTDOMAIN ),
                    'txtnone'    => __( 'None', INPSYDE_P2M_TEXTDOMAIN ),
                    'ttlcb'      => __( 'Include image in this gallery', INPSYDE_P2M_TEXTDOMAIN )
                );
    
            return $strings;
        }
    

    используйте это в js-файле:

    jQuery(function ($) {
    buttonaddfunc = function() {
        btntext = post2media_strings.btntext;
    
        reg = /\d+/;
        $( '.savesend > .button' ) . each( function() {
            inputname = $( this ) . attr( 'name' );
            number = reg . exec( inputname );
            $( this ) . after( '<input type="submit" value="' + btntext + '" name="link[' + number + ']" class="button">' );
        } );
        $( '.describe-toggle-on' ).unbind( 'click', buttonaddfunc );
    };
    $( '.describe-toggle-on' ).bind( 'click', buttonaddfunc );
    

    });

    Также см. пост от Отто

    • 0
  3. Есть несколько способов сделать это, один из которых я делал раньше, а другой нет, но я использовал его для файлов конфигурации XML.

    Первый заключается в том, чтобы включить переменные в тег script внутри верхнего или нижнего колонтитула WP перед тегом script, в который вы включаете свой JS-файл, например:

    <script type="text/javascript">
        var test = "<?php echo "hello world"; /* the relevant PHP code to echo the data you require */ ?>";
        var slider_type = "<?php echo "nivo"; /* same again */ ?>";
    </script>
    <script type="text/javascript" src="<?php bloginfo("template_url"); ?>/js/your_js_here"></script>
    

    Другой альтернативой может быть включение JS в файл PHP, который включен в тег скрипта.

    <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/javascripts.php"></script>
    

    Внутри этого файла вы должны включить свой javascript, и, поскольку PHP будет анализировать его, вы сможете включать вызовы PHP аналогичным образом, как указано выше, просто повторяя требуемые данные/параметры. Следует отметить, что вам может потребоваться установить заголовки для вывода как файлы text/javascript .

    Лично я предпочитаю первый метод, и именно его я использую, когда у меня есть изменяемые пользователем настройки, влияющие на файлы javascript.

    • 0

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

You must login to add an answer.