162 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			162 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								/*******************************************************************************
							 | 
						||
| 
								 | 
							
								* KindEditor - WYSIWYG HTML Editor for Internet
							 | 
						||
| 
								 | 
							
								* Copyright (C) 2006-2011 kindsoft.net
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* @author Roddy <luolonghao@gmail.com>
							 | 
						||
| 
								 | 
							
								* @site http://www.kindsoft.net/
							 | 
						||
| 
								 | 
							
								* @licence http://www.kindsoft.net/license.php
							 | 
						||
| 
								 | 
							
								*******************************************************************************/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								KindEditor.plugin('flash', function(K) {
							 | 
						||
| 
								 | 
							
									var self = this, name = 'flash', lang = self.lang(name + '.'),
							 | 
						||
| 
								 | 
							
										allowFlashUpload = K.undef(self.allowFlashUpload, true),
							 | 
						||
| 
								 | 
							
										allowFileManager = K.undef(self.allowFileManager, false),
							 | 
						||
| 
								 | 
							
										formatUploadUrl = K.undef(self.formatUploadUrl, true),
							 | 
						||
| 
								 | 
							
										extraParams = K.undef(self.extraFileUploadParams, {}),
							 | 
						||
| 
								 | 
							
										filePostName = K.undef(self.filePostName, 'imgFile'),
							 | 
						||
| 
								 | 
							
										uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php');
							 | 
						||
| 
								 | 
							
									self.plugin.flash = {
							 | 
						||
| 
								 | 
							
										edit : function() {
							 | 
						||
| 
								 | 
							
											var html = [
							 | 
						||
| 
								 | 
							
												'<div style="padding:20px;">',
							 | 
						||
| 
								 | 
							
												//url
							 | 
						||
| 
								 | 
							
												'<div class="ke-dialog-row">',
							 | 
						||
| 
								 | 
							
												'<label for="keUrl" style="width:60px;">' + lang.url + '</label>',
							 | 
						||
| 
								 | 
							
												'<input class="ke-input-text" type="text" id="keUrl" name="url" value="" style="width:160px;" />  ',
							 | 
						||
| 
								 | 
							
												'<input type="button" class="ke-upload-button" value="' + lang.upload + '" />  ',
							 | 
						||
| 
								 | 
							
												'<span class="ke-button-common ke-button-outer">',
							 | 
						||
| 
								 | 
							
												'<input type="button" class="ke-button-common ke-button" name="viewServer" value="' + lang.viewServer + '" />',
							 | 
						||
| 
								 | 
							
												'</span>',
							 | 
						||
| 
								 | 
							
												'</div>',
							 | 
						||
| 
								 | 
							
												//width
							 | 
						||
| 
								 | 
							
												'<div class="ke-dialog-row">',
							 | 
						||
| 
								 | 
							
												'<label for="keWidth" style="width:60px;">' + lang.width + '</label>',
							 | 
						||
| 
								 | 
							
												'<input type="text" id="keWidth" class="ke-input-text ke-input-number" name="width" value="550" maxlength="4" /> ',
							 | 
						||
| 
								 | 
							
												'</div>',
							 | 
						||
| 
								 | 
							
												//height
							 | 
						||
| 
								 | 
							
												'<div class="ke-dialog-row">',
							 | 
						||
| 
								 | 
							
												'<label for="keHeight" style="width:60px;">' + lang.height + '</label>',
							 | 
						||
| 
								 | 
							
												'<input type="text" id="keHeight" class="ke-input-text ke-input-number" name="height" value="400" maxlength="4" /> ',
							 | 
						||
| 
								 | 
							
												'</div>',
							 | 
						||
| 
								 | 
							
												'</div>'
							 | 
						||
| 
								 | 
							
											].join('');
							 | 
						||
| 
								 | 
							
											var dialog = self.createDialog({
							 | 
						||
| 
								 | 
							
												name : name,
							 | 
						||
| 
								 | 
							
												width : 450,
							 | 
						||
| 
								 | 
							
												title : self.lang(name),
							 | 
						||
| 
								 | 
							
												body : html,
							 | 
						||
| 
								 | 
							
												yesBtn : {
							 | 
						||
| 
								 | 
							
													name : self.lang('yes'),
							 | 
						||
| 
								 | 
							
													click : function(e) {
							 | 
						||
| 
								 | 
							
														var url = K.trim(urlBox.val()),
							 | 
						||
| 
								 | 
							
															width = widthBox.val(),
							 | 
						||
| 
								 | 
							
															height = heightBox.val();
							 | 
						||
| 
								 | 
							
														if (url == 'http://' || K.invalidUrl(url)) {
							 | 
						||
| 
								 | 
							
															alert(self.lang('invalidUrl'));
							 | 
						||
| 
								 | 
							
															urlBox[0].focus();
							 | 
						||
| 
								 | 
							
															return;
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
														if (!/^\d*$/.test(width)) {
							 | 
						||
| 
								 | 
							
															alert(self.lang('invalidWidth'));
							 | 
						||
| 
								 | 
							
															widthBox[0].focus();
							 | 
						||
| 
								 | 
							
															return;
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
														if (!/^\d*$/.test(height)) {
							 | 
						||
| 
								 | 
							
															alert(self.lang('invalidHeight'));
							 | 
						||
| 
								 | 
							
															heightBox[0].focus();
							 | 
						||
| 
								 | 
							
															return;
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
														var html = K.mediaImg(self.themesPath + 'common/blank.gif', {
							 | 
						||
| 
								 | 
							
																src : url,
							 | 
						||
| 
								 | 
							
																type : K.mediaType('.swf'),
							 | 
						||
| 
								 | 
							
																width : width,
							 | 
						||
| 
								 | 
							
																height : height,
							 | 
						||
| 
								 | 
							
																quality : 'high'
							 | 
						||
| 
								 | 
							
															});
							 | 
						||
| 
								 | 
							
														self.insertHtml(html).hideDialog().focus();
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}),
							 | 
						||
| 
								 | 
							
											div = dialog.div,
							 | 
						||
| 
								 | 
							
											urlBox = K('[name="url"]', div),
							 | 
						||
| 
								 | 
							
											viewServerBtn = K('[name="viewServer"]', div),
							 | 
						||
| 
								 | 
							
											widthBox = K('[name="width"]', div),
							 | 
						||
| 
								 | 
							
											heightBox = K('[name="height"]', div);
							 | 
						||
| 
								 | 
							
											urlBox.val('http://');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											if (allowFlashUpload) {
							 | 
						||
| 
								 | 
							
												var uploadbutton = K.uploadbutton({
							 | 
						||
| 
								 | 
							
													button : K('.ke-upload-button', div)[0],
							 | 
						||
| 
								 | 
							
													fieldName : filePostName,
							 | 
						||
| 
								 | 
							
													extraParams : extraParams,
							 | 
						||
| 
								 | 
							
													url : K.addParam(uploadJson, 'dir=flash'),
							 | 
						||
| 
								 | 
							
													afterUpload : function(data) {
							 | 
						||
| 
								 | 
							
														dialog.hideLoading();
							 | 
						||
| 
								 | 
							
														if (data.error === 0) {
							 | 
						||
| 
								 | 
							
															var url = data.url;
							 | 
						||
| 
								 | 
							
															if (formatUploadUrl) {
							 | 
						||
| 
								 | 
							
																url = K.formatUrl(url, 'absolute');
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
															urlBox.val(url);
							 | 
						||
| 
								 | 
							
															if (self.afterUpload) {
							 | 
						||
| 
								 | 
							
																self.afterUpload.call(self, url, data, name);
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
															alert(self.lang('uploadSuccess'));
							 | 
						||
| 
								 | 
							
														} else {
							 | 
						||
| 
								 | 
							
															alert(data.message);
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													},
							 | 
						||
| 
								 | 
							
													afterError : function(html) {
							 | 
						||
| 
								 | 
							
														dialog.hideLoading();
							 | 
						||
| 
								 | 
							
														self.errorDialog(html);
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												});
							 | 
						||
| 
								 | 
							
												uploadbutton.fileBox.change(function(e) {
							 | 
						||
| 
								 | 
							
													dialog.showLoading(self.lang('uploadLoading'));
							 | 
						||
| 
								 | 
							
													uploadbutton.submit();
							 | 
						||
| 
								 | 
							
												});
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												K('.ke-upload-button', div).hide();
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											if (allowFileManager) {
							 | 
						||
| 
								 | 
							
												viewServerBtn.click(function(e) {
							 | 
						||
| 
								 | 
							
													self.loadPlugin('filemanager', function() {
							 | 
						||
| 
								 | 
							
														self.plugin.filemanagerDialog({
							 | 
						||
| 
								 | 
							
															viewType : 'LIST',
							 | 
						||
| 
								 | 
							
															dirName : 'flash',
							 | 
						||
| 
								 | 
							
															clickFn : function(url, title) {
							 | 
						||
| 
								 | 
							
																if (self.dialogs.length > 1) {
							 | 
						||
| 
								 | 
							
																	K('[name="url"]', div).val(url);
							 | 
						||
| 
								 | 
							
																	if (self.afterSelectFile) {
							 | 
						||
| 
								 | 
							
																		self.afterSelectFile.call(self, url);
							 | 
						||
| 
								 | 
							
																	}
							 | 
						||
| 
								 | 
							
																	self.hideDialog();
							 | 
						||
| 
								 | 
							
																}
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
														});
							 | 
						||
| 
								 | 
							
													});
							 | 
						||
| 
								 | 
							
												});
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												viewServerBtn.hide();
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											var img = self.plugin.getSelectedFlash();
							 | 
						||
| 
								 | 
							
											if (img) {
							 | 
						||
| 
								 | 
							
												var attrs = K.mediaAttrs(img.attr('data-ke-tag'));
							 | 
						||
| 
								 | 
							
												urlBox.val(attrs.src);
							 | 
						||
| 
								 | 
							
												widthBox.val(K.removeUnit(img.css('width')) || attrs.width || 0);
							 | 
						||
| 
								 | 
							
												heightBox.val(K.removeUnit(img.css('height')) || attrs.height || 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											urlBox[0].focus();
							 | 
						||
| 
								 | 
							
											urlBox[0].select();
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										'delete' : function() {
							 | 
						||
| 
								 | 
							
											self.plugin.getSelectedFlash().remove();
							 | 
						||
| 
								 | 
							
											// [IE] 删除图片后立即点击图片按钮出错
							 | 
						||
| 
								 | 
							
											self.addBookmark();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
									self.clickToolbar(name, self.plugin.flash.edit);
							 | 
						||
| 
								 | 
							
								});
							 |