it-swarm.dev

Ändern einer JS-Datei mit Daten aus den Plugin-Einstellungen

Ich habe ein Plugin, das unter anderem eine Javascript-Datei enthält, die einige benutzerspezifische Einstellungen erfordert. Was wäre der beste Weg, um diese Einstellungen aus den Einstellungsparametern des Plugins in Javascript umzusetzen?

Mit anderen Worten, wenn ich diese Einstellungen zu einem Teil der Einstellungsseite mache, auf der der Benutzer sie eingeben kann, wie kann ich diese Werte am besten in Javascript umsetzen? Müsste ich etwas verwenden, um einige Skript-Tags anzufügen und sie bei jedem Laden der Seite über PHP festzulegen? Wäre das Setzen eines Cookies eine bessere Möglichkeit, dies zu tun?

8
Ryan Elkins

besser ist, Sie verwenden hierfür die Funktionen von WP, ein Beispiel für Mehrsprachigkeit:

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

benutze dies in der js-Datei:

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

});

Siehe auch die Post von Otto

9
bueltge

Es gibt verschiedene Möglichkeiten, wie Sie dies tun können. Eine habe ich bereits zuvor getan, die andere habe ich noch nicht getan, aber ich habe sie für XML-Konfigurationsdateien verwendet.

Die erste besteht darin, die Variablen in ein Skript-Tag in der Kopf- oder Fußzeile von WP einzufügen, bevor Sie das Skript-Tag einfügen, in das Sie Ihre JS-Datei einfügen. Beispiel:

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

Die andere Alternative wäre, das JS in eine PHP -Datei aufzunehmen, die in einem Skript-Tag enthalten ist.

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

In diese Datei würden Sie Ihr Javascript einfügen, und als PHP es analysieren würde, wären Sie in der Lage, PHP Aufrufe auf ähnliche Weise wie oben aufzunehmen, indem Sie einfach die Daten/Optionen ausgeben, die du benötigst. Beachten Sie, dass Sie möglicherweise die Header für die Ausgabe als text/javascript festlegen müssen.

Persönlich bevorzuge ich die erste Methode, und diese verwende ich, wenn ich vom Benutzer änderbare Einstellungen habe, die sich auf Javascript-Dateien auswirken.

1
nobody