fck_media.js
上传用户:saigedz
上传日期:2019-10-14
资源大小:997k
文件大小:9k
源码类别:

中间件编程

开发平台:

HTML/CSS

  1. /*
  2.  * Media Plugin for FCKeditor 2.5 SVN
  3.  * Copyright (C) 2007 Riceball LEE (riceballl@hotmail.com)
  4.  *
  5.  * == BEGIN LICENSE ==
  6.  *
  7.  * Licensed under the terms of any of the following licenses at your
  8.  * choice:
  9.  *
  10.  *  - GNU General Public License Version 2 or later (the "GPL")
  11.  *    http://www.gnu.org/licenses/gpl.html
  12.  *
  13.  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14.  *    http://www.gnu.org/licenses/lgpl.html
  15.  *
  16.  *  - Mozilla Public License Version 1.1 or later (the "MPL")
  17.  *    http://www.mozilla.org/MPL/MPL-1.1.html
  18.  *
  19.  * == END LICENSE ==
  20.  *
  21.  * Scripts related to the Media dialog window (see fck_media.html).
  22.  */
  23. function Import(aSrc) {
  24.    document.write('<scr'+'ipt type="text/javascript" src="' + aSrc + '"></sc' + 'ript>');
  25. };
  26. var oEditor = window.parent.InnerDialogLoaded() ;
  27. var FCK = oEditor.FCK ;
  28. var FCKLang = oEditor.FCKLang ;
  29. var FCKConfig = oEditor.FCKConfig ;
  30. Import(FCKConfig.PluginsPath + '/media/js/fck_media_inc.js');
  31. //#### Dialog Tabs
  32. // Set the dialog tabs.
  33. window.parent.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;
  34. if ( FCKConfig.FlashUpload )
  35. window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
  36. if ( !FCKConfig.FlashDlgHideAdvanced )
  37. window.parent.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;
  38. // Function called when a dialog tag is selected.
  39. function OnDialogTabChange( tabCode )
  40. {
  41. ShowE('divInfo' , ( tabCode == 'Info' ) ) ;
  42. ShowE('divUpload' , ( tabCode == 'Upload' ) ) ;
  43. ShowE('divAdvanced' , ( tabCode == 'Advanced' ) ) ;
  44. }
  45. // Get the selected media embed (if available).
  46. var oFakeImage = FCK.Selection.GetSelectedElement() ;
  47. var oEmbed ;
  48. if ( oFakeImage )
  49. {
  50. if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckmedia') )
  51. oEmbed = FCK.GetRealElement( oFakeImage ) ;
  52. else
  53. oFakeImage = null ;
  54. }
  55. window.onload = function()
  56. {
  57. // Translate the dialog box texts.
  58. oEditor.FCKLanguageManager.TranslatePage(document) ;
  59. // Load the selected element information (if any).
  60. LoadSelection() ;
  61. // Show/Hide the "Browse Server" button.
  62. GetE('tdBrowse').style.display = FCKConfig.MediaBrowser ? '' : 'none' ;
  63. // Set the actual uploader URL.
  64. if ( FCKConfig.MediaUpload )
  65. GetE('frmUpload').action = FCKConfig.MediaUploadURL ;
  66. window.parent.SetAutoSize( true ) ;
  67. // Activate the "OK" button.
  68. window.parent.SetOkButton( true ) ;
  69. }
  70. function LoadSelection()
  71. {
  72. if ( ! oEmbed ) return ;
  73. GetE('cmbMeidaPlayerType').value = GetMediaPlayerTypeId(GetAttribute( oEmbed, 'type', '')) ;
  74. //oEmbed = oEmbed.getElementById('fckMedia');
  75. GetE('txtUrl').value    = GetAttribute( oEmbed, 'src', '' ) ;
  76. GetE('txtWidth').value  = GetAttribute( oEmbed, 'width', '' ) ;
  77. GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ;
  78. // Get Advances Attributes
  79. GetE('txtAttId').value = oEmbed.id ;
  80. GetE('chkAutoPlay').checked = GetAttribute( oEmbed, 'autostart', 'true' ) == 'true' ;
  81. GetE('chkLoop').checked = GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;
  82. GetE('chkMenu').checked = GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;
  83. GetE('cmbScale').value = GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;
  84. GetE('txtAttTitle').value = oEmbed.title ;
  85. if ( oEditor.FCKBrowserInfo.IsIE )
  86. {
  87. GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;
  88. GetE('txtAttStyle').value = oEmbed.style.cssText ;
  89. }
  90. else
  91. {
  92. GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
  93. GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ;
  94. }
  95. UpdatePreview() ;
  96. }
  97. //#### The OK button was hit.
  98. function Ok()
  99. {
  100. if ( GetE('txtUrl').value.length == 0 )
  101. {
  102. window.parent.SetSelectedTab( 'Info' ) ;
  103. GetE('txtUrl').focus() ;
  104. alert( oEditor.FCKLang.DlgAlertUrl ) ;
  105. return false ;
  106. }
  107. oEditor.FCKUndo.SaveUndoStep() ;
  108. if ( !oEmbed )
  109. {
  110. oEmbed = FCK.EditorDocument.createElement( cFckMediaElementName ) ;
  111. oFakeImage  = null ;
  112. }
  113. UpdateEmbed( oEmbed ) ;
  114. if ( !oFakeImage )
  115. {
  116. oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Media_'+oEmbed.attributes[cMediaTypeAttrName].value, oEmbed ) ;
  117. oFakeImage.setAttribute( '_fckmedia', 'true', 0 ) ;
  118. oFakeImage = FCK.InsertElement( oFakeImage ) ;
  119. }else {
  120.   oFakeImage.className = 'FCK__Media_'+oEmbed.attributes[cMediaTypeAttrName].value;
  121. }
  122. oEditor.FCKMediaProcessor.RefreshView( oFakeImage, oEmbed ) ;
  123. return true ;
  124. }
  125. function UpdateEmbed( e )
  126. {
  127.   var vMediaPlayerTypeId = parseInt(GetE('cmbMeidaPlayerType' ).value);
  128.   var vParam;
  129.   vMediaPlayerTypeId = (vMediaPlayerTypeId==NaN) ? cDefaultMediaPlayer : vMediaPlayerTypeId;
  130. SetAttribute( e, cMediaTypeAttrName , vMediaPlayerTypeId );
  131. SetAttribute( e, 'type' , cMediaPlayerTypes[vMediaPlayerTypeId] );
  132. SetAttribute( e, 'pluginspage' , cMediaPlayerCodebase[vMediaPlayerTypeId] ) ;
  133. SetAttribute( e, 'src', GetE('txtUrl').value ) ;
  134. SetAttribute( e, "width" , GetE('txtWidth').value ) ;
  135. SetAttribute( e, "height", GetE('txtHeight').value ) ;
  136. // Advances Attributes
  137. SetAttribute( e, 'id' , GetE('txtAttId').value ) ;
  138. SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
  139. SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;
  140. SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;
  141. SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;
  142. SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ;
  143. if ( oEditor.FCKBrowserInfo.IsIE )
  144. {
  145. SetAttribute( e, 'className', GetE('txtAttClasses').value ) ;
  146. e.style.cssText = GetE('txtAttStyle').value ;
  147. }
  148. else
  149. {
  150. SetAttribute( e, 'class', GetE('txtAttClasses').value ) ;
  151. SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
  152. }
  153. }
  154. var ePreview ;
  155. function SetPreviewElement( previewEl )
  156. {
  157. ePreview = previewEl ;
  158. if ( GetE('txtUrl').value.length > 0 )
  159. UpdatePreview() ;
  160. }
  161. function UpdatePreview()
  162. {
  163. if ( !ePreview )
  164. return ;
  165. while ( ePreview.firstChild )
  166. ePreview.removeChild( ePreview.firstChild ) ;
  167. if ( GetE('txtUrl').value.length == 0 )
  168. ePreview.innerHTML = '&nbsp;' ;
  169. else
  170. {
  171. var oDoc = ePreview.ownerDocument || ePreview.document ;
  172. var e = oDoc.createElement( 'EMBED' ) ;
  173.     var vMediaPlayerTypeId = parseInt(GetE('cmbMeidaPlayerType').value);
  174.     vMediaPlayerTypeId = (vMediaPlayerTypeId==NaN) ? cDefaultMediaPlayer : vMediaPlayerTypeId;
  175. SetAttribute( e, 'src', GetE('txtUrl').value ) ;
  176. SetAttribute( e, cMediaTypeAttrName, vMediaPlayerTypeId);
  177. SetAttribute( e, 'type', cMediaPlayerTypes[vMediaPlayerTypeId] ) ;
  178. SetAttribute( e, 'width', '100%' ) ;
  179. SetAttribute( e, 'height', '100%' ) ;
  180. ePreview.appendChild( e ) ;
  181. //e.innerHTML = WrapObjectToMedia(e.innerHTML, 'embed') ; //IE can not support!
  182. ePreview.innerHTML = WrapObjectToMedia(ePreview.innerHTML, 'embed'); 
  183. }
  184. }
  185. // <embed id="ePreview" src="fck_flash/claims.swf" width="100%" height="100%" style="visibility:hidden" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
  186. function BrowseServer()
  187. {
  188. OpenFileBrowser( FCKConfig.MediaBrowserURL, FCKConfig.MediaBrowserWindowWidth, FCKConfig.MediaBrowserWindowHeight ) ;
  189. }
  190. function SetUrl( url, width, height )
  191. {
  192. GetE('txtUrl').value = url ;
  193. if ( width )
  194. GetE('txtWidth').value = width ;
  195. if ( height )
  196. GetE('txtHeight').value = height ;
  197. UpdatePreview() ;
  198. window.parent.SetSelectedTab( 'Info' ) ;
  199. }
  200. function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
  201. {
  202. switch ( errorNumber )
  203. {
  204. case 0 : // No errors
  205. alert( 'Your file has been successfully uploaded' ) ;
  206. break ;
  207. case 1 : // Custom error
  208. alert( customMsg ) ;
  209. return ;
  210. case 101 : // Custom warning
  211. alert( customMsg ) ;
  212. break ;
  213. case 201 :
  214. alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
  215. break ;
  216. case 202 :
  217. alert( 'Invalid file type' ) ;
  218. return ;
  219. case 203 :
  220. alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
  221. return ;
  222. default :
  223. alert( 'Error on file upload. Error number: ' + errorNumber ) ;
  224. return ;
  225. }
  226. SetUrl( fileUrl ) ;
  227. GetE('frmUpload').reset() ;
  228. }
  229. var oUploadAllowedExtRegex = new RegExp( FCKConfig.MediaUploadAllowedExtensions, 'i' ) ;
  230. var oUploadDeniedExtRegex = new RegExp( FCKConfig.MediaUploadDeniedExtensions, 'i' ) ;
  231. function CheckUpload()
  232. {
  233. var sFile = GetE('txtUploadFile').value ;
  234. if ( sFile.length == 0 )
  235. {
  236. alert( 'Please select a file to upload' ) ;
  237. return false ;
  238. }
  239. if ( ( FCKConfig.MediaUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
  240. ( FCKConfig.MediaUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
  241. {
  242. OnUploadCompleted( 202 ) ;
  243. return false ;
  244. }
  245. return true ;
  246. }