web-development-kb-pt.site

Modificando um arquivo JS com dados das configurações do plugin

Eu tenho um plugin que, entre outras coisas, tem um arquivo javascript que requer algumas configurações específicas do usuário. Qual seria a melhor maneira de obter essas configurações em javascript a partir dos parâmetros de configuração do plugin?

Em outras palavras, se eu fizer essas configurações parte da página de configurações onde o usuário pode inseri-los, como eu seria melhor conseguir esses valores em javascript? Eu teria que usar algo para anexar algumas tags de script e defini-las via PHP em cada carregamento de página? Definir um cookie seria a melhor maneira de fazer isso?

8
Ryan Elkins

melhor é, você usa as funções de WP para isso, um exemplo para multilanguage:

    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;
    }

use isso no arquivo 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 );

});

Veja também o post da Otto

9
bueltge

Existem algumas maneiras de fazer isso, uma das quais eu fiz antes, a outra que não fiz, mas usei para arquivos de configuração XML.

O primeiro é incluir as variáveis ​​em uma tag de script dentro do cabeçalho ou rodapé WP, antes da tag de script onde você incluir seu arquivo JS, por exemplo:

<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>

A outra alternativa seria incluir o JS dentro de um arquivo PHPque está incluído dentro de uma tag de script.

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

Dentro deste arquivo você incluiria o seu javascript, e como PHP iria analisá-lo, você seria capaz de incluir PHP chamadas de forma semelhante ao acima, simplesmente fazendo eco dos dados/opções que voce requere. Uma coisa a notar é que você pode precisar definir os cabeçalhos para a saída como text/javascript.

Pessoalmente eu prefiro muito mais o primeiro método, e é o que eu uso quando eu tenho configurações alteráveis ​​pelo usuário que afetam arquivos javascript.

1
nobody