first commit
This commit is contained in:
+6315
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+1015
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,148 @@
|
||||
|
||||
( function( api, $, _ ) {
|
||||
wp.customize.bind( 'preview-ready', function() {
|
||||
});// 'preview-ready'
|
||||
|
||||
|
||||
|
||||
|
||||
if ( serverPreviewParams && ! serverPreviewParams.preview_ready_event_exists ) {
|
||||
try { api.czr_preview = new api.CZR_preview(); } catch( _er_ ) {
|
||||
console.log( "new api.CZR_preview() => error => ", _er_ );
|
||||
}
|
||||
}
|
||||
else {
|
||||
api.bind( 'preview-ready', function(){
|
||||
api.preview.bind( 'active', function() {
|
||||
try { api.czr_preview = new api.CZR_preview(); } catch( _er_ ) {
|
||||
console.log( "new api.CZR_preview() => error => ", _er_ );
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
var czrPreviewConstructor = {
|
||||
setting_cbs : {},
|
||||
subsetting_cbs : {},//nested sub settings
|
||||
input_cbs : {},
|
||||
initialize: function() {
|
||||
var self = this;
|
||||
this.pre_setting_cbs = _.extend( self.pre_setting_cbs, self.getPreSettingCbs() );
|
||||
this.setting_cbs = _.extend( self.setting_cbs, self.getSettingCbs() );
|
||||
this.subsetting_cbs = _.extend( self.subsetting_cbs, self.getSubSettingCbs() );
|
||||
this.input_cbs = _.extend( self.input_cbs, self.getInputCbs() );
|
||||
|
||||
this.syncData();
|
||||
|
||||
this.addCbs();
|
||||
$( 'body' ).removeClass( 'wp-customizer-unloading' );
|
||||
},
|
||||
getPreSettingCbs : function() { return {}; },
|
||||
getSettingCbs : function() { return {}; },
|
||||
getSubSettingCbs : function() { return {}; },
|
||||
getInputCbs : function() { return {}; },
|
||||
syncData : function() {
|
||||
api.preview.send( 'czr-query-data-ready', api.settings.czr_wpQueryInfos );
|
||||
api.preview.send(
|
||||
'czr-partial-refresh-data',
|
||||
typeof( undefined ) === typeof( _customizePartialRefreshExports ) ? {} : _customizePartialRefreshExports.partials
|
||||
);
|
||||
},
|
||||
|
||||
addCbs : function() {
|
||||
var self = this;
|
||||
api.preview.bind( 'pre_setting', function( args ) {
|
||||
args = args || {};
|
||||
var _setId = args.set_id;
|
||||
if ( ! api.has( self._build_setId( _setId ) ) )
|
||||
return;
|
||||
var _opt_name = self._get_option_name( args.set_id );
|
||||
if ( ! _.has( self.pre_setting_cbs, _opt_name ) || ! _.isFunction( self.pre_setting_cbs[ _opt_name ] ) )
|
||||
return;
|
||||
self.pre_setting_cbs[ _opt_name ]( args );
|
||||
});
|
||||
_.each( self.setting_cbs, function( _cb, _setId ) {
|
||||
if ( ! api.has( self._build_setId( _setId ) ) )
|
||||
return;
|
||||
if ( _.isFunction( self.setting_cbs[ _setId ] ) ) {
|
||||
api( self._build_setId(_setId) ).bind( self.setting_cbs[ _setId ] );
|
||||
}
|
||||
} );
|
||||
api.preview.bind( 'sub_setting', function( args ) {
|
||||
var _opt_name = self._get_option_name( args.set_id );
|
||||
if ( ! _.has(self.subsetting_cbs, _opt_name) )
|
||||
return;
|
||||
if ( ! _.has( self.subsetting_cbs[ _opt_name ], args.changed_prop ) )
|
||||
return;
|
||||
self.subsetting_cbs[ _opt_name ][ args.changed_prop ]( args );
|
||||
});
|
||||
api.preview.bind( 'czr_input', function( args ) {
|
||||
var _defaults = {
|
||||
set_id : '',
|
||||
module_id : '',
|
||||
item_id : '',
|
||||
input_id : '',
|
||||
value : null
|
||||
};
|
||||
args = _.extend ( _defaults, args );
|
||||
var _opt_name = self._get_option_name( args.set_id );
|
||||
if ( ! _.has( self.input_cbs, _opt_name ) )
|
||||
return;
|
||||
if ( ! _.has( self.input_cbs[ _opt_name ], args.input_id ) )
|
||||
return;
|
||||
self.input_cbs[ _opt_name ][ args.input_id ]( args );
|
||||
});
|
||||
api.selectiveRefresh.bind( 'partial-content-rendered', function( params ) {
|
||||
if ( ! _.has( params, 'partial' ) || ! _.has( params.partial, 'id' ) )
|
||||
return;
|
||||
var _shortOptName = params.partial.id;
|
||||
api.preview.send( 'czr-partial-refresh-done', { set_id : self._build_setId( params.partial.id ) } );
|
||||
});
|
||||
},
|
||||
_build_setId : function ( name ) {
|
||||
var self = this;
|
||||
if ( _.isEmpty( window.themeServerPreviewParams ) )
|
||||
return name;
|
||||
if ( ! _.isArray( themeServerPreviewParams.wpBuiltinSettings ) || _.contains( themeServerPreviewParams.wpBuiltinSettings, name ) )
|
||||
return name;
|
||||
|
||||
var themeOptionsPrefix = themeServerPreviewParams.themeOptionsPrefix;
|
||||
if ( _.isEmpty( themeOptionsPrefix ) )
|
||||
return name;
|
||||
|
||||
return -1 == name.indexOf( themeOptionsPrefix ) ? [ themeOptionsPrefix + '[' , name , ']' ].join('') : name;
|
||||
},
|
||||
|
||||
_get_option_name : function( name ) {
|
||||
if ( _.isEmpty( window.themeServerPreviewParams ) )
|
||||
return name;
|
||||
|
||||
var themeOptionsPrefix = themeServerPreviewParams.themeOptionsPrefix;
|
||||
if ( _.isEmpty( themeOptionsPrefix ) )
|
||||
return name;
|
||||
|
||||
var self = this;
|
||||
return name.replace(/\[|\]/g, '').replace( themeOptionsPrefix, '');
|
||||
},
|
||||
_is_external : function( _href ) {
|
||||
if ( 'string' !== typeof(_href) )
|
||||
return false;
|
||||
|
||||
var _thisHref = _href.trim(),
|
||||
_main_domain = (location.host).split('.').slice(-2).join('.'),
|
||||
_reg = new RegExp( _main_domain );
|
||||
|
||||
if ( _thisHref !== '' && _thisHref != '#' && _isValidURL( _thisHref ) )
|
||||
return !_reg.test( _thisHref );
|
||||
return false;
|
||||
},
|
||||
_isValidURL : function(_url){
|
||||
var _pattern = /(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
|
||||
return _pattern.test( _url );
|
||||
}
|
||||
};//czrPreviewConstructor
|
||||
|
||||
api.CZR_preview = api.Class.extend( czrPreviewConstructor );
|
||||
|
||||
|
||||
} )( wp.customize, jQuery, _ );
|
||||
+1
@@ -0,0 +1 @@
|
||||
!function(r,t,s){if(wp.customize.bind("preview-ready",function(){}),serverPreviewParams&&!serverPreviewParams.preview_ready_event_exists)try{r.czr_preview=new r.CZR_preview}catch(e){console.log("new api.CZR_preview() => error => ",e)}else r.bind("preview-ready",function(){r.preview.bind("active",function(){try{r.czr_preview=new r.CZR_preview}catch(e){console.log("new api.CZR_preview() => error => ",e)}})});var e={setting_cbs:{},subsetting_cbs:{},input_cbs:{},initialize:function(){var e=this;this.pre_setting_cbs=s.extend(e.pre_setting_cbs,e.getPreSettingCbs()),this.setting_cbs=s.extend(e.setting_cbs,e.getSettingCbs()),this.subsetting_cbs=s.extend(e.subsetting_cbs,e.getSubSettingCbs()),this.input_cbs=s.extend(e.input_cbs,e.getInputCbs()),this.syncData(),this.addCbs(),t("body").removeClass("wp-customizer-unloading")},getPreSettingCbs:function(){return{}},getSettingCbs:function(){return{}},getSubSettingCbs:function(){return{}},getInputCbs:function(){return{}},syncData:function(){r.preview.send("czr-query-data-ready",r.settings.czr_wpQueryInfos),r.preview.send("czr-partial-refresh-data","undefined"==typeof _customizePartialRefreshExports?{}:_customizePartialRefreshExports.partials)},addCbs:function(){var n=this;r.preview.bind("pre_setting",function(e){var t=(e=e||{}).set_id;if(r.has(n._build_setId(t))){var i=n._get_option_name(e.set_id);s.has(n.pre_setting_cbs,i)&&s.isFunction(n.pre_setting_cbs[i])&&n.pre_setting_cbs[i](e)}}),s.each(n.setting_cbs,function(e,t){r.has(n._build_setId(t))&&s.isFunction(n.setting_cbs[t])&&r(n._build_setId(t)).bind(n.setting_cbs[t])}),r.preview.bind("sub_setting",function(e){var t=n._get_option_name(e.set_id);s.has(n.subsetting_cbs,t)&&s.has(n.subsetting_cbs[t],e.changed_prop)&&n.subsetting_cbs[t][e.changed_prop](e)}),r.preview.bind("czr_input",function(e){e=s.extend({set_id:"",module_id:"",item_id:"",input_id:"",value:null},e);var t=n._get_option_name(e.set_id);s.has(n.input_cbs,t)&&s.has(n.input_cbs[t],e.input_id)&&n.input_cbs[t][e.input_id](e)}),r.selectiveRefresh.bind("partial-content-rendered",function(e){if(s.has(e,"partial")&&s.has(e.partial,"id")){e.partial.id;r.preview.send("czr-partial-refresh-done",{set_id:n._build_setId(e.partial.id)})}})},_build_setId:function(e){if(s.isEmpty(window.themeServerPreviewParams))return e;if(!s.isArray(themeServerPreviewParams.wpBuiltinSettings)||s.contains(themeServerPreviewParams.wpBuiltinSettings,e))return e;var t=themeServerPreviewParams.themeOptionsPrefix;return s.isEmpty(t)?e:-1==e.indexOf(t)?[t+"[",e,"]"].join(""):e},_get_option_name:function(e){if(s.isEmpty(window.themeServerPreviewParams))return e;var t=themeServerPreviewParams.themeOptionsPrefix;if(s.isEmpty(t))return e;return e.replace(/\[|\]/g,"").replace(t,"")},_is_external:function(e){if("string"!=typeof e)return!1;var t=e.trim(),i=location.host.split(".").slice(-2).join("."),n=new RegExp(i);return!(""===t||"#"==t||!_isValidURL(t))&&!n.test(t)},_isValidURL:function(e){return/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(e)}};r.CZR_preview=r.Class.extend(e)}(wp.customize,jQuery,_);
|
||||
Reference in New Issue
Block a user