Make WordPress Core

Changeset 4968


Ignore:
Timestamp:
03/06/2007 12:39:46 AM (20 years ago)
Author:
ryan
Message:

JS localization from mdawaffe. fixes #3911

Location:
trunk/wp-includes
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/js/list-manipulation.js

    r4966 r4968  
    1 <?php @require_once('../../wp-config.php'); cache_javascript_headers(); ?>
    2 addLoadEvent(function(){theList=new listMan();});
    3 function deleteSomething(what,id,message,obj){if(!obj)obj=theList;if(!message)message="<?php printf(js_escape(__('Are you sure you want to delete this %s?')),"'+what+'"); ?>";if(confirm(message))return obj.ajaxDelete(what,id);else return false;}
    4 function dimSomething(what,id,dimClass,obj){if(!obj)obj=theList;return obj.ajaxDimmer(what,id,dimClass);}
     1addLoadEvent( function() {
     2        if ( 'undefined' != typeof listManL10n )
     3                Object.extend(listMan.prototype, listManL10n);
     4        theList = new listMan();
     5} );
     6
     7function deleteSomething( what, id, message, obj ) {
     8        if ( !obj )
     9                obj=theList;
     10        if ( !message )
     11                message = obj.delText.replace(/%/g, what);
     12        if( confirm(message) )
     13                return obj.ajaxDelete( what, id );
     14        else return false;
     15}
     16
     17function dimSomething( what, id, dimClass, obj ) {
     18        if ( !obj )
     19                obj = theList;
     20        return obj.ajaxDimmer(what,id,dimClass);
     21}
    522
    623var listMan = Class.create();
     
    1936        dataStore: null,
    2037        formStore: null,
     38
     39        jumpText: 'Jump to new item',
     40        delText: 'Are you sure you want to delete this %s?',
    2141
    2242        initialize: function(theListId) {
     
    5474                                                showLinkMessage += m;
    5575                                        else
    56                                                 showLinkMessage += "<a href='#" + what + '-' + id + "'><?php echo js_escape(__('Jump to new item')); ?>";
     76                                                showLinkMessage += "<a href='#" + what + '-' + id + "'>" + tempObj.jumpText + "</a>";
    5777                                });
    5878                                if ( tempObj.showLink && showLinkMessage )
     
    128148                var id = this.topAdder ? this.theList.firstChild.id : this.theList.lastChild.id;
    129149                if ( this.alt )
    130                         if ( this.theList.childNodes.length % 2 )
     150                        if ( ( this.theList.childNodes.length + this.altOffset ) % 2 )
    131151                                Element.addClassName($(id),this.alt);
    132152                Fat.fade_element(id);
  • trunk/wp-includes/script-loader.php

    r4948 r4968  
    2222                $this->add( 'autosave', '/wp-includes/js/autosave-js.php', array('prototype', 'sack'), '20070116');
    2323                $this->add( 'wp-ajax', '/wp-includes/js/wp-ajax-js.php', array('prototype'), '20070118');
    24                 $this->add( 'listman', '/wp-includes/js/list-manipulation-js.php', array('wp-ajax', 'fat'), '20070118');
     24                $this->add( 'listman', '/wp-includes/js/list-manipulation.js', array('wp-ajax', 'fat'), '20070305');
     25                $this->localize( 'listman', 'listManL10n', array(
     26                        'jumpText' => __('Jump to new item'),
     27                        'delText' => __('Are you sure you want to delete this %s?')
     28                ) );
    2529                $this->add( 'scriptaculous-root', '/wp-includes/js/scriptaculous/wp-scriptaculous.js', array('prototype'), '1.7.0');
    2630                $this->add( 'scriptaculous-builder', '/wp-includes/js/scriptaculous/builder.js', array('scriptaculous-root'), '1.7.0');
     
    8488                                        $src = apply_filters( 'script_loader_src', $src );
    8589                                        echo "<script type='text/javascript' src='$src'></script>\n";
     90                                        $this->print_scripts_l10n( $handle );
    8691                                }
    8792                                $this->printed[] = $handle;
     
    9095        }
    9196
     97        function print_scripts_l10n( $handle ) {
     98                if ( empty($this->scripts[$handle]->l10n_object) || empty($this->scripts[$handle]->l10n) || !is_array($this->scripts[$handle]->l10n) )
     99                        return;
     100
     101                $object_name = $this->scripts[$handle]->l10n_object;
     102
     103                echo "<script type='text/javascript'>\n";
     104                echo "/* <![CDATA[ */\n";
     105                echo "\t$object_name = {\n";
     106                $eol = '';
     107                foreach ( $this->scripts[$handle]->l10n as $var => $val ) {
     108                        echo "$eol\t\t$var: \"" . js_escape( $val ) . '"';
     109                        $eol = ",\n";
     110                }
     111                echo "\n\t}\n";
     112                echo "/* ]]> */\n";
     113                echo "</script>\n";
     114        }
    92115
    93116        /**
     
    141164        }
    142165
     166        /**
     167         * Localizes a script
     168         *
     169         * Localizes only if script has already been added
     170         *
     171         * @param string handle Script name
     172         * @param string object_name Name of JS object to hold l10n info
     173         * @param array l10n Array of JS var name => localized string
     174         * @return bool Successful localization
     175         */
     176        function localize( $handle, $object_name, $l10n ) {
     177                if ( !isset($this->scripts[$handle]) )
     178                        return false;
     179                return $this->scripts[$handle]->localize( $object_name, $l10n );
     180        }
     181
    143182        function remove( $handles ) {
    144183                foreach ( (array) $handles as $handle )
     
    183222        var $deps = array();
    184223        var $ver = false;
    185         var $args = false;
     224        var $l10n_object = '';
     225        var $l10n = array();
    186226
    187227        function _WP_Script() {
     
    192232                        $this->ver = false;
    193233        }
     234
     235        function localize( $object_name, $l10n ) {
     236                if ( !$object_name || !is_array($l10n) )
     237                        return false;
     238                $this->l10n_object = $object_name;
     239                $this->l10n = $l10n;
     240                return true;
     241        }
    194242}
    195243
     
    228276}
    229277
     278/**
     279 * Localizes a script
     280 *
     281 * Localizes only if script has already been added
     282 *
     283 * @see WP_Script::localize()
     284 */
     285function wp_localize_script( $handle, $object_name, $l10n ) {
     286        global $wp_scripts;
     287        if ( !is_a($wp_scripts, 'WP_Scripts') )
     288                return false;
     289
     290        return $wp_scripts->localize( $handle, $object_name, $l10n );
     291}
     292
    230293function wp_deregister_script( $handle ) {
    231294        global $wp_scripts;
Note: See TracChangeset for help on using the changeset viewer.